trodo-node 1.2.0 → 2.2.0
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 +182 -2
- package/dist/cjs/TrodoClient.js +85 -102
- package/dist/cjs/TrodoClient.js.map +1 -1
- package/dist/cjs/api/ApiClient.js +20 -2
- package/dist/cjs/api/ApiClient.js.map +1 -1
- package/dist/cjs/api/endpoints.js +7 -1
- package/dist/cjs/api/endpoints.js.map +1 -1
- package/dist/cjs/index.js +115 -29
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/otel/autoInstrument.js +253 -0
- package/dist/cjs/otel/autoInstrument.js.map +1 -0
- package/dist/cjs/otel/context.js +49 -0
- package/dist/cjs/otel/context.js.map +1 -0
- package/dist/cjs/otel/helpers.js +254 -0
- package/dist/cjs/otel/helpers.js.map +1 -0
- package/dist/cjs/otel/processor.js +153 -0
- package/dist/cjs/otel/processor.js.map +1 -0
- package/dist/cjs/otel/uuid.js +24 -0
- package/dist/cjs/otel/uuid.js.map +1 -0
- package/dist/cjs/otel/wrapAgent.js +460 -0
- package/dist/cjs/otel/wrapAgent.js.map +1 -0
- package/dist/esm/TrodoClient.d.ts +44 -11
- package/dist/esm/TrodoClient.d.ts.map +1 -1
- package/dist/esm/TrodoClient.js +85 -102
- package/dist/esm/TrodoClient.js.map +1 -1
- package/dist/esm/api/ApiClient.d.ts +9 -1
- package/dist/esm/api/ApiClient.d.ts.map +1 -1
- package/dist/esm/api/ApiClient.js +20 -2
- package/dist/esm/api/ApiClient.js.map +1 -1
- package/dist/esm/api/endpoints.d.ts +6 -1
- package/dist/esm/api/endpoints.d.ts.map +1 -1
- package/dist/esm/api/endpoints.js +7 -1
- package/dist/esm/api/endpoints.js.map +1 -1
- package/dist/esm/index.d.ts +96 -19
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +98 -23
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/otel/autoInstrument.d.ts +61 -0
- package/dist/esm/otel/autoInstrument.d.ts.map +1 -0
- package/dist/esm/otel/autoInstrument.js +248 -0
- package/dist/esm/otel/autoInstrument.js.map +1 -0
- package/dist/esm/otel/context.d.ts +26 -0
- package/dist/esm/otel/context.d.ts.map +1 -0
- package/dist/esm/otel/context.js +44 -0
- package/dist/esm/otel/context.js.map +1 -0
- package/dist/esm/otel/helpers.d.ts +119 -0
- package/dist/esm/otel/helpers.d.ts.map +1 -0
- package/dist/esm/otel/helpers.js +244 -0
- package/dist/esm/otel/helpers.js.map +1 -0
- package/dist/esm/otel/processor.d.ts +104 -0
- package/dist/esm/otel/processor.d.ts.map +1 -0
- package/dist/esm/otel/processor.js +149 -0
- package/dist/esm/otel/processor.js.map +1 -0
- package/dist/esm/otel/uuid.d.ts +7 -0
- package/dist/esm/otel/uuid.d.ts.map +1 -0
- package/dist/esm/otel/uuid.js +21 -0
- package/dist/esm/otel/uuid.js.map +1 -0
- package/dist/esm/otel/wrapAgent.d.ts +133 -0
- package/dist/esm/otel/wrapAgent.d.ts.map +1 -0
- package/dist/esm/otel/wrapAgent.js +448 -0
- package/dist/esm/otel/wrapAgent.js.map +1 -0
- package/dist/esm/types/index.d.ts +24 -48
- package/dist/esm/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -123,9 +123,188 @@ await trodo.set_group('user-123', 'company', 'acme')
|
|
|
123
123
|
|
|
124
124
|
---
|
|
125
125
|
|
|
126
|
-
## Agent
|
|
126
|
+
## AI Agent Tracing (recommended)
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
One wrap around your agent captures every LLM call, tool call, and
|
|
129
|
+
nested step as a tree of spans — token counts, costs, inputs, outputs,
|
|
130
|
+
errors. Works with any stack: OpenAI, Anthropic, LangChain, Vercel AI
|
|
131
|
+
SDK, raw HTTP, custom tools. Cost is derived server-side from
|
|
132
|
+
`(provider, model)` — the SDK only sends tokens.
|
|
133
|
+
|
|
134
|
+
### 30-second quickstart
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
import trodo from 'trodo-node';
|
|
138
|
+
trodo.init({ siteId: 'your-site-id' }); // autoInstrument on by default
|
|
139
|
+
|
|
140
|
+
const { result, runId } = await trodo.wrapAgent(
|
|
141
|
+
'customer-support',
|
|
142
|
+
async (run) => {
|
|
143
|
+
run.setInput({ query });
|
|
144
|
+
const answer = await agent.run(query); // OpenAI/Anthropic/LangChain auto-captured
|
|
145
|
+
run.setOutput(answer);
|
|
146
|
+
return answer;
|
|
147
|
+
},
|
|
148
|
+
{ distinctId: userId, conversationId: sessionId },
|
|
149
|
+
);
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Open the Agent Runs dashboard — the row shows tokens in/out, cost,
|
|
153
|
+
span count, tool count, error count, plus the full trace tree.
|
|
154
|
+
|
|
155
|
+
### Auto-instrumentation
|
|
156
|
+
|
|
157
|
+
`trodo.init()` calls `enableAutoInstrument()` which registers every
|
|
158
|
+
installed OpenTelemetry instrumentor — no extra wiring.
|
|
159
|
+
|
|
160
|
+
| Framework | Install |
|
|
161
|
+
|-----------|---------|
|
|
162
|
+
| OpenAI | `npm i @opentelemetry/instrumentation-openai` |
|
|
163
|
+
| Anthropic | `npm i @opentelemetry/instrumentation-anthropic` |
|
|
164
|
+
| LangChain | `npm i @opentelemetry/instrumentation-langchain` |
|
|
165
|
+
| LlamaIndex | `npm i @opentelemetry/instrumentation-llamaindex` |
|
|
166
|
+
| Google Gemini | `npm i @opentelemetry/instrumentation-google-generativeai` |
|
|
167
|
+
| Vertex AI | `npm i @opentelemetry/instrumentation-vertexai` |
|
|
168
|
+
| Bedrock | `npm i @opentelemetry/instrumentation-bedrock` |
|
|
169
|
+
| Cohere | `npm i @opentelemetry/instrumentation-cohere` |
|
|
170
|
+
| Vercel AI SDK | emits OTel via `experimental_telemetry: { isEnabled: true }` |
|
|
171
|
+
| http / fetch | bundled — generic HTTP spans for raw-HTTP callers |
|
|
172
|
+
|
|
173
|
+
Opt out with `trodo.init({ siteId, autoInstrument: false })`.
|
|
174
|
+
|
|
175
|
+
### Span helpers
|
|
176
|
+
|
|
177
|
+
Typed function wrappers for custom code — every call becomes a span
|
|
178
|
+
with args auto-captured as `input`, return value as `output`,
|
|
179
|
+
exception as `error`.
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
// trace — generic span
|
|
183
|
+
const prepared = trodo.trace('prepare', async (payload) => normalize(payload));
|
|
184
|
+
await prepared({ raw: true });
|
|
185
|
+
|
|
186
|
+
// tool — tool span (name-first OR fn-first)
|
|
187
|
+
const runFunnel = trodo.tool('run_funnel_query', async (teamId, preset) => {
|
|
188
|
+
return await db.funnel(teamId, preset);
|
|
189
|
+
});
|
|
190
|
+
await runFunnel(1, 'day7');
|
|
191
|
+
|
|
192
|
+
// llm — LLM span, auto-extracts OpenAI / Anthropic / Gemini usage
|
|
193
|
+
const answer = trodo.llm('answer', async (messages) => callOpenAI(messages), {
|
|
194
|
+
model: 'gpt-4o-mini',
|
|
195
|
+
provider: 'openai',
|
|
196
|
+
});
|
|
197
|
+
await answer([{ role: 'user', content: 'ping' }]);
|
|
198
|
+
// Records inputTokens / outputTokens from response.usage.
|
|
199
|
+
|
|
200
|
+
// retrieval — vector search / RAG retriever span
|
|
201
|
+
const search = trodo.retrieval('vector_search', async (q) => vecDb.query(q));
|
|
202
|
+
const docs = await search('users dropping off');
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Raw-HTTP escape hatches
|
|
206
|
+
|
|
207
|
+
If your LLM client isn't OTel-instrumented and you can't wrap it as a
|
|
208
|
+
function, record a span post-hoc:
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
const resp = await fetch(url, { body: JSON.stringify(body) }).then(r => r.json());
|
|
212
|
+
await trodo.trackLlmCall({
|
|
213
|
+
model: 'gemini-2.5-flash',
|
|
214
|
+
provider: 'google',
|
|
215
|
+
inputTokens: resp.usageMetadata.promptTokenCount,
|
|
216
|
+
outputTokens: resp.usageMetadata.candidatesTokenCount,
|
|
217
|
+
prompt: body,
|
|
218
|
+
completion: resp,
|
|
219
|
+
});
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
For advanced cases, get a raw OTel tracer — the Trodo processor is
|
|
223
|
+
already subscribed:
|
|
224
|
+
|
|
225
|
+
```typescript
|
|
226
|
+
const tracer = trodo.getTracer('my.module');
|
|
227
|
+
tracer.startActiveSpan('custom', (span) => {
|
|
228
|
+
span.setAttribute('gen_ai.system', 'my-llm');
|
|
229
|
+
span.end();
|
|
230
|
+
});
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Cross-service runs
|
|
234
|
+
|
|
235
|
+
When one service calls another, the downstream service **joins** the
|
|
236
|
+
caller's run instead of creating its own — all spans nest under a
|
|
237
|
+
single timeline.
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
// Caller — outbound:
|
|
241
|
+
await fetch(url, {
|
|
242
|
+
method: 'POST',
|
|
243
|
+
headers: { ...trodo.propagationHeaders(), 'content-type': 'application/json' },
|
|
244
|
+
body: JSON.stringify(payload),
|
|
245
|
+
});
|
|
246
|
+
|
|
247
|
+
// Downstream (Express):
|
|
248
|
+
import express from 'express';
|
|
249
|
+
const app = express();
|
|
250
|
+
app.use(trodo.expressMiddleware());
|
|
251
|
+
// Every LLM call / tool / trace helper inside handlers now nests under
|
|
252
|
+
// the caller's run.
|
|
253
|
+
|
|
254
|
+
// Or manually:
|
|
255
|
+
await trodo.joinRun(
|
|
256
|
+
req.headers['x-trodo-run-id'] as string,
|
|
257
|
+
req.headers['x-trodo-parent-span-id'] as string,
|
|
258
|
+
async () => { /* ... */ },
|
|
259
|
+
);
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### Long-lived sessions across processes — `startRun` / `endRun`
|
|
263
|
+
|
|
264
|
+
`wrapAgent` is a single-callback block — it opens *and* closes the run in
|
|
265
|
+
one function call. For sessions that live across many HTTP requests (an
|
|
266
|
+
MCP server, a websocket-pinned chat, scheduled jobs that resume on
|
|
267
|
+
different workers), use `startRun` to open the run from one process and
|
|
268
|
+
`endRun` to finalise it later. Between the two, any process can use
|
|
269
|
+
`joinRun` to add child spans. Same `runId` threads through everything.
|
|
270
|
+
|
|
271
|
+
```typescript
|
|
272
|
+
// Process A — open the run for an MCP session.
|
|
273
|
+
const runId = await trodo.startRun('external_mcp_session', {
|
|
274
|
+
distinctId: String(userId),
|
|
275
|
+
conversationId: mcpSessionId,
|
|
276
|
+
});
|
|
277
|
+
await redis.set(`mcp:run:${mcpSessionId}`, runId, 'EX', 3600);
|
|
278
|
+
|
|
279
|
+
// Process B (later, possibly a different worker) — append a tool span.
|
|
280
|
+
const runId = await redis.get(`mcp:run:${mcpSessionId}`);
|
|
281
|
+
await trodo.joinRun(runId, null, async (span) => {
|
|
282
|
+
span.setInput(args);
|
|
283
|
+
span.setOutput(result);
|
|
284
|
+
}, { name: 'tool.run_funnel_query', kind: 'tool' });
|
|
285
|
+
|
|
286
|
+
// When the session ends (timeout sweeper, explicit close):
|
|
287
|
+
await trodo.endRun(runId, { status: 'ok' });
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### Conversation binding & feedback
|
|
291
|
+
|
|
292
|
+
```typescript
|
|
293
|
+
const { runId } = await trodo.wrapAgent(
|
|
294
|
+
'chat',
|
|
295
|
+
async (run) => { /* ... */ },
|
|
296
|
+
{ distinctId: userId, conversationId: sessionId },
|
|
297
|
+
);
|
|
298
|
+
await trodo.feedback(runId, { satisfaction: 'positive', rating: 5 });
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## Agent Analytics (legacy event-based API)
|
|
304
|
+
|
|
305
|
+
The older per-event API below is still supported but superseded by
|
|
306
|
+
`wrapAgent` + span helpers above. Use it only if you're already wired
|
|
307
|
+
into it; new integrations should prefer the tracing API.
|
|
129
308
|
|
|
130
309
|
**Before you start:** register your agent in **Integrations → AI Agents** in the dashboard to get an `agent_id` (`agt_xxxxxxxx`).
|
|
131
310
|
|
|
@@ -141,6 +320,7 @@ await trodo.track_agent_call({
|
|
|
141
320
|
provider: 'openai',
|
|
142
321
|
systemPromptVersion: 'v2', // optional — track prompt iterations
|
|
143
322
|
distinctId: userId, // optional — link to a Trodo user
|
|
323
|
+
metadata: { threadSource: 'slack', locale: 'en' }, // optional — stored in agent_calls.metadata (JSONB)
|
|
144
324
|
});
|
|
145
325
|
```
|
|
146
326
|
|
package/dist/cjs/TrodoClient.js
CHANGED
|
@@ -7,6 +7,10 @@ const EventQueue_js_1 = require("./queue/EventQueue.js");
|
|
|
7
7
|
const BatchFlusher_js_1 = require("./queue/BatchFlusher.js");
|
|
8
8
|
const AutoEventManager_js_1 = require("./auto/AutoEventManager.js");
|
|
9
9
|
const UserContext_js_1 = require("./UserContext.js");
|
|
10
|
+
const processor_js_1 = require("./otel/processor.js");
|
|
11
|
+
const wrapAgent_js_1 = require("./otel/wrapAgent.js");
|
|
12
|
+
const helpers_js_1 = require("./otel/helpers.js");
|
|
13
|
+
const autoInstrument_js_1 = require("./otel/autoInstrument.js");
|
|
10
14
|
const DEFAULT_API_BASE = 'https://sdkapi.trodo.ai';
|
|
11
15
|
class TrodoClient {
|
|
12
16
|
constructor(config) {
|
|
@@ -30,7 +34,11 @@ class TrodoClient {
|
|
|
30
34
|
if (config.autoEvents) {
|
|
31
35
|
this.autoEventManager.enable();
|
|
32
36
|
}
|
|
33
|
-
|
|
37
|
+
this.spanProcessor = new processor_js_1.TrodoSpanProcessor({ apiClient: this.apiClient });
|
|
38
|
+
// Default ON — matches Python SDK. Opt out with autoInstrument: false.
|
|
39
|
+
if (config.autoInstrument !== false) {
|
|
40
|
+
(0, autoInstrument_js_1.enableAutoInstrument)({ processor: this.spanProcessor });
|
|
41
|
+
}
|
|
34
42
|
const client = this;
|
|
35
43
|
this.people = {
|
|
36
44
|
set: (d, p) => client.forUser(d).people.set(p),
|
|
@@ -49,17 +57,13 @@ class TrodoClient {
|
|
|
49
57
|
// Primary pattern: forUser()
|
|
50
58
|
// --------------------------------------------------------------------------
|
|
51
59
|
forUser(distinctId, options) {
|
|
52
|
-
const
|
|
53
|
-
const cached = this.userContextCache.get(key);
|
|
60
|
+
const cached = this.userContextCache.get(distinctId);
|
|
54
61
|
if (cached)
|
|
55
62
|
return cached;
|
|
56
63
|
const ctx = new UserContext_js_1.UserContext(distinctId, this.siteId, this.apiClient, this.sessionManager, this.eventQueue, this.batchFlusher, this.autoEventManager, options);
|
|
57
|
-
this.userContextCache.set(
|
|
64
|
+
this.userContextCache.set(distinctId, ctx);
|
|
58
65
|
return ctx;
|
|
59
66
|
}
|
|
60
|
-
// --------------------------------------------------------------------------
|
|
61
|
-
// Direct-call pattern (distinctId as first param)
|
|
62
|
-
// --------------------------------------------------------------------------
|
|
63
67
|
async track(distinctId, eventName, properties, options) {
|
|
64
68
|
return this.forUser(distinctId).track(eventName, properties, options);
|
|
65
69
|
}
|
|
@@ -90,21 +94,12 @@ class TrodoClient {
|
|
|
90
94
|
get_group(distinctId, groupKey, groupId) {
|
|
91
95
|
return this.forUser(distinctId).get_group(groupKey, groupId);
|
|
92
96
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
// --------------------------------------------------------------------------
|
|
96
|
-
enableAutoEvents() {
|
|
97
|
-
this.autoEventManager.enable();
|
|
98
|
-
}
|
|
99
|
-
disableAutoEvents() {
|
|
100
|
-
this.autoEventManager.disable();
|
|
101
|
-
}
|
|
102
|
-
// --------------------------------------------------------------------------
|
|
103
|
-
// Lifecycle
|
|
104
|
-
// --------------------------------------------------------------------------
|
|
97
|
+
enableAutoEvents() { this.autoEventManager.enable(); }
|
|
98
|
+
disableAutoEvents() { this.autoEventManager.disable(); }
|
|
105
99
|
async flush() {
|
|
106
100
|
if (this.batchFlusher)
|
|
107
101
|
await this.batchFlusher.flush();
|
|
102
|
+
await this.spanProcessor.forceFlush();
|
|
108
103
|
}
|
|
109
104
|
async shutdown() {
|
|
110
105
|
this.autoEventManager.disable();
|
|
@@ -112,94 +107,82 @@ class TrodoClient {
|
|
|
112
107
|
this.batchFlusher.stop();
|
|
113
108
|
await this.batchFlusher.flush();
|
|
114
109
|
}
|
|
110
|
+
await this.spanProcessor.shutdown();
|
|
115
111
|
}
|
|
116
112
|
// --------------------------------------------------------------------------
|
|
117
|
-
// Agent
|
|
113
|
+
// Agent Runs — unified surface
|
|
118
114
|
// --------------------------------------------------------------------------
|
|
119
|
-
/**
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
...(totalTokens != null && { total_tokens: totalTokens }),
|
|
170
|
-
...(finishReason != null && { finish_reason: finishReason }),
|
|
171
|
-
...rest,
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
/** Track an error during an agent turn. */
|
|
175
|
-
async track_agent_error(props) {
|
|
176
|
-
const { agentId, conversationId, messageId, distinctId, timestamp, errorType, errorMessage, failedTool, traceback, ...rest } = props;
|
|
177
|
-
await this.apiClient.postAgentEvent({
|
|
178
|
-
event_type: 'agent_error',
|
|
179
|
-
agent_id: agentId,
|
|
180
|
-
conversation_id: conversationId,
|
|
181
|
-
message_id: messageId,
|
|
182
|
-
...(distinctId != null && { distinct_id: distinctId }),
|
|
183
|
-
...(timestamp != null && { timestamp }),
|
|
184
|
-
...(errorType != null && { error_type: errorType }),
|
|
185
|
-
...(errorMessage != null && { error_message: errorMessage }),
|
|
186
|
-
...(failedTool != null && { failed_tool: failedTool }),
|
|
187
|
-
...(traceback != null && { traceback }),
|
|
188
|
-
...rest,
|
|
115
|
+
/**
|
|
116
|
+
* Wrap an async function as an agent run. Callback receives a RunHandle
|
|
117
|
+
* — call `handle.setInput(...)` / `handle.setOutput(...)` to populate the
|
|
118
|
+
* run's input/output fields. Every OTel-auto-instrumented LLM call or
|
|
119
|
+
* nested `withSpan` inside `fn` is captured as a child span.
|
|
120
|
+
* Returns { result, runId } — runId is used to attach feedback later.
|
|
121
|
+
*/
|
|
122
|
+
wrapAgent(agentName, fn, options = {}) {
|
|
123
|
+
return (0, wrapAgent_js_1.wrapAgent)(this.spanProcessor, this.siteId, agentName, fn, options);
|
|
124
|
+
}
|
|
125
|
+
/** Create a nested span inside the current run. */
|
|
126
|
+
withSpan(name, fn, options = {}) {
|
|
127
|
+
return (0, wrapAgent_js_1.withSpan)(this.spanProcessor, name, fn, options);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Join an existing run owned by a remote service — opens a span (not a new
|
|
131
|
+
* run) in that run's context. Spans inside `fn` are streamed to the backend
|
|
132
|
+
* via append_spans. Used by the express middleware and for manual cross-
|
|
133
|
+
* service join on any request shape.
|
|
134
|
+
*/
|
|
135
|
+
joinRun(runId, parentSpanId, fn, options = {}) {
|
|
136
|
+
return (0, wrapAgent_js_1.joinRun)(this.spanProcessor, this.siteId, runId, parentSpanId, fn, options);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Open a Run record without holding a context manager. Returns the runId.
|
|
140
|
+
*
|
|
141
|
+
* Pairs with {@link endRun} for sessions that span multiple processes or
|
|
142
|
+
* HTTP requests (e.g. an MCP server). Between startRun and endRun any
|
|
143
|
+
* process can use ``joinRun(runId, ...)`` to add spans.
|
|
144
|
+
*/
|
|
145
|
+
startRun(agentName, options = {}) {
|
|
146
|
+
return (0, wrapAgent_js_1.startRun)(this.spanProcessor, agentName, options);
|
|
147
|
+
}
|
|
148
|
+
/** Finalise a Run opened by {@link startRun}. */
|
|
149
|
+
endRun(runId, options = {}) {
|
|
150
|
+
return (0, wrapAgent_js_1.endRun)(this.spanProcessor, runId, options);
|
|
151
|
+
}
|
|
152
|
+
/** Higher-order wrapper: decorate a tool-like function so each call becomes a span. */
|
|
153
|
+
tool(fn, options = {}) {
|
|
154
|
+
return (0, helpers_js_1.tool)(fn, options);
|
|
155
|
+
}
|
|
156
|
+
/** Record a one-shot LLM span for a raw-HTTP caller. */
|
|
157
|
+
trackLlmCall(params) {
|
|
158
|
+
return (0, helpers_js_1.trackLlmCall)(params);
|
|
159
|
+
}
|
|
160
|
+
/** Return an Express/Connect middleware that auto-joins inbound runs. */
|
|
161
|
+
expressMiddleware() {
|
|
162
|
+
return (0, helpers_js_1.expressMiddleware)({
|
|
163
|
+
processor: this.spanProcessor,
|
|
164
|
+
teamSiteId: this.siteId,
|
|
189
165
|
});
|
|
190
166
|
}
|
|
191
|
-
/**
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
167
|
+
/** Outbound HTTP headers carrying the current run/span context. */
|
|
168
|
+
propagationHeaders() {
|
|
169
|
+
return (0, helpers_js_1.propagationHeaders)();
|
|
170
|
+
}
|
|
171
|
+
/** Expose current run/span ids for bespoke propagation needs. */
|
|
172
|
+
currentRunId() {
|
|
173
|
+
return (0, wrapAgent_js_1.currentRunId)();
|
|
174
|
+
}
|
|
175
|
+
currentSpanId() {
|
|
176
|
+
return (0, wrapAgent_js_1.currentSpanId)();
|
|
177
|
+
}
|
|
178
|
+
/** Attach feedback to a completed run. Call with the runId returned from wrapAgent. */
|
|
179
|
+
async feedback(runId, props) {
|
|
180
|
+
return this.apiClient.postRunFeedback(runId, {
|
|
181
|
+
satisfaction: props.satisfaction ?? null,
|
|
182
|
+
rating: props.rating ?? null,
|
|
183
|
+
comment: props.comment ?? props.feedback ?? null,
|
|
184
|
+
distinct_id: props.distinctId ?? null,
|
|
185
|
+
attributes: props.metadata ?? {},
|
|
203
186
|
});
|
|
204
187
|
}
|
|
205
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrodoClient.js","sourceRoot":"","sources":["../../src/TrodoClient.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"TrodoClient.js","sourceRoot":"","sources":["../../src/TrodoClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -136,8 +136,26 @@ class ApiClient {
|
|
|
136
136
|
async postGroup(path, payload) {
|
|
137
137
|
return this.request(path, payload);
|
|
138
138
|
}
|
|
139
|
-
|
|
140
|
-
|
|
139
|
+
// --------------------------------------------------------------------------
|
|
140
|
+
// Agent Runs (Lemma-style run-centric tracking)
|
|
141
|
+
// --------------------------------------------------------------------------
|
|
142
|
+
async postRunIngest(payload) {
|
|
143
|
+
return this.request(endpoints_js_1.ENDPOINTS.RUNS_INGEST, payload);
|
|
144
|
+
}
|
|
145
|
+
async postRunStart(payload) {
|
|
146
|
+
return this.request(endpoints_js_1.ENDPOINTS.RUNS_START, payload);
|
|
147
|
+
}
|
|
148
|
+
async postRunEnd(runId, payload) {
|
|
149
|
+
return this.request(`${endpoints_js_1.ENDPOINTS.RUNS_END}/${encodeURIComponent(runId)}/end`, payload);
|
|
150
|
+
}
|
|
151
|
+
async postSpansAppend(runId, spans) {
|
|
152
|
+
return this.request(`${endpoints_js_1.ENDPOINTS.RUNS_SPANS}/${encodeURIComponent(runId)}/spans`, { spans });
|
|
153
|
+
}
|
|
154
|
+
async postRunFeedback(runId, payload) {
|
|
155
|
+
return this.request(`${endpoints_js_1.ENDPOINTS.RUNS_FEEDBACK}/${encodeURIComponent(runId)}/feedback`, payload);
|
|
156
|
+
}
|
|
157
|
+
async postOtlpTraces(payload) {
|
|
158
|
+
return this.request(endpoints_js_1.ENDPOINTS.OTLP_TRACES, payload);
|
|
141
159
|
}
|
|
142
160
|
}
|
|
143
161
|
exports.ApiClient = ApiClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiClient.js","sourceRoot":"","sources":["../../../src/api/ApiClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ApiClient.js","sourceRoot":"","sources":["../../../src/api/ApiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ENDPOINTS = void 0;
|
|
4
4
|
exports.ENDPOINTS = {
|
|
5
5
|
TRACK: '/api/sdk/track',
|
|
6
|
-
TRACK_AGENT: '/api/sdk/track-agent',
|
|
7
6
|
EVENTS: '/api/events',
|
|
8
7
|
IDENTIFY: '/api/sdk/identify',
|
|
9
8
|
WALLET_ADDRESS: '/api/sdk/wallet-address',
|
|
@@ -22,5 +21,12 @@ exports.ENDPOINTS = {
|
|
|
22
21
|
GROUPS_ADD: '/api/sdk/groups/add_group',
|
|
23
22
|
GROUPS_REMOVE: '/api/sdk/groups/remove_group',
|
|
24
23
|
GROUPS_PROFILE: '/api/sdk/groups/profile',
|
|
24
|
+
// Agent run tracking (Lemma-style)
|
|
25
|
+
RUNS_INGEST: '/api/sdk/runs/ingest',
|
|
26
|
+
RUNS_START: '/api/sdk/runs/start',
|
|
27
|
+
RUNS_END: '/api/sdk/runs', // POST /runs/:run_id/end
|
|
28
|
+
RUNS_SPANS: '/api/sdk/runs', // POST /runs/:run_id/spans
|
|
29
|
+
RUNS_FEEDBACK: '/api/sdk/runs', // POST /runs/:run_id/feedback
|
|
30
|
+
OTLP_TRACES: '/api/sdk/otel/v1/traces',
|
|
25
31
|
};
|
|
26
32
|
//# sourceMappingURL=endpoints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../../src/api/endpoints.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,KAAK,EAAiB,gBAAgB;IACtC,
|
|
1
|
+
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../../src/api/endpoints.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,KAAK,EAAiB,gBAAgB;IACtC,MAAM,EAAgB,aAAa;IACnC,QAAQ,EAAc,mBAAmB;IACzC,cAAc,EAAQ,yBAAyB;IAC/C,KAAK,EAAiB,gBAAgB;IACtC,UAAU,EAAY,qBAAqB;IAC3C,eAAe,EAAO,0BAA0B;IAChD,YAAY,EAAU,uBAAuB;IAC7C,gBAAgB,EAAM,2BAA2B;IACjD,aAAa,EAAS,wBAAwB;IAC9C,YAAY,EAAU,uBAAuB;IAC7C,aAAa,EAAS,wBAAwB;IAC9C,mBAAmB,EAAG,8BAA8B;IACpD,oBAAoB,EAAE,+BAA+B;IACrD,kBAAkB,EAAI,6BAA6B;IACnD,UAAU,EAAY,2BAA2B;IACjD,UAAU,EAAY,2BAA2B;IACjD,aAAa,EAAS,8BAA8B;IACpD,cAAc,EAAQ,yBAAyB;IAC/C,mCAAmC;IACnC,WAAW,EAAW,sBAAsB;IAC5C,UAAU,EAAY,qBAAqB;IAC3C,QAAQ,EAAc,eAAe,EAAW,yBAAyB;IACzE,UAAU,EAAY,eAAe,EAAW,2BAA2B;IAC3E,aAAa,EAAS,eAAe,EAAW,8BAA8B;IAC9E,WAAW,EAAW,yBAAyB;CACvC,CAAC"}
|