{"_id":"@caesura-io/core","_rev":"2-a5a3f32eec2cc99a0f0360ad7f7e7932","name":"@caesura-io/core","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@caesura-io/core","version":"0.1.0","keywords":["caesura","ai","llm","recommendations","core"],"author":{"name":"Caesura"},"license":"Apache-2.0","_id":"@caesura-io/core@0.1.0","maintainers":[{"name":"oleksandr_caesura","email":"oleksandr@caesura.io"}],"homepage":"https://github.com/caesura-io/sdk-js/tree/main/packages/core#readme","bugs":{"url":"https://github.com/caesura-io/sdk-js/issues"},"dist":{"shasum":"07c7bba1ef371ba32573f126e36817f2bc8f3ae2","tarball":"https://registry.npmjs.org/@caesura-io/core/-/core-0.1.0.tgz","fileCount":7,"integrity":"sha512-KnziinxRodfTZHOtHHYju/rYUKra5+vflPcrMMTh2Oc78z6yXi4dRUTpOnQu/5KdrMrlRaF0hw/mujBmudDB9A==","signatures":[{"sig":"MEQCIAn6xJXIlycejesbMGEbVLwhn09Q+X9WJ1PFeXp4ZsiAAiAPyNKT5HyDSItO/kCD2lfYPri3aDjG+eUmMQ9bdA7EiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192422},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ec1e1070299a7f7fe9b562e65697890fd8d3a459","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"oleksandr_caesura","email":"oleksandr@caesura.io"},"repository":{"url":"git+https://github.com/caesura-io/sdk-js.git","type":"git","directory":"packages/core"},"_npmVersion":"11.17.0","description":"Framework-agnostic core for Caesura — analyze, inject, and credit-metering logic shared across SDK integrations.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^2.1.2","typescript":"^5.6.2"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0_1782812229492_0.8369790124157943","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@caesura-io/core","version":"0.2.0","description":"Framework-agnostic core for Caesura — analyze, inject, and credit-metering logic shared across SDK integrations.","license":"Apache-2.0","author":{"name":"Caesura"},"homepage":"https://github.com/caesura-io/sdk-js/tree/main/packages/core#readme","repository":{"type":"git","url":"git+https://github.com/caesura-io/sdk-js.git","directory":"packages/core"},"bugs":{"url":"https://github.com/caesura-io/sdk-js/issues"},"keywords":["caesura","ai","llm","recommendations","core"],"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"sideEffects":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.2","vitest":"^2.1.2"},"publishConfig":{"access":"public","provenance":true},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest"},"_id":"@caesura-io/core@0.2.0","_integrity":"sha512-92s/M7QtPjTPccBZbADnmKHVJQz3ErruS9FrJSa4UD2k+jgYNYjdaxHpBzzZM5Nxwxf3vg70ZK6uXadSV1VsbQ==","_resolved":"/tmp/7cc298f0607b7fac7fd9657d40731eac/caesura-io-core-0.2.0.tgz","_from":"file:caesura-io-core-0.2.0.tgz","_nodeVersion":"22.23.0","_npmVersion":"11.18.0","dist":{"integrity":"sha512-92s/M7QtPjTPccBZbADnmKHVJQz3ErruS9FrJSa4UD2k+jgYNYjdaxHpBzzZM5Nxwxf3vg70ZK6uXadSV1VsbQ==","shasum":"ed4771a34ffc5f6152f3cd9b7f49516780d2fd0f","tarball":"https://registry.npmjs.org/@caesura-io/core/-/core-0.2.0.tgz","fileCount":9,"unpackedSize":205726,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@caesura-io%2fcore@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCpX5LLenY7foQEyu69hBKbu5Q2JImEpqn7X8MofInZtAIgNkTAUxPsH/lbqKqvRvwXiYfNbIXDqjTCaAJN0P5xb+E="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:01cd4053-8e89-4a31-af1e-9af8ef8b3cb9"}},"directories":{},"maintainers":[{"name":"oleksandr_caesura","email":"oleksandr@caesura.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.2.0_1782813854799_0.4546276452117177"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-30T09:37:09.362Z","modified":"2026-06-30T10:04:15.272Z","0.1.0":"2026-06-30T09:37:09.629Z","0.2.0":"2026-06-30T10:04:14.968Z"},"bugs":{"url":"https://github.com/caesura-io/sdk-js/issues"},"author":{"name":"Caesura"},"license":"Apache-2.0","homepage":"https://github.com/caesura-io/sdk-js/tree/main/packages/core#readme","keywords":["caesura","ai","llm","recommendations","core"],"repository":{"type":"git","url":"git+https://github.com/caesura-io/sdk-js.git","directory":"packages/core"},"description":"Framework-agnostic core for Caesura — analyze, inject, and credit-metering logic shared across SDK integrations.","maintainers":[{"name":"oleksandr_caesura","email":"oleksandr@caesura.io"}],"readme":"# @caesura-io/core\n\nFramework-agnostic core for Caesura — shared analyze, inject, and credit-metering logic used by all SDK integrations.\n\n> **This package is not meant to be used directly.** It is the shared engine consumed by:\n>\n> - [`@caesura-io/ai-sdk`](https://www.npmjs.com/package/@caesura-io/ai-sdk) — Vercel AI SDK middleware\n> - [`@caesura-io/openai`](https://www.npmjs.com/package/@caesura-io/openai) — OpenAI Node SDK wrapper\n\n## What's inside\n\n| Module | Purpose |\n|--------|---------|\n| `CaesuraClient` | HTTP client that calls the `/api/analyze` endpoint |\n| `MemoryCaesuraStore` | In-memory conversation state with LRU + idle-time eviction |\n| `createCaesuraEngine` | Orchestrator: cadence checks, observe/analyze cycle, buffering, event emission |\n| `createCreditMeter` | Accumulates and queries credit-usage metrics |\n| `createDebugLogger` | Structured `onEvent` logger for debugging |\n| Helpers | `hashMessage`, `selectActive`, `renderAnalysis`, `renderBlock`, `buildAnalyzeMessages` |\n| Types | `CaesuraConfig`, `CaesuraEvent`, `InjectConfig`, `SendConfig`, etc. |\n\n## Install\n\n```bash\nnpm i @caesura-io/core\n```\n\n## Usage\n\nMost consumers should use the framework-specific adapters. If you're building your own integration:\n\n```ts\nimport { createCaesuraEngine, selectActive, renderBlock } from '@caesura-io/core';\n\nconst engine = createCaesuraEngine({\n  baseUrl: 'https://dev.caesura.io',\n  apiKey: process.env.CAESURA_API_KEY,\n});\n\n// 1. Observe a conversation turn\nawait engine.observe('conversation-id', [\n  { speakerRole: 'user', speakerName: 'Customer', text: 'I need help preparing for the next meeting' },\n]);\n\n// 2. Retrieve buffered recommendations\nconst state = engine.store.get('conversation-id');\nconst active = selectActive(state, engine.config.inject, Date.now());\nconst blocks = renderBlock(active, engine.config.inject);\n// → blocks contains rendered recommendation text ready for injection\n```\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}