{"_id":"mohdel","_rev":"74-134a2c93bd51368ba9a0b5714348a801","name":"mohdel","dist-tags":{"latest":"3.7.0"},"versions":{"0.90.0":{"name":"mohdel","version":"0.90.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.90.0","maintainers":[{"name":"clbrge","email":"clb@rouge.network"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"7c73abc59a51bf5cdf384a82900a659b98f70a9d","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.90.0.tgz","fileCount":98,"integrity":"sha512-fBKBrsAoZW1TN0ZtHd6i4maVLY8JakuHom9xbDSqhDCqJJps+cpKrHIEn841RBhBWwRffwxvDY8YKClEgKzqpg==","signatures":[{"sig":"MEQCIFKPcAo1FoMvmohf5O4tPxmWL60divq2CRcvrmQpFLRIAiBw6di1y0cMWTERSIcQfr9wGWgQDnGIbyDySYbM5xe8JA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":426134},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"acd5b7d697a7d1b4c9a48065773142493e599d4b","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"vitest run test/unit","release":"release-it","test:live":"vitest run test/live","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@rouge.network"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.12.1","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"25.9.0","dependencies":{"openai":"^6.34.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.50.1","@anthropic-ai/sdk":"^0.90.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.0","lint-staged":"^16.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.2.0","@opentelemetry/sdk-node":"^0.215.0","mohdel-thin-gate-linux-x64-gnu":"0.90.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.215.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.90.0_1776837242148_0.22271220623132848","host":"s3://npm-registry-packages-npm-production"}},"0.91.0":{"name":"mohdel","version":"0.91.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.91.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"94ce3d9a3e30b555f3afd00bac02dc5697d4fe0b","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.91.0.tgz","fileCount":98,"integrity":"sha512-TPYKfp8NPoQPV+fEq/jmRBetuLamD/Kp/roPuBNoj5iHBsGnH/NKLL+yYhnTyyYdPNxZ94xGWKoazXu7pBj8Dg==","signatures":[{"sig":"MEYCIQCE+ECi1W8BlVj28yWV00Gsxj62jfel2bdXhj52rvRqxQIhAPc6UmlVm+cxi0BXECHQ4oZuhgRtt2ifLN1HqK/z8nDB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":426490},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"ab546c21473ad4763a64d74cc6729dde731fc334","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.12.1","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"25.9.0","dependencies":{"openai":"^6.34.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.50.1","@anthropic-ai/sdk":"^0.90.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.0","lint-staged":"^16.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.2.0","@opentelemetry/sdk-node":"^0.215.0","mohdel-thin-gate-linux-x64-gnu":"0.91.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.215.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.91.0_1776933636408_0.9337491802760391","host":"s3://npm-registry-packages-npm-production"}},"0.92.0":{"name":"mohdel","version":"0.92.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.92.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"ea46a6e333c40af254fe7344e45e91fce59f47f1","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.92.0.tgz","fileCount":105,"integrity":"sha512-z97Wz5qMBeXReF6FR5P4bgQfYYnYit68GFvmajyWatxLYZ2bg6t+SLesDLLnI2hJsYNpWXRBumBnO4XrbfMMVw==","signatures":[{"sig":"MEUCIQDfxpu2vEjvdJ9G/8Xc5RsUYcWsz1ZOStdcx7nYeFi/aAIgRzJdCvSMj0MQxbg8fuGdhlM1MYNbf2fEbCgqIsdbczY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.92.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":439557},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"049afe51dfa330bf65d007a672ac34cb5c1a5e9a","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.34.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.50.1","@anthropic-ai/sdk":"^0.90.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.0","lint-staged":"^16.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.2.0","@opentelemetry/sdk-node":"^0.215.0","mohdel-thin-gate-linux-x64-gnu":"0.92.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.215.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.92.0_1776974472111_0.4922701053536638","host":"s3://npm-registry-packages-npm-production"}},"0.93.0":{"name":"mohdel","version":"0.93.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.93.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"687f2dba06a462667ebd3b17f465407cecceccbe","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.93.0.tgz","fileCount":105,"integrity":"sha512-SqIIX/Hwyh8LHzIP3gN9y3YxsYuXdsmK4sjx8oVEuWnw9LezCDI1zKAkxGIj7rCpuYX66qrZ70Kn9fvmOBpzMg==","signatures":[{"sig":"MEUCIQDT/L1TjB/cdcz4nB1th8UulaGwHP4HxOQogMO17iDvjwIgWwxhRQMvusedmo5KSNTJ4HeKHKknF4x9Mmm6Is2va34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.93.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":439914},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"80553a3416e5977826552fd5f7e4b805b704792c","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.34.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.50.1","@anthropic-ai/sdk":"^0.91.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.0","lint-staged":"^16.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.2.0","@opentelemetry/sdk-node":"^0.215.0","mohdel-thin-gate-linux-x64-gnu":"0.93.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.215.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.93.0_1777008665078_0.30416488451691315","host":"s3://npm-registry-packages-npm-production"}},"0.94.0":{"name":"mohdel","version":"0.94.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.94.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"6c14d8e774958c54d15f5266d99547af2b1f1d0b","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.94.0.tgz","fileCount":106,"integrity":"sha512-KkNOOy61Bl1FoDNSmWS11BVfXsAvB4RXup7WTWLEa651f8df2EPtkjenToeHbCZFMsf/VrWcSBAYjoSYkHtWOQ==","signatures":[{"sig":"MEUCIQC2XV6/c4BdMvm+a6QbaT0Scm0YokrBRRChNi2d3SPNEQIgT4r+H7jGhS/y0Y1hYh9qIb9fxMEpXZfBwo/rx+I1vyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.94.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":443954},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"aebc848266f1961ff9c5dff2050ab72c64433eaf","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.34.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.50.1","@anthropic-ai/sdk":"^0.91.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.0","lint-staged":"^16.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.2.0","@opentelemetry/sdk-node":"^0.215.0","mohdel-thin-gate-linux-x64-gnu":"0.94.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.215.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.94.0_1777027180206_0.7650460915694393","host":"s3://npm-registry-packages-npm-production"}},"0.95.0":{"name":"mohdel","version":"0.95.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.95.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"fd46bd7adb9b16cfa72fdcd9c1d8437f2f9df09d","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.95.0.tgz","fileCount":106,"integrity":"sha512-9grSYqzEPR7fUTMATVj/aOyz3/igBPqOkdduuIJ2RB44Asg9it/hRqR9SWUgwRiyXl0Zjp6i+aw6uKnwb6WGfg==","signatures":[{"sig":"MEYCIQCKG8kE7cqiIu5P9ABoYIHIKDUbCEJm3Eptv02eD/zVbQIhAOzWbQ6ltGTI03nj986VGOHP5CVP6s4cKDgXpgLyDYib","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.95.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":445731},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"8226373677cdf3cc6df0884004f27e432570ea0e","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.34.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.50.1","@anthropic-ai/sdk":"^0.91.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^16.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.2.0","@opentelemetry/sdk-node":"^0.215.0","mohdel-thin-gate-linux-x64-gnu":"0.95.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.215.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.95.0_1777035409158_0.03079590508808172","host":"s3://npm-registry-packages-npm-production"}},"0.96.0":{"name":"mohdel","version":"0.96.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.96.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"56733e228dda6e362e81f55a1f9a3be9d5553409","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.96.0.tgz","fileCount":106,"integrity":"sha512-Pg2+3D5MbD/w/pVlX1WGCMKflf1lqpK3okFaM8Osf/zZvPHrfxHPE8rjLoLabDbPQDvXvDbRNXs/Fty66ibUQw==","signatures":[{"sig":"MEUCIDpydNworpfmT73h6M/yx2WxysZxipzuod+iMzxV/qoeAiEAvTMydbbYU3Ic3oCu6zlCRCFi6cD8gm57lQ5Hek6l0n8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.96.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":445731},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"680636d4af43cf429cf34c73ac145ac50c6fa6fc","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.34.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.50.1","@anthropic-ai/sdk":"^0.91.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^16.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.2.0","@opentelemetry/sdk-node":"^0.215.0","mohdel-thin-gate-linux-x64-gnu":"0.96.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.215.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.96.0_1777037125235_0.8243399608868047","host":"s3://npm-registry-packages-npm-production"}},"0.97.0":{"name":"mohdel","version":"0.97.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.97.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"53fc9ef7aa46a4a15bf9c4ce7b71afb22744418d","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.97.0.tgz","fileCount":106,"integrity":"sha512-gyLwt6KrAZKlz3N7l57VRIP8IKWuOjGqJyl0m+5+nW1ZFZBUOnwNQdMZ7VHC4UI2O5nPAPaOFawi4S3dLRSbaQ==","signatures":[{"sig":"MEQCIAP9FwJgTzAOEsqZSjhcIpgV1ROvmRv0/r4Y7C4T//OoAiBs43BuOEFrzkKDLo4grqEuEAM0ADBHQuHj6pGCh+AjTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.97.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":445589},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"7d5ed7bb78ddc0563d34f2ffa7a3387138ecdeff","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.34.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.50.1","@anthropic-ai/sdk":"^0.91.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^16.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.2.0","@opentelemetry/sdk-node":"^0.215.0","mohdel-thin-gate-linux-x64-gnu":"0.97.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.215.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.97.0_1777153941603_0.41604969203052367","host":"s3://npm-registry-packages-npm-production"}},"0.97.1":{"name":"mohdel","version":"0.97.1","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.97.1","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"976c6ff060b6669062302802bdf4b3a54401a6e8","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.97.1.tgz","fileCount":106,"integrity":"sha512-5DF5i/WJLej50czZ9GHIUjipIxGrHH82u6mfKNQH8IAJ39xoJYJj2jrlLorJZsk60zod10PaEvugl03crVzkMg==","signatures":[{"sig":"MEQCIFFPd/odztN7Olrcq8OL2hZ6PT7wq0e9SCaW/gFBuKVxAiALJnBYTwurTJQaWL4Q0wrOghS56XF62cgU9PcSeD2KxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.97.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":445589},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"c6c5a32fbd82b9ec7d4a249dc5bf7f76ea3ff8a6","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.34.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.50.1","@anthropic-ai/sdk":"^0.91.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^16.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.2.0","@opentelemetry/sdk-node":"^0.215.0","mohdel-thin-gate-linux-x64-gnu":"0.97.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.215.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.97.1_1777154299805_0.353736142735257","host":"s3://npm-registry-packages-npm-production"}},"0.98.0":{"name":"mohdel","version":"0.98.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.98.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"e6795af8a889ba24dc85e7a139fd044dc7c27c09","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.98.0.tgz","fileCount":106,"integrity":"sha512-RjgUFZIGQMjeXYi9UIC+CLX9lL8KjtqJ/5BOMnRAbVM1eV9rSR8k9FueFBToQqjDw0TzU5ZGQrB2mgxi5Vl1aw==","signatures":[{"sig":"MEQCIGwCryYQoyu7JSOIKRHNrOKick0kk1yKKXgtmO5EAGROAiBOYfCJd8v5kd/aJBORPkzmSmKo81QKHPMtDutjaBxYtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.98.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":447384},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"5d9b315f0b532e3ba5a14caa8422f34402291e51","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.35.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.50.1","@anthropic-ai/sdk":"^0.91.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^16.4.0","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.2.0","@opentelemetry/sdk-node":"^0.215.0","mohdel-thin-gate-linux-x64-gnu":"0.98.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.215.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.98.0_1777393860648_0.18229473478604774","host":"s3://npm-registry-packages-npm-production"}},"0.98.1":{"name":"mohdel","version":"0.98.1","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.98.1","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"2135e523104858b938b1fb5ab386ac6f7d9103e6","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.98.1.tgz","fileCount":106,"integrity":"sha512-sITUC+MERrec6MQGnt+LLirW+IQPwN4yPh3tQX3u9dbW1ipq6EGi0jkCIuc2l8RN7DNOSUWl3go8blwrOHSqOw==","signatures":[{"sig":"MEQCIHbVLun5teE9FqfoG6cIc/yM+ZifIfm+kTV5Y30wASKOAiAIGOlqgz1+IAfAEtPj8S8+TzKVvqzkC2Exr0gEh2fIpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.98.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":448276},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"f1f6499c5041e4eff0e562bb4662aa3223f9a55c","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.35.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.50.1","@anthropic-ai/sdk":"^0.91.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^16.4.0","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.2.0","@opentelemetry/sdk-node":"^0.215.0","mohdel-thin-gate-linux-x64-gnu":"0.98.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.215.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.98.1_1777403670583_0.18161173979512424","host":"s3://npm-registry-packages-npm-production"}},"0.98.2":{"name":"mohdel","version":"0.98.2","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.98.2","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"8464d89056632329bd335a5517ffc5922922bd55","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.98.2.tgz","fileCount":106,"integrity":"sha512-6uO8hQRVCc15Mu5l3j0aaxLMPQLUf7C8Ia4H1OsIVzDR5+PokIhrwA02WOZ5yQfNn0q0P0gDASruMSflMZfVDA==","signatures":[{"sig":"MEUCIQCbsLclBCX4g/Ahlr/Nn5OMcPH/0mE5TW2ATJOy8eckdAIgExhrMezxe6Yv3KwrNoFOgDOzNvLSIIvjXb4o+DH3SRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.98.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":448276},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"3eb6d31443b6560bfaa06e10f26149ad57ea26ea","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.35.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.51.0","@anthropic-ai/sdk":"^0.91.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^16.4.0","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.3.0","@opentelemetry/sdk-node":"^0.216.0","mohdel-thin-gate-linux-x64-gnu":"0.98.2","@opentelemetry/exporter-trace-otlp-grpc":"^0.216.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.98.2_1777554920221_0.8342201158321205","host":"s3://npm-registry-packages-npm-production"}},"0.99.0":{"name":"mohdel","version":"0.99.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.99.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"c27a6ddd5cf156ed6421e131adde4ea99cb36e38","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.99.0.tgz","fileCount":106,"integrity":"sha512-wrecqBLGt6qg8xY7lUgC8lPJNLiU7+txxA3g6hgLUXKviL2ttIJXAFFbsO6vbLZE7btZU7ix7XTaD48psK0Jvg==","signatures":[{"sig":"MEUCIDUmgC6n7gWg1l7yHgzyY9/oRrYksyLd7shB1x1kcMneAiEA1iBdxBlw8NLKh4ErjrUTyKw7EQdzC5kMLr/m0Y2gpAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.99.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":450017},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"0bc40fa9ad1a288a0e3fc148ec4fc0cba737fd88","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.35.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.51.0","@anthropic-ai/sdk":"^0.91.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^16.4.0","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.3.0","@opentelemetry/sdk-node":"^0.216.0","mohdel-thin-gate-linux-x64-gnu":"0.99.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.216.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.99.0_1777566139664_0.4836038089716641","host":"s3://npm-registry-packages-npm-production"}},"0.100.0":{"name":"mohdel","version":"0.100.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.100.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"6ec81ad0441c0dc46df30dba15ce608f2911cf8e","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.100.0.tgz","fileCount":106,"integrity":"sha512-TdIo8TPocQ1X1McROI3P6LbhrYYKZyv2rUcv+e9yoiNlGzewixb75PUHJZAxqCdPL0uqydbXgJWOexjjluaDfA==","signatures":[{"sig":"MEUCIQD1Kahtpm76WFagepcaCv78WYb4VVgt2Gab3YjZcDZh+AIgYtvMa1AXEMX+6U1MyYDUtOqnH3AZJOspfwEkLaE49F0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.100.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":450977},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"bfb70d78df1ee316faa393544dbc7af58807d012","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.35.0","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.51.0","@anthropic-ai/sdk":"^0.91.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^16.4.0","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.3.0","@opentelemetry/sdk-node":"^0.216.0","mohdel-thin-gate-linux-x64-gnu":"0.100.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.216.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.100.0_1777657451499_0.9851550325458334","host":"s3://npm-registry-packages-npm-production"}},"0.101.0":{"name":"mohdel","version":"0.101.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.101.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"bc77799e90009f28a58691c8cb23828f4aee88a8","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.101.0.tgz","fileCount":107,"integrity":"sha512-Tl48XjkemZeVUXUcmkgQxVV/d8t0SSLjOuqajZVRbVVk95rAC1rgLCj136bW9U2fqE8ZBQZjvj1PzniQqXlIbQ==","signatures":[{"sig":"MEYCIQCLq5IVXvjaH+9xInjtGVwFE2t3lK3kDHDMvMMjrBcg+wIhAOu0rq4d+RWAc79DrspUExJz7gPpWu89RWIOkIiCc34k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.101.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":453079},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"acd5182d9295dcf4aebace7ccc4848c14ca24113","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.35.0","undici":"^7.24.5","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^1.51.0","@anthropic-ai/sdk":"^0.91.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^16.4.0","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.3.0","@opentelemetry/sdk-node":"^0.216.0","mohdel-thin-gate-linux-x64-gnu":"0.101.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.216.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.101.0_1777712299096_0.8314474116779822","host":"s3://npm-registry-packages-npm-production"}},"0.102.0":{"name":"mohdel","version":"0.102.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.102.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"728f0ad518f721aca1dbfc298a6e32f9efca9761","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.102.0.tgz","fileCount":107,"integrity":"sha512-iPmJRIB7BnwWycKRuVj/aSuhtAwuK0nJKYG9irH/gTdKak3P49TNxGIDctz3TR3/UVWAyoI6ABKGMRcqNZrz7A==","signatures":[{"sig":"MEUCIE8hLNuxAnh9w8WVcSpdLnvKazrKuaNxmdFALspImRkfAiEA1INbiBKcFy6mTRlHNWTZqshP0v2J8hML9BJPOFoBr4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.102.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":453302},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"4cc1c89081a7d705434ff8317ee023d1fcc91193","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.37.0","undici":"^7.24.5","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^2.0.0","@anthropic-ai/sdk":"^0.95.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.3","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.3.0","@opentelemetry/sdk-node":"^0.217.0","mohdel-thin-gate-linux-x64-gnu":"0.102.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.217.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.102.0_1778252064040_0.5381352845827889","host":"s3://npm-registry-packages-npm-production"}},"0.103.0":{"name":"mohdel","version":"0.103.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.103.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"25b767569804623f2e4de2fbe7eabeb6126b9fbd","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.103.0.tgz","fileCount":107,"integrity":"sha512-47UvOXAgtHbPearEjBoCmCvji7UCAdsE65o9TC8BpEC9CFIxjmYA6twToO4UnPpeFympDIQuWu9xpcZBJK9ysA==","signatures":[{"sig":"MEUCIQDE9m+MrZa2sSNKn46RcRAJhrzp3L0+P4SYrtxGRxmnuAIgIyIeZ9FIvE11TwQQNh6SUPKVdwSX1K+JHsmGLUN4vG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.103.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":453920},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"ebe9a65cba5e59f59f289e40f0fd448c1277b75f","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.37.0","undici":"^7.24.5","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^2.0.0","@anthropic-ai/sdk":"^0.95.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.3","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.3.0","@opentelemetry/sdk-node":"^0.217.0","mohdel-thin-gate-linux-x64-gnu":"0.103.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.217.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.103.0_1778332528794_0.6321171742466123","host":"s3://npm-registry-packages-npm-production"}},"0.104.0":{"name":"mohdel","version":"0.104.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.104.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"6cab65dd2d98c64a0b7e160b2dd0b8729988aab8","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.104.0.tgz","fileCount":107,"integrity":"sha512-lCWd+TjxZd6MA7e1aXBY2Hc/o0OE7mCnZr6Fy/opBfE3xxCkL45Opzn6wcwQhhcQv9DRrt/gPKlPQMwqFXlGvw==","signatures":[{"sig":"MEQCIFQd30U7xIK8Jt3rcFxpmcMvi7/3wPjAUcY/MUq0eqePAiBGKR82NZrPK/FDeW3wFc2JBrCCyFyh2QZZiev3N040OQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.104.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":459519},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"1bf05c44c3a76a3267e50ab9a78db9d4653c5315","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.37.0","undici":"^7.24.5","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^2.0.1","@anthropic-ai/sdk":"^0.95.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.3","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.3.0","@opentelemetry/sdk-node":"^0.217.0","mohdel-thin-gate-linux-x64-gnu":"0.104.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.217.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.104.0_1778346697839_0.35544944231669384","host":"s3://npm-registry-packages-npm-production"}},"0.104.1":{"name":"mohdel","version":"0.104.1","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.104.1","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"948469786a989a3604cd95428a019c6a50541124","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.104.1.tgz","fileCount":107,"integrity":"sha512-BhINZUwEB8f5Go0zZIX0vnYctl2O40qqITjT6dZ+L43vvMKPF7DEzi0LgXjUZOILDW2brbu2b+0cF/1WsfqbEQ==","signatures":[{"sig":"MEUCIQDoSzTRuTHUk5xTXYn02172PMhpG5AlU9MqfOZgIBafOgIgQtqZ6x5hq0Yd8+4XLvm+u4LthS9aKXWts8D1hkMDkdQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.104.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":459066},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"cc441e2db002d4b13eba7736cc740ee28fa58b92","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.37.0","undici":"^7.24.5","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^2.0.1","@anthropic-ai/sdk":"^0.95.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.3","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.3.0","@opentelemetry/sdk-node":"^0.217.0","mohdel-thin-gate-linux-x64-gnu":"0.104.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.217.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.104.1_1778348259010_0.8452459382746949","host":"s3://npm-registry-packages-npm-production"}},"0.104.2":{"name":"mohdel","version":"0.104.2","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.104.2","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"895313fc6f5cb4251a11cde3cd825825a59f311b","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.104.2.tgz","fileCount":107,"integrity":"sha512-0RPWceGbsb3e5XRAd0tssZuwqUjqRAjiB5gbgdkphBazF61R86cvVPzFBOrl4povG1xg32KrR4CSgRnIPBmdVQ==","signatures":[{"sig":"MEUCIQCfYK5/FeXzLnOkN5SO+BN4RZUbpoUk+HAoR92nB3TpxAIgDK7ptns37e92X7HtGJZYeFAGcx4bh2buyjZdg3L6R7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.104.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":460186},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"04514c4fca1d7266d85ac29db24678b40cc9759d","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.37.0","undici":"^7.24.5","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^2.0.1","@anthropic-ai/sdk":"^0.95.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.3","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.3.0","@opentelemetry/sdk-node":"^0.217.0","mohdel-thin-gate-linux-x64-gnu":"0.104.2","@opentelemetry/exporter-trace-otlp-grpc":"^0.217.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.104.2_1778350314699_0.715875325830734","host":"s3://npm-registry-packages-npm-production"}},"0.104.3":{"name":"mohdel","version":"0.104.3","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.104.3","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"f2b5c2df5afe3cea41ce75d46b35ffac69ad9ebc","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.104.3.tgz","fileCount":107,"integrity":"sha512-ST1kfvn1Ogf+IID6cMD6wlxDaKzwPTW/Fo+UAZ2bu+Ga55HULjanMW0UQlLOgH0i5lPbgAZCYfLdLmNANwe9oA==","signatures":[{"sig":"MEYCIQD5Nd1GNP91DY0uSIAMh/d+e+XdROlGXjk6mtrGPeZpeAIhAIxt1S1tB9w+nOg/W1pi9cjLuHx4bpuUeHYqfxIj+jVk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.104.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":460401},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"94c592576910c764586390319f4530491714e505","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.37.0","undici":"^7.24.5","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^2.0.1","@anthropic-ai/sdk":"^0.95.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.3","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.3.0","@opentelemetry/sdk-node":"^0.217.0","mohdel-thin-gate-linux-x64-gnu":"0.104.3","@opentelemetry/exporter-trace-otlp-grpc":"^0.217.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.104.3_1778353898992_0.008391152444363836","host":"s3://npm-registry-packages-npm-production"}},"0.104.4":{"name":"mohdel","version":"0.104.4","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.104.4","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"e1a3a570aabc4ac7c84d8f1386ca680390d4b44a","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.104.4.tgz","fileCount":107,"integrity":"sha512-JKB7A7OyALbhA2X6BuKF3zZuNq2WfCJ6fqvaF/V0KqWym5lyd1hoAjn6vj044Uu+2LJaMsjPOw7vypZnyl5jwA==","signatures":[{"sig":"MEQCICdMCPakGW0QCruy6Yb1CfeBt62A5GU9O/qgcCVXgekdAiA9h0mNrizCltq8xH8vTPQTLfRrcBwyUWUNPJuoCU9GjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.104.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":460401},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"1851d51d63ca285df4c17615a61327c38822c9e5","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.37.0","undici":"^7.24.5","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^2.0.1","@anthropic-ai/sdk":"^0.95.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.3","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.3.0","@opentelemetry/sdk-node":"^0.217.0","mohdel-thin-gate-linux-x64-gnu":"0.104.4","@opentelemetry/exporter-trace-otlp-grpc":"^0.217.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.104.4_1778404231270_0.12102614235085696","host":"s3://npm-registry-packages-npm-production"}},"0.105.0":{"name":"mohdel","version":"0.105.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.105.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"49bea5820174200b6f02d7b3902ccc6d975d2c83","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.105.0.tgz","fileCount":107,"integrity":"sha512-8/TSKoeLwf86sP+ycvsRvMGaGwDjfphHYswMYWE0Kci1RKCui/SLngOPEUXoy8ZYPr60pdeRCcHJMeGKyIkhBw==","signatures":[{"sig":"MEQCIGHzyeG3ivCvKBMFmcFyIlAazK68vpr3ZYiU27RZMwSeAiABQjAg6txZGMAH+htrPeZDsHxAYsBrQ2gXnry1QTWSiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.105.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":467975},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"5523df4b678ffbdc82af215b90630e84875bcc8a","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.37.0","undici":"^7.24.5","groq-sdk":"^1.1.2","env-paths":"^4.0.0","@google/genai":"^2.0.1","@anthropic-ai/sdk":"^0.95.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.3","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.3.0","@opentelemetry/sdk-node":"^0.217.0","mohdel-thin-gate-linux-x64-gnu":"0.105.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.217.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.105.0_1778663215057_0.20363541542966157","host":"s3://npm-registry-packages-npm-production"}},"0.105.1":{"name":"mohdel","version":"0.105.1","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.105.1","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"6c9f802e62bc88df1482b695c20dfc298c9b9bcc","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.105.1.tgz","fileCount":107,"integrity":"sha512-D7Q4ZpzCfQvuSlkTw32rYJklc4UKeDyFqiZ9AZewMqBr+ZoDJEZuKve2QgC99T2NBaMVNuDdeq+17HIjjf84gg==","signatures":[{"sig":"MEUCIQD5c2pyy58lCD9GX/P4qbuBGZj7e4mWLqNk4lOWsoECDgIgXZyoO92/VJlPFEoBNkl2SLiKOlK47LYR+BAvD8ekcKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.105.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":467975},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"a5fb5882bbbbd4e0efdcba9e1f72eb272fea8890","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.37.0","undici":"^7.24.5","groq-sdk":"^1.2.0","env-paths":"^4.0.0","@google/genai":"^2.2.0","@anthropic-ai/sdk":"^0.95.2","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.4","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.4.0","@opentelemetry/sdk-node":"^0.218.0","mohdel-thin-gate-linux-x64-gnu":"0.105.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.218.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.105.1_1778664643226_0.11043130045109883","host":"s3://npm-registry-packages-npm-production"}},"0.105.2":{"name":"mohdel","version":"0.105.2","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.105.2","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"1dc4f5e3ede2d76156dab7f145f2dae774165849","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.105.2.tgz","fileCount":107,"integrity":"sha512-q1fD4WE+Z49SDKuKCB+r6rW1VsM5vWShz6Ompmi5mlYJL+qiKFGfSZPv/uXrCBvPCeTME6W8GPLLbLi8Jcipgg==","signatures":[{"sig":"MEUCIQCZ9/G/XBnbQN2rKJZ7pCjUiPOlUrNAUQ0F0NuwOb+V/wIgCIAZF/Lv8c1aSFaMvmpQf7qMbljyUDHftdFozDGKtwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.105.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":468625},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"5b1e273306dd4781a2f119481ceb36b21be4ad83","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.37.0","undici":"^7.24.5","groq-sdk":"^1.2.0","env-paths":"^4.0.0","@google/genai":"^2.2.0","@anthropic-ai/sdk":"^0.95.2","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.4","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.4.0","@opentelemetry/sdk-node":"^0.218.0","mohdel-thin-gate-linux-x64-gnu":"0.105.2","@opentelemetry/exporter-trace-otlp-grpc":"^0.218.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.105.2_1778670246833_0.7119144258340024","host":"s3://npm-registry-packages-npm-production"}},"0.106.0":{"name":"mohdel","version":"0.106.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.106.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"91f5d34348a362df715ff06a979a7b4fb5415069","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.106.0.tgz","fileCount":109,"integrity":"sha512-dRdFESwZyRFhJkqe61IYBZ/YxsLYLREnNtQhyZHJ61hB4VwJ9TppTKpnJjSctZmk9+EUnNtfbOpSwu7c17wpeA==","signatures":[{"sig":"MEYCIQDNNQ6Ivhq1OIQyEr0yKyu79MopjcFv0iCFZjxvLEljjQIhAN+z9Puvu+F7PIDIsHaIPKmR27ABs5vIkdYYL0G+2LLN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.106.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":474953},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"2f395555a925b6cb59fad68bb3527e7bbc146148","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.37.0","undici":"^7.24.5","groq-sdk":"^1.2.0","env-paths":"^4.0.0","@google/genai":"^2.2.0","@anthropic-ai/sdk":"^0.95.2","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.4","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.4.0","@opentelemetry/sdk-node":"^0.218.0","mohdel-thin-gate-linux-x64-gnu":"0.106.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.218.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.106.0_1778689880096_0.9006194541874808","host":"s3://npm-registry-packages-npm-production"}},"0.107.0":{"name":"mohdel","version":"0.107.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.107.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"8e049882eeff5dcdd2b2df5733db9d4a856888f5","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.107.0.tgz","fileCount":112,"integrity":"sha512-DDv7wrt3gagw2XXwGJympcYTP88M72lfjedNcHUxLivCrhnlXswem1Oucm0eXY6uw9jPzWKGUnmgrR6t+/2Lpg==","signatures":[{"sig":"MEQCIERt1/rRgyUT7HuvibtRxHFBm4WboGFB0c4Mm+HU4A7+AiAIKopO65px8EtJFgruvrMLBfBuI1unjolVDtBJxRp8sw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.107.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":498169},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"f58aab4db982e317822ff9ed274b74d5c03fbb78","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"clbrge","email":"clb@toort.net"},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"10.9.7","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.2","dependencies":{"openai":"^6.37.0","undici":"^7.24.5","groq-sdk":"^1.2.0","env-paths":"^4.0.0","@google/genai":"^2.3.0","@anthropic-ai/sdk":"^0.96.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.4","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.4.0","@opentelemetry/sdk-node":"^0.218.0","mohdel-thin-gate-linux-x64-gnu":"0.107.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.218.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.107.0_1778858010555_0.5258524785776677","host":"s3://npm-registry-packages-npm-production"}},"0.108.2":{"name":"mohdel","version":"0.108.2","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.108.2","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"6ba48830d40de7734dbd4bdf6398c3f78b209524","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.108.2.tgz","fileCount":112,"integrity":"sha512-lZjX1dL6C4EHlNn2eFN7qS+8rJ1EyUn3Q9Y8iJgM50OIjdXwFT+gOmuW6z2kek50WKGOkTTsWgbPrwmR1tRSXA==","signatures":[{"sig":"MEQCIG3Uy5Xdj60NF/cmN0t61BTGEqrr2MTK5bvOISnjBAlLAiBRqV/L0Ux52NP8SRrY29r5wRy3C98OFHKYxK+3dEy3tA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.108.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":498369},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"15f923f492ffbb8107741f58f34d8498ee97d9b6","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.15.0","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.3","dependencies":{"openai":"^6.39.0","undici":"^7.24.5","groq-sdk":"^1.2.0","env-paths":"^4.0.0","@google/genai":"^2.6.0","@anthropic-ai/sdk":"^0.98.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","standard":"^17.1.2","release-it":"^20.0.1","lint-staged":"^17.0.5","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.4.0","@opentelemetry/sdk-node":"^0.218.0","mohdel-thin-gate-linux-x64-gnu":"0.108.2","@opentelemetry/exporter-trace-otlp-grpc":"^0.218.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.108.2_1779456902222_0.8216454430585685","host":"s3://npm-registry-packages-npm-production"}},"0.109.0":{"name":"mohdel","version":"0.109.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.109.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"20b7072331c4f802214ef7046592a2432d8b87ad","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.109.0.tgz","fileCount":112,"integrity":"sha512-VDjPeIuUDDH3iOqRzV1wJzJ/D6egEeTakvmhYrMH0NqIRlxljPnSL8ddUxDJzKqw0hpsdwi4QgzFzodxc9IIHQ==","signatures":[{"sig":"MEQCIBNyHlok0OoX8DUPWPhCU1LzNlAIP4Wbyr1xkzrDAxomAiBknKD6cG0YQ4XYkQE1oUUfR2CEYCQLOSSUSRqC/Dcn3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.109.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":498370},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"c61e107e2cd14030f1b6dbda6a7b7a090d58696f","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.3","dependencies":{"openai":"^6.42.0","undici":"^7.24.5","groq-sdk":"^1.2.1","env-paths":"^4.0.0","@google/genai":"^2.8.0","@anthropic-ai/sdk":"^0.100.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","standard":"^17.1.2","release-it":"^20.2.0","lint-staged":"^17.0.7","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.5.1","@opentelemetry/sdk-node":"^0.218.0","mohdel-thin-gate-linux-x64-gnu":"0.109.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.218.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.109.0_1780652249877_0.07927387193946567","host":"s3://npm-registry-packages-npm-production"}},"0.110.0":{"name":"mohdel","version":"0.110.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.110.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"025f77535e7143f15b68695e0193a9ee123bb39a","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.110.0.tgz","fileCount":112,"integrity":"sha512-OczApPYT8e1DHW38mY7kZO3jRauUkZBS0D3e7R9MzB7rTEs5hXjqUTIHgu8RLGkmd46HhCHk3w4UBQVcHQQPPw==","signatures":[{"sig":"MEUCIQDi/E8PBu8zQJ77ooGKqhW13oCrI72SJwrUgknkRC+GEAIgERu3JlNrhX5Kj2j+NdDPB0pMWkQ0m9PAUxLV/f2F6gI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.110.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":498542},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"178419ccf424710ea7956c549c38c1d71552de27","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway with an embeddable SDK. Process-isolated, OpenTelemetry-native inference across 11 providers — streaming, tools, thinking control — without orchestration. Use the Node factory in-process, or run thin-gate for fault isolation and an","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.3","dependencies":{"openai":"^6.42.0","undici":"^7.24.5","groq-sdk":"^1.2.1","env-paths":"^4.0.0","@google/genai":"^2.8.0","@anthropic-ai/sdk":"^0.102.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","standard":"^17.1.2","release-it":"^20.2.0","lint-staged":"^17.0.7","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.5.1","@opentelemetry/sdk-node":"^0.218.0","mohdel-thin-gate-linux-x64-gnu":"0.110.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.218.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.110.0_1780995694056_0.29905729535297976","host":"s3://npm-registry-packages-npm-production"}},"0.111.0":{"name":"mohdel","version":"0.111.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.111.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"9143f4a614834e9729b6d0b54f44aa22e7bbeea5","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.111.0.tgz","fileCount":118,"integrity":"sha512-nDm38RzP70v9pZDSoHj1ymbU6bO6Sy5cOAzGHchg/elwhkBWNPeM97UfNrnyPV/u5VMeb8cSDbkw1MtxFyYXBw==","signatures":[{"sig":"MEUCIQC2K6R8WsQM0O7iwVmbjKEEGllw6zEeHs3SF2lBLhJ5owIgIaD6ZQIatd15dZRLcQI0LAdASzQxGHdsqR6Na8Gl1YM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.111.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":524452},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"40401518e6644caf981eb13b1f6545db672d142b","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.3","dependencies":{"openai":"^6.42.0","undici":"^7.24.5","groq-sdk":"^1.2.1","env-paths":"^4.0.0","@google/genai":"^2.8.0","@anthropic-ai/sdk":"^0.104.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","standard":"^17.1.2","release-it":"^20.2.0","lint-staged":"^17.0.7","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.5.1","@opentelemetry/sdk-node":"^0.218.0","mohdel-thin-gate-linux-x64-gnu":"0.111.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.218.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.111.0_1781087230561_0.07582772710047214","host":"s3://npm-registry-packages-npm-production"}},"0.112.0":{"name":"mohdel","version":"0.112.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.112.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"eca4c9181bf6129b41bc43b575cd8f80b39f5589","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.112.0.tgz","fileCount":119,"integrity":"sha512-ahqgmd5vEQXov+NNH8hxIkXvH0u1fqdAtBo80o4oxD+it9Dh1D2wpmxOaT7UgZEfUgrmMOhn46F3YGSXOc4Nuw==","signatures":[{"sig":"MEUCIQCqLncD/7w+vUfOuhuhmfiri3gksRNYB/TXjXe92ysU6gIgIPay63eZdE5EBy6+pKhcwv55t/bTX7/b0Z/88vBk/N4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.112.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":527603},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"f44def85e34ac60ba01a81a192099ade7876c228","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.16.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.3","dependencies":{"openai":"^6.42.0","undici":"^7.24.5","groq-sdk":"^1.2.1","env-paths":"^4.0.0","@google/genai":"^2.8.0","@anthropic-ai/sdk":"^0.104.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","standard":"^17.1.2","release-it":"^20.2.0","lint-staged":"^17.0.7","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.5.1","@opentelemetry/sdk-node":"^0.218.0","mohdel-thin-gate-linux-x64-gnu":"0.112.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.218.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.112.0_1781094519621_0.14147668768131072","host":"s3://npm-registry-packages-npm-production"}},"0.113.0":{"name":"mohdel","version":"0.113.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.113.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"a57f5772c6d7f8b2277f9ae12c3e05be8d5e9d4e","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.113.0.tgz","fileCount":120,"integrity":"sha512-lW9ms4xwjIR7E7uR9mtG4J66DDDm3rxFt2AFBTkdv/RrifpR7qRQ6wGsCAf/4KrfgOS7uYZBycGvTloTYhKrdA==","signatures":[{"sig":"MEQCICXb7zEaYPxo3ul9l0MVx82TyQSkMYR7W2alL39ThB2rAiBiqdAzs2mYGlCD1zcMxbIj9ZPCu5Ml9zdVRfAV1KfFSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.113.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":530352},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"0071cdaaf113b9c58a032af186b85bb5822636e3","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.17.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.3","dependencies":{"openai":"^6.42.0","undici":"^7.24.5","groq-sdk":"^1.2.1","env-paths":"^4.0.0","@google/genai":"^2.8.0","@anthropic-ai/sdk":"^0.104.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","standard":"^17.1.2","release-it":"^20.2.0","lint-staged":"^17.0.7","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.5.1","@opentelemetry/sdk-node":"^0.219.0","mohdel-thin-gate-linux-x64-gnu":"0.113.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.219.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.113.0_1781332399478_0.19742424039515494","host":"s3://npm-registry-packages-npm-production"}},"0.114.0":{"name":"mohdel","version":"0.114.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.114.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"c827cfedc0509fa5ba556bf9773f1478f62b5e25","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.114.0.tgz","fileCount":120,"integrity":"sha512-7WPLE3b2r/xswBBkVuTDCtPQbhc0rYyIQOiQltBY5l6sVsZT7EydAjd+pqkd9Jx5GH03W4HSsgxP6ldk63z1YQ==","signatures":[{"sig":"MEUCIBemJQh0y3PirTK9q3KX1R/hujKBE4P9aRI+b+y1cSSXAiEAhq1/vZk4dH34o3ytIHg+o3YP7HoQQhALpkTgGpwCajs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.114.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":532319},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"c5e0e313a312c7029ae2d94d5a43438e01fd9cca","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.17.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.3","dependencies":{"openai":"^6.42.0","undici":"^7.24.5","groq-sdk":"^1.2.1","env-paths":"^4.0.0","@google/genai":"^2.8.0","@anthropic-ai/sdk":"^0.104.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","standard":"^17.1.2","release-it":"^20.2.0","lint-staged":"^17.0.7","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.5.1","@opentelemetry/sdk-node":"^0.219.0","mohdel-thin-gate-linux-x64-gnu":"0.114.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.219.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.114.0_1781437879056_0.7602882276661329","host":"s3://npm-registry-packages-npm-production"}},"0.114.1":{"name":"mohdel","version":"0.114.1","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.114.1","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"4eeb24d99269a209c86ee831a7f781d0784b1d41","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.114.1.tgz","fileCount":120,"integrity":"sha512-4giQ4mIuNZGmfytGRNPeMsDz9MOqYmsepOCyBur8Whhn7MZKXi5ScFEN2KoYSZVSiD1zWtkgvPtqy2bIIuX/uw==","signatures":[{"sig":"MEQCIBdxqPqh5LyZnFCAwqkuLl/SbzhCBhBB4GmDQgsI92jmAiAZLNVwsvXKsN+dGWDUJBWTu/yDx7DJHZSg4j4RdzmfoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.114.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":532577},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"09bc2c84cdacaa5571673397111345a37d4de653","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.17.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.22.3","dependencies":{"openai":"^6.44.0","undici":"^7.24.5","groq-sdk":"^1.2.1","env-paths":"^4.0.0","@google/genai":"^2.9.0","@anthropic-ai/sdk":"^0.105.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","standard":"^17.1.2","release-it":"^20.2.0","lint-staged":"^17.0.7","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.5.1","@opentelemetry/sdk-node":"^0.219.0","mohdel-thin-gate-linux-x64-gnu":"0.114.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.219.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.114.1_1781873678037_0.8516160689557251","host":"s3://npm-registry-packages-npm-production"}},"0.115.0":{"name":"mohdel","version":"0.115.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.115.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"15bdc26ea8c00cb3d33ec5e52eb7b5e9282669e8","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.115.0.tgz","fileCount":120,"integrity":"sha512-wGyFtZVRgn/ZC+W5xAmD+hgiF9SuMs9Q52qFe37/XPeL15Nz1QAd6bpmeU5HJp+olixznFp/W6Sc34e0KeuDgA==","signatures":[{"sig":"MEMCHwpM2iaC81C7gfxjbhyBJeHQK4hUkrPSxGQv4xqUiLICIAi+t8Z0SV229rYCjl+vCRbdOfuKigEDlMwTc5l/WrT7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.115.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":533336},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"c6e22206a94b09cc69f4acc9c510bf3548174e14","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.18.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.1","dependencies":{"openai":"^6.45.0","undici":"^7.24.5","groq-sdk":"^1.3.0","env-paths":"^4.0.0","@google/genai":"^2.10.0","@anthropic-ai/sdk":"^0.110.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","standard":"^17.1.2","release-it":"^20.2.1","lint-staged":"^17.0.8","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.220.0","mohdel-thin-gate-linux-x64-gnu":"0.115.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.220.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.115.0_1783507106301_0.7981644294458439","host":"s3://npm-registry-packages-npm-production"}},"0.116.1":{"name":"mohdel","version":"0.116.1","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.116.1","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"c3b20498d34c38beb0c82e44de7dc9767219e793","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.116.1.tgz","fileCount":120,"integrity":"sha512-eM4KV6r8uscm4cS8/B+XmK0Ia2oqYVjy5EtUHuh4Cl3XyO0I8LL7aL19zsmHrRZGXIz7/W39z98HG8WgpTdDCg==","signatures":[{"sig":"MEUCIQDbVKwMoIwmgcSHGgywVuxsJXbz6bcILdz5PxjCbsHx/AIgdn32TuqWUfRjFzDtt3Ej15M8dQw2ARo0rPtAH7CZ/XE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.116.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":533797},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"2e370201b2320976dc6cfa62b30b8151be29bb44","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.18.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.1","dependencies":{"openai":"^6.46.0","undici":"^7.24.5","groq-sdk":"^1.3.0","env-paths":"^4.0.0","@google/genai":"^2.11.0","@anthropic-ai/sdk":"^0.110.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","standard":"^17.1.2","release-it":"^20.2.1","lint-staged":"^17.0.8","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.220.0","mohdel-thin-gate-linux-x64-gnu":"0.116.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.220.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.116.1_1783668386300_0.7557267729060677","host":"s3://npm-registry-packages-npm-production"}},"0.117.0":{"name":"mohdel","version":"0.117.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.117.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"b1b6ba4b59e7d9aafc5fab15dd9a91b0c948ac7e","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.117.0.tgz","fileCount":120,"integrity":"sha512-pzf1zjNMstwtx14rGzgeT7JdwZapAa86BPivCJjDXXkIOlahSIuAcRuUeBVKoNvohX3CQprJWiv4QPmOnMgTHg==","signatures":[{"sig":"MEUCIQD7nAJqkistfgfcBZycl+tFWpVZsDUlT7AJZ84xssVb7AIgFiABYa7lRyR0HCc6t5luwLvS8U3ytSTwGM9zxZz0wW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.117.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":537265},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"cfe4d93830ed12426f75b7bf18e21bd7185a6f07","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.18.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.1","dependencies":{"openai":"^6.46.0","undici":"^7.24.5","groq-sdk":"^1.3.0","env-paths":"^4.0.0","@google/genai":"^2.11.0","@anthropic-ai/sdk":"^0.110.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.61.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","standard":"^17.1.2","release-it":"^20.2.1","lint-staged":"^17.0.8","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.220.0","mohdel-thin-gate-linux-x64-gnu":"0.117.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.220.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.117.0_1784310972112_0.35770283575953155","host":"s3://npm-registry-packages-npm-production"}},"0.117.1":{"name":"mohdel","version":"0.117.1","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.117.1","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"9b71cf2c023224afcc89a68271eb577eb6d795b6","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.117.1.tgz","fileCount":120,"integrity":"sha512-RX/uefm01Hl7us8Tl6ElNY2FfZGiyeyr7q7oeTnvil1iFf24IZaP13NRNTdJsbmoi8PbaAFvyebTzPvifxR/Xg==","signatures":[{"sig":"MEUCICDGDR/SA9Vo6qYolB6ZAd3OlWSqxmgl1g8A0cECLDbKAiEA/GfZZBZ4aFmmV5MQBP0bISI4zzBr6fbm7aDBUGCk4rg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.117.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":537265},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"96c4796f2a5cfbc69ecbca0187d8e8c2c23f953f","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.18.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.1","dependencies":{"openai":"^6.48.0","undici":"^7.24.5","groq-sdk":"^1.3.0","env-paths":"^4.0.0","@google/genai":"^2.12.0","@anthropic-ai/sdk":"^0.112.2","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","standard":"^17.1.2","release-it":"^20.2.1","lint-staged":"^17.0.8","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.220.0","mohdel-thin-gate-linux-x64-gnu":"0.117.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.220.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.117.1_1784315705185_0.6004878557793114","host":"s3://npm-registry-packages-npm-production"}},"0.117.2":{"name":"mohdel","version":"0.117.2","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.117.2","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"ce401deca4c9ce3d46397701545d7f9efebd0574","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.117.2.tgz","fileCount":120,"integrity":"sha512-nL2VEhxv2iwKueIIozJ3NN3TXN2nm7VWEQKbKY3c9gxb0ZepbloD5e3jPFi6q5ToQpWSb74jxwr52Ar3llbKlA==","signatures":[{"sig":"MEYCIQCTu9xGFgYe6FHkiGmc/8qEdll02PieJh19WAVPDacARwIhAMrb2oRvs1TfTCE2FBAUMbdFjiyTpxfVhe63imh9GBww","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.117.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":537265},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"2f2ecca0b8a6b644a13600bf72978a905365b8d8","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.18.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.1","dependencies":{"openai":"^6.48.0","undici":"^7.24.5","groq-sdk":"^1.3.0","env-paths":"^4.0.0","@google/genai":"^2.13.0","@anthropic-ai/sdk":"^0.112.5","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","standard":"^17.1.2","release-it":"^20.2.1","lint-staged":"^17.1.1","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.221.0","mohdel-thin-gate-linux-x64-gnu":"0.117.2","@opentelemetry/exporter-trace-otlp-grpc":"^0.221.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.117.2_1784721884282_0.690293079111838","host":"s3://npm-registry-packages-npm-production"}},"0.117.3":{"name":"mohdel","version":"0.117.3","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.117.3","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"8a09168ba60e65c98bee20fe7c647a97b5a28d68","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.117.3.tgz","fileCount":120,"integrity":"sha512-GTo8pIPhg6fK9M1L/q7tbWBebZYb82qZVzPW9LsfzZT/9PkakM4scPcKMzCAW9zYKz2opncf07nn35GFrslLaw==","signatures":[{"sig":"MEQCIEURSBEqB6+iqqpCAsslxPKCHrWb3s32BNMiqx2SO7j6AiAXO74H4z/mTqPg3SLie1AZw6cA0Iy5mz7hScu/1Nn8/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.117.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":537265},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./src/lib/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"4699e0e61db9641ab7762b91545981dbba78773e","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.18.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.1","dependencies":{"openai":"^6.49.0","undici":"^7.24.5","groq-sdk":"^1.4.0","env-paths":"^4.0.0","@google/genai":"^2.13.0","@anthropic-ai/sdk":"^0.115.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","standard":"^17.1.2","release-it":"^20.2.1","lint-staged":"^17.2.0","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.221.0","mohdel-thin-gate-linux-x64-gnu":"0.117.3","@opentelemetry/exporter-trace-otlp-grpc":"^0.221.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.117.3_1784977401355_0.8580925331902072","host":"s3://npm-registry-packages-npm-production"}},"0.118.0":{"name":"mohdel","version":"0.118.0","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.118.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"1b59350cbc36be985e7eddc440350af67f755311","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.118.0.tgz","fileCount":119,"integrity":"sha512-7VAFQa7lEJw7eGmUYnsYSd1akkzy7oGAIy/wLNpLhGna/G977e+gn1iRTCLaFlPJYSByQZAg8j5cbuwkyjIe6Q==","signatures":[{"sig":"MEYCIQCcKBOaVNl+RtBwMBnF8i6SPOfNH6jg3UDNmlVXCZwxygIhANZmrEtzOXjZQr3avnG4rKO5aF46QtjujGRmNAy/fMKc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.118.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":541046},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./js/core/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"99866ef249a250df2a8c817ce5cd707e13722921","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.1","dependencies":{"openai":"^6.49.0","undici":"^7.24.5","groq-sdk":"^1.4.0","env-paths":"^4.0.0","@google/genai":"^2.13.0","@anthropic-ai/sdk":"^0.115.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","standard":"^17.1.2","release-it":"^20.2.1","lint-staged":"^17.2.0","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^5.4.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.221.0","mohdel-thin-gate-linux-x64-gnu":"0.118.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.221.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.118.0_1786085271225_0.4633364095671566","host":"s3://npm-registry-packages-npm-production"}},"0.119.0":{"name":"mohdel","version":"0.119.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.119.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"d62a3acee9c5c6208ba7db167dff3a045bbd732d","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.119.0.tgz","fileCount":122,"integrity":"sha512-vAOY7Uwi09hqw8vHiGGHG7l+V4kwfS5RGzlOzFzqQHoF1IRn11DZewn12qQdom6kvBHH053AYp3KwXc8tIDpPQ==","signatures":[{"sig":"MEUCIQC8uTfyu1hmA02U8e3d3CCkQsBT14EJya2tU8NlJnuyTAIgakvZJQ5JN+ccYaJ9f2MMEu1RlWmU19Q76fSmGe4r80c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.119.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":546263},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./js/core/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"7972d68742e852d76cf4817faa75e6515c3c4df7","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.4.0","undici":"^7.29.0","groq-sdk":"^1.5.0","env-paths":"^4.0.0","@google/genai":"^2.16.0","@anthropic-ai/sdk":"^0.115.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","standard":"^17.1.2","release-it":"^21.0.1","lint-staged":"^17.3.0","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^6.0.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.221.0","mohdel-thin-gate-linux-x64-gnu":"0.119.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.221.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.119.0_1786105279989_0.2966322030056807","host":"s3://npm-registry-packages-npm-production"}},"0.120.0":{"name":"mohdel","version":"0.120.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.120.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"843728cf0e6207825e021217b91c179c17ccde23","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.120.0.tgz","fileCount":123,"integrity":"sha512-kwgfL5b/L/5nt+VjOdUzzFXZCeTg7MFaxajs/nW/xd4BzmkI6hhvaTEgmQ84B/GBqF3YBCTXNUKp0fvsTdqOCw==","signatures":[{"sig":"MEUCIEYqXIZk558Pbd6wrwO4u+G32DjMhALzf4LVMMPw7JlNAiEAiEdB9ECJn/1GOndoZHGwrqajR73BYKP24CusMibEcQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.120.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":561763},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./js/core/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"6002b34af6875764a867bdba44328d188b276246","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.4.0","undici":"^7.29.0","groq-sdk":"^1.5.0","env-paths":"^4.0.0","@google/genai":"^2.16.0","@anthropic-ai/sdk":"^0.115.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","standard":"^17.1.2","release-it":"^21.0.1","lint-staged":"^17.3.0","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^6.0.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.221.0","mohdel-thin-gate-linux-x64-gnu":"0.120.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.221.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.120.0_1786723236227_0.0560601544069701","host":"s3://npm-registry-packages-npm-production"}},"0.121.0":{"name":"mohdel","version":"0.121.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.121.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"e70d718d4c2e05fca4c6f47d040a479621142af0","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.121.0.tgz","fileCount":123,"integrity":"sha512-UTXiUgoKUlRm9jKajBFXRQAb3gTrUHgvgXG9f2nfQsVFH9aTO2BHoMmQATq95YN39nBW9AhJqKL9W3FZL2/uzA==","signatures":[{"sig":"MEUCIQClq1IdF7bohA7O3sDuSuzHIAkqtIh8J2iUgqCoLs/vdAIgT0QqethVuAROnQnmlObG4pzVo/8RkFsD7J7ujRJOcos=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.121.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":570653},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./js/core/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"375ab5f116afe14e162d42c8ec626afcb318571d","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.4.0","undici":"^7.29.0","groq-sdk":"^1.5.0","env-paths":"^4.0.0","@google/genai":"^2.17.1","@anthropic-ai/sdk":"^0.117.1","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","standard":"^17.1.2","release-it":"^21.0.2","lint-staged":"^17.3.0","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^6.0.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.221.0","mohdel-thin-gate-linux-x64-gnu":"0.121.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.221.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.121.0_1786728191197_0.6860072670635444","host":"s3://npm-registry-packages-npm-production"}},"0.121.1":{"name":"mohdel","version":"0.121.1","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.121.1","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"a0f39328d1a8abc3dbd00425d5cfe6dbb93fc6f8","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.121.1.tgz","fileCount":123,"integrity":"sha512-RGSCMvSMW8B7cxMVPla7iK+VG9Q2t3QDXnpDq+f61/grPaiEgPQ8gya8XYNv44M/oKkEe3SNejUNPgpwWhqJ7w==","signatures":[{"sig":"MEYCIQDOiVzsVLnrFMMHJRW+IrdcWwfVdBhznwddOjLJ2JCfAgIhALKDf6snGSv+gKuXL7smDUm9y2uuw7/hkRDHtkKsFIRD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.121.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":570929},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./js/core/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"16ffbc9a21e03577a2631f989fdb34860f8a1356","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.5.0","undici":"^7.29.0","groq-sdk":"^1.5.0","env-paths":"^4.0.0","@google/genai":"^2.18.0","@anthropic-ai/sdk":"^0.120.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.2","lint-staged":"^17.3.0","gpt-tokenizer":"^3.4.0"},"optionalDependencies":{"chalk":"^6.0.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.221.0","mohdel-thin-gate-linux-x64-gnu":"0.121.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.221.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.121.1_1787249075115_0.0845527582353165","host":"s3://npm-registry-packages-npm-production"}},"0.121.2":{"name":"mohdel","version":"0.121.2","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.121.2","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"a91e00bed05a5ab327dd6ee5e2fe06735f5a2dfc","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.121.2.tgz","fileCount":123,"integrity":"sha512-SFgQQX75Zz+7p3WVN172tOJpN1RORfs5EpfzNri/BdPiCpQqYo8lvB6Kw+vB415tncC0T+wPSotn5Vx0ycjx0A==","signatures":[{"sig":"MEUCIQCGvNxK4NKO73S8N0gnNBv0NWNv7HoN96JNpJT34FpPzAIgEvAYRl7TXnynxcHSsYsOaHGUOPsgdtiaykpFDl3AtD8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.121.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":570929},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./js/core/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"0fb7f41cc321f94ed0f34d20f2e163023383c2ef","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.8.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.20.0","@anthropic-ai/sdk":"^0.122.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.2","lint-staged":"^17.4.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"0.121.2","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.121.2_1788251179353_0.8547584865083049","host":"s3://npm-registry-packages-npm-production"}},"0.122.0":{"name":"mohdel","version":"0.122.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.122.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"b99bd631ad0d3f794c36ecfbb8eba76a93eb82fc","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.122.0.tgz","fileCount":124,"integrity":"sha512-X1+zXTzJdOGU11JKOP2kDe+3+6INTnntrHswKsQ/VQJrBRKdxyeczHdUfJl/RHJQQYZTlQw68JOGL7MmYu+y6Q==","signatures":[{"sig":"MEUCIG99lgsOr2KDJ5sS3yKw4Mn2a2sLFLZRtVvJf2DMEId2AiEAnv/3m0dovxFxLzreK+xRtWhKhTFVII80H2K4HQ1olDg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.122.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":574434},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./js/core/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"1762e793a12e67d35f3ae5edb03b1f7a8f848a0e","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.8.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.20.0","@anthropic-ai/sdk":"^0.122.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.2","lint-staged":"^17.4.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"0.122.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.122.0_1788271822773_0.5075860537640235","host":"s3://npm-registry-packages-npm-production"}},"0.123.0":{"name":"mohdel","version":"0.123.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.123.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"69576b1d509cdd023ebbf228c6f199eab5e33b74","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.123.0.tgz","fileCount":124,"integrity":"sha512-ygTb0wZeKPZwXUfz4ZZW1cGm3PyALPeeUdDay/q98lIz+rfkLzNJzEpy85a3Xx+1HkEBTvaEcPG99JfyoOmrrg==","signatures":[{"sig":"MEYCIQDiBhqrP7qthMoDd/q0Ij96+DoygXfFfxjuzetaL+kOGQIhAO5HpEGpM9yNtspDvgINGGVjae7cpGi7cjPAqIOn09gI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.123.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":575502},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./js/core/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"aa2f963f9b0a9de9268a3e5e4431fb262e1419f3","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.8.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.20.0","@anthropic-ai/sdk":"^0.122.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.2","lint-staged":"^17.4.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"0.123.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.123.0_1788289946903_0.37876540472188713","host":"s3://npm-registry-packages-npm-production"}},"0.124.0":{"name":"mohdel","version":"0.124.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.124.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"13a1c46f8906373b4152bf636ba9b76e2e6c112d","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.124.0.tgz","fileCount":124,"integrity":"sha512-XlW2Xh3OqRklv7RE7x4JHgwnU1vgdwKHn/u9eFTeXlacx6XLg9xYfJ8V2qlBr0pg8dnHEI3Xr+5T5gmH0RBUFA==","signatures":[{"sig":"MEYCIQC7PeqRrTvqg4HLVI3LjEnJ+7qeGaf3Gk70Jqth84Cq8AIhAK6E9xVq/tUZcJvQ6EOgJ+GXzvbPFBVgllzLiyZ3R/LJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.124.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":576263},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./js/core/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"cba793e8ec9a8484e2dd0f28dd9da3e3785b062e","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.9.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.20.0","@anthropic-ai/sdk":"^0.123.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.2","lint-staged":"^17.4.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"0.124.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.124.0_1788338804770_0.5357062781812816","host":"s3://npm-registry-packages-npm-production"}},"0.125.0":{"name":"mohdel","version":"0.125.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@0.125.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"a4064cf897eb33138bbc78b7a1455f67f16d98f8","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-0.125.0.tgz","fileCount":124,"integrity":"sha512-wwHuFZsTApXhVZuwMuUXUC7MnkPtrZf4rVRv0/DeiVgDfOxDQgaMHS+mH0JIW39/c/d1tuBikTxMSaEZlOmLAw==","signatures":[{"sig":"MEUCICKXfCHllr8IYaezVwRPVVrJWU5AT7u6nywI27AqF3r0AiEA0hIda7JQcmwzK0Rtoo4Wo7BFJgdgSG+DxVcppH7zHIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@0.125.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":578446},"main":"src/lib/index.js","type":"module","engines":{"node":">=22"},"exports":{".":"./src/lib/index.js","./utils":"./src/lib/utils.js","./client":"./js/client/index.js","./errors":"./js/core/errors.js","./session":"./js/session/index.js","./creators":"./src/lib/creators.js","./providers":"./src/lib/providers.js","./session/bin":"./js/session/bin.js"},"gitHead":"fb986f31f08b97be5d628955a6fa8ee3e9d08158","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run test","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 11 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.9.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.21.0","@anthropic-ai/sdk":"^0.123.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.2","lint-staged":"^17.4.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@clack/prompts":"^1.7.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"0.125.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_0.125.0_1788450910724_0.5422428662054455","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"mohdel","version":"1.0.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.0.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"1cb3f1c1e392c4c5102a46dfd502a2fad930d27a","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.0.0.tgz","fileCount":134,"integrity":"sha512-slRprzHD+jDGYXUKcw51Qvc6oH4l4RU5S4pjby4uUgpc5UYnRWnJi2lQx5GXF1BtDBDf+wC6U80/yspwdYbMXg==","signatures":[{"sig":"MEQCIGMwsCrDiQ5Zc7hGk+xl7NKjitYSYpFx/tw2TI4E+ieeAiB0AG7TzCZKxbkCfClWn2p4097XAqSfJ+f5i88bFeq1pQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":660978},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"1377cbe478e3e8ba9c6b7d7e0a584831d9c32e5b","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.15.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.22.0","@anthropic-ai/sdk":"^0.125.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.2","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@clack/prompts":"^1.8.8","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.0.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.0.0_1789146912875_0.18680193942016765","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"mohdel","version":"1.0.1","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.0.1","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"7ec883edeb997a6b050b464ddb6d7ed90cdfe8c2","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.0.1.tgz","fileCount":134,"integrity":"sha512-4M2bg6lqjbIDUCY0Dzp+hugnWOvZH9tBnpNLBFOZmmgjGHqBks2p27l/b7JXmD5/5uOToVzety11DQhiOXenZg==","signatures":[{"sig":"MEUCIQD6fvuVWoVFMm2rVZX2mlPHGl1D74rHcOZbNkl5mlhrVwIgJHfCfzEdMTddz3dTqpK1O72KobRJiJAqA6upbWjqa88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":654770},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"e9fec47c4d2b15ad7a9197aabe1da69fbb7fbdfc","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.15.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.22.0","@anthropic-ai/sdk":"^0.125.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.2","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@clack/prompts":"^1.8.8","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.0.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.0.1_1789188591635_0.3229489512818289","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"mohdel","version":"1.0.2","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.0.2","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"76809d9d2d07349f755593095ed3aa462bfa0b02","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.0.2.tgz","fileCount":134,"integrity":"sha512-weOVmLAUY4MIEQfVIcXn8+uWJW2FBcZbuTGIgo5VY5ciBm4LriYXZJuKngczjyiWfPC5YxY4BD0bzW1ohFqLiQ==","signatures":[{"sig":"MEQCIGEWcgze59bu6weIMPfRi8k6LBktg2QUpeIjyuyxkkhsAiBFCDXmm74S+NvrZa1Xxnj6RfMkXuoR70yIu/QGInpYxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":654770},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"1414ae48dc02a301b0afaeac4bd63528eab1e680","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.15.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.22.0","@clack/prompts":"^1.8.0","@anthropic-ai/sdk":"^0.125.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.2","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.0.2","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.0.2_1789189689527_0.3695265834026469","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"mohdel","version":"1.0.3","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.0.3","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"d8767608455a22d907aa248288606a103518d512","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.0.3.tgz","fileCount":135,"integrity":"sha512-4oyyesccjedodD9oNDdVaW9JiJ0FCfdnO/oq82y6RdQ3s7+uzJ/AFT4IwlmYTPesUc1VzxGdg+ZjTe6L/T1VMg==","signatures":[{"sig":"MEQCIGeZhy1XxBsqKgaLOEMFRr8yDbK5ADIdbS7YkY40EfpxAiBdQQA/2+KCIGLnyeElbqYYZWpTZpmgOn2GZseqSoGPsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":657436},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"a2b6351ba434294634a4cde8416432f7c02082d3","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.15.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.22.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.125.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.0.3","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.0.3_1789385230218_0.8668899260529437","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"mohdel","version":"1.1.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.1.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"5e7b90c61f6f593ad4cf34e0dc077e76a4869a77","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.1.0.tgz","fileCount":135,"integrity":"sha512-+ezKLTDSULTnC0pl00gzWBSWZ8NJdwXN2lPV+BWkO0wDFubetc8ZXev7XN/6QG6srKqQoBR8veDD3GyxXRafTg==","signatures":[{"sig":"MEUCIQDTB8hq2kvHQnznS/beV5zu7pi7nqSNin5A0nZsfmPOMgIgHEWbY13U7MHl8ODVvxcfRnAkKCKzMEZ7smkkKOe5JYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":657694},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"8a678ea87424e090c758f1d2f92071354b49451b","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.15.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.22.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.125.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.1.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.1.0_1789396106234_0.16469896902430436","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"mohdel","version":"1.2.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.2.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"7255ecfc8bef1107639d728f69ac6eb3f00f41de","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.2.0.tgz","fileCount":143,"integrity":"sha512-xv8sB/mhs+S5trEbUCiX++g0MEqqA0HME+lpbapIYKEPo8DqoFDyaJjn0tnwHdJzXhLZzoPhpKymrbY9llVRLQ==","signatures":[{"sig":"MEUCIGhurOukbTNN/ja+JdazS+O+Qq1aDM24i2Ij+Bc2bZ/mAiEAppxEEVIw7ZVJxZIGNrQ6PXZR9yjQdTac1dpQLt3jPec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD5hONS5QFoj3FTWhH/4M46C/5+oWJY5ZcXV+HM37jEWwIhAMMPMTIopABUWhJjst9dIVUFNJJuP+xzG/kjtbHGyDJ6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":683847},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"a407df4fefbd5624c0b8dfc22bc182f7a57c1672","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.15.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.22.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.125.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.2.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.2.0_1789488629781_0.41299634605945834","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"mohdel","version":"1.3.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.3.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"2058060a3f081c69e49e452978889dd999ee597f","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.3.0.tgz","fileCount":142,"integrity":"sha512-e9WvLWWu8smNE0PKfvMvj4NBV3XwstW/3Qgc2rxZfpRAoXNBLfx9dlZN/lGYypXTu6BReJy1A43CVLU8+pciYA==","signatures":[{"sig":"MEYCIQC5hCpmAL7BaGUMSvtpMtzdTGjOaUHVuxeyRd1D3S8ySgIhAP+HQ1ILK80VotNppxXdA/KEv5J2Em7zMTtK1PSREmpM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIADQv2IYeLuBla++HMX55yT91NjBRia4y4efYrddnrN+AiBl8M5IfQTQ5k8JxEf19KIQmzlC9omrDvShZ326JWBLEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":689424},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"d8c3a389f9e25068af9a8ef00bf342028329a0b6","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.15.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.22.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.125.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.3.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.3.0_1789627495823_0.25037042805370335","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"mohdel","version":"1.3.1","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.3.1","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"1363784bd99ba9eaaf4adfe15d54a2545a00fdcb","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.3.1.tgz","fileCount":142,"integrity":"sha512-wzgG/LUMe6QbPlp2iRqf5C4qCa66ZUK7huglfWI4gZIMRFkx8utN5up0SGMsw39CxMrDsY/fib8bVCgOkIDgMw==","signatures":[{"sig":"MEUCIEtK4WcurOg80k1Rdx5MM7RNpXbVVzrc/zT8kwtsKCd9AiEA5o/hJZbgKGefhmfwdPdlsVpnBHhshgR8ZmcjNmi9TAc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDoyi7Z3CGoudi3tBPi9uD41SP52+QXGoWWeVtPCedZpQIhAKhlIZbDVOheyZ7En2DvYVsYCeJZ/w22bn85Umwr6HfR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":695514},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"cc87f9209176734593e9ec133dfa5e8a51a46e6a","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.15.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.22.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.125.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.3.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.3.1_1789628682006_0.9276247787960175","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"mohdel","version":"1.3.2","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.3.2","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"53a372f148c5cb46ac6c11c0438dd5b34ad59929","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.3.2.tgz","fileCount":142,"integrity":"sha512-34senaHRs2HtCVugMCpXKljozzhJItJsT1mHqdltOsSMkNKKydbQowkC5Ty6TGrqDQ3y4yJLeoVtcd/D6+s7aQ==","signatures":[{"sig":"MEYCIQCJZ2iS2GCtK+hGTVJVeGGgc79hsh5rgnYJC9RV0sfNzQIhAOYe5OADuSjrtOloJx6WOJjCPXY5jD/tnf+5a6k4orYM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEg68rRWofkYeEc3tU2vsCMrpgZLQBphGI1aWZKRtXNTAiBl9cEcf7WtTtWHNbDhqnwvRJlbrnKUSfnWzjYc4Sbxpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":695934},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"8722e935cd2a83a7d16bf9248f83466fe589d349","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.19.1","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.15.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.22.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.125.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.3.2","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.3.2_1789632141818_0.5359152900895516","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"mohdel","version":"1.4.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.4.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"a969b6c39e7f75fa96c7cb13f70b12ff1e3fc8cd","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.4.0.tgz","fileCount":142,"integrity":"sha512-vEEzGhl8zvK4TGsRzBgG6AY/6TtO2a+1U3sCsd/2JfnEW+fjw2xrVyeCMCg9JEVlyj+UQym31Yel1hCcoNKILg==","signatures":[{"sig":"MEYCIQCm9aAgFvczRlpJ4DxR82ZjwsZyfhLoTrYDaG84kSqymgIhANAhShQ16KDSbL4nqfDHa//5VlJUQUvpl9dkQINMbWLh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFyICTPEeT7SEkRsCCByXHqs4Y68zsZUMLJO1xDseXHGAiAXxKNm4wtLOx/ccLKcsjkmVZiI0QOeROcSCi8/QogVcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":703151},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"369903febb938dc7367401f04d81c5576304cb36","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.15.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.22.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.125.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.4.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.4.0_1790137735549_0.45544827564975754","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"mohdel","version":"1.5.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.5.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"74470ba796fd0ebc00ad7b93f113a64f1c0b1d20","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.5.0.tgz","fileCount":144,"integrity":"sha512-yVytM2E0KKdfsRg8jzfYLmnyk3u1coYgx1WSami2btMVIQrv3vlBhSB8ZXCfjntUOabRFxVW+CA/+I7psOPCLQ==","signatures":[{"sig":"MEQCIG35guvzd+IlI9EAsJksDyRTOYJbQhL73f+DnemhGxaHAiB2QG6B8odg08oLqMsnk012WcfAdzDCAYbn0dHWBnwwIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGz+VkWubuD9ztPxA86k8UOCdqAz2O6y0nLQoV6jkWUDAiEA/dSwX9Crost9T6jqjCIowiwXTd46Ouy96OA6knnHW/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":706878},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"be3741c405d45f38ea762234a2354b06a917a523","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.23.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.128.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.5.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.5.0_1790337160870_0.932792562961172","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"mohdel","version":"1.5.1","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.5.1","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"cec9391269cae0838eb2a719113aee5c946c4b70","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.5.1.tgz","fileCount":144,"integrity":"sha512-PF0NS0Slw1fKV6P0bXG0AF8TqtlKdHs2JwZE5I2wOfzVp2q/UbM9zzos0Q5FqqYXZ4LHZCm1EZOxkOC4lFh2zg==","signatures":[{"sig":"MEMCIGHgSFsY/UQxArrCvThX3w3PoMMkQ9tzHnmXIUrN7HI5Ah80qjPWgWgpyxLIfxN1lEJzKG69cOWLTF++z7P/q8EF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICsOqiqXJxLDB07cGcki5+OY6VjVLYZKKHWBbjlziqfRAiEArbgpgYFe4ViT9NiP5pyARbbjTevQ9ygnqd8Cy3qWGBo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":707982},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"c41d6762e543e86efbdc9e4eb94577dad4cd92c0","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.23.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.128.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.5.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.5.1_1790346876640_0.6273372755404596","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"mohdel","version":"1.6.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@1.6.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"d9dc3382a2d0da3bfabdfbc716ba56dc65bf0c1d","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-1.6.0.tgz","fileCount":144,"integrity":"sha512-tOT1rrxmA0zZlO2cIyc+2rUwwu/rCO4nE1ptX+2uUfKhnQXNlEgSpZKn6srlPGcOgxQlgpoAijMQSPnmP9kcSw==","signatures":[{"sig":"MEUCIQCOnoSuLzP8n60oy+vCSlRskjyJpKLWtMvDzf7hxgGLeQIgXbM6wcDLirWHW/Koovw9MgVZ6f5upyMyNBq6LJHwS/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDk7aV0UGPMlzW/KuKnAW3L2upbsEKOEmo9Zd+Xpga3/QIgPEvHS6kFB4A9qBNzZHUMjFRYKMS0Pj+snwlHPZDw+LU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":709043},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"fa4b4a9cbb84c877f7aabd2a8bd7b90552b5b91a","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.23.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.128.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"1.6.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_1.6.0_1790354558308_0.6380240639418218","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"mohdel","version":"2.0.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@2.0.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"c5b78146b7d1ec4e3d874a79519ad9800f89f36c","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-2.0.0.tgz","fileCount":144,"integrity":"sha512-S/2l7RPkNy7zrd4JVdgCXTbLheldLf8wHChGRwX5N0pnXkEMwQ+t20T2/AN+Dj1BItUTPkHxW25GE2E8q6bGCQ==","signatures":[{"sig":"MEQCICuzdJbKU05POluU8UfFdoYf1BMScSDpZ3Zpeg1saAvfAiAvzamS7VXRv9r1FneF+Im0gzTru/OBknktz6HVpM+N/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFtRpDsC18MrUS4dY49oa2vgb7pXf8FbQVNwkD7B9i8hAiEAs7KQ8nNfZ8Xxhw1zr2nP2rcT3hA1JRDW41/DVC3YLW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":709043},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"a251b5ec8407502e4a42def22e4e643f4cbab489","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.23.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.128.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"2.0.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_2.0.0_1790407734029_0.7311750301230586","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"mohdel","version":"3.0.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@3.0.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"9bfd66e528a44d622247dac1ee1bd95c61e40408","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-3.0.0.tgz","fileCount":144,"integrity":"sha512-Zk/bTuJeoFV1CHdB7hj7PQtMTfBoOWzv8oOgmsNptfsCJ3nRwbTBkQWfvoYHgf4GiyfENtErfyNOiqs1ZVG7dg==","signatures":[{"sig":"MEUCIQCgbO31R+A6kvLYR5vq5W0EEaWgTi30jKf2Y/zMEIKglgIgQZYbObEH/4AwX7KWnzHuoRgNo00rgYFFEwIKj8NjHys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDbR4+BA7Gqt07PfzSUKMcLQr+nRapeCHQalas+aCuM8wIhAKtHFPfXPLAfy744RsrOjzx/mjPnk/frbgjeRqp/RJr7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":710198},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"de2f2b2a4ff4da1a8412108bf830b44136b5bb81","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.23.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.128.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"3.0.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_3.0.0_1790442007707_0.18212013624416246","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"mohdel","version":"3.1.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@3.1.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"4b9291b8447f27d19fd0d55077c1f79a2f7cb8e5","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-3.1.0.tgz","fileCount":144,"integrity":"sha512-y8bCDjldTnFpD8SxF+9/2sL5jRfRhLF4VufuC+Nx7YPJafzNQSvoVZXZe329PTZXn18NnKVkxlo+ET/u6FFrtg==","signatures":[{"sig":"MEUCIQDQKclmDvBoME2gwvpE1hwyDTJIai/Sd0Z7/9zO7ch55wIgVI359KYR4pxEBIxUJQ/NrgHK6DFrf2TBfr5ZMbY5Jgg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBuVYvWRow5b4ydGqlB70MSDGDDkishAWjFUChBQAxooAiBBr3dp4zPgf/+lVWYWhOV/NW4E3iPjrXLSLcVjO4aISQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":710289},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"0f2d97bf4c41e1e31fd0f0f9fd55311f8eed37c5","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 13 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.23.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.128.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.5.1","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.0","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"3.1.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_3.1.0_1790450398998_0.6525737759653414","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"mohdel","version":"3.2.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@3.2.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"1e236d996c2de4f50b67f5fd8d5598d8ef21223e","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-3.2.0.tgz","fileCount":145,"integrity":"sha512-mX52AoXZBrfq0OJCQOYpSCCNAo7yTmpaYbLJ75z6TzhT9FP9MvfVocEtM20mDq67jb+QAP+CXu/Zur9wfPN7Kw==","signatures":[{"sig":"MEQCIEWBZCH3tAq4vFvD8N4B4aDiZ07CdhwWGxNPj5Wz1rRIAiAoPfrKgF18E1bOcw730hLm9ZbwJfAeZCFUYusglny2qQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDuuu6SygwZR7l/FeNYNQ27jq036VDcZ7YiH+otAg+EtAIhAIXo+Hbu1qJnOZMcOleGofLm1nFbMhAMeLtDGiCIejtK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":712911},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"fe6b1d9dd40f95a78dfccda0cebfd088a3c08aa8","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 14 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.23.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.129.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.6.0","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.1","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"3.2.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_3.2.0_1790698518116_0.21127414129596245","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"mohdel","version":"3.3.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@3.3.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"d669d67c11f06cbf2a426f1fdb8cca77b49adfb1","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-3.3.0.tgz","fileCount":146,"integrity":"sha512-gKqbnasyppZ0Ns0WraQBA1URJ/2TdKOiohWjdqTIRwosfA7mQKiXpcQtv7j7C2a5yddpkQpYaMWmVG68xqlfSQ==","signatures":[{"sig":"MEQCIAKXljArp7Nnal9f802IvigvB/NixbcWQP1pVNYVun6CAiAvytI25xl3w0IwJzTgqlqgTB3N9NNeoEGta2wd5eJJ3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDvuXWXFYZZUYDa24GvZJDA/hk+aCStyQaVGELqzXinuAiAgQJtkm+SjJp694a/zHeQZrSxUGiEqB4ZMazlhxBYDSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":717956},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"74aeca16ee603569c3d10ba7136dada325c0d956","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 14 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.23.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.129.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.6.0","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.1","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"3.3.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_3.3.0_1790710568503_0.4904897755945772","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"mohdel","version":"3.4.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@3.4.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"a880a5487c6ebabf0af1f9b562106a5a5e251413","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-3.4.0.tgz","fileCount":146,"integrity":"sha512-sWBTke45VNPaExul5mg1iPxDZrA8+RUktcg1S5ErQVsXQ1lxMM8YS26WamMyLM0h05oUfSrLayBHxu9PmiUdJw==","signatures":[{"sig":"MEQCICIPD5W3dmMj6IPymAwOrsUHGW4AE70sZZdXIybTNG1hAiAevBZYuMIPo2sPGiapNw6UiM/WTq8wnk9ypzwT1oYmpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGlIMys9YfJjJqPikW4mkj8evbMePEjrPB4h45GWUd5vAiAyeEr4EvB2c8IvKmZwUxPJ5hu3tXAIG31ABhpoP9f94A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@3.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":718061},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"ef37d3217662a9e71d68a2135f43e3e8ff705c40","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 14 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.23.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.129.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.6.0","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.1","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"3.4.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_3.4.0_1790713254822_0.19204596654414807","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"mohdel","version":"3.5.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@3.5.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"8de5e052ba25b700e3a3ea0283bb37784bf7c0c2","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-3.5.0.tgz","fileCount":152,"integrity":"sha512-mukAojb8rSKug0iFEdr6LaiqWz0E/6XEYD6lweavjV09vxLx15nI/TABxEbsO7lClzLP0cnmnItXzX8OPeTWug==","signatures":[{"sig":"MEQCIF880JIa7CUv2U2e/k+2C5lEcyYCPIotTh1VB1YDednVAiBD6UuIj055PynssTTN1MCoQ5zTwJCV617r1nxfguBWoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD3Zx8H6K4AxuOptoehtEYeoA5H4dxPTxV79yV0uIH4qQIhAJsRGWBorCjfkwZoK6boc36iHilouz1TggicqQzBdO/J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@3.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":741491},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./chatgpt":{"types":"./js/chatgpt/index.d.ts","default":"./js/chatgpt/index.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"e4cd2fbbbb2529ba52645066ce484944effca3e4","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 15 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.2","dependencies":{"jose":"^6.2.12","openai":"^7.25.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.129.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.6.0","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.1","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"3.5.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_3.5.0_1790730172374_0.22707203152844135","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"mohdel","version":"3.6.0","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@3.6.0","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"d56d2fab05b9a62281ab1c4d6e49ae70279a52ec","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-3.6.0.tgz","fileCount":153,"integrity":"sha512-onGyuf7S9Sg9lwux3wJOD7WJd8GdQGUgeMYa/vXr4Wh3y9x35SzFCtaAGEkW7C/LV/4jH3AZdFyJy1Yfk8lLJg==","signatures":[{"sig":"MEYCIQDziuvabTsmmZLLZLg1b6DXUrOOyHf1rDPudyzrIGW1fQIhAM7vvuuKl75U64u5HV9U36qSeaTogf//1dHTGLAClz3g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDzQcy7/79/WQK9JEHKP0PEyZykOjh5CIlg1hD8QYDIswIgC2Cpja5avvdSObNoaOKYVHvbnoZW5fiii6Haib7CSQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@3.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":743460},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./chatgpt":{"types":"./js/chatgpt/index.d.ts","default":"./js/chatgpt/index.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./chatgpt/bin":{"types":"./js/chatgpt/bin.d.ts","default":"./js/chatgpt/bin.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"ea446eadc6c85c01f241a6d6165082572fd5a991","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 15 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.3","dependencies":{"jose":"^6.2.12","openai":"^7.25.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.129.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.6.0","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.1","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"3.6.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_3.6.0_1790755700133_0.894873850161316","host":"s3://npm-registry-packages-npm-production"}},"3.6.1":{"name":"mohdel","version":"3.6.1","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","_id":"mohdel@3.6.1","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"homepage":"https://github.com/clbrge/mohdel#readme","bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"bin":{"mo":"src/cli/index.js"},"dist":{"shasum":"0067e368ba6b41b5365fdcda26eaad7d5e0124d5","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-3.6.1.tgz","fileCount":153,"integrity":"sha512-hKDx2qg+VHJFyTpER/PUOnaerNcIkMayOqjN/IQtw0FJPydyYK09wtS8FlOjW9j0ROLHJJzl1xvT/UMFOdvrFA==","signatures":[{"sig":"MEUCIQCFFg3cItE7+jvxTC0S6ENx3yBKJTlUbXx7OH54zjwLqAIgNNIHqo0Md55Qia5jf4uoHNZSupjfJ3F9ntgD+wypK4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDTGZvDdBQ9rxnzDfqJ6MABPrZj2onASMnA8N5ClIjTPwIhANKOCAwGAaZD9Zy2CG3XHbOnvc5cuoEY12+HAQP5V/2t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@3.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":745358},"main":"src/lib/index.js","type":"module","types":"./src/lib/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./chatgpt":{"types":"./js/chatgpt/index.d.ts","default":"./js/chatgpt/index.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./chatgpt/bin":{"types":"./js/chatgpt/bin.d.ts","default":"./js/chatgpt/bin.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"2d5b0d470a09e00d611ec52c5e36f8116c5bd90c","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"1834c22a-414a-462e-ad62-a525b95010ba"}},"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 15 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"_nodeVersion":"22.23.3","dependencies":{"jose":"^6.2.12","openai":"^7.25.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.129.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.6.0","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.1","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"3.6.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"tmp":"tmp/mohdel_3.6.1_1790766769939_0.37803497789410945","host":"s3://npm-registry-packages-npm-production"}},"3.7.0":{"_id":"mohdel@3.7.0","bin":{"mo":"src/cli/index.js"},"bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"dist":{"shasum":"484849cc9936c08f08f7b2a9fbc550de2b81db0e","tarball":"https://registry.npmjs.org/mohdel/-/mohdel-3.7.0.tgz","fileCount":153,"integrity":"sha512-DN5VCj17+ouPU3WZszAnLfwLypCL0yDYffrSgC64k3ZuM7mmzmVGL9UkFXQ/FxQLA8qQ5MGuhQhRCUvisR9qNQ==","signatures":[{"sig":"MEYCIQDZKlnTgT5bsZL3Wx2Sw1pwmv6Z9Spr/aSQGk6Z13BoTQIhALx+KXEhqirtFGRG3CiVtD6/vz/sMu0Gd/mvAq0Reiz4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEsC7HXsSo5fRkq5yEM3C3vhy0Xuy7xoEH6cbihcs6F3AiEAw2Nh1xUMm6cEWunkFC7MjiSr85O+5jnl2r2p0jB1v78="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mohdel@3.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":748470},"main":"src/lib/index.js","name":"mohdel","type":"module","types":"./src/lib/index.d.ts","author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"engines":{"node":">=22"},"exports":{".":{"types":"./src/lib/index.d.ts","default":"./src/lib/index.js"},"./utils":{"types":"./src/lib/utils.d.ts","default":"./src/lib/utils.js"},"./client":{"types":"./js/client/index.d.ts","default":"./js/client/index.js"},"./errors":{"types":"./js/core/errors.d.ts","default":"./js/core/errors.js"},"./chatgpt":{"types":"./js/chatgpt/index.d.ts","default":"./js/chatgpt/index.js"},"./session":{"types":"./js/session/index.d.ts","default":"./js/session/index.js"},"./creators":{"types":"./src/lib/creators.d.ts","default":"./src/lib/creators.js"},"./providers":{"types":"./src/lib/providers.d.ts","default":"./src/lib/providers.js"},"./chatgpt/bin":{"types":"./js/chatgpt/bin.d.ts","default":"./js/chatgpt/bin.js"},"./session/bin":{"types":"./js/session/bin.d.ts","default":"./js/session/bin.js"}},"gitHead":"abc6bd4f7c7bf70d1863b1c7d7bf589079e2e3e6","imports":{"#core":"./js/core/index.js","#core/*":"./js/core/*"},"license":"MIT","scripts":{"lint":"standard","test":"npm run test:js && npm run test:rust","release":"release-it","test:js":"vitest run test/unit","test:live":"vitest run test/live","test:rust":"cargo test --manifest-path rust/thin-gate/Cargo.toml && cargo test --manifest-path rust/napi-addon/Cargo.toml","prerelease":"npm run lint && npm run build:types && npm run test","build:types":"npm run clean:types && tsc -p tsconfig.build.json","clean:types":"find js src/lib -name '*.d.ts' -delete","test:vision":"vitest run test/integration/vision.test.js","test:provider":"vitest run test/integration/provider.test.js","test:multiturn":"vitest run test/integration/multiturn.test.js","test:vision:catalog":"vitest run test/integration/vision-catalog.test.js"},"version":"3.7.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"1834c22a-414a-462e-ad62-a525b95010ba"}},"homepage":"https://github.com/clbrge/mohdel#readme","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"release-it":{"git":{"push":true,"tagName":"v${version}","commitMessage":"release: v${version}","requireUpstream":false},"npm":{"publish":false},"hooks":{"after:bump":"node scripts/sync-version.js && npm install --package-lock-only --ignore-scripts && cargo update --workspace","before:bump":"grep -q '^## \\[${version}\\]' CHANGELOG.md || (echo 'CHANGELOG.md is missing a ## [${version}] section — add it before releasing.' >&2 && exit 1)"},"github":{"release":true,"releaseName":"mohdel v${version}","releaseNotes":"awk '/^## \\[${version}\\]/{flag=1;next}/^## \\[/{flag=0}flag' CHANGELOG.md"}},"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"_npmVersion":"11.20.0","description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 15 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","directories":{},"lint-staged":{"*.{js,cjs}":"standard"},"maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"_nodeVersion":"22.23.2","dependencies":{"jose":"^6.2.12","openai":"^7.25.0","undici":"^7.29.0","groq-sdk":"^1.6.0","env-paths":"^4.0.0","@google/genai":"^2.24.0","@clack/prompts":"^1.8.1","@anthropic-ai/sdk":"^0.129.0","@opentelemetry/api":"^1.9.1","@cerebras/cerebras_cloud_sdk":"^1.91.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","standard":"^17.1.2","release-it":"^21.0.3","typescript":"^7.0.2","lint-staged":"^17.6.0","gpt-tokenizer":"^4.0.0"},"optionalDependencies":{"chalk":"^6.0.1","@opentelemetry/sdk-node":"^0.222.0","mohdel-thin-gate-linux-x64-gnu":"3.7.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.222.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mohdel_3.7.0_1790772505124_0.05301310439522977"}}},"time":{"created":"2026-04-22T05:54:02.070Z","modified":"2026-09-30T12:48:25.757Z","0.90.0":"2026-04-22T05:54:02.315Z","0.91.0":"2026-04-23T08:40:36.555Z","0.92.0":"2026-04-23T20:01:12.314Z","0.93.0":"2026-04-24T05:31:05.250Z","0.94.0":"2026-04-24T10:39:40.358Z","0.95.0":"2026-04-24T12:56:49.324Z","0.96.0":"2026-04-24T13:25:25.451Z","0.97.0":"2026-04-25T21:52:21.774Z","0.97.1":"2026-04-25T21:58:19.978Z","0.98.0":"2026-04-28T16:31:00.816Z","0.98.1":"2026-04-28T19:14:30.790Z","0.98.2":"2026-04-30T13:15:20.381Z","0.99.0":"2026-04-30T16:22:19.919Z","0.100.0":"2026-05-01T17:44:11.734Z","0.101.0":"2026-05-02T08:58:19.237Z","0.102.0":"2026-05-08T14:54:24.232Z","0.103.0":"2026-05-09T13:15:28.987Z","0.104.0":"2026-05-09T17:11:38.006Z","0.104.1":"2026-05-09T17:37:39.204Z","0.104.2":"2026-05-09T18:11:54.839Z","0.104.3":"2026-05-09T19:11:39.181Z","0.104.4":"2026-05-10T09:10:31.484Z","0.105.0":"2026-05-13T09:06:55.224Z","0.105.1":"2026-05-13T09:30:43.361Z","0.105.2":"2026-05-13T11:04:07.024Z","0.106.0":"2026-05-13T16:31:20.309Z","0.107.0":"2026-05-15T15:13:30.720Z","0.108.2":"2026-05-22T13:35:02.415Z","0.109.0":"2026-06-05T09:37:30.095Z","0.110.0":"2026-06-09T09:01:34.224Z","0.111.0":"2026-06-10T10:27:10.750Z","0.112.0":"2026-06-10T12:28:39.787Z","0.113.0":"2026-06-13T06:33:19.643Z","0.114.0":"2026-06-14T11:51:19.297Z","0.114.1":"2026-06-19T12:54:38.228Z","0.115.0":"2026-07-08T10:38:26.477Z","0.116.1":"2026-07-10T07:26:26.452Z","0.117.0":"2026-07-17T17:56:12.274Z","0.117.1":"2026-07-17T19:15:05.374Z","0.117.2":"2026-07-22T12:04:44.507Z","0.117.3":"2026-07-25T11:03:21.551Z","0.118.0":"2026-08-07T06:47:51.413Z","0.119.0":"2026-08-07T12:21:20.137Z","0.120.0":"2026-08-14T16:00:36.393Z","0.121.0":"2026-08-14T17:23:11.402Z","0.121.1":"2026-08-20T18:04:35.283Z","0.121.2":"2026-09-01T08:26:19.533Z","0.122.0":"2026-09-01T14:10:22.926Z","0.123.0":"2026-09-01T19:12:27.052Z","0.124.0":"2026-09-02T08:46:44.930Z","0.125.0":"2026-09-03T15:55:10.934Z","1.0.0":"2026-09-11T17:15:13.052Z","1.0.1":"2026-09-12T04:49:51.763Z","1.0.2":"2026-09-12T05:08:09.685Z","1.0.3":"2026-09-14T11:27:10.383Z","1.1.0":"2026-09-14T14:28:26.373Z","1.2.0":"2026-09-15T16:10:29.899Z","1.3.0":"2026-09-17T06:44:55.923Z","1.3.1":"2026-09-17T07:04:42.111Z","1.3.2":"2026-09-17T08:02:21.917Z","1.4.0":"2026-09-23T04:28:55.658Z","1.5.0":"2026-09-25T11:52:40.960Z","1.5.1":"2026-09-25T14:34:36.741Z","1.6.0":"2026-09-25T16:42:38.403Z","2.0.0":"2026-09-26T07:28:54.119Z","3.0.0":"2026-09-26T17:00:07.810Z","3.1.0":"2026-09-26T19:19:59.083Z","3.2.0":"2026-09-29T16:15:18.384Z","3.3.0":"2026-09-29T19:36:08.591Z","3.4.0":"2026-09-29T20:20:54.912Z","3.5.0":"2026-09-30T01:02:52.477Z","3.6.0":"2026-09-30T08:08:20.231Z","3.6.1":"2026-09-30T11:12:50.039Z","3.7.0":"2026-09-30T12:48:25.239Z"},"bugs":{"url":"https://github.com/clbrge/mohdel/issues"},"author":{"name":"Christophe Le Bars","email":"clb@toort.net"},"license":"MIT","homepage":"https://github.com/clbrge/mohdel#readme","keywords":["llm","llm-gateway","ai-gateway","ai-sdk","openai","anthropic","claude","gemini","mistral","groq","deepseek","openrouter","streaming","tool-calling","token-cost","rate-limiting","opentelemetry","self-hosted","cli"],"repository":{"url":"git+https://github.com/clbrge/mohdel.git","type":"git"},"description":"Self-hosted LLM gateway and SDK for Node — a LiteLLM-style unified API for 15 providers (Anthropic, OpenAI, Gemini, Mistral, Groq, xAI, DeepSeek, OpenRouter, …) with per-call USD cost tracking, streaming, tool calls, vision, speech-to-text, and built-in O","maintainers":[{"name":"clbrge","email":"clb@toort.net"}],"readme":"# Mohdel\n\nSelf-hosted LLM gateway and SDK for Node — think LiteLLM, for the JS world. One `answer()` call for 15 providers or local inference; swap models by changing one string; get real per-call USD cost back on every result, with OpenTelemetry built in and process isolation when you need it. Your keys, your infra, no SaaS proxy in the path.\n\n```bash\nnpm install -g mohdel\nmo                                       # pick a provider, paste your key, pull its models\nmo model instructions openai > mohdel-brief.md  # prices live on a docs page — hand it to your agent\nmo ask openai/gpt-5.6-luna \"why is the sky blue\"\n```\n\nAlmost no provider API returns prices, context limits or thinking budgets.\nThey live on a docs page, so mohdel writes a brief and the coding agent you\nalready run reads the page and drafts the entries. `mo` offers this at the end\nof setup. Nothing runs on your key but that agent.\n\n**No coding agent?** OpenRouter and Novita publish per-token prices in their\nown model lists, so mohdel reads them directly. `mo curate openrouter` or `mo\ncurate novita` writes complete, priced entries on its own, and setup counts the\nmodels that cost nothing and offers to add all of them in one keystroke. A\nworking catalog without a pricing page or a brief.\n\nProviders: Anthropic, OpenAI, ChatGPT, Gemini, Mistral, Groq, xAI, Cerebras, Fireworks, DeepSeek, Qwen Cloud, Xiaomi, Meta Model API, OpenRouter, Novita. Node 22+, ES modules.\n\n### Using a ChatGPT subscription\n\n```bash\nmo chatgpt login              # open the printed URL in your browser\nmo chatgpt models             # account-specific models, discovered from OpenAI\nmo model curate chatgpt       # choose models to add to the local catalog\nmo ask chatgpt/<model-slug> \"Hello\"\n```\n\n`chatgpt/` uses OAuth and an eligible ChatGPT plan. It always streams through\nthe public Responses API with `store: false`. `openai/` continues using API\nbilling. Token counts are reported for both; ChatGPT's `cost: 0` means no\nper-call API charge is calculated, not unlimited or free plan usage. Manage\nallowance and credits with `mo chatgpt usage`.\n\nUse `mo chatgpt list`, `select <account-id>`, `login --new`, and\n`logout [account-id]` to manage accounts. Credentials live in Mohdel's user\ndata directory (`~/.local/share/mohdel/chatgpt/` on Linux), with owner-only\nfiles and serialized token refresh. They are separate from the catalog.\n`mo chatgpt login <account-id>` reuses a saved registration after sign-out\nor a failed code exchange. ChatGPT lists each registration by name: a new one\nis `Mohdel (<hostname>)`, or the label from `mo chatgpt login --name <label>`\nif you'd rather not send the hostname. The name is fixed when the registration\nis made, and `mo chatgpt list` shows it next to the account id. If a crashed process leaves `accounts.lock`,\nconfirm its recorded PID has exited before removing that lock.\n\nThis OpenAI flow is intended for open-source and personal local tools;\npaid or remotely hosted offerings require OpenAI's private-app acceptance.\nSee [OpenAI's guide](https://developers.openai.com/cookbook/articles/sign-in-with-chatgpt)\nand [library/gate integration](INTEGRATION.md#chatgpt-plan-access).\n\nMohdel runs the inference layer of production stacks, among them [docAnalyzer](https://docanalyzer.ai), a document analysis and chat platform serving hundreds of thousands of users.\n\n## Why mohdel\n\n- **Real numbers on every call.** Token counts and per-call USD cost computed from your own pricing catalog (`curated.json`) — not estimates, not provider-specific shapes. Bill tenants, alert on spend, reconcile invoices. Your own catalog means your negotiated rates and your own tags, and it is not a spreadsheet you maintain: `mo model instructions` hands the provider's docs page to your coding agent, which drafts the entries for you to review. See [docs/CATALOG.md](docs/CATALOG.md).\n- **One interface across providers.** Same `answer()` call, same event stream, same `{ status, output, inputTokens, outputTokens, cost }` result. Switching from `anthropic/claude-sonnet-5-5` to `openai/gpt-5.4-mini` is one string change — adapter differences stay inside mohdel.\n- **Self-hosted, no vendor in the path.** API keys live in `~/.config/mohdel/`. Mohdel calls provider APIs directly; nothing routes through a third party, nothing marks up your tokens, no extra hop of availability risk.\n- **Inference without tool execution.** Mohdel returns model output and tool calls for your harness to handle. Optional ChatGPT sign-in uses a temporary loopback listener and a protected local credential store. See [Attack surface](#attack-surface).\n- **Observability without instrumentation.** OpenTelemetry spans, trace-linked logs, and OTLP metrics over one endpoint. Set `OTEL_EXPORTER_OTLP_ENDPOINT`; everything else is wired.\n- **Fully typed.** Declarations are generated from the source's own JSDoc and ship with the package — `CallEnvelope`, `Event`, `AnswerResult` and `MohdelError` are the frozen wire contract, typed as such. No `@types` package, no separate TypeScript build to keep in sync.\n- **Two integration paths, same API.** In-process factory for CLI tools, scripts, single-process services. Optional `thin-gate` subprocess for fault isolation, cross-process quota, and any-language HTTP callers — no code change to switch.\n\n## How it compares\n\n**LiteLLM** is the closest analog but lives in Python. **Vercel AI SDK** is an\napplication toolkit, not an infra layer. **OpenRouter** is the same one-API\npromise as a SaaS in your request path. **Raw provider SDKs** are N different\nshapes with no cost accounting.\n\n|  | mohdel | LiteLLM | Vercel AI SDK | OpenRouter | Raw SDKs |\n|---|---|---|---|---|---|\n| Runs in a Node stack natively | yes | Python service | yes | n/a (SaaS) | yes |\n| Per-call USD cost on the result | yes | yes | no | yes | no |\n| Self-hosted, keys never leave your infra | yes | yes | yes | no | yes |\n| Provider-SDK process isolation | yes (thin-gate) | proxy only | no | n/a | no |\n| OTel spans + metrics out of the box | yes | via callbacks | no | no | no |\n| UI streaming helpers, structured output, agents | no | no | yes | no | varies |\n\n- **vs LiteLLM** — same core promise (unified calls, cost tracking,\n  self-hosted gateway), but Node-native: if your stack is JS, there's no\n  Python sidecar to deploy, version, and monitor. LiteLLM's proxy exposes an\n  OpenAI-compatible endpoint and admin features (virtual keys, budgets);\n  thin-gate speaks its own [wire protocol](PROTOCOL.md), so callers use the JS\n  client or implement the protocol. LiteLLM also ships a central price map you\n  inherit, where mohdel has you keep your own — your negotiated rates,\n  per-model tuning and the tags your code selects on, authored by a coding\n  agent from a brief.\n- **vs Vercel AI SDK** — a different layer. The AI SDK is an application\n  toolkit (UI streaming, structured outputs, agent loops) with no per-call\n  cost, no gateway, no process isolation. It sits above mohdel, which is the\n  inference primitive underneath.\n- **vs OpenRouter** — the self-hosted version of the same idea. With a SaaS\n  router you accept their uptime, their markup, and your prompts transiting\n  their infra. Mohdel goes direct to providers with your keys — and ships an\n  `openrouter` adapter for when you want both.\n- **vs raw provider SDKs** — mohdel's envelope is flat and close to the SDKs\n  underneath, and `cost` / `tokens` come back normalized, so there are not five\n  usage shapes to parse.\n\n## Documentation\n\n- [INTEGRATION.md](INTEGRATION.md) — JS library guide (factory, client, answer options, tools, streaming, vision, transcription, errors, OTel)\n- [docs/COOKBOOK.md](docs/COOKBOOK.md) — copy-paste recipes (summarize a file, stream, swap providers, tools, vision, batch + cost)\n- [docs/CATALOG.md](docs/CATALOG.md) — `curated.json` walkthrough with worked examples\n- [docs/GLOSSARY.md](docs/GLOSSARY.md) — short definitions for envelope, thin-gate, session, creator vs provider, status, …\n- [ARCHITECTURE.md](ARCHITECTURE.md) — design rationale, three-plane architecture\n- [PROTOCOL.md](PROTOCOL.md) — wire format for porting clients/sessions to other languages\n- [LOGGING.md](LOGGING.md) — log levels, prefixes, pino integration\n\n## Quick Start\n\nInstall, run `mo` to pick a provider and paste your API key, then `mo ask`. Gemini, Groq, Mistral and OpenRouter all have free tiers that need no card, and `mo` lists them first if you have no paid key set.\n\n`cost` stays `0` until the catalog carries prices. `mo` pulls the provider's model list, but that list carries ids, not prices. `mo model instructions <provider>` writes a brief carrying the field reference, the provider's own pricing and rate-limit links, and the commands that verify a draft; hand it to the coding agent you already run:\n\n```bash\nmo model instructions openai > mohdel-brief.md\nclaude \"read mohdel-brief.md, then add gpt-5.6-luna to my mohdel catalog\"\n```\n\nThe agent drafts `mohdel-candidate.json` and loops on `mo model check --entry mohdel-candidate.json` until it reports no errors. You run `mo model apply mohdel-candidate.json`, which prints the full diff — including any field the draft would remove — before writing anything. Entries carry `source` and `sourcedAt`, so a price can be traced back to the page it came from.\n\nBy hand: `mo curate <provider>` with the worked entries in [`config/curated.example.json`](config/curated.example.json), and `mo model set <id> <key> <value>` a field at a time.\n\nModel IDs always use the `<provider>/<model>` format:\n\n```\nopenai/gpt-5.6-luna\nanthropic/claude-sonnet-5-5\nopenai/gpt-5.4-mini\ngroq/llama-4-scout-17b-16e-instruct\n```\n\n## Attack surface\n\nAnthropic's 2026 threat report describes actors compromising LLM wrapper\nservices through prompt injection, exfiltrating the production API keys held\nin their cloud containers. That attack needs two things: keys sitting where a\nprocess can read them, and a component that injected content can steer into\nreading them. Mohdel is built so neither is present.\n\n- **Nothing executes.** No `eval`, no `new Function`, no `child_process`\n  anywhere in the session, factory or library, and no automatic tool loop. A\n  prompt-injected response cannot make mohdel read a file, run a shell, or make\n  a call of its own. Tool execution belongs to the caller, in the caller's\n  process.\n- **Gate listeners use unix sockets.** `thin-gate` binds **unix sockets**, not TCP, for\n  both its data and admin planes, and chmods them `0600` — the default umask\n  would otherwise leave them world-connectable. ChatGPT sign-in separately\n  starts a temporary HTTP callback listener on `127.0.0.1` with PKCE and state validation.\n- **Session credentials come from the caller.** The provider credential rides\n  on each envelope and goes to the SDK. Optional ChatGPT sign-in saves OAuth\n  credentials in the caller's user-data directory. The standalone gate and its\n  sessions never read that store. Only an embedder that opts into `ChatGptAuth`\n  reads it, through mohdel's helper.\n- **The session subprocess starts from an empty environment.** It is given\n  back only what the runtime reads — `PATH`, proxy and TLS settings, mohdel's\n  own dials, `OTEL_*`. Every `*_API_SK`, cloud credential and database URL the\n  host happens to hold is dropped at the process boundary. The session gets\n  its key from the envelope, so it has no reason to see any other.\n- **Keys are scrubbed and wiped.** Provider error text has the key removed\n  before it reaches `detail`, so a 401 body cannot carry your credential into\n  your logs. In Rust, envelope bytes are zeroized after each call.\n\nWhat this does **not** cover: if you run an agent loop, injection can still\nbite there — mohdel moves that risk into your process rather than removing it.\nAnd `mo` does keep keys on disk in `~/.config/mohdel/environment` (mode\n`0600`), which is a key store, for a developer machine.\n\nReport a vulnerability per [SECURITY.md](SECURITY.md).\n\n## What mohdel is not\n\nFor any of the following, mohdel is the wrong layer. Use it alongside a framework that does them, not instead of one.\n\n- **Not an orchestrator.** No chains, no agents, no memory, no prompt templates, no retrieval. Wrap mohdel with LangChain, LangGraph, LlamaIndex, Vercel AI SDK, or your own tool loop — mohdel exposes the inference primitive, orchestration stays in your application.\n- **Not a retry / fallback engine.** Errors are classified (`retryable`, `severity`, `type`) for the caller to decide on. Mohdel never retries and never swaps models; the retry budget and the fallback choice are the caller's.\n- **Not a response cache.** The `cache: true` flag on envelopes is for provider-side prompt caching (Anthropic, OpenAI), not mohdel-level memoization of results.\n- **Not a context-window / token manager.** No pre-call token count, no projected-cost guard. The caller owns what goes in the prompt and is the source of truth for what counts.\n- **Not a SaaS proxy.** Self-hosted. Your API keys, your infra. No routing through a third party, no vendor lock-in.\n- **Not an AI wrapper.** `mo model instructions` prints a brief — text. It drives no model, ships no prompts, and spends nothing. The agent that reads it is one you already run, on your own tokens, and it never writes your catalog: `mo model apply` shows you the diff and waits.\n\nSee [ARCHITECTURE.md §Design principles](ARCHITECTURE.md#design-principles) for the full rationale behind each.\n\n## CLI\n\n```bash\n# One-shot inference — pipeable\nmo ask anthropic/claude-sonnet-5-5 \"explain monads\"\ncat article.txt | mo ask openai/gpt-5.4 \"summarize in 3 bullets\"\necho \"hello\" | mo ask openai/gpt-5.6-luna --json | jq .cost\nmo ask openai/gpt-5.6-luna -q \"…\" 2>err.log   # stderr carries failures only\n\n# Streaming\nmo ask anthropic/claude-sonnet-5-5 --stream \"write a haiku about recursion\"\n\n# With thinking effort\nmo ask anthropic/claude-opus-5-5 --effort high \"prove P != NP\"\n\n# On a faster service lane, when the model sells one\nmo ask openai/gpt-5.6-luna@fast \"triage this alert\"\n\n# Speech → text from an audio file\nmo transcribe groq/whisper-large-v3-turbo meeting.mp3\nmo transcribe mistral/voxtral-mini-transcribe interview.wav --language fr\n\n# Browse the model catalog\nmo ls                                  # list all curated models\nmo ls --sort price                     # sorted by input price\nmo search sonnet                       # filter by name/label\nmo show anthropic/claude-sonnet-5-5    # model details\nmo stats                               # catalog summary\nmo providers                           # providers with key status & rate limits\n\n# Rank models by benchmarks\nmo rank                                # curated models, balanced weights\nmo rank --use-case tool-loop           # weighted for tool reliability\nmo rank --json                         # machine-readable\n\n# Manage the catalog\nmo curate anthropic                    # add new models from a provider\nmo setup anthropic                     # configure API key\nmo model add fireworks/deepseek-r1     # add a model manually\nmo model set <model> <key> <value>     # set any field on a model\nmo model rm <model> <key>              # remove a field\nmo check                               # validate the catalog\n\n# Let a coding agent write the entry\nmo model instructions anthropic        # brief: fields, doc links, review commands\nmo model check --entry mohdel-candidate.json  # validate + diff, no write\nmo model apply mohdel-candidate.json          # write, after showing the diff\n\n# Copy entries to another host\nmo model export meta/muse-spark-1.3 | ssh host mo model check --entry -     # preview there\nmo model export meta/muse-spark-1.3 | ssh host mo model apply - --yes       # write; remote backup is the undo\n\n# Rate limits\nmo rl show anthropic                   # provider or model limits\nmo rl set anthropic/claude-sonnet-5-5 60 100000\n\n# Benchmark with live inference\nmo bench anthropic/claude-sonnet-5-5   # single model\nmo bench --tag fast --effort low       # suite by tag\n```\n\nAll list/show commands support `--json [fields]` — bare `--json` lists available fields (like `gh`).\n\n### Tab completion\n\n```bash\nsource <(mo completion bash)      # add to ~/.bashrc\n```\n\nCompletes model ids from your catalog, provider names, field names for\n`mo model set`, tags, and the commands themselves — `mo ask gemini/gemini-3.<TAB>`.\nDeprecated ids are left out: they exist so old pins keep resolving, not to be\npicked fresh. Completion reads the catalog directly and never loads the\ninference stack, so a tab press costs about 90ms rather than half a second.\n\n### Catalog entries, written by an assistant\n\nProvider APIs return model *ids*, not prices — OpenRouter alone publishes\nthem, and `mo curate openrouter` fills a catalog unaided. Everything that makes cost\naccounting work — prices, context and output limits, thinking budgets, cache\nrates — is published as prose on a docs page and changes often. `mo model\ninstructions` prints a brief that hands your coding agent the field table, the\nprovider's reference links, and a verifier it can run in a loop:\n\n```bash\nmo model instructions openai > mohdel-brief.md\n```\n\nThen start whichever agent you already run on the prompt *read mohdel-brief.md, then\nadd gpt-5.6 to my mohdel catalog*:\n\n| agent | launch |\n|---|---|\n| Claude Code | `claude \"<prompt>\"` |\n| Codex CLI | `codex \"<prompt>\"` |\n| Gemini CLI | `gemini -i \"<prompt>\"` |\n| opencode | `opencode --prompt \"<prompt>\"` |\n| Cursor CLI | `cursor-agent \"<prompt>\"` (installs as `agent` on some platforms) |\n\n`mo` asks which one you use and remembers it. It has to be able to fetch a web\npage, because that is where the prices are. Mohdel ships no agent of its own;\nClaude Code, Codex CLI and opencode all install from npm. A session, rather\nthan a one-shot, lets you settle which model you want before anything is\ndrafted. For a one-shot, pipe instead —\n`mo model instructions openai | claude -p \"add gpt-5.6 to my catalog\"`, or\n`| codex exec -`.\n\nThe agent writes `mohdel-candidate.json` and runs `mo model check --entry` until it\nreports no errors; you run `mo model apply`, which prints the full diff —\nincluding any field the candidate would remove — before writing. Entries carry\n`source` and `sourcedAt` so a price can be traced back to the page it came\nfrom. See [docs/CATALOG.md](docs/CATALOG.md#editing-with-a-coding-agent).\n\n### Copying entries to another host\n\n`mo model export <id…>` prints entries exactly as `curated.json` holds them, in the\nshape `mo model apply` reads. `--provider <p>` and `--tag <t>` select in bulk, and\n`--with-redirects` adds the deprecated stubs that point at what you export. Pipe it\nto the other host: `mo model check --entry -` there previews the diff, and\n`mo model apply - --yes` writes it. A pipe has no terminal to confirm on, so the\nremote backup (`mo model backup restore prev`) is the undo. Keys, provider-level\nlimits and `catalog.local.json` stay per host.\n\n## Library Usage\n\nTwo integration paths, same adapters underneath: start with the in-process **factory**; graduate to the cross-process **client** when you want gateway-grade isolation.\n\n### Factory — in-process (start here)\n\n```js\nimport mohdel from 'mohdel'\n\nconst mo = await mohdel()\nconst result = await mo.use('anthropic/claude-sonnet-5-5').answer('Hello')\nconsole.log(result.output, result.cost)\n```\n\nNo subprocess, no setup beyond your API key. Right for CLI tools (`mo ask`), scripts, tests, and single-process services — which is most projects. Pass an `AbortSignal` as `answer(prompt, { signal })` to abort in flight.\n\nThe factory reads the catalog from `~/.config/mohdel/curated.json` and keys from the environment, the same defaults a gate session starts from. `mohdel({ models })` replaces the catalog for the process, factory and session runtime alike, the way `set_catalog` replaces it in a gate session. `mohdel({ configurations: { openai: { apiKey } } })` overrides the key per provider.\n\n### Client — cross-process (the production gateway)\n\n```js\nimport { call } from 'mohdel/client'\n\nconst envelope = {\n  callId: 'c-1', authId: 'u-1', auth: { key: process.env.ANTHROPIC_API_SK },\n  model: 'anthropic/claude-haiku-4-5', prompt: 'Hello'\n}\n\nfor await (const ev of call(envelope, { socketPath: '/tmp/mohdel-data.sock' })) {\n  if (ev.type === 'delta') process.stdout.write(ev.delta.delta)\n  else if (ev.type === 'done') console.log('\\n→', ev.result.cost)\n}\n```\n\nSame API, but inference runs in a pooled subprocess behind the `thin-gate` supervisor (Rust): a crashing provider SDK can't take your service down, quota is enforced across processes, and non-JS callers can speak the same wire. Switching from factory to client is a configuration change, not a rewrite. See [INTEGRATION.md §Client](INTEGRATION.md#calling-from-javascript) for setup.\n\nFor the full API — initialization, alias resolution, answer options, response shape, tool use, streaming, vision, error handling, OpenTelemetry, sub-path exports — see **[INTEGRATION.md](INTEGRATION.md)**.\n\n## Observability\n\nEvery call emits:\n\n- **OpenTelemetry span** (`mohdel.session.answer`) under the caller's `traceparent`, with GenAI semantic-convention attributes (`gen_ai.request.model`, `gen_ai.system`, `gen_ai.usage.input_tokens`, `gen_ai.usage.output_tokens`) plus mohdel's own (`mohdel.status`, `mohdel.cost`, `mohdel.thinking_tokens`, `mohdel.time_to_first_token_ms`, `mohdel.cooldown` on fast-fail).\n- **Trace-linked logs** — every stderr log line carries `{traceId, spanId, callId, authId, provider, model}`. Dump logs + traces into the same collector (SigNoz, Honeycomb, Jaeger + Loki) and they're correlated for free. No per-call instrumentation code.\n- **Gate-side OTLP metrics** (when running `thin-gate`): `mohdel.sessions.{alive,respawned,spawn_failures}`, `mohdel.calls{provider,status}`, `mohdel.call.duration_ms`, `mohdel.cooldown.rejections`, `mohdel.quota.rejections`, `mohdel.policy.errors`, `mohdel.enforcer.keyspace_full{map}`. The `provider` attribute is folded to `other` for anything outside mohdel's provider set, so a caller can't mint metric series by varying the model prefix.\n\nOne endpoint for everything: set `OTEL_EXPORTER_OTLP_ENDPOINT` and spans + metrics flow to it over gRPC. No-op when unset — zero overhead for callers who aren't wired. See [INTEGRATION.md §OpenTelemetry](INTEGRATION.md#opentelemetry) and [LOGGING.md](LOGGING.md) for details.\n\nThe OTel SDK packages (`@opentelemetry/sdk-node`, `@opentelemetry/exporter-trace-otlp-grpc`) are **`optionalDependencies`** — installed by default, but `npm install --omit=optional` skips them (along with their gRPC transitive tree). If you do that and later want trace export, install them explicitly:\n\n```bash\nnpm install @opentelemetry/sdk-node @opentelemetry/exporter-trace-otlp-grpc\n```\n\n`@opentelemetry/api` stays in `dependencies` — the no-op tracer needs it regardless of whether export is wired.\n\n## Architecture\n\nMohdel splits into three planes that can be deployed independently:\n\n```\n            ┌──────────┐ unix   ┌─────────────┐  stdin/stdout  ┌──────────┐\n            │  client  │ socket │  thin-gate  │    NDJSON      │  session │  × N\n caller ──► │   (JS)   │ ─HTTP─►│   (Rust)    │ ─────────────► │   (JS)   │\n            └──────────┘        └─────────────┘                └──────────┘\n                                        │\n                                        ▼ admin plane (unix socket, HTTP)\n                                  GET /v1/health\n```\n\n- **`mohdel/client`** (JS) — thin stub that callers import. Opens a unix socket to thin-gate, sends a `CallEnvelope`, receives an async-iterable of `Event`s. Zero transitive provider-SDK imports — caller-side code stays light.\n- **`mohdel-thin-gate`** (Rust binary, prebuilt and shipped via the `mohdel-thin-gate-<platform>` npm sub-packages) — scheduler / state owner / supervisor. Binds the data-plane socket, validates the envelope, dispatches to a pooled session subprocess, relays events back, aborts gracefully on client disconnect. Binds the admin plane for `GET /v1/health`. Pushes OTLP metrics (sessions alive/respawned, calls by provider/status, call-duration histogram, cooldown / quota / policy rejections) when `OTEL_EXPORTER_OTLP_ENDPOINT` is set. Internal trait hooks (`RoutePolicy`, `QuotaPolicy`, `ConfigSource`, `CachePolicy`) make the crate testable and fork-friendly for deployments that need bespoke policy — not a published-library surface.\n- **`mohdel/session`** (JS subprocess) — provider executor. Spawned by thin-gate, reads envelopes from stdin, dispatches to the matching adapter, writes events to stdout. A napi-rs addon was scoped for hot-loop optimization but current benchmarks show per-call JS CPU is not the bottleneck; the stub stays under `rust/napi-addon/` for future reactivation.\n\n### Running thin-gate\n\n```bash\ncargo run --bin mohdel-thin-gate /tmp/mohdel-data.sock /tmp/mohdel-admin.sock /path/to/js/session/bin.js\n\n# or with a pre-built release binary:\n./target/release/mohdel-thin-gate /tmp/mohdel-data.sock /tmp/mohdel-admin.sock ./js/session/bin.js\n```\n\nPositional args are optional (data socket, admin socket, session bin). Env overrides:\n- `MOHDEL_SESSION_BIN` — path to session entrypoint (defaults to none; if unset, data plane returns synthetic events)\n- `MOHDEL_SESSION_POOL_SIZE` — pre-warmed sessions (default 2)\n- `MOHDEL_POOL_ACQUIRE_TIMEOUT_MS` — wait for a free session before `503 SESSION_POOL_BUSY` (default 30000)\n- `MOHDEL_MAX_CONNECTIONS` — concurrently served data-plane connections (default 64)\n\nWith no session-bin configured, thin-gate runs in demo mode: `POST /v1/call` returns a synthetic echo event sequence. Useful for health-checking the HTTP layer without a runtime dependency on Node.\n\n### Calling from JS\n\nThe client snippet under [Library Usage](#library-usage) above is the full surface: `call(envelope, { socketPath, signal?, headers? })` returns an async iterable of events. `headers` go with the request and with its abort, for a router in front of the gate that authenticates its callers. Pass an `AbortSignal` to abort in flight; the client posts `/v1/abort`, thin-gate forwards an abort control message to the session and reuses it on the pool, and the stream ends with the session's aborted `done`, the one the in-process path returns (status `incomplete`, warning `aborted`, the partial output and the usage reported before the cut). The envelope is the flat `answer(prompt, options)` surface plus transport metadata (`callId`, `authId`, `auth.key`, optional `traceparent`); see [`js/core/envelope.js`](js/core/envelope.js) for the full field list.\n\n### Other languages\n\nThe gate's HTTP surface is specified in [PROTOCOL.md §10](PROTOCOL.md#10-gate-http-surface-clients); `test/conformance/` holds the fixtures a client round-trips. Reference clients live under `clients/`:\n\n- **Lua** — [`clients/lua`](clients/lua): Lua 5.1+ / LuaJIT, transports over LuaSocket or `curl`. `cd clients/lua && luarocks make`.\n- **Gleam** — [`clients/gleam`](clients/gleam): Erlang target, typed events and results, `gen_tcp` over the unix socket. Path dependency until it is on Hex.\n- **Rust** — [`clients/rust`](clients/rust): async (tokio), uses the gate's own wire types from the `mohdel-protocol` crate. Path dependency until it is on crates.io.\n- **OCaml** — [`clients/ocaml`](clients/ocaml): synchronous, stdlib `Unix` transport, `yojson`; OCaml 4.14+. `opam pin` until it is on opam.\n\n```lua\nlocal mohdel = require('mohdel')\nlocal c = mohdel.connect{ socket = '/tmp/mohdel-data.sock' }\nfor ev in c:call(envelope):events() do\n  if ev.type == 'delta' then io.write(ev.delta.delta) end\nend\n```\n\n### Canonical types (frozen wire contract)\n\nWire format is JSON over NDJSON frames, camelCase. Types are defined in `js/core/` (JSDoc) and mirrored in `rust/protocol/src/protocol.rs` (serde, the `mohdel-protocol` crate). Cross-language conformance tests enforce round-trip fidelity. The session-side protocol (envelopes in, events out, abort control messages) is specified in [PROTOCOL.md](PROTOCOL.md) — read that to implement a session in another language.\n\n- **`CallEnvelope`** — flat `answer()` options plus transport metadata: `callId`, `authId`, `auth.key`, `traceparent?`, `baggage?`, `provider`, `model`, `prompt`, `outputBudget?`, `outputType?`, `outputStyle?`, `outputEffort?`, `images?`, `videos?`, `cache?`, `tools?`, `toolChoice?`, `parallelToolCalls?`, `identifier?`.\n- **`Event`** — three-variant union discriminated on `type`:\n  - `{ type: 'delta', delta: { type: 'message' | 'function_call', delta: string } }`\n  - `{ type: 'done', result: AnswerResult }`\n  - `{ type: 'error', error: TypedError }`\n- **`AnswerResult`** — `status`, `output`, `inputTokens`, `outputTokens`, `thinkingTokens`, `cost` (single number), `timestamps`, `warning?`, `toolCalls?`.\n- **`Status`** — `'completed' | 'tool_use' | 'incomplete'`.\n- **`Warning`** — additive string union: `'insufficientOutputBudget'`, `'aborted'`, ...\n- **`TypedError`** — `{ message, detail?, severity, retryable, type }`. `type` is the canonical tag callers branch on (e.g. `'AUTH_INVALID'`, `'PROVIDER_COOLDOWN'`), optional on the wire; `message` is a short human-readable label; `detail` is the provider's own rejection text; `severity` is `'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'`.\n\nAn `abort` control message `{ op: \"abort\", callId }` on session stdin aborts the matching in-flight call.\n\nExtending the frozen wire types is breaking — additive changes only on trait method sets and non-frozen internals. See [ARCHITECTURE.md §What isn't frozen](ARCHITECTURE.md#what-isnt-frozen) for the refinable-vs-frozen split.\n\n### Adding a new provider adapter\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md#adding-a-session-adapter). Short version:\n\n1. Create `js/session/adapters/<provider>.js` exporting `async function* <provider>(envelope, { client?, signal? })`.\n2. Map provider-native events to the canonical Event union.\n3. Pass `{ signal }` to the SDK's streaming method so an abort tears down in-flight HTTP.\n4. On SDK throw: if `signal?.aborted`, return silently (run() yields the aborted `done`); else yield `{ type: 'error', error: classifyProviderError(e) }` from `./_errors.js`.\n5. Register in `js/session/adapters/index.js`.\n6. Write unit tests with a dependency-injected mock client.\n7. Optionally add a gated live test in `test/live/<provider>.live.test.js`.\n\n## Configuration\n\nAPI keys live in `~/.config/mohdel/environment` (one `KEY=value` per line, loaded automatically):\n\n```\nANTHROPIC_API_SK=sk-ant-...\nOPENAI_API_SK=sk-...\nGEMINI_API_SK=AI...\nGROQ_API_SK=gsk_...\nXAI_API_SK=xai-...\nCEREBRAS_API_SK=csk-...\nMISTRAL_API_SK=...\nFIREWORKS_API_SK=fw_...\nDEEPSEEK_API_SK=sk-...\nOPENROUTER_API_SK=sk-or-...\nNOVITA_API_SK=...\nQWEN_API_SK=sk-...\nXIAOMI_API_SK=...\nMETA_API_SK=...\nCOHERE_API_SK=...\nMOHDEL_LOCAL_API_SK=...\n```\n\nOnly set keys for providers you use. Run `mo` with no arguments for interactive setup.\n\n`local/` routes each model to the `baseURL` of its catalog entry — any OpenAI-compatible chat-completions server (Ollama, vLLM, llama.cpp server, LM Studio). There is no default endpoint and no per-call override: an entry without `baseURL` fails `mo model check`, a call to it fails with `CONFIGURATION_MISSING`, so a call never falls through to a cloud provider. `MOHDEL_LOCAL_API_SK` is an optional bearer token. Entry format in [docs/CATALOG.md](docs/CATALOG.md#self-hosted-local-entries).\n\n### File locations\n\n| Path | Purpose |\n|------|---------|\n| `~/.config/mohdel/environment` | API keys |\n| `~/.config/mohdel/default.json` | Default model, and the coding agent you chose |\n| `~/.config/mohdel/curated.json` | Model catalog with metadata, tags, pricing |\n| `~/.config/mohdel/catalog.local.json` | This installation's own fields and tags, declared for the agent |\n| `~/.config/mohdel/providers.json` | Provider-level rate limits |\n| `~/.config/mohdel/excluded.json` | Excluded models |\n| `~/.cache/mohdel/uploaded-files.json` | Gemini file upload cache |\n\nPaths follow the [XDG convention](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) via `env-paths`.\n\n## Provider Matrix\n\nWhat each provider supports through mohdel's unified interface:\n\n| Provider | Streaming | Tools | Vision | Video | Thinking | Notes |\n|----------|-----------|-------|--------|-------|----------|-------|\n| Anthropic | Yes | Yes | Yes | No | Yes (adaptive / budget) | `identifier` → `metadata.user_id` |\n| OpenAI | Yes | Yes | Yes | No | Yes (o-series) | GPT-5 verbosity via `outputStyle` |\n| ChatGPT | Yes | Yes | Yes | No | Per model catalog | OAuth; uses an eligible ChatGPT plan; `mo chatgpt --help` |\n| Gemini | Yes | Yes | Yes | Yes | Yes (`thinkingLevel` / `thinkingBudget`) | Auto-uploads large videos; content-hashed cache |\n| Cerebras | Yes | Yes | Yes | No | Yes (`reasoning_effort` or zai `disable_reasoning`) | Shared chat-completions path |\n| Groq | Yes | Yes | Yes | No | No | Shared chat-completions path |\n| xAI | Yes | Yes | Yes | No | Auto | OpenAI Responses API over `api.x.ai/v1` |\n| DeepSeek | No | Yes | Yes | No | No | Non-streaming: the DSML tool-call fallback is only parsed off a complete response |\n| Fireworks | Yes | Yes | Yes | No | Yes (`reasoning_effort`) | OpenAI SDK + `baseURL`; model id auto-prefixed |\n| Mistral | Yes | Yes | Yes | No | No | `tool_choice: \"any\"` = required |\n| Qwen Cloud | Yes | Yes | No | No | Yes (`enable_thinking` + `thinking_budget`) | Alibaba DashScope intl; hybrid models think by default — effort `none` sends explicit off |\n| Xiaomi | Yes | Yes | Yes | No | Auto | MiMo; shared chat-completions path, `reasoning_content` captured |\n| Meta | Yes | Yes | Yes | No | Yes (`reasoning.effort`) | OpenAI Responses API over `api.meta.ai/v1`, sent with `store: false`; Muse Spark reasoning cannot be turned off |\n| OpenRouter | Yes | Yes | Yes | No | Varies | Meta-provider; `providerOptions.openrouter` for routing prefs |\n| Local | Yes | Yes | Yes | No | No | Any OpenAI-compatible server; endpoint is the catalog entry's `baseURL` |\n| Cohere | n/a | n/a | n/a | n/a | n/a | Embeddings only: no chat models reach mohdel through it |\n| Novita | Yes | Yes | Yes | No | Yes (`reasoning_content`) | Prices in the model list; text via the shared chat-completions path, separate image adapter |\n\nAdapter capability ≠ model capability — whether a given model accepts images, tools, or thinking effort depends on the model spec in `curated.json`. The adapter passes through what the envelope supplies; the provider rejects unsupported combos.\n\n**Service speeds** are the exception to that pass-through rule. Where a provider sells the same weights at several speeds (OpenAI's `service_tier`, and equivalents elsewhere), the lanes a model sells are declared in its `curated.json` entry under `speeds`, with their own prices and rate limits. Select one with `speed` or the `@lane` id suffix. There is no default lane and no fallback: an undeclared lane fails the call before it is sent, because a model that silently ignores an unsupported lane would otherwise be billed at the lane's rates for standard service. See [docs/CATALOG.md](docs/CATALOG.md#service-speeds).\n\n## Local Development\n\n```bash\ngit clone <repo> && cd mohdel\nnpm install\nnpm test                          # unit tests, no API keys\n```\n\n### Rust tests\n\n```bash\ncargo test --workspace            # thin-gate + napi-addon\ncargo build --release --bin mohdel-thin-gate\n```\n\nTest files under `rust/thin-gate/tests/`:\n\n| File | Coverage |\n|------|----------|\n| `conformance.rs` | JS↔Rust protocol round-trip |\n| `protocol.rs` | serde (de)serialization of envelope/events/results |\n| `server.rs` | HTTP layer, synthetic dispatch, 404/400 paths |\n| `session_dispatch.rs` | real `node js/session/bin.js` spawn + dispatch + graceful abort + `/v1/abort` |\n| `oneshot_abandon.rs` | one-shot handler dropped mid-exchange: the session finishes and returns to the pool; `dispatch_*` dropped while queued never reaches a session; a detached `Exchange` resolves |\n| `policy.rs` | `RoutePolicy` + `QuotaPolicy` + `Enforcer` end-to-end |\n| `config.rs` | TOML `ConfigSource` parsing, defaults, malformed, env override |\n| `supervision.rs` | readiness ping/pong + readiness timeout + garbage-response handling |\n| `stress.rs` | 100 concurrent calls, abort storm, session-death-under-load |\n\nSpawning tests require `node` in PATH.\n\n### Provider integration tests\n\nThese hit real provider APIs. Models are drawn from your local `curated.json` — one per provider. Each provider block is skipped automatically when its API key is missing.\n\n```bash\nnpm run test:provider             # all providers via the factory path\nTAG=fast npm run test:provider    # filter by model tag\nnpm run test:multiturn            # multi-turn conversation tests (incl. tool round-trip)\nnpm run test:vision               # image input tests\n```\n\n### Live adapter tests\n\nExercise the session adapters directly against real provider APIs. Gated on env keys; skipped cleanly when keys are absent. See `test/live/README.md` for details.\n\n```bash\nANTHROPIC_API_SK=sk-ant-... npm run test:live\nOPENAI_API_SK=sk-... npm run test:live\n```\n\n### Scenario-driven testing (the `fake` provider)\n\nFor deterministic stress, benchmark, and bug-repro work, register `provider: \"fake\"` in the envelope with a JSON `prompt` that drives the scenario:\n\n```js\n{ mode: 'volume',       tokens: 1000 }              // throughput stress\n{ mode: 'slow',         tokens: 50, delayMs: 100 }  // streaming cadence\n{ mode: 'error',        type: 'AUTH_INVALID' }      // error classification\n{ mode: 'hang' }                                    // abort / timeout plumbing\n{ mode: 'tool',         name: 'f', args: { x: 1 } } // tool round-trip\n{ mode: 'incomplete' }                              // status contract\n{ mode: 'crash' }                                   // process isolation (exits the adapter process)\n{ mode: 'abort_after', tokens: 5 }                 // abort mid-stream\n```\n\nAll modes honor `AbortSignal`. The benchmarks in `bench/` use this to pin adapter work to a fixed shape and isolate what's being measured — see `bench/bench.js` (throughput) and `bench/isolation.js` (crash containment).\n\n### npm scripts\n\n| Command | Description |\n|---------|-------------|\n| `npm test` | Unit tests (vitest) |\n| `npm run test:provider` | Provider integration via the factory — real API calls |\n| `npm run test:live` | Live session-adapter tests (env-key gated) |\n| `npm run lint` | StandardJS lint |\n| `npm run cli` | Interactive model picker |\n| `cargo test --workspace` | Rust tests (thin-gate + protocol + policy + stress + ...) |\n| `node bench/bench.js` | In-process vs via-gate throughput benchmark |\n| `node bench/isolation.js` | Crash-isolation demo (in-process dies, via-gate contains) |\n\n## Contributing\n\nFork the repository and submit a pull request. Code style: Node 22+, ES modules, no semicolons, 2-space indent, single quotes (StandardJS). See [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n**Mohdel's wire is language-agnostic.** The JS client is the first implementation, not the only one — a Python / Go / Ruby / Swift / Elixir / ... client is a great starter contribution. See [CONTRIBUTING.md §Porting a client to another language](CONTRIBUTING.md#porting-a-client-to-another-language) and [PROTOCOL.md](PROTOCOL.md).\n\n## License\n\nMIT. See `LICENSE`.\n","readmeFilename":"README.md"}