@posthog/ai 7.8.13 → 7.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # PostHog Node AI
2
2
 
3
- Initial Typescript SDK for LLM Observability
3
+ TypeScript SDK for LLM observability with PostHog.
4
4
 
5
5
  [SEE FULL DOCS](https://posthog.com/docs/ai-engineering/observability)
6
6
 
@@ -10,7 +10,7 @@ Initial Typescript SDK for LLM Observability
10
10
  npm install @posthog/ai
11
11
  ```
12
12
 
13
- ## Usage
13
+ ## Direct Provider Usage
14
14
 
15
15
  ```typescript
16
16
  import { OpenAI } from '@posthog/ai'
@@ -39,6 +39,61 @@ console.log(completion.choices[0].message.content)
39
39
  await phClient.shutdown()
40
40
  ```
41
41
 
42
+ ## OTEL + AI SDK (`experimental_telemetry`)
43
+
44
+ Use this when working with Vercel AI SDK telemetry. `@posthog/ai` exposes an OTEL `SpanProcessor` that maps spans to PostHog AI events and sends them through `posthog-node`.
45
+
46
+ ```typescript
47
+ import { NodeSDK } from '@opentelemetry/sdk-node'
48
+ import { PostHog } from 'posthog-node'
49
+ import { generateText } from 'ai'
50
+ import { openai } from '@ai-sdk/openai'
51
+ import { PostHogSpanProcessor } from '@posthog/ai/otel'
52
+
53
+ const phClient = new PostHog('<YOUR_PROJECT_API_KEY>', { host: 'https://us.i.posthog.com' })
54
+
55
+ const sdk = new NodeSDK({
56
+ spanProcessors: [
57
+ new PostHogSpanProcessor(phClient),
58
+ ],
59
+ })
60
+
61
+ sdk.start()
62
+
63
+ await generateText({
64
+ model: openai('gpt-5.1'),
65
+ prompt: 'Write a short haiku about debugging',
66
+ experimental_telemetry: {
67
+ isEnabled: true,
68
+ functionId: 'my-awesome-function',
69
+ metadata: {
70
+ conversation_id: 'abc123',
71
+ plan: 'pro',
72
+ },
73
+ },
74
+ })
75
+
76
+ await phClient.shutdown()
77
+ ```
78
+
79
+ ### Custom Mappers
80
+
81
+ The OTEL processor supports adapter mappers for different span formats:
82
+
83
+ - `aiSdkSpanMapper` is the default mapper.
84
+ - You can pass custom `mappers` in `PostHogSpanProcessor` options to support additional span schemas.
85
+
86
+ ### Per-call Metadata (Recommended)
87
+
88
+ For dynamic properties, pass values in `experimental_telemetry.metadata` on each AI SDK call.
89
+ These are captured from `ai.telemetry.metadata.*` and forwarded as PostHog event properties.
90
+ Use processor options (`posthogProperties`) only for global defaults.
91
+
92
+ ## Notes
93
+
94
+ - The OTEL route currently maps supported spans into PostHog AI events (manual capture path).
95
+ - Existing wrapper-based tracing (for example `withTracing`) still works and is unchanged.
96
+
42
97
  LLM Observability [docs](https://posthog.com/docs/ai-engineering/observability)
43
98
 
44
99
  Please see the main [PostHog docs](https://www.posthog.com/docs).
@@ -10,7 +10,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
10
 
11
11
  var AnthropicOriginal__default = /*#__PURE__*/_interopDefault(AnthropicOriginal);
12
12
 
13
- var version = "7.8.13";
13
+ var version = "7.9.1";
14
14
 
15
15
  // Type guards for safer type checking
16
16
 
@@ -2,7 +2,7 @@ import AnthropicOriginal from '@anthropic-ai/sdk';
2
2
  import { v4 } from 'uuid';
3
3
  import { uuidv7 } from '@posthog/core';
4
4
 
5
- var version = "7.8.13";
5
+ var version = "7.9.1";
6
6
 
7
7
  // Type guards for safer type checking
8
8
 
@@ -6,7 +6,7 @@ var genai = require('@google/genai');
6
6
  var uuid = require('uuid');
7
7
  var core = require('@posthog/core');
8
8
 
9
- var version = "7.8.13";
9
+ var version = "7.9.1";
10
10
 
11
11
  // Type guards for safer type checking
12
12
 
@@ -2,7 +2,7 @@ import { GoogleGenAI } from '@google/genai';
2
2
  import { v4 } from 'uuid';
3
3
  import { uuidv7 } from '@posthog/core';
4
4
 
5
- var version = "7.8.13";
5
+ var version = "7.9.1";
6
6
 
7
7
  // Type guards for safer type checking
8
8