@countly/ai-sdk-cohere 0.0.3
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 +71 -0
- package/dist/adapter.d.ts +5 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +180 -0
- package/dist/adapter.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/package.json +39 -0
package/README.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# @countly/ai-sdk-cohere
|
|
2
|
+
|
|
3
|
+
> Countly AI observability adapter for the [Cohere TypeScript SDK](https://github.com/cohere-ai/cohere-typescript).
|
|
4
|
+
|
|
5
|
+
Part of the [Countly AI SDK](https://github.com/Countly/countly-ai-sdk) — provider-agnostic LLM observability for every AI stack.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @countly/ai-sdk-cohere
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
`@countly/ai-sdk-core` is pulled in automatically.
|
|
14
|
+
|
|
15
|
+
## Peer dependency
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
cohere-ai >= 7.0.0
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Quick Start (v2 API)
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { CohereClient } from "cohere-ai";
|
|
25
|
+
import { observeCohere } from "@countly/ai-sdk-cohere";
|
|
26
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
27
|
+
|
|
28
|
+
const userStore = new AsyncLocalStorage<{ userId: string }>();
|
|
29
|
+
|
|
30
|
+
app.use((req, res, next) => {
|
|
31
|
+
userStore.run({ userId: req.user.id }, next);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const cohere = observeCohere(new CohereClient({ token: "..." }), {
|
|
35
|
+
appKey: "YOUR_APP_KEY",
|
|
36
|
+
url: "https://your-countly-server.com",
|
|
37
|
+
getDeviceId: () => userStore.getStore()?.userId,
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const response = await cohere.v2.chat({
|
|
41
|
+
model: "command-r-plus",
|
|
42
|
+
messages: [{ role: "user", content: "Hello" }],
|
|
43
|
+
});
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## v1 API
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
const response = await cohere.chat({
|
|
50
|
+
model: "command-r",
|
|
51
|
+
message: "Hello",
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## What's captured
|
|
56
|
+
|
|
57
|
+
- Token usage (`input_tokens`, `output_tokens`) — handles both v1 (`meta.tokens`) and v2 (`usage.tokens`) response shapes
|
|
58
|
+
- Cost (computed from model pricing)
|
|
59
|
+
- Latency
|
|
60
|
+
- Finish reason normalized from `COMPLETE`, `MAX_TOKENS`, `STOP_SEQUENCE`, `TOOL_CALL`, `ERROR`
|
|
61
|
+
- Tool call extraction (function and legacy formats)
|
|
62
|
+
- Error tracking with categorization
|
|
63
|
+
- APM traces, per-user aggregation
|
|
64
|
+
|
|
65
|
+
## Full documentation
|
|
66
|
+
|
|
67
|
+
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).
|
|
68
|
+
|
|
69
|
+
## License
|
|
70
|
+
|
|
71
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,eAAe,EAKrB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,oBAAqB,SAAQ,eAAe;CAAG;AA6LhE,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,GAAG,CAAC,CAqBvE"}
|
package/dist/adapter.js
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { resolveConfig, createTransport, buildAllEvents, generatePromptId, } from "@countly/ai-sdk-core";
|
|
2
|
+
function extractTextInput(requestParams) {
|
|
3
|
+
// V2: requestParams.messages (array of {role, content})
|
|
4
|
+
const messages = requestParams?.messages;
|
|
5
|
+
if (Array.isArray(messages)) {
|
|
6
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
7
|
+
const msg = messages[i];
|
|
8
|
+
if (msg?.role === "system" || msg?.role === "tool")
|
|
9
|
+
continue;
|
|
10
|
+
if (typeof msg?.content === "string")
|
|
11
|
+
return msg.content;
|
|
12
|
+
}
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
// V1: requestParams.message (string)
|
|
16
|
+
if (typeof requestParams?.message === "string")
|
|
17
|
+
return requestParams.message;
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
function extractFromResponse(response, requestParams, latency) {
|
|
21
|
+
const model = requestParams?.model ?? "command";
|
|
22
|
+
const usage = response?.usage;
|
|
23
|
+
// V2: response.usage.tokens | V1: response.meta.tokens
|
|
24
|
+
const v2Tokens = usage?.tokens;
|
|
25
|
+
const v1Tokens = response?.meta?.tokens;
|
|
26
|
+
const tokens = v2Tokens ?? v1Tokens;
|
|
27
|
+
const tokenInput = tokens?.inputTokens ?? 0;
|
|
28
|
+
const tokenOutput = tokens?.outputTokens ?? 0;
|
|
29
|
+
const tokenTotal = tokenInput + tokenOutput;
|
|
30
|
+
const finishReason = response?.finishReason;
|
|
31
|
+
// Extract tool calls — V2: response.message.toolCalls | V1: response.toolCalls
|
|
32
|
+
const tools = [];
|
|
33
|
+
const rawToolCalls = response?.message?.toolCalls ?? response?.toolCalls;
|
|
34
|
+
if (rawToolCalls) {
|
|
35
|
+
for (const toolCall of rawToolCalls) {
|
|
36
|
+
tools.push({
|
|
37
|
+
name: toolCall.function?.name ?? toolCall.name ?? "unknown",
|
|
38
|
+
type: "function_call",
|
|
39
|
+
arguments: toolCall.function?.arguments
|
|
40
|
+
? typeof toolCall.function.arguments === "string"
|
|
41
|
+
? JSON.parse(toolCall.function.arguments)
|
|
42
|
+
: toolCall.function.arguments
|
|
43
|
+
: toolCall.parameters,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Extract text output — V2: response.message.content[] | V1: response.text
|
|
48
|
+
let textOutput;
|
|
49
|
+
if (response?.message?.content) {
|
|
50
|
+
const content = response.message.content;
|
|
51
|
+
if (Array.isArray(content) && content.length > 0 && content[0]?.text) {
|
|
52
|
+
textOutput = content[0].text;
|
|
53
|
+
}
|
|
54
|
+
else if (typeof content === "string") {
|
|
55
|
+
textOutput = content;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else if (typeof response?.text === "string") {
|
|
59
|
+
textOutput = response.text;
|
|
60
|
+
}
|
|
61
|
+
// Extract config params from request (Cohere SDK uses camelCase)
|
|
62
|
+
const configTemperature = requestParams?.temperature;
|
|
63
|
+
const configTopP = requestParams?.p;
|
|
64
|
+
const configMaxTokens = requestParams?.maxTokens ?? requestParams?.max_tokens;
|
|
65
|
+
const configFrequencyPenalty = requestParams?.frequencyPenalty ?? requestParams?.frequency_penalty;
|
|
66
|
+
const configPresencePenalty = requestParams?.presencePenalty ?? requestParams?.presence_penalty;
|
|
67
|
+
// Provider-specific orphan fields → metadata bag.
|
|
68
|
+
const meta = {};
|
|
69
|
+
const r = response;
|
|
70
|
+
if (r?.toolPlan ?? r?.tool_plan)
|
|
71
|
+
meta.tool_plan = r.toolPlan ?? r.tool_plan;
|
|
72
|
+
if (r?.citations)
|
|
73
|
+
meta.citations = r.citations;
|
|
74
|
+
if (r?.documents)
|
|
75
|
+
meta.documents = r.documents;
|
|
76
|
+
if (r?.searchQueries)
|
|
77
|
+
meta.search_queries = r.searchQueries;
|
|
78
|
+
if (r?.searchResults)
|
|
79
|
+
meta.search_results = r.searchResults;
|
|
80
|
+
if (r?.isSearchRequired != null)
|
|
81
|
+
meta.is_search_required = r.isSearchRequired;
|
|
82
|
+
if (response?.meta?.billedUnits)
|
|
83
|
+
meta.billed_units = response.meta.billedUnits;
|
|
84
|
+
if (response?.meta?.apiVersion)
|
|
85
|
+
meta.api_version = response.meta.apiVersion;
|
|
86
|
+
const responseId = r?.id ?? r?.responseId ?? r?.generationId ?? r?.message?.id;
|
|
87
|
+
return {
|
|
88
|
+
model: model,
|
|
89
|
+
model_requested: requestParams?.model,
|
|
90
|
+
provider: "cohere",
|
|
91
|
+
usage_input: tokenInput,
|
|
92
|
+
usage_output: tokenOutput,
|
|
93
|
+
usage_total: tokenTotal,
|
|
94
|
+
...(finishReason && { finish_reason: finishReason }),
|
|
95
|
+
...(tools.length > 0 && { tools }),
|
|
96
|
+
...(textOutput && { text_output: textOutput }),
|
|
97
|
+
latency_total: latency,
|
|
98
|
+
...(configTemperature != null && { config_temperature: configTemperature }),
|
|
99
|
+
...(configTopP != null && { config_top_p: configTopP }),
|
|
100
|
+
...(configMaxTokens != null && { config_max_tokens: configMaxTokens }),
|
|
101
|
+
...(configFrequencyPenalty != null && { config_frequency_penalty: configFrequencyPenalty }),
|
|
102
|
+
...(configPresencePenalty != null && { config_presence_penalty: configPresencePenalty }),
|
|
103
|
+
status: "success",
|
|
104
|
+
...(responseId && { response_id: String(responseId) }),
|
|
105
|
+
...(Object.keys(meta).length > 0 && { provider_metadata: meta }),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function createChatProxy(chatFn, config, transport, defaultModel) {
|
|
109
|
+
return async function (...args) {
|
|
110
|
+
const requestParams = args[0];
|
|
111
|
+
const promptId = generatePromptId();
|
|
112
|
+
const eventContext = { prompt_id: promptId, sdk_adapter: "cohere" };
|
|
113
|
+
const start = performance.now();
|
|
114
|
+
const textInput = extractTextInput(requestParams);
|
|
115
|
+
try {
|
|
116
|
+
const response = await chatFn.apply(this, args);
|
|
117
|
+
const latency = performance.now() - start;
|
|
118
|
+
const raw = extractFromResponse(response, { ...requestParams, model: requestParams?.model ?? defaultModel }, latency);
|
|
119
|
+
if (config.observabilityLevel === 2 && textInput) {
|
|
120
|
+
raw.text_input = textInput;
|
|
121
|
+
}
|
|
122
|
+
const events = buildAllEvents(raw, config, eventContext);
|
|
123
|
+
transport.enqueue(events);
|
|
124
|
+
transport.reportTrace(raw, eventContext);
|
|
125
|
+
transport.reportUserData(raw);
|
|
126
|
+
return response;
|
|
127
|
+
}
|
|
128
|
+
catch (err) {
|
|
129
|
+
const latency = performance.now() - start;
|
|
130
|
+
const errorRaw = {
|
|
131
|
+
model: requestParams?.model ?? defaultModel,
|
|
132
|
+
model_requested: requestParams?.model,
|
|
133
|
+
provider: "cohere",
|
|
134
|
+
usage_input: 0,
|
|
135
|
+
usage_output: 0,
|
|
136
|
+
usage_total: 0,
|
|
137
|
+
latency_total: latency,
|
|
138
|
+
status: "error",
|
|
139
|
+
error: err instanceof Error ? err.message : String(err),
|
|
140
|
+
};
|
|
141
|
+
if (config.observabilityLevel === 2 && textInput) {
|
|
142
|
+
errorRaw.text_input = textInput;
|
|
143
|
+
}
|
|
144
|
+
const events = buildAllEvents(errorRaw, config, eventContext);
|
|
145
|
+
transport.enqueue(events);
|
|
146
|
+
transport.reportError(err instanceof Error ? err : String(err), errorRaw);
|
|
147
|
+
throw err;
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
function createV2Proxy(v2, config, transport) {
|
|
152
|
+
return new Proxy(v2, {
|
|
153
|
+
get(target, prop, receiver) {
|
|
154
|
+
const value = Reflect.get(target, prop, receiver);
|
|
155
|
+
if (prop === "chat" && typeof value === "function") {
|
|
156
|
+
return createChatProxy(value, config, transport, "command");
|
|
157
|
+
}
|
|
158
|
+
return value;
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
export function observeCohere(client, options) {
|
|
163
|
+
const config = resolveConfig(options);
|
|
164
|
+
const transport = createTransport(config);
|
|
165
|
+
if (config.disabled)
|
|
166
|
+
return client;
|
|
167
|
+
return new Proxy(client, {
|
|
168
|
+
get(target, prop, receiver) {
|
|
169
|
+
const value = Reflect.get(target, prop, receiver);
|
|
170
|
+
if (prop === "chat" && typeof value === "function") {
|
|
171
|
+
return createChatProxy(value, config, transport, "command");
|
|
172
|
+
}
|
|
173
|
+
if (prop === "v2" && value != null && typeof value === "object") {
|
|
174
|
+
return createV2Proxy(value, config, transport);
|
|
175
|
+
}
|
|
176
|
+
return value;
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@countly/ai-sdk-cohere",
|
|
3
|
+
"version": "0.0.3",
|
|
4
|
+
"description": "Countly AI observability adapter for Cohere SDK",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"import": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist"
|
|
14
|
+
],
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@countly/ai-sdk-core": "0.0.3"
|
|
20
|
+
},
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"cohere-ai": ">=7.0.0"
|
|
23
|
+
},
|
|
24
|
+
"peerDependenciesMeta": {
|
|
25
|
+
"cohere-ai": {
|
|
26
|
+
"optional": false
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"typescript": "^5.8.3",
|
|
31
|
+
"@countly/ai-sdk-tsconfig": "0.0.0"
|
|
32
|
+
},
|
|
33
|
+
"scripts": {
|
|
34
|
+
"build": "tsc --project tsconfig.build.json",
|
|
35
|
+
"dev": "tsc --project tsconfig.build.json --watch",
|
|
36
|
+
"lint": "tsc --noEmit",
|
|
37
|
+
"test": "vitest run"
|
|
38
|
+
}
|
|
39
|
+
}
|