{"_id":"@modelrelay/sdk","_rev":"37-4307301b31012a395df4f9d484d52e2f","name":"@modelrelay/sdk","dist-tags":{"latest":"9.0.0"},"versions":{"0.2.0":{"name":"@modelrelay/sdk","version":"0.2.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.2.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"583891c4461d7cb4b225927c168336972aebd27a","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.2.0.tgz","fileCount":7,"integrity":"sha512-PvNb1lWa3weU2xvY3sj9LWXI7V1xW1ynETDt4ruDagf3Lzz9SxDM3P7kZBvkKr0HwAv5wJWDwc/DdgnHaA3E9w==","signatures":[{"sig":"MEUCIQDjH42jhFjmJQz9hG6b5T2UxJB/6wMwXyHUM4okl1UHGgIgHo3XZsdCl4DRvOUKF+pf+FwLq298zAcuHHkmS7sukJA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97677},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1764126008345_0.6209284125425276","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@modelrelay/sdk","version":"0.4.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.4.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"7c9405953c5d90f3d60a8dfec2afb117742c2774","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.4.0.tgz","fileCount":7,"integrity":"sha512-uhi3tRsjux7aigMOSJUAv4DHEcNt6uqQ3Vaq+IMldgRlCjjpR+8UGRMFLdsE4thAYkpmjWAS7zY8hqvZ9oJFww==","signatures":[{"sig":"MEYCIQCH1NZl7tYsyXIuASdwa6trSLMrs0kkZIlJxtfzJ9r1MQIhAObLgx0alg7NYLcv+tO7q4Qw2kJ162Np3McCWmodI7jT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139904},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.4.0_1764649259086_0.7612322562179041","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@modelrelay/sdk","version":"0.5.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.5.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"2db10c733f10150f7bffcecd58642ac2abb5b1b1","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.5.0.tgz","fileCount":7,"integrity":"sha512-UGlmJqRnR7V0LHkszuoySehgXsI3lcoeNluUlQOZA8rUyoF2yz65j50uv/qgbgZOjsMtMRFveNKPzVDBy3KJjA==","signatures":[{"sig":"MEUCIDLbBI56AkZFYISgJW+rXvmRayzGbJRV3Q5iAmwd3G5qAiEAp43Fosx/6R3uc1nxk7yJLPFcMXUVA+aChi3Qag4RyKA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144144},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.5.0_1764655303328_0.926251342891228","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@modelrelay/sdk","version":"0.7.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.7.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"a217d02c2fe4831277c97f1bdf40afd5225ce407","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.7.0.tgz","fileCount":7,"integrity":"sha512-ML2A8bsDKPZNJ784/noAp2Zv6QieZe+BmXcJ96R21dQ/mc1POB8xm/ug8rmo7BPL8xQ85ELkY6MWNVo5CfhbqA==","signatures":[{"sig":"MEUCIQCUMlZ2kX3dWYYgAUb+/OQSAtCOYO6Lr59nIzC+JSGjegIgCUn0vivNdqPsGyBA3tbApEHIfQrIyqm6/hIfd6XvoYs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225746},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.0_1764746220811_0.8672042580522923","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"@modelrelay/sdk","version":"0.14.1","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.14.1","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"50b59f49f235225e69885f223aeae4c2c1310790","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.14.1.tgz","fileCount":7,"integrity":"sha512-pmBLm9uqHijA11hEbZ5EOx8vmIm1AYeGlmJ9lTZzR0ZLuiMvHav6eua6EQQF9DgrEgM65Dxina3qz8hkq+YFSw==","signatures":[{"sig":"MEYCIQD0yAajasyzZBg6lK5Blw7AGD+56PTVUKF+gLTSowV2ygIhALKKIszCZh+IzKIdXi5Fmx9XkwWbG/DUrvi2IBrgMKGA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237787},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"338b217bb802c6fdc9f86a5b08607d12a3aa8bf8","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"11.6.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.14.1_1764987162683_0.9399334714590637","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@modelrelay/sdk","version":"0.17.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.17.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"c62efb3feff090a9f1a0c0169b7fcaa4ab06604a","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.17.0.tgz","fileCount":7,"integrity":"sha512-vdhGx5+HIJVCV46pNAVZVx+DyXSCD0O7timUlQlq42DEcpkdkS4QM+XFIdKO5SFox9xGIjIzkZ3Aqp29sDwZOQ==","signatures":[{"sig":"MEUCIQDbIDyW99LHZQjN34buLMK94ydkZHTSOrwThWalfsC8sgIgCbA+HgcGItrQ9oqMnrZ/BPjkbJDJaa5PSwFX76cYOS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256018},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a27a76ada819da0f448b8e6607b2c41e8cde3884","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.17.0_1765166694371_0.18665808033345455","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@modelrelay/sdk","version":"0.18.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.18.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"01b53bd09ad420613a033451bc2482fe130402cd","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.18.0.tgz","fileCount":7,"integrity":"sha512-icl3zuj16rEOsXhfH+osljYDx3IEz9a8k6F6/VJJLYGbTv48qif/iShPwuEwzF6RfoySJecNlGHBvC00do+BHw==","signatures":[{"sig":"MEUCIQDoEZzNFy3mp1/0Tp+mUpd+A8OirXcKB4ZA58O2rjCBWwIgEz9Ob892VdCaVBAAISkO8yYPPrKVfVRiAyxymYCUzXw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260806},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4253a9d4afb739ca8d455a827ee9649399bd2345","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.18.0_1765172838006_0.5186244523163093","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@modelrelay/sdk","version":"0.19.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.19.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"a9e9f333f5b34407b2a31467aef171808b2cefe1","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.19.0.tgz","fileCount":7,"integrity":"sha512-OYwaqAHEPyLF/1oasCjXU+034cCABuOnkBYn0jEBAi9SqsI9viBQa+UwZb6Q7DY3ifqGHuz24UdclT/olbTSKQ==","signatures":[{"sig":"MEUCIAixqiUok/5uvurWn1bxwhptoTwNW9CFgaYkhBVlsiZxAiEAyFxKpCMWdb+NYrM2bpEgSNTvfaMZn90b956FPJqk18A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260914},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"72dfc174088d454f01067470dc2004fff1741402","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.19.0_1765176266435_0.4416460430570064","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@modelrelay/sdk","version":"0.20.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.20.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"160ce76be7502e1a536d5c91fc511ae295b982d3","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.20.0.tgz","fileCount":7,"integrity":"sha512-8tLX3tVb4mj4bDO1GLS2uu8PjE8+CBhCmhVxS1Qep+iunsunEa2OhLDCXKXCcGlGgn6ptJ/VH7NrudaNMiY43Q==","signatures":[{"sig":"MEUCIC/ua+0qsX2S0LrXjC/YDAvQzqoxOcXhug3Hm1m8PjNzAiEArsF1lSoF3vWvzSpKaOEFakGQqBHlkwTVrBCeuvkm5GQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265030},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"cc8a5393353ae1e5804f6dab236c1c22a57305d1","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.20.0_1765209368102_0.5765140732709013","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@modelrelay/sdk","version":"0.21.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.21.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"25de32397ffddaf0dbdb00f867dbe1565b25099c","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.21.0.tgz","fileCount":7,"integrity":"sha512-TczPq8GnymJjjdpwRpmeoF2Mku3fUkno5/T7N5/xB/gxSqGreR2iTN+juhnIXXI/CMhn0VJlQYn+273GkO7nwg==","signatures":[{"sig":"MEUCIHqtqda7uL6HxYhkHr4v4p0o8rfbMDcl6Z3k5lx3eJ5GAiEAsLoEYtw4BUteiesfLgwTn6nDkC2jAB/Xx/uoEIUUvx8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272864},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"b94bf6eb5a3d9d008da30ab4838e13cc6229b611","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.21.0_1765213686325_0.43411163403519004","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@modelrelay/sdk","version":"0.22.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.22.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"a27c221eecdb85208641659388572d970ebf1edf","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.22.0.tgz","fileCount":7,"integrity":"sha512-mqSqEr/QLEcjPfgu36pchuuF3P0DLACUeZANUnGGzKoJY6XHN+TmoOF9hprLrOPkaZIDOY+Y2Z8Wfa75J33wcA==","signatures":[{"sig":"MEUCID+755TvdE7p0t46s8/iR09nCcFMvCQQ7AKMJA+tqLvJAiEAmpDGdbc5J23jxWspvagzrqrGHac0qCOQ3iTgJDRzsrg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275002},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ee79a9c6a5ebe2a27d4c08bdb51805c69637ee83","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.22.0_1765214753402_0.09975556587062973","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@modelrelay/sdk","version":"0.23.0","keywords":["modelrelay","llm","sdk","typescript"],"author":"Shane Vitarana","license":"Apache-2.0","_id":"@modelrelay/sdk@0.23.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"7a388238f42c74c83253b974a5af4bc914f86e54","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.23.0.tgz","fileCount":7,"integrity":"sha512-cl2UGHivrmiqL4Snd9iIKYsYdon6ugRcsIUasC4/e7uzfHQdJMrnlXSVA6pX6gO8WjLlBiH7nYDclKhViy7/Gg==","signatures":[{"sig":"MEUCIQCoJAUWjPSiu9WeIwLfF6y7dsP4m4ZpbftNSuYxIjf2QgIgSbsZZTBXciym8k1fIcYDzEo8DNPO86OeHOFLdXDcLKY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276005},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","shasum":"7a388238f42c74c83253b974a5af4bc914f86e54","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_integrity":"sha512-cl2UGHivrmiqL4Snd9iIKYsYdon6ugRcsIUasC4/e7uzfHQdJMrnlXSVA6pX6gO8WjLlBiH7nYDclKhViy7/Gg==","_npmVersion":"10.8.3","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.23.0_1765241814817_0.3204666485065484","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@modelrelay/sdk","version":"0.24.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.24.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"39c245241b96320e9191cd257f77fe6c141aad2c","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.24.0.tgz","fileCount":7,"integrity":"sha512-ven2zcgoJbZkrYeFhgDysB6UuTiQ2j1+rvDy6rdkPb7G+NxvjFIyfXH2OnKZX0iW4Ul1Khnj2fN1/yQqo8F7Sw==","signatures":[{"sig":"MEUCIQCkMoyBPF87SpZNv6KgnB91wSRKTvAXY2VApal/pfQhmQIgW+5abh6XSDjjch0rrMXnkDfHYfpkdAOqtt/P/KZJGr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297701},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"de61058cca0b3a5f96b120061ae6509546d79522","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.24.0_1765270514748_0.9695466596054969","host":"s3://npm-registry-packages-npm-production"}},"0.25.1":{"name":"@modelrelay/sdk","version":"0.25.1","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.25.1","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"b8e8625b83fa670ddcb81dd8640f4f3777ca2536","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.25.1.tgz","fileCount":7,"integrity":"sha512-KNfZi/XfDaktWHN9dsdVKTYzCN+M7Z+ld4BIiJiX4p6nRz01aj228SORMfUjxpUGqaVjwUI6Y9S3tLhF6KZvgA==","signatures":[{"sig":"MEUCIEJpNgNObzrqWUaqWAumv9iHZwuloXqUoCL1qpyB4rT2AiEAiISsG88VU5hya4FvA4+GEvTvVPB7u9RrNXl02KWg51M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340884},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.25.1_1765324127183_0.3911351338592801","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@modelrelay/sdk","version":"0.27.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.27.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"a0146941bb6d57924770c10020fedff522ea8ea2","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.27.0.tgz","fileCount":7,"integrity":"sha512-N31g+QyQ1hZq/xG5lmmaBYAk9aj91fIsrn6GXd67v+XPnIHmkdY7zSfyfHYFC54eXfnhBdDCAFsqOIAh4b2+/A==","signatures":[{"sig":"MEUCIGBY7jCQzkg3gAWJcLeTLIaB+tTxLVnTPEQnTRxOHmJpAiEA7Sr7KFsO0YNWe2123cME9VeUqO3TL+FzzTF3BDbs7U4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332466},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.27.0_1765329232586_0.5173543919911339","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@modelrelay/sdk","version":"0.30.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@0.30.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"5fb71521ed224a4a04af1a56e7f468a63d914e32","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-0.30.0.tgz","fileCount":7,"integrity":"sha512-xdn4WgxC0tWK6bQ5BuLcGdkgFrERUydjNJSD//VWOF8BzzDpN43W/8ky1GdPn7x2Zp0nisKJB0ryIofj2KGuQw==","signatures":[{"sig":"MEQCIQDwz19UitI7ub/HcRM3qYIKzQYxGUjPMwss6kbNQUegFQIfWLVKiSXBX3KL5SpZVP6nHgqVONaxkVcqV2210SZRIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329962},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.30.0_1765390970303_0.8884242310684693","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@modelrelay/sdk","version":"1.3.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.3.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"9f5d1dddf9e9d6d98f47788e77393fe51af47c16","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.3.0.tgz","fileCount":7,"integrity":"sha512-HVDLx87f/zuP1Q4DRBZ9RL4p59032EveJK2yEBfD0/vkm0uNq78PIDAqeP3Fu29hOFEpSevgRDDLL+soPMggSg==","signatures":[{"sig":"MEYCIQCu7tuZnMt4ZCnEDUdKCGtlsgmIBhl9oT/m08jRZU864QIhALmDtZhqBERs23p+OOU2OBTg5mdDPfgeGtRadqhoRxNr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":965538},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5d72070dd0f4f2a9667ead85efc72b66ac9e4b37","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"11.6.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.3.0_1766338424458_0.6372793123985498","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@modelrelay/sdk","version":"1.3.1","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.3.1","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"661fa8a9e81769b159d043601286fa66c272f30a","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.3.1.tgz","fileCount":7,"integrity":"sha512-ozgdhO5PyzfwdupS6UxDhN8h8rEakeM+hX8fTNGkWJCMi3NLk1peYrqwxW2d9010AS6qdXh9Oxm5pPlN/GbE9g==","signatures":[{"sig":"MEUCIQDKcFTmENrB9lNH1SH/AYrVh5loMAKyHI8B1eImOISj/QIgOCL2NxQaQE3JUWv9CsQjJjK9SPCWc167CET82pII3FI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":965538},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e3fab0c4126a1ef19f5f8a6c581d1564a6414cdb","scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"11.6.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.3.1_1766338461985_0.2544123119095125","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@modelrelay/sdk","version":"1.3.2","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.3.2","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"f9f395aab5bf7ea1a246544c775910af68e9d414","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.3.2.tgz","fileCount":7,"integrity":"sha512-RZsQWevWvJnhbSG2a0q38wTg95oxWNgUFHRrMhJcpNyTEzGgaQK5zXbqR9yxRDqwpQnjyvJ42DOM2VzWIHeC3w==","signatures":[{"sig":"MEUCIQDZ9+GozjbEHArbd7dVW/F1HDv01C+QZmNEqeW9uQmIhwIgO5O6FOI/9RCbFwKa2DrJmXz4HMqvM1XLWRGw9wZXItI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":968142},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.3.2_1766521374035_0.7492428065280203","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@modelrelay/sdk","version":"1.3.3","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.3.3","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"a4b6a68642a5c0699ee6082fc767052433a24ec5","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.3.3.tgz","fileCount":7,"integrity":"sha512-UM8zy5+hGJfc0JX+zEAFriJVIAgppvB0yaZqM2qXFgdpdgLoQwIfoKIcFoKJmVdg87p/DbGY50XPCfIOlN76hQ==","signatures":[{"sig":"MEUCIGzppcaSzLMAjdebHMxHY+dAmAlradDFYOIEf2OnJru4AiEA0ktHhk1qVcRAT9x99KiOMGTNNc1zg+6+frB6/QpsAqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":965974},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","typescript":"^5.6.3","openapi-typescript":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.3.3_1766522498539_0.17522507452800173","host":"s3://npm-registry-packages-npm-production"}},"1.10.3":{"name":"@modelrelay/sdk","version":"1.10.3","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.10.3","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"9838bfed840eb9799d46068f2ec8a87d3bf4eaa9","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.10.3.tgz","fileCount":7,"integrity":"sha512-/tlHepnoPiXN88xzGqlrKJgZVUOhYFMlhDctXhLvZviVzfBJwhJS0xDPN7tH52OMftyURiCvN2KTXFzj95D5jQ==","signatures":[{"sig":"MEQCIENdsfwEOMJ8CidGQdgPRyeADxWRDD6tPAoRiARM6dvwAiA0T18KmSFgdVwj93We3pcXKYE4gZXCCTWpBwwzNNJddA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1247164},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","tsup":"^8.2.4","vitest":"^2.1.4","playwright":"^1.49.0","typescript":"^5.6.3","@types/node":"^25.0.3","openapi-typescript":"^7.4.4"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.10.3_1766701465912_0.5223476804640761","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@modelrelay/sdk","version":"1.14.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.14.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"dff99dae898238e034269ee25509ec2813e0aabc","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.14.0.tgz","fileCount":7,"integrity":"sha512-Zc2zGH7na/d6rVw/kr34kCe1yx717E8/kdY34mHoq2TKFpSfFwVUAR/DMHOv1EKDCRZoh9orPjHrdr/pzz7MCQ==","signatures":[{"sig":"MEYCIQCbM2iG16NJ+1FAeZ4lo0KD/KdPd/SWMudBcqOyzLGjMgIhAK0+zeubM+n3WZVXsM8fOyaRJRMMkBH0fI9e+nxYpABY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1101495},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.23.0","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","vitest":"^2.1.4","playwright":"^1.49.0","typescript":"^5.6.3","@types/node":"^25.0.3","openapi-typescript":"^7.4.4"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.14.0_1766758289009_0.09061870363337077","host":"s3://npm-registry-packages-npm-production"}},"1.25.0":{"name":"@modelrelay/sdk","version":"1.25.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.25.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"77d1d644bf64826df02c70643ef5f019e6928171","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.25.0.tgz","fileCount":7,"integrity":"sha512-vV+Ug+ZPpMu84Y8fy4gARi/KTieo2SHqnV/wUid8Y0hXedR6kknuTbFvE+9ABHhYQdkaFrCBdUJvGt3nYQ8XPA==","signatures":[{"sig":"MEUCIEAZ8ORiLhMkK9YA+V0nKmEn1DbrytkVYkzg8DaR+nVuAiEA2cW6chs3gW4LnkjJhq5Rysu/bwaEJIsehcrBgir4mo8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1360419},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.23.0","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","vitest":"^2.1.4","playwright":"^1.49.0","typescript":"^5.6.3","@types/node":"^25.0.3","openapi-typescript":"^7.4.4"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.25.0_1767043076331_0.9263835185904432","host":"s3://npm-registry-packages-npm-production"}},"1.27.0":{"name":"@modelrelay/sdk","version":"1.27.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.27.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"122716691a5bd53fc0d2e70c6763c56b3f7cf0b6","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.27.0.tgz","fileCount":14,"integrity":"sha512-Sk5vKn07dWGRk9c4AJcY9C6Vun5uAD07CXkkpXu2oMzq10R81fOZdKfWJbckIF1dhBGghxs2gOMVCaVdMzC6jQ==","signatures":[{"sig":"MEQCIDLorSrlswm2Cq7FUnyDzB1ZVWcKtmby1NiXcfCRS+BQAiAETWitPSUQKyldWr4XP67qEP1TEOkpSqAuCujNtfrMqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1380923},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"}},"scripts":{"dev":"tsup src/index.ts src/node.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.23.0","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","vitest":"^2.1.4","playwright":"^1.49.0","typescript":"^5.6.3","@types/node":"^25.0.3","openapi-typescript":"^7.4.4"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.27.0_1767047426537_0.5654830785030689","host":"s3://npm-registry-packages-npm-production"}},"1.28.0":{"name":"@modelrelay/sdk","version":"1.28.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.28.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"1ca6265b60c99d527a6424f4ca17588e25c4f2fc","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.28.0.tgz","fileCount":15,"integrity":"sha512-Xp6sC3cWsCSaK01npV71ZP1WwAnT3B5X1fZ68f7jgTQKAnktXNdVbu8jtVnTXUfO9As/ZhZwmT73ftxhDEy25A==","signatures":[{"sig":"MEUCIGCSbwBe0+3yBr5eEhlaU4kQsPUUOeYV0rCx3EtdoTIrAiEAtIotXAei1wrEEjMQTUZPZ539k3L6WcUKXFUwe68WhOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1414215},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"}},"scripts":{"dev":"tsup src/index.ts src/node.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.23.0","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","vitest":"^2.1.4","playwright":"^1.49.0","typescript":"^5.6.3","@types/node":"^25.0.3","openapi-typescript":"^7.4.4"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.28.0_1767047839163_0.09539025611833618","host":"s3://npm-registry-packages-npm-production"}},"1.29.0":{"name":"@modelrelay/sdk","version":"1.29.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.29.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"a92637df26cbb5cad9f57646026f3db0bd2dabd7","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.29.0.tgz","fileCount":16,"integrity":"sha512-6YYPejpjBznvSMnlhyRTQ+F9dCC0v4vIQaqts6kRjPvcQZ1NvSKRiwNUfWR8B5RSqit4wK+KRJojo/OpBN2jvg==","signatures":[{"sig":"MEYCIQDYQpUkc0KUhw+IVrvL/VkFjqCfzmunREd7iq+3VOP6vwIhAKxTT/BsMAEOGTaFNaRdXuxAhAfZMxc5STn73amhGCDY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1447636},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"}},"scripts":{"dev":"tsup src/index.ts src/node.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.23.0","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","vitest":"^2.1.4","playwright":"^1.49.0","typescript":"^5.6.3","@types/node":"^25.0.3","openapi-typescript":"^7.4.4"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.29.0_1767048235152_0.3378142215942004","host":"s3://npm-registry-packages-npm-production"}},"1.36.0":{"name":"@modelrelay/sdk","version":"1.36.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.36.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"3296a0c17a92e2d2e70d51113facd9862982694a","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.36.0.tgz","fileCount":26,"integrity":"sha512-GUbtYx7aybe8c6dFCix2zd3r3YLH1T8EFHX1hl/z12EuxqEEl6i0hdj6ielpQmQ58sk9rf5P/VML/sazH1cuzg==","signatures":[{"sig":"MEUCIQD1kTQoAUyMK2f70rx4orD96hjNPNsbwAsEMfLU6eb/5AIgAaaQzjq6j/tFEKEdAg7e6buXWOGWLN/AO5WzQiAfDDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1584761},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js","require":"./dist/billing/index.cjs"}},"scripts":{"dev":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.25.76","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^2.1.9","playwright":"^1.57.0","typescript":"^5.9.3","@types/node":"^25.0.3","openapi-typescript":"^7.10.1"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.36.0_1767428080070_0.9558680071527255","host":"s3://npm-registry-packages-npm-production"}},"1.37.0":{"name":"@modelrelay/sdk","version":"1.37.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.37.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"cd5f6ff6a8c7d72117659e891c78e5a885912771","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.37.0.tgz","fileCount":29,"integrity":"sha512-BByfpki3aVq0hvjLFePbqStMwumtkgckAy/fxVadjxXumjV6lhewhODy3BgpRX1TDG3uwm5VXBEMG0RJEn9hAw==","signatures":[{"sig":"MEUCIH31PEX2kIsEUaxodyRvkRGeMHQiVJRXy/XN5STaddvQAiEA1wkCau3bcCqSAqwwoVNyS1zrQi+j/q0dXqPQdzRL2xo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1930201},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js","require":"./dist/billing/index.cjs"}},"gitHead":"b5e6f1585af667a886ba8678ea9e79b5f41717b2","scripts":{"dev":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.25.76","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^2.1.9","playwright":"^1.57.0","typescript":"^5.9.3","@types/node":"^25.0.3","openapi-typescript":"^7.10.1"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.37.0_1767460058968_0.725246743297836","host":"s3://npm-registry-packages-npm-production"}},"1.42.0":{"name":"@modelrelay/sdk","version":"1.42.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.42.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"b3ac0edb0a6a841caff97572822b50549b0d3fbd","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.42.0.tgz","fileCount":37,"integrity":"sha512-LUR20nQPNemjbm6l8ILr/wmQXJUUfCweTbUirJVLeWzWqKRIzOVYFEnFzCWuiG9ucv8uJHI2P09gxTgrSOvzbA==","signatures":[{"sig":"MEUCIEbT0N/Sj2YD4ATuLTRavNVKg4bd7cVPfittowkQMXM7AiEA2k70P7y5sIWfV9/qSgffaciRus44gjYxEsRclv51Zp4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2690964},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js","require":"./dist/billing/index.cjs"}},"gitHead":"48bfc135c0a7f96e0117a6b671a7c15a8ccfd4e1","scripts":{"dev":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.25.76","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^2.1.9","playwright":"^1.57.0","typescript":"^5.9.3","@types/node":"^25.0.3","openapi-typescript":"^7.10.1"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.42.0_1767480114624_0.30253970735229463","host":"s3://npm-registry-packages-npm-production"}},"1.44.0":{"name":"@modelrelay/sdk","version":"1.44.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@1.44.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"3137b97d48f17ff6d162353d377db7e517ca81ee","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-1.44.0.tgz","fileCount":44,"integrity":"sha512-rFLRt4JqjLIHCTFf02UCqLxBanfZtZkvvrbaE3wS7vleJGzsEwOg0RQA6KHgNdGk0KSkwaywKnSV/qSxi5D/cA==","signatures":[{"sig":"MEUCICtt6utWyn+hQ9Juyj2krQJTteQ/52mlhMHRGkN7jVRRAiEAr3X+6hLevqye15dEUa7yVlSIIiDiRDimd9S7GhDOhLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3122583},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js","require":"./dist/billing/index.cjs"}},"gitHead":"76410bd262b9041ac67bcdce3363771d57a541b5","scripts":{"dev":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.25.76","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^2.1.9","playwright":"^1.57.0","typescript":"^5.9.3","@types/node":"^25.0.3","openapi-typescript":"^7.10.1"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.44.0_1767492945838_0.5444407163203377","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@modelrelay/sdk","version":"2.1.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@2.1.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"bf135c45af34c8e779425aeca64868510c640284","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-2.1.0.tgz","fileCount":54,"integrity":"sha512-92/Lrhz4BqEbQUkM6OEWs3jc0BP/QMJCP2k97ELX5EyXVUVHupmIiwJEZGhrlj0t/GprRXjf1GaNutg9fJ8qVg==","signatures":[{"sig":"MEUCIGLlYd/Wlt2SgS1RpGaZQmmkse3uOW8HbAhOeGJnpzSWAiEAjI9mjr//+vfnnhs8GT3nJtW6IfXFlFTZfP6Uv+Edxz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3675539},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js","require":"./dist/billing/index.cjs"}},"gitHead":"9b3698febb283f7bc5bc7e969e03c877e1c074de","scripts":{"dev":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.25.76","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^2.1.9","playwright":"^1.57.0","typescript":"^5.9.3","@types/node":"^25.0.3","openapi-typescript":"^7.10.1"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.1.0_1767571646479_0.904519116980121","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@modelrelay/sdk","version":"4.0.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@4.0.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"c96f23f5ba8a4dee85c3d508ad103910f16eb963","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-4.0.0.tgz","fileCount":37,"integrity":"sha512-n52qS3RmPpVaUOlVWTkpqPAsVkS/RJpDpoSF6MZ+j+yxDo2cCkxvOlCncQVHGWk7yz8ZsXqsE4ia2pWeIBd9VA==","signatures":[{"sig":"MEQCIESqK6/rt8t7LFoZxbrdTuFLK5B5bRBEOy3yOaYJEGcyAiAWDFqRJEFUew6XYohBJfuy/xv8AfMFQvFcgW0Qum57kA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2502040},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js","require":"./dist/billing/index.cjs"}},"scripts":{"dev":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.25.76","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^2.1.9","playwright":"^1.57.0","typescript":"^5.9.3","@types/node":"^25.0.3","openapi-typescript":"^7.10.1"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_4.0.0_1767827379472_0.3831949552592957","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"@modelrelay/sdk","version":"5.1.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@5.1.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"f89cc685a92e8b6ac8e45c5f3a395a035a7f452f","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-5.1.0.tgz","fileCount":21,"integrity":"sha512-F863MjX6S2GeThLltc8NruwhK5e8sCnXBZpYSftmnY8NbsHzmqULO168V8nJMqJfHyI8r+QAGcfrJAJwXr/6RQ==","signatures":[{"sig":"MEUCICRy8LBbfqADWWtU75t2KyAvAbC3pXLsRGg27hr9bj7tAiEA22KQ5sYziOaZLvGY0Epvkex7N0IN5uvmSOALxUkbWQQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1138600},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js","require":"./dist/billing/index.cjs"}},"gitHead":"3060ea1f1a57097414944768ee5d3110ef8c694a","scripts":{"dev":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.25.76","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^2.1.9","playwright":"^1.57.0","typescript":"^5.9.3","@types/node":"^25.0.3","openapi-typescript":"^7.10.1"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_5.1.0_1768070382843_0.4844260186718843","host":"s3://npm-registry-packages-npm-production"}},"5.3.0":{"name":"@modelrelay/sdk","version":"5.3.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@5.3.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"35a6079230bae4ee9e97d7a32a4dcb6517d02c22","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-5.3.0.tgz","fileCount":41,"integrity":"sha512-l6qVIq6S8wKujuEAmVItwbxb4PE/qYPghDonBuc7PIpVNrDkMC937XMzZUeL2jafaavR8wqizp3rY7litqX1NQ==","signatures":[{"sig":"MEUCIQDu5b8ryxRu09Gllvb+EckaICRbnKc4HqlxG2iYENRULAIgd0uXIub+pkERWVjmPh4PkwGLC0CLfRmgJqnBfUvdvwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3133799},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js","require":"./dist/billing/index.cjs"}},"scripts":{"dev":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.25.76","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^2.1.9","playwright":"^1.57.0","typescript":"^5.9.3","@types/node":"^25.0.3","openapi-typescript":"^7.10.1"},"peerDependencies":{"playwright":">=1.40.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_5.3.0_1768081082572_0.8632037042268466","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"@modelrelay/sdk","version":"8.0.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@8.0.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"e52331ec28f414a593a45e919c6879b87c354393","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-8.0.0.tgz","fileCount":38,"integrity":"sha512-iEsInvXfKBwWPEELIIgcRivsFP5W3DgO+WPxHNzbT9aLheqnBipqRqCHg8DbQ05mkOMhsdmpvbOaKiom10fRkA==","signatures":[{"sig":"MEUCIQDPGtjIwbtRGgwjUCk1HBZWjap9lGzg/GCFghtYunBi3wIgIVPsY8hP/CevCFyyPVVmrAjhMvxea+6Dg0zEtH2EqB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2841507},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js","require":"./dist/billing/index.cjs"}},"gitHead":"3d249510e7fa46208145d76a80e375affde2c43d","scripts":{"dev":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.25.76","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^2.1.9","playwright":"^1.57.0","typescript":"^5.9.3","@types/node":"^25.0.3","openapi-typescript":"^7.10.1","@types/better-sqlite3":"^7.6.11"},"peerDependencies":{"playwright":">=1.40.0","better-sqlite3":"^9.6.0"},"peerDependenciesMeta":{"playwright":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_8.0.0_1768257811662_0.6608823471402188","host":"s3://npm-registry-packages-npm-production"}},"8.1.0":{"name":"@modelrelay/sdk","version":"8.1.0","keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","_id":"@modelrelay/sdk@8.1.0","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"dist":{"shasum":"f2964abd31464709399ae4041f266f7da2592435","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-8.1.0.tgz","fileCount":43,"integrity":"sha512-kZ+kH0iLMrf0m/cAArbPdw0fgCekjvfwx3CVU6nrjrzVl9w2hkBLH/oao/J0R7C26zR4m4osCmZPrqe/IZjw8Q==","signatures":[{"sig":"MEQCIAxwjugGFu+wWPIGjvzmPfyQsxFUY6/GLOQn/XhoXgb+AiAmIOh8Fr7h7+519TbhrGrLsjNeOgpYRWoWQxp60iy50w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3659397},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js","require":"./dist/billing/index.cjs"}},"gitHead":"84cf2137337686cfdab1539ad121f92c85aa3559","scripts":{"dev":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","build":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --external playwright","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"_npmVersion":"10.9.2","description":"TypeScript SDK for the ModelRelay API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.25.76","fast-json-patch":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^2.1.9","playwright":"^1.57.0","typescript":"^5.9.3","@types/node":"^25.0.3","openapi-typescript":"^7.10.1","@types/better-sqlite3":"^7.6.11"},"peerDependencies":{"playwright":">=1.40.0","better-sqlite3":"^9.6.0"},"peerDependenciesMeta":{"playwright":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_8.1.0_1768421314053_0.8381833378217898","host":"s3://npm-registry-packages-npm-production"}},"9.0.0":{"name":"@modelrelay/sdk","version":"9.0.0","description":"TypeScript SDK for the ModelRelay API","type":"module","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js","require":"./dist/billing/index.cjs"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","require":"./dist/node.cjs"}},"publishConfig":{"access":"public"},"scripts":{"build":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --external playwright","dev":"tsup src/index.ts src/node.ts src/billing/index.ts --format esm,cjs --dts --watch","lint":"tsc --noEmit --project tsconfig.lint.json","test":"vitest run","generate:types":"openapi-typescript ../../api/openapi/api.json -o src/generated/api.ts"},"keywords":["modelrelay","llm","sdk","typescript"],"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","dependencies":{"fast-json-patch":"^3.1.1","zod":"^3.25.76"},"peerDependencies":{"better-sqlite3":"^9.6.0","playwright":">=1.40.0"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"playwright":{"optional":true}},"devDependencies":{"@types/better-sqlite3":"^7.6.11","@types/node":"^25.0.3","openapi-typescript":"^7.10.1","playwright":"^1.57.0","tsup":"^8.5.1","typescript":"^5.9.3","vitest":"^2.1.9"},"_id":"@modelrelay/sdk@9.0.0","gitHead":"c4d0dc0956343caac09bdd42f05becfce062b220","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-UzFxFucMisojaNuvHL0q+CtCaLkCu95FW2zGzR2G8DBjlPKjV4wuNpRJTNwJ9FYBZYdJLumml2ATXwRU4KlGfQ==","shasum":"7e7c1b34aca787ab267cd538a636db79cbd29c56","tarball":"https://registry.npmjs.org/@modelrelay/sdk/-/sdk-9.0.0.tgz","fileCount":46,"unpackedSize":3763031,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD7WwTkSLB9byvhZQpKNZ9y8EVS9oOaUOnTCBKPXPY93AIhANLAFxm7ncD1Ykg62Y8jpl8jHmbnpgF13nWcxpZC86yr"}]},"_npmUser":{"name":"shanev","email":"shanev@gmail.com"},"directories":{},"maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_9.0.0_1768533761280_0.39128955784550823"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-26T03:00:08.220Z","modified":"2026-01-16T03:22:41.613Z","0.2.0":"2025-11-26T03:00:08.538Z","0.4.0":"2025-12-02T04:20:59.290Z","0.5.0":"2025-12-02T06:01:43.555Z","0.7.0":"2025-12-03T07:17:01.000Z","0.14.1":"2025-12-06T02:12:42.835Z","0.17.0":"2025-12-08T04:04:54.510Z","0.18.0":"2025-12-08T05:47:18.154Z","0.19.0":"2025-12-08T06:44:26.587Z","0.20.0":"2025-12-08T15:56:08.278Z","0.21.0":"2025-12-08T17:08:06.472Z","0.22.0":"2025-12-08T17:25:53.562Z","0.23.0":"2025-12-09T00:56:54.964Z","0.24.0":"2025-12-09T08:55:14.891Z","0.25.1":"2025-12-09T23:48:47.367Z","0.27.0":"2025-12-10T01:13:52.757Z","0.30.0":"2025-12-10T18:22:50.496Z","1.3.0":"2025-12-21T17:33:44.640Z","1.3.1":"2025-12-21T17:34:22.185Z","1.3.2":"2025-12-23T20:22:54.202Z","1.3.3":"2025-12-23T20:41:38.735Z","1.10.3":"2025-12-25T22:24:26.134Z","1.14.0":"2025-12-26T14:11:29.188Z","1.25.0":"2025-12-29T21:17:56.489Z","1.27.0":"2025-12-29T22:30:26.721Z","1.28.0":"2025-12-29T22:37:19.346Z","1.29.0":"2025-12-29T22:43:55.337Z","1.36.0":"2026-01-03T08:14:40.293Z","1.37.0":"2026-01-03T17:07:39.225Z","1.42.0":"2026-01-03T22:41:54.841Z","1.44.0":"2026-01-04T02:15:46.014Z","2.1.0":"2026-01-05T00:07:26.655Z","4.0.0":"2026-01-07T23:09:39.735Z","5.1.0":"2026-01-10T18:39:43.007Z","5.3.0":"2026-01-10T21:38:02.723Z","8.0.0":"2026-01-12T22:43:31.839Z","8.1.0":"2026-01-14T20:08:34.218Z","9.0.0":"2026-01-16T03:22:41.490Z"},"author":{"name":"Shane Vitarana"},"license":"Apache-2.0","keywords":["modelrelay","llm","sdk","typescript"],"description":"TypeScript SDK for the ModelRelay API","maintainers":[{"name":"shanev","email":"shanev@gmail.com"}],"readme":"# ModelRelay TypeScript SDK\n\n```bash\nbun add @modelrelay/sdk\n```\n\n## Convenience API\n\nThe simplest way to get started. Three methods cover the most common use cases:\n\n### Ask — Get a Quick Answer\n\n```typescript\nimport { ModelRelay } from \"@modelrelay/sdk\";\n\nconst mr = ModelRelay.fromSecretKey(process.env.MODELRELAY_API_KEY!);\n\nconst answer = await mr.ask(\"claude-sonnet-4-5\", \"What is 2 + 2?\");\nconsole.log(answer); // \"4\"\n```\n\n### Chat — Full Response with Metadata\n\n```typescript\nconst response = await mr.chat(\"claude-sonnet-4-5\", \"Explain quantum computing\", {\n  system: \"You are a physics professor\",\n});\n\nconsole.log(response.output);\nconsole.log(\"Tokens:\", response.usage.totalTokens);\n```\n\n### Agent — Agentic Tool Loops\n\nRun an agent that automatically executes tools until completion:\n\n```typescript\nimport { z } from \"zod\";\n\nconst tools = mr\n  .tools()\n  .add(\n    \"read_file\",\n    \"Read a file from the filesystem\",\n    z.object({ path: z.string().describe(\"File path to read\") }),\n    async (args) => {\n      const content = await fs.readFile(args.path, \"utf-8\");\n      return content;\n    }\n  );\n\nconst result = await mr.agent(\"claude-sonnet-4-5\", {\n  tools,\n  prompt: \"Read config.json and summarize it\",\n  system: \"You are a helpful file assistant\",\n});\n\nconsole.log(result.output);\nconsole.log(\"Tool calls:\", result.usage.toolCalls);\n```\n\n### User Interaction — `user.ask`\n\nUse the built-in `user.ask` tool to request human input in a workflow run:\n\n```typescript\nimport { ModelRelay, ToolRegistry, ToolRunner, createUserAskTool } from \"@modelrelay/sdk\";\n\nconst mr = ModelRelay.fromSecretKey(process.env.MODELRELAY_API_KEY!);\n\nconst tools = [createUserAskTool()];\nconst registry = new ToolRegistry();\n\nconst runner = new ToolRunner({\n  registry,\n  runsClient: mr.runs,\n  onUserAsk: async (_pending, args) => {\n    const answer = await promptUser(args.question); // your UI/input here\n    return { answer, is_freeform: true };\n  },\n});\n\nconst run = await mr.runs.create(spec);\n\nfor await (const event of mr.runs.events(run.run_id)) {\n  if (event.type === \"node_waiting\") {\n    await runner.handleNodeWaiting(run.run_id, event.node_id, event.waiting);\n  }\n}\n```\n\n## Token Providers (Automatic Bearer Auth)\n\nUse token providers when you want the SDK to automatically obtain/refresh **bearer tokens** for data-plane calls like `/responses` and `/runs`.\n\n### Secret key → customer bearer token (mint)\n\n```ts\nimport { CustomerTokenProvider, ModelRelay } from \"@modelrelay/sdk\";\n\nconst tokenProvider = new CustomerTokenProvider({\n  secretKey: process.env.MODELRELAY_API_KEY!,\n  request: { customerId: \"customer_...\" },\n});\n\nconst mr = new ModelRelay({ tokenProvider });\n```\n\n## Streaming Responses\n\n```ts\nimport { ModelRelay } from \"@modelrelay/sdk\";\n\nconst mr = ModelRelay.fromSecretKey(\"mr_sk_...\");\n\nconst req = mr.responses\n  .new()\n  .model(\"claude-sonnet-4-5\")\n  .user(\"Hello\")\n  .build();\n\nconst stream = await mr.responses.stream(req);\n\nfor await (const event of stream) {\n  if (event.type === \"message_delta\" && event.textDelta) {\n    process.stdout.write(event.textDelta);\n  }\n}\n```\n\n## Customer-Scoped Convenience\n\n```ts\nimport { ModelRelay } from \"@modelrelay/sdk\";\n\nconst mr = ModelRelay.fromSecretKey(\"mr_sk_...\");\nconst customer = mr.forCustomer(\"customer_abc123\");\n\nconst text = await customer.responses.text(\n  \"You are a helpful assistant.\",\n  \"Summarize Q4 results\",\n);\n```\n\nYou can also stream structured JSON for a specific customer:\n\n```ts\nimport { z } from \"zod\";\nimport { ModelRelay, outputFormatFromZod } from \"@modelrelay/sdk\";\n\nconst mr = ModelRelay.fromSecretKey(\"mr_sk_...\");\nconst customer = mr.forCustomer(\"customer_abc123\");\n\nconst schema = z.object({\n  summary: z.string(),\n  highlights: z.array(z.string()),\n});\n\nconst req = customer.responses\n  .new()\n  .outputFormat(outputFormatFromZod(schema))\n  .system(\"You are a helpful assistant.\")\n  .user(\"Summarize Q4 results\")\n  .build();\n\nconst stream = await customer.responses.streamJSON<z.infer<typeof schema>>(req);\nfor await (const event of stream) {\n  if (event.type === \"completion\") {\n    console.log(event.payload);\n  }\n}\n```\n\nYou can also pass a single object to `textForCustomer`:\n\n```ts\nconst text = await mr.responses.textForCustomer({\n  customerId: \"customer_abc123\",\n  system: \"You are a helpful assistant.\",\n  user: \"Summarize Q4 results\",\n});\n```\n\n## Workflows\n\nBuild multi-step AI pipelines with the workflow helpers.\n\n### Sequential Chain\n\n```ts\nimport { chain, llm } from \"@modelrelay/sdk\";\n\nconst spec = chain([\n  llm(\"summarize\", (n) => n.system(\"Summarize.\").user(\"{{task}}\")),\n  llm(\"translate\", (n) => n.system(\"Translate to French.\").user(\"{{summarize}}\")),\n], { name: \"summarize-translate\", model: \"claude-sonnet-4-5\" })\n  .output(\"result\", \"translate\")\n  .build();\n\nconst { run_id } = await mr.runs.create(spec);\n```\n\n### Parallel with Aggregation\n\n```ts\nimport { parallel, llm } from \"@modelrelay/sdk\";\n\nconst spec = parallel([\n  llm(\"agent_a\", (n) => n.user(\"Write 3 ideas for {{task}}.\")),\n  llm(\"agent_b\", (n) => n.user(\"Write 3 objections for {{task}}.\")),\n], { name: \"multi-agent\", model: \"claude-sonnet-4-5\" })\n  .llm(\"aggregate\", (n) => n.system(\"Synthesize.\").user(\"{{join}}\"))\n  .edge(\"join\", \"aggregate\")\n  .output(\"result\", \"aggregate\")\n  .build();\n```\n\n### Precompiled Workflows\n\nFor workflows that run repeatedly, compile once and reuse:\n\n```ts\n// Compile once\nconst { plan_hash } = await mr.workflows.compile(spec);\n\n// Run multiple times with different inputs\nfor (const task of tasks) {\n  const run = await mr.runs.createFromPlan(plan_hash, {\n    input: { task },\n  });\n}\n```\n\n### Plugins (Workflows)\n\nLoad GitHub-hosted plugins (markdown commands + agents), convert to workflows via `/responses`, then run them with `/runs`:\n\n```ts\nimport { ModelRelay, OrchestrationModes } from \"@modelrelay/sdk\";\nimport { createLocalFSTools } from \"@modelrelay/sdk/node\";\n\nconst mr = ModelRelay.fromSecretKey(process.env.MODELRELAY_API_KEY!);\nconst tools = createLocalFSTools({ root: process.cwd() });\n\nconst plugin = await mr.plugins.load(\"github.com/your-org/your-plugin\");\nconst result = await mr.plugins.run(plugin, \"run\", {\n  userTask: \"Summarize the repo and suggest next steps.\",\n  orchestrationMode: OrchestrationModes.Dynamic,\n  toolRegistry: tools,\n});\n\nconsole.log(result.outputs?.result);\n```\n\n## Chat-Like Text Helpers\n\nFor the most common path (**system + user → assistant text**):\n\n```ts\nconst text = await mr.responses.text(\n  \"claude-sonnet-4-5\",\n  \"Answer concisely.\",\n  \"Say hi.\",\n);\nconsole.log(text);\n```\n\nFor customer-attributed requests where the backend selects the model:\n\n```ts\nconst text = await mr.responses.textForCustomer(\n  \"customer-123\",\n  \"Answer concisely.\",\n  \"Say hi.\",\n);\n```\n\nTo stream only message text deltas:\n\n```ts\nconst deltas = await mr.responses.streamTextDeltas(\n  \"claude-sonnet-4-5\",\n  \"Answer concisely.\",\n  \"Say hi.\",\n);\nfor await (const delta of deltas) {\n  process.stdout.write(delta);\n}\n```\n\n## Structured Outputs with Zod\n\nThe simplest way to get typed structured output:\n\n```ts\nimport { ModelRelay } from \"@modelrelay/sdk\";\nimport { z } from \"zod\";\n\nconst mr = ModelRelay.fromSecretKey(\"mr_sk_...\");\n\nconst Person = z.object({\n  name: z.string(),\n  age: z.number(),\n});\n\n// Simple one-call API (recommended)\nconst person = await mr.responses.object<z.infer<typeof Person>>({\n  model: \"claude-sonnet-4-5\",\n  schema: Person,\n  prompt: \"Extract: John Doe is 30 years old\",\n});\n\nconsole.log(person.name); // \"John Doe\"\nconsole.log(person.age);  // 30\n```\n\nFor parallel structured output calls:\n\n```ts\nconst [security, performance] = await Promise.all([\n  mr.responses.object<SecurityReview>({\n    model: \"claude-sonnet-4-5\",\n    schema: SecuritySchema,\n    system: \"You are a security expert.\",\n    prompt: code,\n  }),\n  mr.responses.object<PerformanceReview>({\n    model: \"claude-sonnet-4-5\",\n    schema: PerformanceSchema,\n    system: \"You are a performance expert.\",\n    prompt: code,\n  }),\n]);\n```\n\nFor more control (retries, custom handlers, metadata):\n\n```ts\nconst result = await mr.responses.structured(\n  Person,\n  mr.responses.new().model(\"claude-sonnet-4-5\").user(\"Extract: John Doe is 30\").build(),\n  { maxRetries: 2 },\n);\n\nconsole.log(result.value);    // { name: \"John Doe\", age: 30 }\nconsole.log(result.attempts); // 1\n```\n\n## Streaming Structured Outputs\n\nBuild progressive UIs that render fields as they complete:\n\n```ts\nimport { ModelRelay, parseSecretKey } from \"@modelrelay/sdk\";\nimport { z } from \"zod\";\n\nconst mr = new ModelRelay({ key: parseSecretKey(\"mr_sk_...\") });\n\nconst Article = z.object({\n  title: z.string(),\n  summary: z.string(),\n  body: z.string(),\n});\n\nconst stream = await mr.responses.streamStructured(\n  Article,\n  mr.responses.new().model(\"claude-sonnet-4-5\").user(\"Write an article about TypeScript\").build(),\n);\n\nfor await (const event of stream) {\n  // Render fields as soon as they're complete\n  if (event.completeFields.has(\"title\")) {\n    renderTitle(event.payload.title);  // Safe to display\n  }\n  if (event.completeFields.has(\"summary\")) {\n    renderSummary(event.payload.summary);\n  }\n\n  // Show streaming preview of incomplete fields\n  if (!event.completeFields.has(\"body\")) {\n    renderBodyPreview(event.payload.body + \"▋\");\n  }\n}\n```\n\n## Customer-Attributed Requests\n\nFor metered billing, use `customerId()` — the customer's subscription tier determines the model and `model` can be omitted:\n\n```ts\nconst req = mr.responses\n  .new()\n  .customerId(\"customer-123\")\n  .user(\"Hello\")\n  .build();\n\nconst stream = await mr.responses.stream(req);\n```\n\n## Customer Management (Backend)\n\n```ts\n// Create/update customer\nconst customer = await mr.customers.upsert({\n  external_id: \"your-user-id\",\n  email: \"user@example.com\",\n});\n\n// Create checkout session for subscription billing\nconst session = await mr.customers.subscribe(customer.customer.id, {\n  tier_id: \"tier-uuid\",\n  success_url: \"https://myapp.com/success\",\n  cancel_url: \"https://myapp.com/cancel\",\n});\n\n// Check subscription status\nconst status = await mr.customers.getSubscription(customer.customer.id);\n```\n\n## Error Handling\n\nErrors are typed so callers can branch cleanly:\n\n```ts\nimport {\n  ModelRelay,\n  APIError,\n  TransportError,\n  StreamTimeoutError,\n  ConfigError,\n} from \"@modelrelay/sdk\";\n\ntry {\n  const response = await mr.responses.text(\n    \"claude-sonnet-4-5\",\n    \"You are helpful.\",\n    \"Hello!\"\n  );\n} catch (error) {\n  if (error instanceof APIError) {\n    console.log(\"Status:\", error.status);\n    console.log(\"Code:\", error.code);\n    console.log(\"Message:\", error.message);\n\n    if (error.isRateLimit()) {\n      // Back off and retry\n    } else if (error.isUnauthorized()) {\n      // Re-authenticate\n    }\n  } else if (error instanceof TransportError) {\n    console.log(\"Network error:\", error.message);\n  } else if (error instanceof StreamTimeoutError) {\n    console.log(\"Stream timeout:\", error.kind); // \"ttft\" | \"idle\" | \"total\"\n  }\n}\n```\n\n## Configuration\n\n```ts\nconst mr = new ModelRelay({\n  key: parseSecretKey(\"mr_sk_...\"),\n  environment: \"production\", // or \"staging\", \"sandbox\"\n  timeoutMs: 30_000,\n  retry: { maxAttempts: 3 },\n});\n```\n\n## Documentation\n\nFor detailed guides and API reference, visit [docs.modelrelay.ai](https://docs.modelrelay.ai):\n\n- [First Request](https://docs.modelrelay.ai/getting-started/first-request) — Make your first API call\n- [Streaming](https://docs.modelrelay.ai/guides/streaming) — Real-time response streaming\n- [Structured Output](https://docs.modelrelay.ai/guides/structured-output) — Get typed JSON responses\n- [Tool Use](https://docs.modelrelay.ai/guides/tools) — Let models call functions\n- [Error Handling](https://docs.modelrelay.ai/guides/error-handling) — Handle errors gracefully\n- [Workflows](https://docs.modelrelay.ai/guides/workflows) — Multi-step AI pipelines\n","readmeFilename":"README.md"}