@countly/ai-sdk-core 0.0.2 → 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 +10 -8
- package/dist/config.d.ts +32 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/cost.d.ts +2 -0
- package/dist/cost.d.ts.map +1 -1
- package/dist/cost.js +86 -41
- package/dist/cost.js.map +1 -1
- package/dist/events.d.ts +4 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +89 -22
- package/dist/events.js.map +1 -1
- package/dist/feedback.d.ts +45 -0
- package/dist/feedback.d.ts.map +1 -0
- package/dist/feedback.js +40 -0
- package/dist/feedback.js.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/normalize.d.ts +8 -0
- package/dist/normalize.d.ts.map +1 -1
- package/dist/normalize.js +49 -6
- package/dist/normalize.js.map +1 -1
- package/dist/transport.d.ts +0 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +13 -8
- package/dist/transport.js.map +1 -1
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +11 -0
- package/dist/version.js.map +1 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -59,22 +59,24 @@ transport.enqueue(events);
|
|
|
59
59
|
|
|
60
60
|
## Feedback events
|
|
61
61
|
|
|
62
|
-
Feedback is not auto-collected — wire it from your UI's thumbs-up/down handler:
|
|
62
|
+
Feedback is not auto-collected — wire it from your UI's thumbs-up/down handler. Use `createFeedbackTracker` (also re-exported by every adapter package) with the `prompt_id` captured via the `onPrompt` config callback:
|
|
63
63
|
|
|
64
64
|
```typescript
|
|
65
|
-
import {
|
|
65
|
+
import { createFeedbackTracker } from "@countly/ai-sdk-core";
|
|
66
66
|
|
|
67
|
-
const
|
|
68
|
-
|
|
67
|
+
const feedback = createFeedbackTracker(
|
|
68
|
+
{ appKey: "YOUR_APP_KEY", url: "https://your-countly-server.com" },
|
|
69
|
+
{ sdk_adapter: "openai" }, // stamp which adapter produced the rated interaction
|
|
70
|
+
);
|
|
69
71
|
|
|
70
72
|
function onFeedback(promptId: string, rating: string, userId: string) {
|
|
71
|
-
|
|
72
|
-
event.deviceId = userId;
|
|
73
|
-
transport.enqueue([event]);
|
|
73
|
+
feedback.track({ prompt_id: promptId, rating, deviceId: userId });
|
|
74
74
|
}
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
The `prompt_id` links back to the `[CLY]_llm_interaction` event. Store it in your chat UI and read it back when the user clicks feedback.
|
|
77
|
+
The `prompt_id` links back to the `[CLY]_llm_interaction` event. Store it in your chat UI and read it back when the user clicks feedback. The tracker batches like the interaction pipeline (`flushInterval` / `maxBatchSize`); `feedback.flush()` sends immediately, `feedback.shutdown()` flushes and stops.
|
|
78
|
+
|
|
79
|
+
For custom integrations that need full control, the lower-level `buildFeedbackEvent` + `createTransport` primitives remain available.
|
|
78
80
|
|
|
79
81
|
## Full documentation
|
|
80
82
|
|
package/dist/config.d.ts
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import type { ObservabilityLevel } from "./types";
|
|
2
2
|
import type { CostModelOverrides } from "./cost";
|
|
3
|
+
/**
|
|
4
|
+
* Identity of a tracked LLM interaction, delivered to `onPrompt` right after
|
|
5
|
+
* the SDK records it. `prompt_id` is the correlation key for
|
|
6
|
+
* `[CLY]_llm_interaction_feedback` — capture it here to wire feedback back
|
|
7
|
+
* to the interaction it rates.
|
|
8
|
+
*/
|
|
9
|
+
export interface PromptInfo {
|
|
10
|
+
prompt_id: string;
|
|
11
|
+
thread_id?: string;
|
|
12
|
+
provider: string;
|
|
13
|
+
model: string;
|
|
14
|
+
status: "success" | "error";
|
|
15
|
+
sdk_adapter: string;
|
|
16
|
+
}
|
|
3
17
|
export interface CountlyAIConfig {
|
|
4
18
|
appKey: string;
|
|
5
19
|
url: string;
|
|
@@ -9,8 +23,23 @@ export interface CountlyAIConfig {
|
|
|
9
23
|
environment?: string;
|
|
10
24
|
source?: string;
|
|
11
25
|
trackAPM?: boolean;
|
|
12
|
-
trackUserData?: boolean;
|
|
13
26
|
trackErrors?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Called synchronously after each tracked interaction (success or error)
|
|
29
|
+
* with the generated `prompt_id`. This is the only way to obtain the
|
|
30
|
+
* correlation key needed for `createFeedbackTracker`.
|
|
31
|
+
* Exceptions thrown here are swallowed — they never break tracking.
|
|
32
|
+
*/
|
|
33
|
+
onPrompt?: (info: PromptInfo) => void;
|
|
34
|
+
/**
|
|
35
|
+
* Caller-supplied prompt_id source. When provided and it returns a non-empty
|
|
36
|
+
* string, that id is stamped on the interaction (and its tool events) instead
|
|
37
|
+
* of an auto-generated one — letting the host correlate its own request (and
|
|
38
|
+
* later user feedback via createFeedbackTracker) with the emitted event.
|
|
39
|
+
* Called once per interaction; return undefined to fall back to auto-generate.
|
|
40
|
+
* This is the wrapped-client equivalent of the Mastra requestContextPromptIdKey.
|
|
41
|
+
*/
|
|
42
|
+
getPromptId?: () => string | undefined;
|
|
14
43
|
textPreviewLength?: number;
|
|
15
44
|
flushInterval?: number;
|
|
16
45
|
maxBatchSize?: number;
|
|
@@ -30,8 +59,9 @@ export interface ResolvedConfig {
|
|
|
30
59
|
environment: string;
|
|
31
60
|
source: string;
|
|
32
61
|
trackAPM: boolean;
|
|
33
|
-
trackUserData: boolean;
|
|
34
62
|
trackErrors: boolean;
|
|
63
|
+
onPrompt: ((info: PromptInfo) => void) | undefined;
|
|
64
|
+
getPromptId: (() => string | undefined) | undefined;
|
|
35
65
|
textPreviewLength: number;
|
|
36
66
|
flushInterval: number;
|
|
37
67
|
maxBatchSize: number;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IAGZ,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAGxC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAG/B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IAGZ,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAGxC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAG/B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAEtC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAGvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,SAAS,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC1C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACnD,WAAW,EAAE,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,EAAE,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CACrD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CAqBrE"}
|
package/dist/config.js
CHANGED
|
@@ -8,8 +8,9 @@ export function resolveConfig(config) {
|
|
|
8
8
|
environment: config.environment ?? "production",
|
|
9
9
|
source: config.source ?? "api",
|
|
10
10
|
trackAPM: config.trackAPM ?? true,
|
|
11
|
-
trackUserData: config.trackUserData ?? true,
|
|
12
11
|
trackErrors: config.trackErrors ?? true,
|
|
12
|
+
onPrompt: config.onPrompt,
|
|
13
|
+
getPromptId: config.getPromptId,
|
|
13
14
|
textPreviewLength: config.textPreviewLength ?? 200,
|
|
14
15
|
flushInterval: config.flushInterval ?? 10_000,
|
|
15
16
|
maxBatchSize: config.maxBatchSize ?? 20,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAyFA,MAAM,UAAU,aAAa,CAAC,MAAuB;IACnD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAClC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,CAAC;QAClD,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,YAAY;QAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;QAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;QACjC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;QACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,GAAG;QAClD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,MAAM;QAC7C,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;QACvC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;QAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;QAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC;AACJ,CAAC"}
|
package/dist/cost.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export interface ModelPricing {
|
|
|
2
2
|
input_per_mtok: number;
|
|
3
3
|
output_per_mtok: number;
|
|
4
4
|
cached_per_mtok?: number;
|
|
5
|
+
cache_write_per_mtok?: number;
|
|
5
6
|
reason_per_mtok?: number;
|
|
6
7
|
}
|
|
7
8
|
export type CostModelOverrides = Record<string, Partial<ModelPricing>>;
|
|
@@ -16,6 +17,7 @@ export declare function calculateCost(model: string, tokens: {
|
|
|
16
17
|
input: number;
|
|
17
18
|
output: number;
|
|
18
19
|
cached?: number;
|
|
20
|
+
cacheWrite?: number;
|
|
19
21
|
reasoning?: number;
|
|
20
22
|
}, overrides?: CostModelOverrides): CostResult;
|
|
21
23
|
//# sourceMappingURL=cost.d.ts.map
|
package/dist/cost.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AASvE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAsDxD,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EACnG,SAAS,CAAC,EAAE,kBAAkB,GAC7B,UAAU,CAuCZ"}
|
package/dist/cost.js
CHANGED
|
@@ -1,66 +1,111 @@
|
|
|
1
|
+
// Prices are USD per 1M tokens. This table is GENERATED — do not hand-edit.
|
|
2
|
+
// Run `node scripts/generate-pricing.mjs` to refresh it from LiteLLM's
|
|
3
|
+
// model_prices_and_context_window.json, then paste the output below.
|
|
4
|
+
//
|
|
5
|
+
// reason_per_mtok is set ONLY for models the source prices reasoning as a
|
|
6
|
+
// SEPARATE bucket (Gemini thinking models). OpenAI o-series have no separate
|
|
7
|
+
// reasoning price there, so reasoning is billed once at the output rate.
|
|
1
8
|
export const DEFAULT_PRICING = {
|
|
2
|
-
// ── OpenAI: GPT-
|
|
3
|
-
"gpt-5.5": { input_per_mtok: 5, output_per_mtok: 30 },
|
|
4
|
-
"gpt-5.5-pro": { input_per_mtok: 30, output_per_mtok: 180 },
|
|
5
|
-
"gpt-5.4": { input_per_mtok: 2.5, output_per_mtok: 15 },
|
|
6
|
-
"gpt-5.4-mini": { input_per_mtok: 0.75, output_per_mtok: 4.5 },
|
|
7
|
-
"gpt-5.4-nano": { input_per_mtok: 0.2, output_per_mtok: 1.25 },
|
|
8
|
-
"gpt-5.4-pro": { input_per_mtok: 30, output_per_mtok: 180 },
|
|
9
|
-
"gpt-5.3-codex": { input_per_mtok: 3.5, output_per_mtok: 28 },
|
|
10
|
-
// ── OpenAI: GPT-4.x ──────────────────────────────────────────────
|
|
9
|
+
// ── OpenAI: GPT-4.x ──
|
|
11
10
|
"gpt-4o": { input_per_mtok: 2.5, output_per_mtok: 10, cached_per_mtok: 1.25 },
|
|
12
11
|
"gpt-4o-mini": { input_per_mtok: 0.15, output_per_mtok: 0.6, cached_per_mtok: 0.075 },
|
|
13
12
|
"gpt-4.1": { input_per_mtok: 2, output_per_mtok: 8, cached_per_mtok: 0.5 },
|
|
14
13
|
"gpt-4.1-mini": { input_per_mtok: 0.4, output_per_mtok: 1.6, cached_per_mtok: 0.1 },
|
|
15
14
|
"gpt-4.1-nano": { input_per_mtok: 0.1, output_per_mtok: 0.4, cached_per_mtok: 0.025 },
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
15
|
+
"gpt-4-turbo": { input_per_mtok: 10, output_per_mtok: 30 },
|
|
16
|
+
// ── OpenAI: GPT-5.x ──
|
|
17
|
+
"gpt-5": { input_per_mtok: 1.25, output_per_mtok: 10, cached_per_mtok: 0.125 },
|
|
18
|
+
"gpt-5-mini": { input_per_mtok: 0.25, output_per_mtok: 2, cached_per_mtok: 0.025 },
|
|
19
|
+
"gpt-5-nano": { input_per_mtok: 0.05, output_per_mtok: 0.4, cached_per_mtok: 0.005 },
|
|
20
|
+
"gpt-5-pro": { input_per_mtok: 15, output_per_mtok: 120 },
|
|
21
|
+
"gpt-5.1": { input_per_mtok: 1.25, output_per_mtok: 10, cached_per_mtok: 0.125 },
|
|
22
|
+
"gpt-5.2": { input_per_mtok: 1.75, output_per_mtok: 14, cached_per_mtok: 0.175 },
|
|
23
|
+
"gpt-5.2-pro": { input_per_mtok: 21, output_per_mtok: 168 },
|
|
24
|
+
"gpt-5.4": { input_per_mtok: 2.5, output_per_mtok: 15, cached_per_mtok: 0.25 },
|
|
25
|
+
"gpt-5.4-mini": { input_per_mtok: 0.75, output_per_mtok: 4.5, cached_per_mtok: 0.075 },
|
|
26
|
+
"gpt-5.4-nano": { input_per_mtok: 0.2, output_per_mtok: 1.25, cached_per_mtok: 0.02 },
|
|
27
|
+
"gpt-5.4-pro": { input_per_mtok: 30, output_per_mtok: 180, cached_per_mtok: 3 },
|
|
28
|
+
"gpt-5.5": { input_per_mtok: 5, output_per_mtok: 30, cached_per_mtok: 0.5 },
|
|
29
|
+
"gpt-5.5-pro": { input_per_mtok: 30, output_per_mtok: 180, cached_per_mtok: 3 },
|
|
30
|
+
// ── OpenAI: o-series (reasoning billed as output — no separate reason rate) ──
|
|
31
|
+
"o1": { input_per_mtok: 15, output_per_mtok: 60, cached_per_mtok: 7.5 },
|
|
32
|
+
"o3": { input_per_mtok: 2, output_per_mtok: 8, cached_per_mtok: 0.5 },
|
|
33
|
+
"o3-mini": { input_per_mtok: 1.1, output_per_mtok: 4.4, cached_per_mtok: 0.55 },
|
|
34
|
+
"o3-pro": { input_per_mtok: 20, output_per_mtok: 80 },
|
|
35
|
+
"o4-mini": { input_per_mtok: 1.1, output_per_mtok: 4.4, cached_per_mtok: 0.275 },
|
|
36
|
+
// ── Anthropic: Claude 3.x / 4.x ──
|
|
37
|
+
"claude-3-haiku-20240307": { input_per_mtok: 0.25, output_per_mtok: 1.25, cached_per_mtok: 0.03, cache_write_per_mtok: 0.3 },
|
|
38
|
+
"claude-3-opus-20240229": { input_per_mtok: 15, output_per_mtok: 75, cached_per_mtok: 1.5, cache_write_per_mtok: 18.75 },
|
|
39
|
+
"claude-3-7-sonnet-20250219": { input_per_mtok: 3, output_per_mtok: 15, cached_per_mtok: 0.3, cache_write_per_mtok: 3.75 },
|
|
40
|
+
"claude-sonnet-4-20250514": { input_per_mtok: 3, output_per_mtok: 15, cached_per_mtok: 0.3, cache_write_per_mtok: 3.75 },
|
|
41
|
+
"claude-opus-4-20250514": { input_per_mtok: 15, output_per_mtok: 75, cached_per_mtok: 1.5, cache_write_per_mtok: 18.75 },
|
|
42
|
+
"claude-opus-4-1": { input_per_mtok: 15, output_per_mtok: 75, cached_per_mtok: 1.5, cache_write_per_mtok: 18.75 },
|
|
43
|
+
"claude-sonnet-4-5": { input_per_mtok: 3, output_per_mtok: 15, cached_per_mtok: 0.3, cache_write_per_mtok: 3.75 },
|
|
44
|
+
"claude-haiku-4-5": { input_per_mtok: 1, output_per_mtok: 5, cached_per_mtok: 0.1, cache_write_per_mtok: 1.25 },
|
|
45
|
+
// ── Google: Gemini 2.x / 3.x ──
|
|
42
46
|
"gemini-2.0-flash": { input_per_mtok: 0.1, output_per_mtok: 0.4, cached_per_mtok: 0.025 },
|
|
43
|
-
|
|
47
|
+
"gemini-2.0-flash-lite": { input_per_mtok: 0.075, output_per_mtok: 0.3, cached_per_mtok: 0.01875 },
|
|
48
|
+
"gemini-2.5-pro": { input_per_mtok: 1.25, output_per_mtok: 10, cached_per_mtok: 0.125 },
|
|
49
|
+
"gemini-2.5-flash": { input_per_mtok: 0.3, output_per_mtok: 2.5, cached_per_mtok: 0.03, reason_per_mtok: 2.5 },
|
|
50
|
+
"gemini-2.5-flash-lite": { input_per_mtok: 0.1, output_per_mtok: 0.4, cached_per_mtok: 0.01, reason_per_mtok: 0.4 },
|
|
51
|
+
"gemini-3-flash-preview": { input_per_mtok: 0.5, output_per_mtok: 3, cached_per_mtok: 0.05, reason_per_mtok: 3 },
|
|
52
|
+
"gemini-3-pro-preview": { input_per_mtok: 2, output_per_mtok: 12, cached_per_mtok: 0.2 },
|
|
53
|
+
"gemini-3.1-flash-lite": { input_per_mtok: 0.25, output_per_mtok: 1.5, cached_per_mtok: 0.025, reason_per_mtok: 1.5 },
|
|
54
|
+
"gemini-3.1-flash-lite-preview": { input_per_mtok: 0.25, output_per_mtok: 1.5, cached_per_mtok: 0.025, reason_per_mtok: 1.5 },
|
|
55
|
+
"gemini-3.1-pro-preview": { input_per_mtok: 2, output_per_mtok: 12, cached_per_mtok: 0.2 },
|
|
56
|
+
"gemini-3.5-flash": { input_per_mtok: 1.5, output_per_mtok: 9, cached_per_mtok: 0.15, reason_per_mtok: 9 },
|
|
57
|
+
// ── Cohere ──
|
|
44
58
|
"command-r-plus": { input_per_mtok: 2.5, output_per_mtok: 10 },
|
|
45
59
|
"command-r": { input_per_mtok: 0.15, output_per_mtok: 0.6 },
|
|
60
|
+
"command-r7b-12-2024": { input_per_mtok: 0.0375, output_per_mtok: 0.15 },
|
|
61
|
+
"command-a-03-2025": { input_per_mtok: 2.5, output_per_mtok: 10 },
|
|
46
62
|
};
|
|
47
63
|
export function calculateCost(model, tokens, overrides) {
|
|
48
64
|
const pricing = findPricing(model, overrides);
|
|
49
65
|
if (!pricing) {
|
|
50
66
|
return { cost_input: 0, cost_output: 0, cost_reason: 0, cost_total: 0 };
|
|
51
67
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
68
|
+
// Coerce token counts and rates to finite numbers so a stray undefined/NaN
|
|
69
|
+
// (from a mis-shaped provider response or a partial override) can never leak
|
|
70
|
+
// NaN into cost_total and, via JSON, corrupt the segmentation aggregation.
|
|
71
|
+
const inputTok = finite(tokens.input);
|
|
72
|
+
const outputTok = finite(tokens.output);
|
|
73
|
+
const reasoningTok = finite(tokens.reasoning);
|
|
74
|
+
const inputRate = finite(pricing.input_per_mtok);
|
|
75
|
+
const outputRate = finite(pricing.output_per_mtok);
|
|
76
|
+
const reasonRate = finite(pricing.reason_per_mtok);
|
|
77
|
+
// Cache accounting. Contract (verified per provider): `input` is the FULL
|
|
78
|
+
// input count INCLUDING cache-read tokens (OpenAI prompt_tokens, Gemini
|
|
79
|
+
// promptTokenCount, and AI SDK inputTokens all include cache-read; the
|
|
80
|
+
// Anthropic adapter normalizes input_tokens + cache_read to match). So the
|
|
81
|
+
// cache-read portion is a subset of input, billed at the discounted rate;
|
|
82
|
+
// the non-cached remainder at the full input rate. `cacheWrite`
|
|
83
|
+
// (cache-creation) is SEPARATE/additive and billed at the write premium.
|
|
84
|
+
const cacheReadTok = Math.min(Math.max(finite(tokens.cached), 0), inputTok);
|
|
85
|
+
const cacheWriteTok = finite(tokens.cacheWrite);
|
|
86
|
+
const cachedRate = pricing.cached_per_mtok != null ? finite(pricing.cached_per_mtok) : inputRate;
|
|
87
|
+
const writeRate = pricing.cache_write_per_mtok != null ? finite(pricing.cache_write_per_mtok) : inputRate;
|
|
88
|
+
const cost_input = ((inputTok - cacheReadTok) / 1_000_000) * inputRate
|
|
89
|
+
+ (cacheReadTok / 1_000_000) * cachedRate
|
|
90
|
+
+ (cacheWriteTok / 1_000_000) * writeRate;
|
|
91
|
+
const cost_output = (outputTok / 1_000_000) * outputRate;
|
|
92
|
+
const cost_reason = reasoningTok && reasonRate
|
|
93
|
+
? (reasoningTok / 1_000_000) * reasonRate
|
|
56
94
|
: 0;
|
|
57
95
|
const cost_total = cost_input + cost_output + cost_reason;
|
|
58
96
|
return { cost_input, cost_output, cost_reason, cost_total };
|
|
59
97
|
}
|
|
98
|
+
/** Coerce a possibly undefined/NaN value to a finite number (0 otherwise). */
|
|
99
|
+
function finite(n) {
|
|
100
|
+
return typeof n === "number" && Number.isFinite(n) ? n : 0;
|
|
101
|
+
}
|
|
60
102
|
function findPricing(model, overrides) {
|
|
61
103
|
// Check overrides first
|
|
62
104
|
if (overrides?.[model]) {
|
|
63
|
-
|
|
105
|
+
// Default missing base fields to 0 so a partial override on an UNKNOWN
|
|
106
|
+
// model (no DEFAULT_PRICING entry) can't leave output_per_mtok undefined
|
|
107
|
+
// and produce NaN cost downstream.
|
|
108
|
+
const base = DEFAULT_PRICING[model] ?? { input_per_mtok: 0, output_per_mtok: 0 };
|
|
64
109
|
return { ...base, ...overrides[model] };
|
|
65
110
|
}
|
|
66
111
|
// Exact match
|
package/dist/cost.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../src/cost.ts"],"names":[],"mappings":"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"}
|
package/dist/events.d.ts
CHANGED
|
@@ -28,6 +28,10 @@ export declare function buildFeedbackEvent(feedback: {
|
|
|
28
28
|
score?: number;
|
|
29
29
|
category?: string;
|
|
30
30
|
comment?: string;
|
|
31
|
+
/** Deployment environment, e.g. "production" — lets dashboards slice feedback like interactions. */
|
|
32
|
+
environment?: string;
|
|
33
|
+
/** Adapter that produced the interaction being rated, e.g. "openai". */
|
|
34
|
+
sdk_adapter?: string;
|
|
31
35
|
deviceId?: string;
|
|
32
36
|
}): CountlyEvent;
|
|
33
37
|
export declare function buildAllEvents(raw: RawExtractionResult, config: ResolvedConfig, context: EventContext): CountlyEvent[];
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,SAAS,CAAC;AAKhE,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IAKd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAyDD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,YAAY,GACpB,YAAY,CA8Gd;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,YAAY,GACpB,YAAY,EAAE,CAuBhB;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,YAAY,GACpB,YAAY,EAAE,CA4ChB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,MAAM,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oGAAoG;IACpG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,YAAY,CAkBf;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,YAAY,GACpB,YAAY,EAAE,CA4BhB"}
|
package/dist/events.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SDK_VERSION } from "./version";
|
|
1
2
|
import { normalizeFinishReason } from "./normalize";
|
|
2
3
|
import { calculateCost } from "./cost";
|
|
3
4
|
import { truncateText } from "./session";
|
|
@@ -9,9 +10,34 @@ function createTimestamp() {
|
|
|
9
10
|
dow: now.getDay(),
|
|
10
11
|
};
|
|
11
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* A string that is itself a serialized JSON object/array (e.g. a
|
|
15
|
+
* `[{role,content}]` messages array the adapter already stringified).
|
|
16
|
+
* Such payloads must be preserved WHOLE — the analytics dashboard renders
|
|
17
|
+
* them as a JSON tree, and slicing one mid-structure corrupts the JSON and
|
|
18
|
+
* forces a raw-text fallback. Cheap first-char gate before the parse.
|
|
19
|
+
*/
|
|
20
|
+
function isJsonContainerString(s) {
|
|
21
|
+
const first = s[0];
|
|
22
|
+
if (first !== "{" && first !== "[")
|
|
23
|
+
return false;
|
|
24
|
+
try {
|
|
25
|
+
const v = JSON.parse(s);
|
|
26
|
+
return typeof v === "object" && v !== null;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
12
32
|
function makePreview(input, maxLength) {
|
|
13
|
-
if (typeof input === "string")
|
|
33
|
+
if (typeof input === "string") {
|
|
34
|
+
// Keep serialized JSON prompts intact so they stay parseable; only
|
|
35
|
+
// free-form text is length-capped.
|
|
36
|
+
const trimmed = input.trim();
|
|
37
|
+
if (isJsonContainerString(trimmed))
|
|
38
|
+
return trimmed;
|
|
14
39
|
return truncateText(input, maxLength);
|
|
40
|
+
}
|
|
15
41
|
if (!Array.isArray(input))
|
|
16
42
|
return input ? truncateText(String(input), maxLength) : undefined;
|
|
17
43
|
// Filter to user/assistant messages only — drop system and tool roles
|
|
@@ -38,6 +64,7 @@ export function buildInteractionEvent(raw, config, context) {
|
|
|
38
64
|
input: raw.usage_input,
|
|
39
65
|
output: raw.usage_output,
|
|
40
66
|
cached: raw.usage_cache_read,
|
|
67
|
+
cacheWrite: raw.usage_cache_write,
|
|
41
68
|
reasoning: raw.usage_reasoning,
|
|
42
69
|
}, config.costModel);
|
|
43
70
|
const seg = {
|
|
@@ -66,8 +93,7 @@ export function buildInteractionEvent(raw, config, context) {
|
|
|
66
93
|
seg.agent = context.agent;
|
|
67
94
|
if (context.requests)
|
|
68
95
|
seg.requests = context.requests;
|
|
69
|
-
|
|
70
|
-
seg.sdk_version = context.sdk_version;
|
|
96
|
+
seg.sdk_version = context.sdk_version ?? SDK_VERSION;
|
|
71
97
|
// Adapter-emitted structural metadata (Mastra agents/workflows/steps).
|
|
72
98
|
if (raw.agent_name)
|
|
73
99
|
seg.agent_name = raw.agent_name;
|
|
@@ -121,6 +147,11 @@ export function buildInteractionEvent(raw, config, context) {
|
|
|
121
147
|
// Status
|
|
122
148
|
if (raw.error)
|
|
123
149
|
seg.error = raw.error;
|
|
150
|
+
// Tool aggregates are part of the interaction event at EVERY level,
|
|
151
|
+
// including level 0: which tools ran and how many times is an aggregate,
|
|
152
|
+
// non-sensitive fact of the call. Observability levels gate the separate
|
|
153
|
+
// events instead — level >=1 unlocks per-tool [CLY]_llm_tool_used rows,
|
|
154
|
+
// level 2 unlocks [CLY]_llm_tool_usage_parameter argument values.
|
|
124
155
|
const distinct = Array.from(new Set((raw.tools ?? []).map(t => t.name).filter(Boolean)));
|
|
125
156
|
if (distinct.length > 0) {
|
|
126
157
|
seg.tools_used = distinct.join(",");
|
|
@@ -180,26 +211,41 @@ export function buildToolParameterEvents(raw, config, context) {
|
|
|
180
211
|
return [];
|
|
181
212
|
const ts = createTimestamp();
|
|
182
213
|
const events = [];
|
|
214
|
+
const makeParamEvent = (tool, param_name, param_value) => {
|
|
215
|
+
const event = {
|
|
216
|
+
key: "[CLY]_llm_tool_usage_parameter",
|
|
217
|
+
count: 1,
|
|
218
|
+
segmentation: {
|
|
219
|
+
prompt_id: context.prompt_id,
|
|
220
|
+
...(context.thread_id && { thread_id: context.thread_id }),
|
|
221
|
+
...(raw.agent_name && { agent_name: raw.agent_name }),
|
|
222
|
+
tool_name: tool.name,
|
|
223
|
+
param_name,
|
|
224
|
+
param_value: typeof param_value === "string" ? param_value : JSON.stringify(param_value),
|
|
225
|
+
},
|
|
226
|
+
...ts,
|
|
227
|
+
};
|
|
228
|
+
if (raw.deviceId)
|
|
229
|
+
event.deviceId = raw.deviceId;
|
|
230
|
+
return event;
|
|
231
|
+
};
|
|
183
232
|
for (const tool of raw.tools) {
|
|
184
|
-
|
|
233
|
+
// Typed Record<string,unknown>, but adapters (e.g. Mastra) may assign a raw
|
|
234
|
+
// span.input of any shape at runtime — treat as unknown and guard below.
|
|
235
|
+
const args = tool.arguments;
|
|
236
|
+
if (args == null || args === "")
|
|
185
237
|
continue;
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
},
|
|
198
|
-
...ts,
|
|
199
|
-
};
|
|
200
|
-
if (raw.deviceId)
|
|
201
|
-
event.deviceId = raw.deviceId;
|
|
202
|
-
events.push(event);
|
|
238
|
+
// Only named-argument objects iterate to one event per parameter. A bare
|
|
239
|
+
// string/array/other (some adapters pass raw span.input) would make
|
|
240
|
+
// Object.entries emit garbage per character/index, so collapse it into a
|
|
241
|
+
// single "input" parameter instead.
|
|
242
|
+
if (typeof args === "object" && !Array.isArray(args)) {
|
|
243
|
+
for (const [param_name, param_value] of Object.entries(args)) {
|
|
244
|
+
events.push(makeParamEvent(tool, param_name, param_value));
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
events.push(makeParamEvent(tool, "input", args));
|
|
203
249
|
}
|
|
204
250
|
}
|
|
205
251
|
return events;
|
|
@@ -215,6 +261,8 @@ export function buildFeedbackEvent(feedback) {
|
|
|
215
261
|
...(feedback.score != null && { score: feedback.score }),
|
|
216
262
|
...(feedback.category && { category: feedback.category }),
|
|
217
263
|
...(feedback.comment && { comment: feedback.comment }),
|
|
264
|
+
...(feedback.environment && { environment: feedback.environment }),
|
|
265
|
+
...(feedback.sdk_adapter && { sdk_adapter: feedback.sdk_adapter }),
|
|
218
266
|
},
|
|
219
267
|
...createTimestamp(),
|
|
220
268
|
};
|
|
@@ -225,10 +273,29 @@ export function buildFeedbackEvent(feedback) {
|
|
|
225
273
|
export function buildAllEvents(raw, config, context) {
|
|
226
274
|
if (config.disabled)
|
|
227
275
|
return [];
|
|
228
|
-
|
|
276
|
+
const events = [
|
|
229
277
|
buildInteractionEvent(raw, config, context),
|
|
230
278
|
...buildToolUsedEvents(raw, config, context),
|
|
231
279
|
...buildToolParameterEvents(raw, config, context),
|
|
232
280
|
];
|
|
281
|
+
// Hand the correlation key to the app. A throwing user callback must never
|
|
282
|
+
// break tracking, so failures are swallowed (logged in debug mode).
|
|
283
|
+
if (config.onPrompt) {
|
|
284
|
+
try {
|
|
285
|
+
config.onPrompt({
|
|
286
|
+
prompt_id: context.prompt_id,
|
|
287
|
+
...(context.thread_id && { thread_id: context.thread_id }),
|
|
288
|
+
provider: raw.provider,
|
|
289
|
+
model: raw.model,
|
|
290
|
+
status: raw.status,
|
|
291
|
+
sdk_adapter: context.sdk_adapter,
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
catch (err) {
|
|
295
|
+
if (config.debug)
|
|
296
|
+
console.error("[countly-ai] onPrompt callback threw:", err);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return events;
|
|
233
300
|
}
|
|
234
301
|
//# sourceMappingURL=events.js.map
|
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type CountlyAIConfig } from "./config";
|
|
2
|
+
export interface FeedbackInput {
|
|
3
|
+
/** Correlation key of the interaction being rated — capture it via the `onPrompt` config callback. */
|
|
4
|
+
prompt_id: string;
|
|
5
|
+
thread_id?: string;
|
|
6
|
+
rating: "thumbs_up" | "thumbs_down" | string;
|
|
7
|
+
score?: number;
|
|
8
|
+
category?: string;
|
|
9
|
+
comment?: string;
|
|
10
|
+
/** Overrides the tracker-level sdk_adapter for this one feedback. */
|
|
11
|
+
sdk_adapter?: string;
|
|
12
|
+
deviceId?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface FeedbackTracker {
|
|
15
|
+
/** Records one [CLY]_llm_interaction_feedback event (batched; see flushInterval). */
|
|
16
|
+
track(feedback: FeedbackInput): void;
|
|
17
|
+
/** Sends any buffered feedback immediately. */
|
|
18
|
+
flush(): Promise<void>;
|
|
19
|
+
/** Flushes and stops the tracker. */
|
|
20
|
+
shutdown(): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Standalone feedback pipeline — feedback usually arrives long after the LLM
|
|
24
|
+
* call returned (a user clicks 👍 minutes later), so it gets its own tracker
|
|
25
|
+
* instead of hanging off a wrapped client.
|
|
26
|
+
*
|
|
27
|
+
* `environment` is stamped from config onto every feedback event so
|
|
28
|
+
* dashboards can slice feedback exactly like interactions.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* let lastPromptId: string | undefined;
|
|
33
|
+
* const client = observeOpenAI(new OpenAI(), {
|
|
34
|
+
* appKey, url,
|
|
35
|
+
* onPrompt: ({ prompt_id }) => { lastPromptId = prompt_id; },
|
|
36
|
+
* });
|
|
37
|
+
* const feedback = createFeedbackTracker({ appKey, url }, { sdk_adapter: "openai" });
|
|
38
|
+
* // ...after the user rates the answer:
|
|
39
|
+
* feedback.track({ prompt_id: lastPromptId!, rating: "thumbs_up" });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare function createFeedbackTracker(options: CountlyAIConfig, defaults?: {
|
|
43
|
+
sdk_adapter?: string;
|
|
44
|
+
}): FeedbackTracker;
|
|
45
|
+
//# sourceMappingURL=feedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAI/D,MAAM,WAAW,aAAa;IAC5B,sGAAsG;IACtG,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,MAAM,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,qFAAqF;IACrF,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,+CAA+C;IAC/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,qCAAqC;IACrC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,EACxB,QAAQ,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,eAAe,CAgBjB"}
|
package/dist/feedback.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { resolveConfig } from "./config";
|
|
2
|
+
import { buildFeedbackEvent } from "./events";
|
|
3
|
+
import { createTransport } from "./transport";
|
|
4
|
+
/**
|
|
5
|
+
* Standalone feedback pipeline — feedback usually arrives long after the LLM
|
|
6
|
+
* call returned (a user clicks 👍 minutes later), so it gets its own tracker
|
|
7
|
+
* instead of hanging off a wrapped client.
|
|
8
|
+
*
|
|
9
|
+
* `environment` is stamped from config onto every feedback event so
|
|
10
|
+
* dashboards can slice feedback exactly like interactions.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* let lastPromptId: string | undefined;
|
|
15
|
+
* const client = observeOpenAI(new OpenAI(), {
|
|
16
|
+
* appKey, url,
|
|
17
|
+
* onPrompt: ({ prompt_id }) => { lastPromptId = prompt_id; },
|
|
18
|
+
* });
|
|
19
|
+
* const feedback = createFeedbackTracker({ appKey, url }, { sdk_adapter: "openai" });
|
|
20
|
+
* // ...after the user rates the answer:
|
|
21
|
+
* feedback.track({ prompt_id: lastPromptId!, rating: "thumbs_up" });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export function createFeedbackTracker(options, defaults) {
|
|
25
|
+
const config = resolveConfig(options);
|
|
26
|
+
const transport = createTransport(config);
|
|
27
|
+
return {
|
|
28
|
+
track(feedback) {
|
|
29
|
+
const event = buildFeedbackEvent({
|
|
30
|
+
...feedback,
|
|
31
|
+
environment: config.environment,
|
|
32
|
+
sdk_adapter: feedback.sdk_adapter ?? defaults?.sdk_adapter,
|
|
33
|
+
});
|
|
34
|
+
transport.enqueue([event]);
|
|
35
|
+
},
|
|
36
|
+
flush: () => transport.flush(),
|
|
37
|
+
shutdown: () => transport.shutdown(),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwB,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAkB,MAAM,aAAa,CAAC;AAwB9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAwB,EACxB,QAAmC;IAEnC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,SAAS,GAAc,eAAe,CAAC,MAAM,CAAC,CAAC;IAErD,OAAO;QACL,KAAK,CAAC,QAAuB;YAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAC;gBAC/B,GAAG,QAAQ;gBACX,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,QAAQ,EAAE,WAAW;aAC3D,CAAC,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;QAC9B,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE;KACrC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
export { resolveConfig } from "./config";
|
|
2
|
-
export type { CountlyAIConfig, ResolvedConfig } from "./config";
|
|
2
|
+
export type { CountlyAIConfig, ResolvedConfig, PromptInfo } from "./config";
|
|
3
3
|
export type { ObservabilityLevel, RawExtractionResult, RawToolCall } from "./types";
|
|
4
4
|
export { buildAllEvents, buildInteractionEvent, buildToolUsedEvents, buildToolParameterEvents, buildFeedbackEvent, } from "./events";
|
|
5
5
|
export type { CountlyEvent, EventContext } from "./events";
|
|
6
|
-
export { normalizeFinishReason } from "./normalize";
|
|
6
|
+
export { normalizeFinishReason, inferProviderFromModel } from "./normalize";
|
|
7
7
|
export type { NormalizedFinishReason } from "./normalize";
|
|
8
8
|
export { calculateCost, DEFAULT_PRICING } from "./cost";
|
|
9
9
|
export type { ModelPricing, CostModelOverrides, CostResult } from "./cost";
|
|
10
10
|
export { createTransport } from "./transport";
|
|
11
11
|
export type { Transport } from "./transport";
|
|
12
12
|
export { generatePromptId, generateThreadId, truncateText } from "./session";
|
|
13
|
+
export { createFeedbackTracker } from "./feedback";
|
|
14
|
+
export type { FeedbackInput, FeedbackTracker } from "./feedback";
|
|
15
|
+
export { SDK_VERSION } from "./version";
|
|
13
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE5E,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEpF,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { resolveConfig } from "./config";
|
|
2
2
|
export { buildAllEvents, buildInteractionEvent, buildToolUsedEvents, buildToolParameterEvents, buildFeedbackEvent, } from "./events";
|
|
3
|
-
export { normalizeFinishReason } from "./normalize";
|
|
3
|
+
export { normalizeFinishReason, inferProviderFromModel } from "./normalize";
|
|
4
4
|
export { calculateCost, DEFAULT_PRICING } from "./cost";
|
|
5
5
|
export { createTransport } from "./transport";
|
|
6
6
|
export { generatePromptId, generateThreadId, truncateText } from "./session";
|
|
7
|
+
export { createFeedbackTracker } from "./feedback";
|
|
8
|
+
export { SDK_VERSION } from "./version";
|
|
7
9
|
//# 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,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKzC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKzC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/normalize.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
export type NormalizedFinishReason = "stop" | "length" | "tool_calls" | "content_filter" | "error" | "other";
|
|
2
|
+
/**
|
|
3
|
+
* Infer the real model VENDOR from a model id. Framework adapters (LangChain,
|
|
4
|
+
* LlamaIndex) don't know the underlying vendor, so they'd otherwise report the
|
|
5
|
+
* framework name as `provider` — making the provider dimension useless and
|
|
6
|
+
* breaking finish_reason normalization. Prefix-match the well-known families.
|
|
7
|
+
* Returns undefined when the vendor can't be determined.
|
|
8
|
+
*/
|
|
9
|
+
export declare function inferProviderFromModel(model: string | undefined): string | undefined;
|
|
2
10
|
export declare function normalizeFinishReason(raw: string | undefined, provider: string): NormalizedFinishReason;
|
|
3
11
|
//# sourceMappingURL=normalize.d.ts.map
|
package/dist/normalize.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,QAAQ,GACR,YAAY,GACZ,gBAAgB,GAChB,OAAO,GACP,OAAO,CAAC;AA4CZ,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,QAAQ,EAAE,MAAM,GACf,sBAAsB,
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,QAAQ,GACR,YAAY,GACZ,gBAAgB,GAChB,OAAO,GACP,OAAO,CAAC;AA4CZ;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAapF;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,QAAQ,EAAE,MAAM,GACf,sBAAsB,CAqBxB"}
|
package/dist/normalize.js
CHANGED
|
@@ -39,22 +39,65 @@ const FINISH_REASON_MAP = {
|
|
|
39
39
|
other: "other",
|
|
40
40
|
},
|
|
41
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* Infer the real model VENDOR from a model id. Framework adapters (LangChain,
|
|
44
|
+
* LlamaIndex) don't know the underlying vendor, so they'd otherwise report the
|
|
45
|
+
* framework name as `provider` — making the provider dimension useless and
|
|
46
|
+
* breaking finish_reason normalization. Prefix-match the well-known families.
|
|
47
|
+
* Returns undefined when the vendor can't be determined.
|
|
48
|
+
*/
|
|
49
|
+
export function inferProviderFromModel(model) {
|
|
50
|
+
if (!model)
|
|
51
|
+
return undefined;
|
|
52
|
+
const m = model.toLowerCase().split("/").pop() ?? "";
|
|
53
|
+
if (/^(gpt-|o1|o3|o4|chatgpt|davinci|babbage|text-embedding|text-davinci)/.test(m))
|
|
54
|
+
return "openai";
|
|
55
|
+
if (m.startsWith("claude"))
|
|
56
|
+
return "anthropic";
|
|
57
|
+
if (m.startsWith("gemini") || m.startsWith("palm") || m.startsWith("text-bison"))
|
|
58
|
+
return "google";
|
|
59
|
+
if (m.startsWith("command") || m.startsWith("cohere") || m.startsWith("rerank"))
|
|
60
|
+
return "cohere";
|
|
61
|
+
if (m.startsWith("mistral") || m.startsWith("mixtral") || m.startsWith("magistral") || m.startsWith("ministral") || m.startsWith("codestral"))
|
|
62
|
+
return "mistral";
|
|
63
|
+
if (m.startsWith("llama") || m.startsWith("meta-llama"))
|
|
64
|
+
return "meta";
|
|
65
|
+
if (m.startsWith("deepseek"))
|
|
66
|
+
return "deepseek";
|
|
67
|
+
if (m.startsWith("grok"))
|
|
68
|
+
return "xai";
|
|
69
|
+
if (m.startsWith("qwen") || m.startsWith("qwq"))
|
|
70
|
+
return "alibaba";
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
42
73
|
export function normalizeFinishReason(raw, provider) {
|
|
43
74
|
if (!raw)
|
|
44
75
|
return "other";
|
|
45
76
|
// Extract root provider from dotted/slashed strings: "google.generative-ai" → "google"
|
|
46
77
|
const root = provider.split(".")[0].split("/")[0].toLowerCase();
|
|
47
78
|
const providerMap = FINISH_REASON_MAP[root];
|
|
79
|
+
// AI SDK (Vercel) emits hyphenated reasons ("tool-calls") but sets provider to
|
|
80
|
+
// the real vendor, whose table is underscored — so also try the underscored
|
|
81
|
+
// variant against the provider map before falling through.
|
|
82
|
+
const underscored = raw.replace(/-/g, "_");
|
|
48
83
|
if (providerMap) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
84
|
+
if (providerMap[raw])
|
|
85
|
+
return providerMap[raw];
|
|
86
|
+
if (providerMap[underscored])
|
|
87
|
+
return providerMap[underscored];
|
|
52
88
|
}
|
|
53
|
-
//
|
|
54
|
-
|
|
89
|
+
// Cross-provider fallback on the normalized (underscored, lowercased) form.
|
|
90
|
+
const norm = underscored.toLowerCase();
|
|
91
|
+
if (norm === "stop" || norm === "end_turn" || norm === "complete")
|
|
55
92
|
return "stop";
|
|
56
|
-
if (
|
|
93
|
+
if (norm === "length" || norm === "max_tokens")
|
|
57
94
|
return "length";
|
|
95
|
+
if (norm === "tool_calls" || norm === "tool_call" || norm === "tool_use" || norm === "function_call")
|
|
96
|
+
return "tool_calls";
|
|
97
|
+
if (norm === "content_filter" || norm === "safety")
|
|
98
|
+
return "content_filter";
|
|
99
|
+
if (norm === "error")
|
|
100
|
+
return "error";
|
|
58
101
|
return "other";
|
|
59
102
|
}
|
|
60
103
|
//# sourceMappingURL=normalize.js.map
|
package/dist/normalize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAQA,MAAM,iBAAiB,GAA2D;IAChF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,YAAY;QACxB,cAAc,EAAE,gBAAgB;QAChC,aAAa,EAAE,YAAY;KAC5B;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,YAAY;QACtB,aAAa,EAAE,MAAM;KACtB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,gBAAgB;QAC5B,SAAS,EAAE,gBAAgB;QAC3B,kBAAkB,EAAE,gBAAgB;QACpC,IAAI,EAAE,gBAAgB;QACtB,uBAAuB,EAAE,OAAO;QAChC,yBAAyB,EAAE,OAAO;KACnC;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,QAAQ;QACpB,aAAa,EAAE,MAAM;QACrB,SAAS,EAAE,YAAY;QACvB,KAAK,EAAE,OAAO;KACf;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,YAAY;QAC1B,gBAAgB,EAAE,gBAAgB;QAClC,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;KACf;CACF,CAAC;AAEF,MAAM,UAAU,qBAAqB,CACnC,GAAuB,EACvB,QAAgB;IAEhB,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC;IACzB,uFAAuF;IACvF,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,WAAW,EAAE,CAAC;QAChB,
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
|
package/dist/transport.d.ts
CHANGED
package/dist/transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACtC,WAAW,CAAC,GAAG,EAAE,mBAAmB,EAAE,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5E,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnE,
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACtC,WAAW,CAAC,GAAG,EAAE,mBAAmB,EAAE,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5E,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAeD,uCAAuC;AACvC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CA4MrE;AAMD,uCAAuC;AACvC,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQnD;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAQjE"}
|
package/dist/transport.js
CHANGED
|
@@ -3,7 +3,6 @@ const noopTransport = {
|
|
|
3
3
|
enqueue() { },
|
|
4
4
|
reportTrace() { },
|
|
5
5
|
reportError() { },
|
|
6
|
-
reportUserData() { },
|
|
7
6
|
async flush() { },
|
|
8
7
|
async shutdown() { },
|
|
9
8
|
};
|
|
@@ -20,6 +19,13 @@ export function createHttpTransport(config) {
|
|
|
20
19
|
const maxDeadLetterSize = 1000;
|
|
21
20
|
// Per-event device_id storage (WeakMap so GC-friendly)
|
|
22
21
|
const eventDeviceIds = new WeakMap();
|
|
22
|
+
// In-flight APM/crash requests, tracked so shutdown() can await them instead
|
|
23
|
+
// of losing the final traces/errors when the process exits.
|
|
24
|
+
const pending = new Set();
|
|
25
|
+
function track(p) {
|
|
26
|
+
const wrapped = p.catch(() => { }).finally(() => pending.delete(wrapped));
|
|
27
|
+
pending.add(wrapped);
|
|
28
|
+
}
|
|
23
29
|
// Process-level UUID, computed once
|
|
24
30
|
const processUuid = crypto.randomUUID();
|
|
25
31
|
// Resolve device_id for non-event calls (trace/error)
|
|
@@ -169,11 +175,11 @@ export function createHttpTransport(config) {
|
|
|
169
175
|
device_id: deviceId,
|
|
170
176
|
apm: JSON.stringify(trace),
|
|
171
177
|
});
|
|
172
|
-
fetch(`${config.url}/i`, {
|
|
178
|
+
track(fetch(`${config.url}/i`, {
|
|
173
179
|
method: "POST",
|
|
174
180
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
175
181
|
body: body.toString(),
|
|
176
|
-
})
|
|
182
|
+
}));
|
|
177
183
|
},
|
|
178
184
|
reportError(error, raw) {
|
|
179
185
|
if (!config.trackErrors)
|
|
@@ -194,14 +200,11 @@ export function createHttpTransport(config) {
|
|
|
194
200
|
device_id: deviceId,
|
|
195
201
|
crash: JSON.stringify(crash),
|
|
196
202
|
});
|
|
197
|
-
fetch(`${config.url}/i`, {
|
|
203
|
+
track(fetch(`${config.url}/i`, {
|
|
198
204
|
method: "POST",
|
|
199
205
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
200
206
|
body: body.toString(),
|
|
201
|
-
})
|
|
202
|
-
},
|
|
203
|
-
reportUserData() {
|
|
204
|
-
// HTTP transport cannot aggregate user data without SDK
|
|
207
|
+
}));
|
|
205
208
|
},
|
|
206
209
|
flush,
|
|
207
210
|
async shutdown() {
|
|
@@ -211,6 +214,8 @@ export function createHttpTransport(config) {
|
|
|
211
214
|
timer = null;
|
|
212
215
|
}
|
|
213
216
|
await flush();
|
|
217
|
+
// Await any in-flight APM/crash requests so the final traces aren't lost.
|
|
218
|
+
await Promise.allSettled([...pending]);
|
|
214
219
|
},
|
|
215
220
|
};
|
|
216
221
|
}
|
package/dist/transport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AASA,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,MAAoB,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// The version is read straight from package.json — the single source of
|
|
2
|
+
// truth — instead of being duplicated or code-generated. The self-referencing
|
|
3
|
+
// specifier (rather than a relative "../package.json") keeps the import
|
|
4
|
+
// outside tsc's rootDir so nothing extra is emitted to dist; it resolves at
|
|
5
|
+
// runtime via the "./package.json" entry in the exports map, which works in
|
|
6
|
+
// Node ESM (self-reference) and in bundlers (package.json ships with the
|
|
7
|
+
// published tarball).
|
|
8
|
+
import pkg from "@countly/ai-sdk-core/package.json" with { type: "json" };
|
|
9
|
+
/** SDK version emitted as `sdk_version` on every interaction event. */
|
|
10
|
+
export const SDK_VERSION = pkg.version;
|
|
11
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,8EAA8E;AAC9E,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,sBAAsB;AACtB,OAAO,GAAG,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE1E,uEAAuE;AACvE,MAAM,CAAC,MAAM,WAAW,GAAW,GAAG,CAAC,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@countly/ai-sdk-core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Core utilities for Countly AI SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
8
|
"import": "./dist/index.js",
|
|
9
9
|
"types": "./dist/index.d.ts"
|
|
10
|
-
}
|
|
10
|
+
},
|
|
11
|
+
"./package.json": "./package.json"
|
|
11
12
|
},
|
|
12
13
|
"files": [
|
|
13
14
|
"dist"
|