{"_id":"@calcis/langchain","_rev":"4-62927709d0281202d26f2fe7cd2643eb","name":"@calcis/langchain","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@calcis/langchain","version":"1.0.0","keywords":["calcis","langchain","llm","cost","estimation","callback","openai","anthropic","claude"],"license":"MIT","_id":"@calcis/langchain@1.0.0","maintainers":[{"name":"calcis","email":"calcis.dev@gmail.com"}],"homepage":"https://www.calcis.dev","bugs":{"url":"https://github.com/rc397/Calcis/issues"},"dist":{"shasum":"9c50a75382220d1bc44d5cd50536666f4c81d693","tarball":"https://registry.npmjs.org/@calcis/langchain/-/langchain-1.0.0.tgz","fileCount":7,"integrity":"sha512-5VmT5BdmmbKcWhgaOte5jJ5V9kQg5Q5KQDLP8m+iP3yiNBD0yvpANB6M0qYIR2TEBujibGvSDtPS5i1Mw/tNwg==","signatures":[{"sig":"MEQCIE7w+S/QBUtj7jHy06Y6iqWAsiqcqiYW+kg3dh7ARt+IAiBY8KhhpZBevWYr3ICz/O9TmEnffiul2o5eejj/DcSh0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12545},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"ef75cec281a791905f837f7167fde6606d93c92f","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"calcis","email":"calcis.dev@gmail.com"},"repository":{"url":"git+https://github.com/rc397/Calcis.git","type":"git"},"_npmVersion":"11.4.2","description":"Calcis cost estimation callback for LangChain","directories":{},"_nodeVersion":"24.4.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0","@langchain/core":"^0.3.0"},"peerDependencies":{"@langchain/core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/langchain_1.0.0_1776596473497_0.18234115509902238","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@calcis/langchain","version":"1.0.1","keywords":["calcis","langchain","llm","cost","estimation","callback","openai","anthropic","claude"],"license":"MIT","_id":"@calcis/langchain@1.0.1","maintainers":[{"name":"calcis","email":"calcis.dev@gmail.com"}],"homepage":"https://www.calcis.dev","bugs":{"url":"https://github.com/rc397/Calcis/issues"},"dist":{"shasum":"b07636a76b0a17532fa01768680543dac0484c17","tarball":"https://registry.npmjs.org/@calcis/langchain/-/langchain-1.0.1.tgz","fileCount":7,"integrity":"sha512-PNEX1aK2KSRFmhAbQviPYHNywMoi9ZxvUrkqL9Yq6tRXf99pKVOxKprFh9nVlspefehM+iWkaE28UunlBFspyQ==","signatures":[{"sig":"MEUCIQD+pnudfDHPMA4FQAaPNzAjiUDI/b4ZijHSH9DVCHYoYgIgQK+Xzs5dqlshm0PtxRtK2pKDjbuTnuAMMGAE9dRB6pM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13158},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2ac0279a067083da14424b97edaf969cbc69b3c8","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"calcis","email":"calcis.dev@gmail.com"},"repository":{"url":"git+https://github.com/rc397/Calcis.git","type":"git"},"_npmVersion":"11.4.2","description":"Calcis cost estimation callback for LangChain","directories":{},"_nodeVersion":"24.4.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0","@langchain/core":"^0.3.0"},"peerDependencies":{"@langchain/core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/langchain_1.0.1_1776940139590_0.5199728052387609","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@calcis/langchain","version":"1.0.2","keywords":["calcis","langchain","llm","cost","estimation","callback","openai","anthropic","claude"],"license":"MIT","_id":"@calcis/langchain@1.0.2","maintainers":[{"name":"calcis","email":"calcis.dev@gmail.com"}],"homepage":"https://www.calcis.dev","bugs":{"url":"https://github.com/rc397/Calcis/issues"},"dist":{"shasum":"b48fcc2bf023d20dae3647f886be4b617a150af2","tarball":"https://registry.npmjs.org/@calcis/langchain/-/langchain-1.0.2.tgz","fileCount":7,"integrity":"sha512-DvJHUT1KhW6VR3K+gww9PKldjbF/RNy/502Xr1wmY1civivHgrhPkaM9j2/fDm888ubAu6ypuXY0a+GmGVfu0Q==","signatures":[{"sig":"MEUCIQCMt3p7GBoHPIcbE8DVZ9X63fOwlTQR803BpDcl+zR5BAIgCVK31184tu9yzZcVrav8Pf5YTAOux3NyrNvLQ/ExEMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13407},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2ac0279a067083da14424b97edaf969cbc69b3c8","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"calcis","email":"calcis.dev@gmail.com"},"repository":{"url":"git+https://github.com/rc397/Calcis.git","type":"git"},"_npmVersion":"11.4.2","description":"Calcis cost estimation callback for LangChain","directories":{},"_nodeVersion":"24.4.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0","@langchain/core":"^0.3.0"},"peerDependencies":{"@langchain/core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/langchain_1.0.2_1776941435936_0.7936136568859029","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@calcis/langchain","version":"1.0.4","description":"Calcis cost estimation callback for LangChain","license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"keywords":["calcis","langchain","llm","cost","estimation","callback","openai","anthropic","claude"],"peerDependencies":{"@langchain/core":">=0.2.0"},"devDependencies":{"@langchain/core":"^0.3.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"repository":{"type":"git","url":"git+https://github.com/rc397/Calcis.git"},"homepage":"https://www.calcis.dev","_id":"@calcis/langchain@1.0.4","gitHead":"862b57a8fc4e016ca36906c9c0ddea082f4c38b9","bugs":{"url":"https://github.com/rc397/Calcis/issues"},"_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-p2Ek60H4SUyCVcl+zKmiVPdE6BSjFRdXFswb3ATcB+hVh5YGqT3LJVyohg3A69SbCyRT0/bVY/hxNP8RwgshDw==","shasum":"4362b68b9892639b412fc1ec767c0b69050adf5c","tarball":"https://registry.npmjs.org/@calcis/langchain/-/langchain-1.0.4.tgz","fileCount":7,"unpackedSize":13368,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDUKYaT7bgbFv+fl1y47brNr8NJGxeGLUlAoUNE8826SwIhAO6jZzcdk04fB66M2dJDaX4ykqXjhymilzTTZ06ChRkz"}]},"_npmUser":{"name":"calcis","email":"calcis.dev@gmail.com"},"directories":{},"maintainers":[{"name":"calcis","email":"calcis.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/langchain_1.0.4_1777117452281_0.6109771921315539"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-19T11:01:13.348Z","modified":"2026-04-25T11:44:12.495Z","1.0.0":"2026-04-19T11:01:13.638Z","1.0.1":"2026-04-23T10:28:59.732Z","1.0.2":"2026-04-23T10:50:36.090Z","1.0.4":"2026-04-25T11:44:12.389Z"},"bugs":{"url":"https://github.com/rc397/Calcis/issues"},"license":"MIT","homepage":"https://www.calcis.dev","keywords":["calcis","langchain","llm","cost","estimation","callback","openai","anthropic","claude"],"repository":{"type":"git","url":"git+https://github.com/rc397/Calcis.git"},"description":"Calcis cost estimation callback for LangChain","maintainers":[{"name":"calcis","email":"calcis.dev@gmail.com"}],"readme":"# @calcis/langchain\r\n\r\nCalcis cost-estimation callback for [LangChain](https://js.langchain.com).\r\n\r\n> **Live pricing for 25+ models, side-by-side comparisons, and a web estimator: https://calcis.dev**\r\n>\r\n> - Full price index: https://calcis.dev/models\r\n> - Compare models: https://calcis.dev/compare\r\n> - API reference: https://calcis.dev/api-docs\r\n\r\nAttach the handler to any LangChain runnable and get a one-line cost\r\nestimate for every LLM call, plus a rolling session total.\r\n\r\n## Install\r\n\r\n```bash\r\nnpm install @calcis/langchain @langchain/core\r\n```\r\n\r\nYou also need a Calcis API key (Pro tier or above). Get one at\r\n[calcis.dev/dashboard](https://calcis.dev/dashboard).\r\n\r\n## Usage\r\n\r\n```ts\r\nimport { ChatAnthropic } from \"@langchain/anthropic\";\r\nimport { CalcisCallbackHandler } from \"@calcis/langchain\";\r\n\r\nconst calcis = new CalcisCallbackHandler({\r\n  apiKey: process.env.CALCIS_API_KEY!,\r\n});\r\n\r\nconst model = new ChatAnthropic({\r\n  model: \"claude-sonnet-4-6\",\r\n  callbacks: [calcis],\r\n});\r\n\r\nconst response = await model.invoke(\"Explain quantum computing\");\r\n\r\nconsole.log(`Session total: $${calcis.getSessionTotal().toFixed(4)}`);\r\n```\r\n\r\nEvery LLM call now emits:\r\n\r\n```\r\n[calcis] claude-sonnet-4-6 · 243 in · 650 out · $0.0105 · session: $0.0105 (1 calls)\r\n```\r\n\r\n## Config\r\n\r\n```ts\r\nnew CalcisCallbackHandler({\r\n  apiKey: string,                // required: calc_… key\r\n  verbose?: boolean,             // default true: logs per-call summary\r\n  onEstimate?: (e) => void,      // optional structured sink\r\n});\r\n```\r\n\r\nThe estimate object passed to `onEstimate`:\r\n\r\n```ts\r\n{\r\n  model: string,\r\n  inputTokens: number,\r\n  outputTokens: number,\r\n  inputCost: number,\r\n  outputCost: number,\r\n  totalCost: number,\r\n  confidence: \"high\" | \"medium\" | \"low\"\r\n}\r\n```\r\n\r\n## Session helpers\r\n\r\n```ts\r\ncalcis.getSessionTotal(); // cumulative cost across calls\r\ncalcis.getCallCount();    // number of LLM calls so far\r\ncalcis.resetSession();    // zero the counters (e.g. per request)\r\n```\r\n\r\n## Failure mode\r\n\r\nThis handler never throws. If the Calcis API is unreachable, returns\r\nan error, or the response is malformed, the handler silently skips\r\nthe estimate for that call: the underlying LangChain chain keeps\r\nrunning. Cost estimation is a nice-to-have; your product is not.\r\n\r\n## Model name mapping\r\n\r\nLangChain's provider integrations don't always name models the way\r\nCalcis does. The handler ships a small translation map:\r\n\r\n| LangChain         | Calcis            |\r\n| ----------------- | ----------------- |\r\n| claude-3-5-sonnet | claude-sonnet-4-6 |\r\n| claude-3-opus     | claude-opus-4-6   |\r\n| gpt-5.4           | gpt-5-4           |\r\n\r\nUnmapped names are passed through unchanged. Use `calcis models` (or\r\nvisit [calcis.dev/models](https://www.calcis.dev/models)) for the\r\nfull list of recognised IDs.\r\n\r\n## Links\r\n\r\n- [Web App](https://www.calcis.dev)\r\n- [API Docs](https://www.calcis.dev/api-docs)\r\n- [CLI (`calcis`)](https://www.npmjs.com/package/calcis)\r\n- [Pricing dataset (`@calcis/pricing`)](https://www.npmjs.com/package/@calcis/pricing)\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}