{"_id":"@abto-app/calling","_rev":"14-edad1e90e49052703a2237c764f4b0d7","name":"@abto-app/calling","dist-tags":{"latest":"1.1.0"},"versions":{"0.1.0":{"name":"@abto-app/calling","version":"0.1.0","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@0.1.0","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"5e623fdaaa34647d6af7c9114012e3b805351cc7","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-0.1.0.tgz","fileCount":15,"integrity":"sha512-GNTa7ijLWPRbA4apXsk52ESW1+68GGxbaS/GFkM82Yg60SOPZhp7d8f5gwHnp071URC9t3ylJoqUbquG0UKL6g==","signatures":[{"sig":"MEUCIQCpI+ROUagebTmDghmr9xCCA5jkx2oHvPWBy2W/kX3DcwIgKYAyiT15YJikbsF1m5BIIU+zt3SIHqlgVS1jZPYBMdI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21546},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"turtlehwan","email":"turtlehwan@gmail.com"},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.12.1","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_0.1.0_1785218249697_0.7235434752761658","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@abto-app/calling","version":"0.1.1","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@0.1.1","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"9e2908dabcd9713e4b89eb89f0ebaaa63813be37","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-0.1.1.tgz","fileCount":15,"integrity":"sha512-aB/M39+9uJEjZjOXXZ2Zi67W8a5jhVMSPXb5rt2oSNCKAKCF9e4PpNetQR4m0ZHwmwn6nvtvpjlTa0HC56SaIw==","signatures":[{"sig":"MEYCIQCa365tUTU32p7tQH7znCn0fEADEqwhlP4RfJr3AQ8TyQIhAP+CtPHSZlqCeN7ZZ2vKv0wxKv4NclLzw4gAwtMNqeBJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41035},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b4b13fe1d5b3af771a28866a4537781c7f3530cc","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.18.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.45.0","vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_0.1.1_1785757226023_0.8082781215994888","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@abto-app/calling","version":"0.1.2","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@0.1.2","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"31dfac5d8667572fe233ef147b4a53cee1d720c6","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-0.1.2.tgz","fileCount":15,"integrity":"sha512-77QUQBgrb+paUb5O1ai2htVxKkSYrsjMp0Mjg47PJlrubxalZRZ++buVmzaSKAygEKXWjhW0Ab+qBfSvkc3O7g==","signatures":[{"sig":"MEUCIQCwdGxA8SoYsddPHMReIyY8hHhdGd/gi2sRQUirH0uciQIgdN/vXwRCs7fnCIzgEJ0dLJLK2KuU4zh4z655X8oMSUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41236},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5e9ab37962250168ad7d37cb47228877c6f75ba2","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.18.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.45.0","vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_0.1.2_1785762575566_0.8895298452519171","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@abto-app/calling","version":"0.1.3","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@0.1.3","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"808255a9d34ee9011c26465b4f3c1b610bde523c","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-0.1.3.tgz","fileCount":15,"integrity":"sha512-pyoIwf7NtK2Ex5uK5mQPizhckFWyhro99QK4L7Bg5L9VsKSgzxkVgzQpnE6AHRWOzfBYPTXw2hoFojzU4cUKRg==","signatures":[{"sig":"MEUCIQCj+o8XvrineUmTE7lwTUAYEeT0sAom4/miCOBl33tYXwIgSGSq6Nd1aoLr/LpLzdmTiwcYnF3oHNKpfvZkkeRzXMc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41261},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2c1334ae43c4ce11d4873fbda0e51eb2672b6293","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.18.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.45.0","vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_0.1.3_1785916909560_0.821517193193247","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@abto-app/calling","version":"0.1.4","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@0.1.4","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"86c21025cebadd3540fdfc510972a0b6f4e20bc6","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-0.1.4.tgz","fileCount":15,"integrity":"sha512-LYKbAy2IStBAcwZNQ9O7PASEyErdVnvFfBmGZ80o2FUHE3qZF2Dy0wiHCUj0cmwINd6fabA5o/VTjYxImeru/g==","signatures":[{"sig":"MEQCIA+mZxF5x8WWlM5bWaQG46hpEk8EtUvAUA7B0XT2G9FJAiAQ+WAyX+A2zGqN3TCN8lmTiJLmDjmN1D5nplYb9z4omA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41179},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"492ad7bc2af0181b0039ddce3a27fdc32e0c9288","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.18.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.45.0","vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_0.1.4_1787820692280_0.8332720940584348","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@abto-app/calling","version":"0.2.0","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@0.2.0","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"13403bd2c1d15fc0604e409c9c5b48980175dda6","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-0.2.0.tgz","fileCount":15,"integrity":"sha512-TzrETxPmzVVd46UH4j4dOIxCX466PW9p21gFS1PUfgdy4EPcVgkBYeSC7QipdUs6F8ZPCgYjtFA+8xJTKVVqnA==","signatures":[{"sig":"MEYCIQCD6EUHX7ojA/klwg98eW8hq3F274eAItgScB/CgDkR4AIhAJIbCVslILynHF+GHqQcy/Zyc7xfLr2rhRw40ryim7q2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39538},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"cafb63d0a2588c5157d7bb60e7bd6c0135d6615b","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.18.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.45.0","vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_0.2.0_1788157819758_0.00715651966098374","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@abto-app/calling","version":"0.3.0","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@0.3.0","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"ca074b451a0de0eaf4e44e826898127822175751","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-0.3.0.tgz","fileCount":15,"integrity":"sha512-mVn2o6C2FWawDTmjLkI3s3k3Kso5q4DlxijyKrnbxgHpmY59Jaz+r2aglA9LJL2JN1EFxepkY3Gh2C1eo4sXQA==","signatures":[{"sig":"MEQCIFdBnhY1ikLfADY9d2h1jwFfk41TJAtHE/X3kvW4s572AiALXZ/REUiIKkDYo4GVYxTH9RYxQsVC//3eWiuvZ5oPLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39472},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ab44dd068ed26b24cb631e4a6680a6ce58376435","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.18.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.45.0","vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_0.3.0_1788256380324_0.13127540560942674","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@abto-app/calling","version":"0.3.1","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@0.3.1","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"04b702fa314898281c4fced9d61a1171555810e6","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-0.3.1.tgz","fileCount":15,"integrity":"sha512-SsX96YBqczN/ocEU/eHShqBI9q36DkNyUHKrsVwqU3R9NwrV0hn3BzGSKFJezZX0TtR8siYrdzU1w4CCIS9CuA==","signatures":[{"sig":"MEUCICy52eLKUD48ds42b0zBMvXWBuXpPXyuie9KpRNczY9GAiEA2paayPcw+/9fLAWki4s/6bznE84T/PNPU4HZPlJMo9Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39484},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bd4115d40c5617a08f32460efa27e9cb7502714f","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.18.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.45.0","vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_0.3.1_1788278851328_0.754953954571951","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@abto-app/calling","version":"0.4.0","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@0.4.0","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"747c475bdea96694211a3d5400c9c1d2faaf114f","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-0.4.0.tgz","fileCount":17,"integrity":"sha512-vSf3pEjF8EW5TsP98ekHflHe7s0iKoliHlU10rgx/nvwL32/g/z/AvMs3q3bfJBbhyaPsRjfFbP0RRDdAxQ29Q==","signatures":[{"sig":"MEQCIHN7K1Oeev0h4MNr+wmkoq5FVBJyTUstt/xqNVu9C5hXAiBq3hlafiw1x2zvjFFvI9p5bNR35IvP9CLI/mfP7FVdjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43494},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a098886e4a25c604809d585a556c3ff1f0f1450b","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.18.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.45.0","vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_0.4.0_1788537721839_0.8488759608837999","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@abto-app/calling","version":"0.4.1","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@0.4.1","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"5cbed7c02204b546b27d7f0ddb579495ee96edec","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-0.4.1.tgz","fileCount":17,"integrity":"sha512-MQ+XiAZwUXKmlQQvqMKNSRGAlMhHZMavFH727fnzgM+Nh0LDDLb7afqL11bRrUd03nUGZqBqm2Qb1LP5ppAaUA==","signatures":[{"sig":"MEYCIQDuML8SO9DcoC3J+ACQBOgyu9Jh/F2rO0J0rjEDfa+LrwIhAL0lnd0G4juaXoYhMSulNqWwqMDg+n4ISb13HW2G8kaJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45248},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"71e306ee150030dac149bd1131dd8512026f4929","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.18.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.45.0","vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_0.4.1_1788747482014_0.13960249368495492","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@abto-app/calling","version":"0.5.0","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@0.5.0","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"17fe6dea9591b7a71644f0839e858e2bdb84abc6","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-0.5.0.tgz","fileCount":17,"integrity":"sha512-Y+vsOxUQAFyhGXjwmQrVMdLlYKIOjPXTPXd/jX5wGTarirM4mdyT1x2rrr/avmDTZrCrXe3rBQz22VFB6FHuiQ==","signatures":[{"sig":"MEUCIQCdhnm1hH1ceI3qo60hHvHbV7BxMlqQgcQNdzIateeX3AIgCu7m2penIWokUxx/vympBZw1wtkZmAJYzEsKO/K2d30=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46619},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"c20770066ac581b16445c0d98a2168896d2ff54c","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.18.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.45.0","vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_0.5.0_1788756786661_0.23655082937500405","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@abto-app/calling","version":"0.5.1","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@0.5.1","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"a7d267b6a14a0d4331fbfb549374f8c6c8071fce","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-0.5.1.tgz","fileCount":19,"integrity":"sha512-omNcx4pG7wRjEzdxxGjDIffKr3LxDliKOET4uwJt2EbW93iUirSR/4eSdHWX9Et9ARFu5o8mnuY6RLgQfiHrbg==","signatures":[{"sig":"MEUCIQDlp2pY3Sn/uCNij7unJ3eOkKkt8T3xgLRPuXlLZFlnZgIgGo9W7SuRNxIWdFq79Uczyti3O4PNwD06rpZHzwv1ujQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49877},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"00acc355c8d707b57170c23b3ec29a5c12b584a7","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.18.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.45.0","vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_0.5.1_1788764031475_0.9644200134743341","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@abto-app/calling","version":"1.0.0","keywords":["abto","gateway","llm","node","observability","server"],"license":"MIT","_id":"@abto-app/calling@1.0.0","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"dist":{"shasum":"70ed0cddda21910fd2014f0e454833111cb03250","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-1.0.0.tgz","fileCount":19,"integrity":"sha512-cZ8dD8Hn930cM3Yu9sO0Mtv9TerHitLN2kgWWY0HB8O0GzP9gJ4aie9BTc4++ktXeUp56lrqXobBZgUVbm5KOw==","signatures":[{"sig":"MEQCIH0JvRM8qMDcadLPlaWQ7uTPZxRq5r5ctkS3y9FIhU0pAiBiOocdn5Xjgj5h3XLZqgK+6rKXgTAo3uxuRH5AyNS/4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49877},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0d96184325954b44807cf4b72c8e031bcdb9a5b9","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"repository":{"url":"git+https://github.com/greedy-co/abto-sdk.git","type":"git","directory":"packages/server/javascript"},"_npmVersion":"11.18.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.45.0","vitest":"^4.1.10","typescript":"^5.4.0","@types/node":"^20.14.0"},"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/calling_1.0.0_1789040533127_0.03192009559557607","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@abto-app/calling","version":"1.1.0","description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","type":"module","license":"MIT","sideEffects":false,"homepage":"https://docs.abto.app/sdk/javascript/server/","bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"repository":{"type":"git","url":"git+https://github.com/greedy-co/abto-sdk.git","directory":"packages/server/javascript"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"clean":"rm -rf dist","build":"npm run clean && tsc","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","prepack":"npm run build","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"engines":{"node":">=18"},"keywords":["abto","gateway","llm","node","observability","server"],"peerDependencies":{"openai":">=4"},"peerDependenciesMeta":{"openai":{"optional":true}},"devDependencies":{"@types/node":"^20.14.0","openai":"^6.45.0","typescript":"^5.4.0","vitest":"^4.1.10"},"gitHead":"837294dbefabf5abd974bfc93a1897f084916d4d","_id":"@abto-app/calling@1.1.0","_nodeVersion":"24.20.0","_npmVersion":"11.18.0","dist":{"integrity":"sha512-Av/DISrn6uBjRSWuUf48qEsxGItbfEMKBqK1RqW2bFiUZkmYXU3DGoqdmV+F99dbck/AalLodXTUNGEhcZNqsA==","shasum":"7024262ab4acdd7ad57d3e8009212bdc6b17c727","tarball":"https://registry.npmjs.org/@abto-app/calling/-/calling-1.1.0.tgz","fileCount":19,"unpackedSize":49877,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abto-app%2fcalling@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAoYDEE92NZOrkBNO/XuE79owKHlBv1sX1uLqc/Q0d5RAiEAkK/gDKu4Q8Fuuz8cTSsIrSALehRXQwi1Omz9ereKgoc="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd2e3fa7-1dd8-40d9-b447-0d21956c760a"}},"directories":{},"maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/calling_1.1.0_1789064563665_0.01072910927099402"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-28T05:57:29.576Z","modified":"2026-09-10T18:22:44.143Z","0.1.0":"2026-07-28T05:57:29.863Z","0.1.1":"2026-08-03T11:40:26.164Z","0.1.2":"2026-08-03T13:09:35.726Z","0.1.3":"2026-08-05T08:01:49.709Z","0.1.4":"2026-08-27T08:51:32.420Z","0.2.0":"2026-08-31T06:30:19.909Z","0.3.0":"2026-09-01T09:53:00.453Z","0.3.1":"2026-09-01T16:07:31.462Z","0.4.0":"2026-09-04T16:02:01.983Z","0.4.1":"2026-09-07T02:18:02.144Z","0.5.0":"2026-09-07T04:53:06.789Z","0.5.1":"2026-09-07T06:53:51.585Z","1.0.0":"2026-09-10T11:42:13.250Z","1.1.0":"2026-09-10T18:22:43.798Z"},"bugs":{"url":"https://github.com/greedy-co/abto-sdk/issues"},"license":"MIT","homepage":"https://docs.abto.app/sdk/javascript/server/","keywords":["abto","gateway","llm","node","observability","server"],"repository":{"type":"git","url":"git+https://github.com/greedy-co/abto-sdk.git","directory":"packages/server/javascript"},"description":"ABTO JavaScript Server SDK — Gateway routing, provider credentials, and request-scoped context propagation.","maintainers":[{"name":"turtlehwan","email":"turtlehwan@gmail.com"},{"name":"wejust.greedy","email":"wejust.greedy@gmail.com"}],"readme":"# @abto-app/calling\n\nThe ABTO JavaScript Server SDK routes provider requests through the ABTO Gateway and carries request-scoped identity context and provider credentials. It is designed for Node.js servers.\n\nIt does not collect browser events, access the DOM, or use a public project key. Install `@abto-app/event` separately when the browser needs explicit customer-selected events.\n\n## Install\n\n```bash\npnpm add @abto-app/calling openai\n```\n\n## Quick start\n\n```ts\nimport { initAbto } from '@abto-app/calling';\nimport type OpenAI from 'openai';\n\nconst abto = initAbto({\n  abtoApiKey: process.env.ABTO_API_KEY,\n  providerKeys: {\n    openai: process.env.OPENAI_API_KEY,\n  },\n  gatewayBaseURL: 'https://gateway.abto.app/v1',\n  deviceId: process.env.ABTO_DEVICE_ID,\n});\n\nconst openai = await abto.openai<OpenAI>();\n```\n\n## Request context\n\n```ts\nimport {\n  getAbtoHeaders,\n  runWithAbtoContext,\n} from '@abto-app/calling';\n\nawait runWithAbtoContext(\n  {\n    deviceId: 'device_123',\n    featureId: 'resume.make',\n  },\n  async () => {\n    const headers = getAbtoHeaders();\n    // Provider requests created here carry the same ABTO identifiers.\n  },\n);\n```\n\nThe Gateway is the source of truth for provider requests and responses, tokens, cost, latency, `request_id`, and variant assignment. The Server SDK preserves the provider request body while routing it to the Gateway with trusted ABTO headers.\n`featureId` is the customer- and SDK-facing Feature identifier. The SDK sends it to the Gateway as `x-abto-feature-id`.\n\n## OpenAI direct fallback during Gateway outages\n\nThis emergency path returns the request to the endpoint the application called before ABTO, so you name that destination in `fallback.baseURL` and there is no default. It does not reproduce the Gateway's provider or model assignment: the original Chat Completions body and `model` go to `<baseURL>/chat/completions`, so that endpoint must support the model and accept `Authorization: Bearer`. Enabling fallback without `baseURL` throws; configuring nothing leaves fallback off.\n\n```ts\nconst abto = initAbto({\n  abtoApiKey: process.env.ABTO_API_KEY,\n  providerKeys: {\n    openai: process.env.OPENAI_API_KEY,\n    anthropic: process.env.ANTHROPIC_API_KEY,\n    gemini: process.env.GEMINI_API_KEY,\n  },\n  fallback: {\n    baseURL: 'https://api.openai.com/v1', // the address this code used before ABTO\n    timeoutMs: 30_000, // Gateway response-header deadline\n    onTimeout: false,  // Do not replay a timed-out request by default\n  },\n});\n```\n\nDefault behavior:\n\n- DNS, connection-establishment, or TLS failure: send the current request directly because the provider was not reached.\n- Edge `502`, `503`, or `504` without `x-abto-request-id`: treat it as a pre-Gateway failure and send the current request directly.\n- Admission `503` with `x-abto-request-id` but no `x-abto-error-source`: treat it as a pre-provider failure and send the current request directly.\n- Gateway timeout, ambiguous disconnect, or interrupted response body: return the original error and keep the direct circuit closed.\n- `fallback.onTimeout: true`: replay the timed-out request directly, explicitly accepting duplicate execution and billing risk.\n- `x-abto-error-source: provider|transport|internal`, deterministic `4xx` and `429`, or caller abort: do not fall back for the current request.\n\nA safely classified failure, or an explicitly enabled timeout replay, opens the circuit for 30 seconds. New requests bypass the Gateway during that interval; afterward, one request probes Gateway recovery.\n\nThe direct path sends only the OpenAI key and OpenAI-safe headers such as `accept`, `content-type`, `idempotency-key`, `openai-*`, and `x-stainless-*`. It removes ABTO headers, the Calling Key, cookies, proxy credentials, and custom Gateway headers. Direct calls bypass Gateway policy, ABTO telemetry, and `request_id`.\n\nThe ABTO transport performs at most one Gateway decision and one direct send per official OpenAI SDK attempt. It returns direct responses and errors to the official SDK, which remains the only retry authority.\n\nDisable direct fallback when required:\n\n```ts\ninitAbto({\n  // ...\n  fallback: false,\n});\n```\n\n## OpenAI client options\n\n`clientOptions` keeps the official OpenAI SDK contract. ABTO preserves options such as `maxRetries`, `timeout`, `organization`, `project`, `defaultHeaders`, and `fetchOptions`, with these routing and credential rules:\n\n- `baseURL` is always the configured ABTO Gateway URL.\n- `apiKey` is always the ABTO Calling Key.\n- `fetch` is wrapped so ABTO can route safely. A caller-provided `fetch` remains the underlying transport instead of being discarded.\n\n`fallback.baseURL` is required to enable direct fallback and has no default: it is the endpoint this application used before ABTO. **Leave it unset and there is no fallback — a Gateway outage makes the request fail outright.** Set it if the existing path should keep serving traffic after adoption. ABTO does not guess the destination, because the provider key leaves on that path; enabling fallback without it throws.\n\n`fallback.timeoutMs` is the end-to-end limit from local dispatcher wait through Gateway response headers. Direct requests retain the OpenAI client's timeout.\n\nThere is no fallback retry count. `clientOptions.maxRetries` alone controls official OpenAI SDK retries and remains unset when the customer does not configure it.\n\n```ts\nconst openai = await abto.openai({\n  clientOptions: { maxRetries: 2 },\n});\n```\n\n`maxRetries` keeps the official OpenAI meaning: retries after the initial request. `0` means one Gateway round trip and `1` means two. OpenAI and model-provider error policy belongs to the customer application and the official OpenAI SDK.\n\nNote that `maxRetries` counts round trips, not provider invocations. Inside a single round trip the Gateway may retry along the same path — always for pre-send network failures (up to 2), and for transient provider failures (`429`, `500`, `502`, `503`, `504`, `529`) when the node retry policy opts in (up to 2). The `x-abto-attempt` response header reports which attempt produced the response. See [Retries happen at two layers](https://docs.abto.app/en/sdk/javascript/server/#retries-happen-at-two-layers).\n\nAnthropic and Gemini keys remain Gateway routing candidates. This SDK does not provide native direct fallback for those providers.\n\nSee the [full Server JavaScript guide](https://docs.abto.app/en/sdk/javascript/server/).\n\n## Public API\n\n- `initAbto`\n- `createAbtoOpenAI`\n- `OpenAIDirectFallbackConfig`\n- `OpenAIDirectFallbackOptions`\n- `runWithAbtoContext`\n- `getAbtoContext`\n- `getAbtoHeaders`\n- `createTraceId`\n- `createTraceparent`\n\n## Development\n\n```bash\npnpm test\npnpm typecheck\npnpm build\n```\n","readmeFilename":"README.md"}