diff --git a/.changeset/bootstrap-honest-status.md b/.changeset/bootstrap-honest-status.md deleted file mode 100644 index 31c57b6..0000000 --- a/.changeset/bootstrap-honest-status.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@smooai/observability': minor ---- - -Rust bootstrap now reports whether it is actually EXPORTING, not just whether it -ran, and warns loudly when no OTLP endpoint is configured. `installed: true` with -no endpoint used to read as success while nothing left the process. diff --git a/.changeset/ts-gen-ai-openai.md b/.changeset/ts-gen-ai-openai.md deleted file mode 100644 index 07b187c..0000000 --- a/.changeset/ts-gen-ai-openai.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@smooai/observability': minor ---- - -Instrument the OpenAI Node SDK, and stop leaking prompt content into GenAI span events. - -`wrapOpenAI(client, options)` returns a proxy of an OpenAI client whose `chat.completions.create` emits OTel GenAI semantic-convention spans — request model / sampling params / tool names on the way out, response model, id, finish reason, and token usage on the way back. Streaming is handled: the span stays open until the stream drains (or the consumer breaks out early), and picks up the usage chunk emitted under `stream_options.include_usage`. The client is duck-typed, so this adds no dependency on `openai` and works against Groq, Together, Fireworks, DeepSeek, Azure OpenAI, and any OpenAI-compatible gateway via `{ system: 'groq' }`. - -Cost has a seam now: nothing in the platform computes an LLM price on its own, which is why the dashboard's cost column is empty. Pass `costUsd({ requestModel, responseModel, inputTokens, outputTokens, cachedTokens })` and it lands on `gen_ai.usage.cost_usd`. - -`recordGenAIMessage` now routes content through the SDK's PII scrub before it leaves the process. Prompts are the most PII-dense payload this SDK can touch, and `wrapOpenAI` keeps content recording **off** by default (`{ recordContent: true }` opts in). diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index c776c3b..61fcb6f 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,20 @@ # @smooai/observability +## 0.16.0 + +### Minor Changes + +- d40f623: Rust bootstrap now reports whether it is actually EXPORTING, not just whether it + ran, and warns loudly when no OTLP endpoint is configured. `installed: true` with + no endpoint used to read as success while nothing left the process. +- 1104624: Instrument the OpenAI Node SDK, and stop leaking prompt content into GenAI span events. + + `wrapOpenAI(client, options)` returns a proxy of an OpenAI client whose `chat.completions.create` emits OTel GenAI semantic-convention spans — request model / sampling params / tool names on the way out, response model, id, finish reason, and token usage on the way back. Streaming is handled: the span stays open until the stream drains (or the consumer breaks out early), and picks up the usage chunk emitted under `stream_options.include_usage`. The client is duck-typed, so this adds no dependency on `openai` and works against Groq, Together, Fireworks, DeepSeek, Azure OpenAI, and any OpenAI-compatible gateway via `{ system: 'groq' }`. + + Cost has a seam now: nothing in the platform computes an LLM price on its own, which is why the dashboard's cost column is empty. Pass `costUsd({ requestModel, responseModel, inputTokens, outputTokens, cachedTokens })` and it lands on `gen_ai.usage.cost_usd`. + + `recordGenAIMessage` now routes content through the SDK's PII scrub before it leaves the process. Prompts are the most PII-dense payload this SDK can touch, and `wrapOpenAI` keeps content recording **off** by default (`{ recordContent: true }` opts in). + ## 0.15.0 ### Minor Changes diff --git a/packages/core/package.json b/packages/core/package.json index 2773766..02f33bb 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@smooai/observability", - "version": "0.15.0", + "version": "0.16.0", "description": "Smoo AI Observability SDK — OTel-first error capture, traces, metrics, and React/Next.js integrations in a single package with subpath exports", "homepage": "https://github.com/SmooAI/observability", "bugs": {