@countly/ai-sdk-vercel 0.0.3 → 0.0.4

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
@@ -61,6 +61,79 @@ await telemetry.flush(); // send buffered events
61
61
  await telemetry.shutdown(); // flush + stop the transport
62
62
  ```
63
63
 
64
+ ## Caller-supplied `prompt_id`
65
+
66
+ By default every tracked call gets an auto-generated `prompt_id`. If you already
67
+ mint your own request/message id (and want feedback to correlate against it
68
+ without round-tripping through `onPrompt`), provide `getPromptId`. It is called
69
+ once per tracked interaction; return a string to use it, or `undefined` to fall
70
+ back to the generated id. Pair it with a per-request store so each call reads
71
+ its own id:
72
+
73
+ ```typescript
74
+ import { AsyncLocalStorage } from "node:async_hooks";
75
+
76
+ const promptStore = new AsyncLocalStorage<{ promptId: string }>();
77
+
78
+ const telemetry = countlyTelemetry({
79
+ appKey: "YOUR_APP_KEY",
80
+ url: "https://your-countly-server.com",
81
+ getPromptId: () => promptStore.getStore()?.promptId, // undefined → generated fallback
82
+ });
83
+
84
+ // wrap each request so the interaction stamps your id:
85
+ promptStore.run({ promptId: myMessageId }, async () => {
86
+ await generateText({
87
+ model: openai("gpt-4o"),
88
+ prompt: "Explain quantum computing",
89
+ experimental_telemetry: { integrations: [telemetry] },
90
+ });
91
+ });
92
+ ```
93
+
94
+ The returned id lands on the `[CLY]_llm_interaction` event's `prompt_id`, so you
95
+ can record feedback against your own id directly — `feedback.track({ prompt_id: myMessageId, ... })` —
96
+ no `onPrompt` capture needed. When `getPromptId` is absent (or returns
97
+ `undefined`), behavior is unchanged.
98
+
99
+ ## Feedback
100
+
101
+ User feedback (thumbs up/down, ratings, comments) is not auto-collected — wire it from your UI. Capture the `prompt_id` of each tracked interaction via the `onPrompt` callback, then record feedback against it with `createFeedbackTracker` (re-exported from this package, so no extra install is needed):
102
+
103
+ ```typescript
104
+ import { countlyTelemetry, createFeedbackTracker, type PromptInfo } from "@countly/ai-sdk-vercel";
105
+ import { generateText } from "ai";
106
+ import { openai } from "@ai-sdk/openai";
107
+
108
+ const countly = { appKey: "YOUR_APP_KEY", url: "https://your-countly-server.com" };
109
+
110
+ let lastPrompt: PromptInfo | undefined;
111
+ const telemetry = countlyTelemetry({
112
+ ...countly,
113
+ onPrompt: (info) => { lastPrompt = info; }, // fires after every tracked call
114
+ });
115
+
116
+ const feedback = createFeedbackTracker(countly, { sdk_adapter: "ai-sdk" });
117
+
118
+ const { text } = await generateText({
119
+ model: openai("gpt-4o"),
120
+ prompt: "Explain quantum computing",
121
+ experimental_telemetry: { integrations: [telemetry] },
122
+ });
123
+
124
+ // ...later, when the user rates the answer:
125
+ feedback.track({
126
+ prompt_id: lastPrompt!.prompt_id,
127
+ rating: "thumbs_up", // or "thumbs_down", or any custom string
128
+ score: 0.9, // optional 0-1 numeric score
129
+ category: "helpful", // optional: hallucination, irrelevant, harmful, ...
130
+ comment: "Great answer", // optional free-form text
131
+ deviceId: user.id, // attribute to the same user as the interaction
132
+ });
133
+ ```
134
+
135
+ Each `track()` call emits a `[CLY]_llm_interaction_feedback` event whose `prompt_id` links back to the `[CLY]_llm_interaction` event — powering prompt → feedback funnels and per-model satisfaction breakdowns in Countly. In a real app, store `prompt_id` alongside the rendered message (or return it to your client) and read it back when the user rates the answer. Feedback is batched like interaction events; call `feedback.flush()` to send immediately, or `feedback.shutdown()` on process exit.
136
+
64
137
  ## Full documentation
65
138
 
66
139
  See the [Countly AI SDK repository](https://github.com/Countly/countly-ai-sdk) for the unified data model, observability levels, cost calculation, privacy controls, and Countly plugin integration (Drill, Funnels, Cohorts, APM, Crash Analytics).
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,eAAe,EAKrB,MAAM,sBAAsB,CAAC;AAqD9B;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,4BAA4B;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,0BAA0B;IAC1B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAyED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,eAAe,GAC1B,2BAA2B,CAmF7B;AAMD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAE9C,UAAU,EAAE,eAAe;IAIvC,0DAA0D;IAC1D,aAAa,IAAI,2BAA2B;IAItC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC;AAMD;;;;;GAKG;AACH,qBAAa,oBAAoB;gBACnB,WAAW,EAAE,eAAe;IAQxC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/C,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IACjB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAC3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,eAAe,EAKrB,MAAM,sBAAsB,CAAC;AAqD9B;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,4BAA4B;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,0BAA0B;IAC1B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAyED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,eAAe,GAC1B,2BAA2B,CAkF7B;AAMD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAE9C,UAAU,EAAE,eAAe;IAIvC,0DAA0D;IAC1D,aAAa,IAAI,2BAA2B;IAItC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC;AAMD;;;;;GAKG;AACH,qBAAa,oBAAoB;gBACnB,WAAW,EAAE,eAAe;IAQxC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/C,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IACjB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAC3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC"}
package/dist/adapter.js CHANGED
@@ -114,7 +114,7 @@ export function countlyTelemetry(userConfig) {
114
114
  : event;
115
115
  const raw = mapEventToExtraction(effectiveEvent, durationMs);
116
116
  const context = {
117
- prompt_id: generatePromptId(),
117
+ prompt_id: config.getPromptId?.() ?? generatePromptId(),
118
118
  sdk_adapter: "ai-sdk",
119
119
  };
120
120
  const events = buildAllEvents(raw, config, context);
@@ -122,7 +122,6 @@ export function countlyTelemetry(userConfig) {
122
122
  transport.enqueue(events);
123
123
  }
124
124
  transport.reportTrace(raw, context);
125
- transport.reportUserData(raw);
126
125
  },
127
126
  onError(error) {
128
127
  const raw = {
@@ -136,7 +135,7 @@ export function countlyTelemetry(userConfig) {
136
135
  error: error instanceof Error ? error.message : String(error),
137
136
  };
138
137
  const context = {
139
- prompt_id: generatePromptId(),
138
+ prompt_id: config.getPromptId?.() ?? generatePromptId(),
140
139
  sdk_adapter: "ai-sdk",
141
140
  };
142
141
  transport.reportError(raw.error, raw);
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export { countlyTelemetry, CountlyTelemetry, CountlySpanProcessor, } from "./adapter";
2
2
  export type { CountlyTelemetryIntegration } from "./adapter";
3
+ export { createFeedbackTracker } from "@countly/ai-sdk-core";
4
+ export type { FeedbackInput, FeedbackTracker, PromptInfo } from "@countly/ai-sdk-core";
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAM7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,7 @@
1
1
  export { countlyTelemetry, CountlyTelemetry, CountlySpanProcessor, } from "./adapter";
2
+ // Feedback pipeline — re-exported from core so user feedback (thumbs up/down,
3
+ // ratings, comments) can be wired without importing @countly/ai-sdk-core
4
+ // directly. Correlate via the `onPrompt` config callback, which exposes the
5
+ // `prompt_id` stamped on every `[CLY]_llm_interaction` event.
6
+ export { createFeedbackTracker } from "@countly/ai-sdk-core";
2
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AAGnB,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAC5E,8DAA8D;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@countly/ai-sdk-vercel",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "Countly AI observability adapter for Vercel AI SDK",
5
5
  "type": "module",
6
6
  "exports": {
@@ -16,7 +16,7 @@
16
16
  "access": "public"
17
17
  },
18
18
  "dependencies": {
19
- "@countly/ai-sdk-core": "0.0.3"
19
+ "@countly/ai-sdk-core": "0.0.4"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "ai": ">=4.0.0"