trodo-node 1.1.0 → 2.1.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.
Files changed (68) hide show
  1. package/README.md +340 -103
  2. package/dist/cjs/TrodoClient.js +77 -19
  3. package/dist/cjs/TrodoClient.js.map +1 -1
  4. package/dist/cjs/api/ApiClient.js +21 -3
  5. package/dist/cjs/api/ApiClient.js.map +1 -1
  6. package/dist/cjs/api/endpoints.js +7 -1
  7. package/dist/cjs/api/endpoints.js.map +1 -1
  8. package/dist/cjs/index.js +104 -8
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/otel/autoInstrument.js +253 -0
  11. package/dist/cjs/otel/autoInstrument.js.map +1 -0
  12. package/dist/cjs/otel/context.js +49 -0
  13. package/dist/cjs/otel/context.js.map +1 -0
  14. package/dist/cjs/otel/helpers.js +254 -0
  15. package/dist/cjs/otel/helpers.js.map +1 -0
  16. package/dist/cjs/otel/processor.js +129 -0
  17. package/dist/cjs/otel/processor.js.map +1 -0
  18. package/dist/cjs/otel/uuid.js +24 -0
  19. package/dist/cjs/otel/uuid.js.map +1 -0
  20. package/dist/cjs/otel/wrapAgent.js +399 -0
  21. package/dist/cjs/otel/wrapAgent.js.map +1 -0
  22. package/dist/cjs/queue/BatchFlusher.js +1 -1
  23. package/dist/cjs/queue/BatchFlusher.js.map +1 -1
  24. package/dist/esm/TrodoClient.d.ts +34 -1
  25. package/dist/esm/TrodoClient.d.ts.map +1 -1
  26. package/dist/esm/TrodoClient.js +77 -19
  27. package/dist/esm/TrodoClient.js.map +1 -1
  28. package/dist/esm/api/ApiClient.d.ts +9 -1
  29. package/dist/esm/api/ApiClient.d.ts.map +1 -1
  30. package/dist/esm/api/ApiClient.js +21 -3
  31. package/dist/esm/api/ApiClient.js.map +1 -1
  32. package/dist/esm/api/endpoints.d.ts +6 -1
  33. package/dist/esm/api/endpoints.d.ts.map +1 -1
  34. package/dist/esm/api/endpoints.js +7 -1
  35. package/dist/esm/api/endpoints.js.map +1 -1
  36. package/dist/esm/index.d.ts +84 -8
  37. package/dist/esm/index.d.ts.map +1 -1
  38. package/dist/esm/index.js +89 -7
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/otel/autoInstrument.d.ts +61 -0
  41. package/dist/esm/otel/autoInstrument.d.ts.map +1 -0
  42. package/dist/esm/otel/autoInstrument.js +248 -0
  43. package/dist/esm/otel/autoInstrument.js.map +1 -0
  44. package/dist/esm/otel/context.d.ts +26 -0
  45. package/dist/esm/otel/context.d.ts.map +1 -0
  46. package/dist/esm/otel/context.js +44 -0
  47. package/dist/esm/otel/context.js.map +1 -0
  48. package/dist/esm/otel/helpers.d.ts +119 -0
  49. package/dist/esm/otel/helpers.d.ts.map +1 -0
  50. package/dist/esm/otel/helpers.js +244 -0
  51. package/dist/esm/otel/helpers.js.map +1 -0
  52. package/dist/esm/otel/processor.d.ts +94 -0
  53. package/dist/esm/otel/processor.d.ts.map +1 -0
  54. package/dist/esm/otel/processor.js +125 -0
  55. package/dist/esm/otel/processor.js.map +1 -0
  56. package/dist/esm/otel/uuid.d.ts +7 -0
  57. package/dist/esm/otel/uuid.d.ts.map +1 -0
  58. package/dist/esm/otel/uuid.js +21 -0
  59. package/dist/esm/otel/uuid.js.map +1 -0
  60. package/dist/esm/otel/wrapAgent.d.ts +100 -0
  61. package/dist/esm/otel/wrapAgent.d.ts.map +1 -0
  62. package/dist/esm/otel/wrapAgent.js +389 -0
  63. package/dist/esm/otel/wrapAgent.js.map +1 -0
  64. package/dist/esm/queue/BatchFlusher.js +1 -1
  65. package/dist/esm/queue/BatchFlusher.js.map +1 -1
  66. package/dist/esm/types/index.d.ts +26 -0
  67. package/dist/esm/types/index.d.ts.map +1 -1
  68. package/package.json +1 -1
@@ -0,0 +1,389 @@
1
+ /**
2
+ * wrapAgent / withSpan / joinRun — user-facing surface for agent tracking.
3
+ *
4
+ * Users never generate IDs. The SDK creates run_id on wrapAgent, threads a
5
+ * span_id through AsyncLocalStorage, and any nested withSpan (or OTel
6
+ * auto-instrumented span from Anthropic/OpenAI/Vercel AI SDK/LangChain)
7
+ * inherits the current span as its parent.
8
+ *
9
+ * joinRun is for downstream microservices: opens a SPAN (not a run) in the
10
+ * context of the caller's run_id, flushing each span to the backend via
11
+ * append_spans. The originating service owns run lifecycle.
12
+ */
13
+ import { uuidv4 } from './uuid.js';
14
+ import { getActiveContext, runWithContextAsync, } from './context.js';
15
+ function nowIso() {
16
+ return new Date().toISOString();
17
+ }
18
+ function truncate(value, max = 64000) {
19
+ if (value == null)
20
+ return undefined;
21
+ const str = typeof value === 'string' ? value : safeJson(value);
22
+ return str.length > max ? str.slice(0, max) : str;
23
+ }
24
+ function safeJson(v) {
25
+ try {
26
+ return JSON.stringify(v);
27
+ }
28
+ catch {
29
+ return String(v);
30
+ }
31
+ }
32
+ /** Return the currently active run_id, if any. */
33
+ export function currentRunId() {
34
+ return getActiveContext()?.runId ?? null;
35
+ }
36
+ /** Return the currently active span_id, if any. */
37
+ export function currentSpanId() {
38
+ return getActiveContext()?.spanId ?? null;
39
+ }
40
+ function aggregate(spans) {
41
+ let totalIn = 0;
42
+ let totalOut = 0;
43
+ let totalCost = 0;
44
+ let toolCount = 0;
45
+ let errorCount = 0;
46
+ for (const s of spans) {
47
+ if (s.input_tokens)
48
+ totalIn += Number(s.input_tokens);
49
+ if (s.output_tokens)
50
+ totalOut += Number(s.output_tokens);
51
+ if (s.cost)
52
+ totalCost += Number(s.cost);
53
+ if (s.kind === 'tool')
54
+ toolCount += 1;
55
+ if (s.status === 'error')
56
+ errorCount += 1;
57
+ }
58
+ return {
59
+ total_tokens_in: totalIn,
60
+ total_tokens_out: totalOut,
61
+ total_cost: totalCost ? Math.round(totalCost * 1e8) / 1e8 : 0,
62
+ span_count: spans.length,
63
+ tool_count: toolCount,
64
+ error_count: errorCount,
65
+ };
66
+ }
67
+ /**
68
+ * RunHandle — returned by wrapAgent so callers can set input/output after
69
+ * inspecting the arguments / result. Mirrors the Python RunHandle API.
70
+ */
71
+ export class RunHandle {
72
+ constructor(runId, agentName) {
73
+ this.metadata = {};
74
+ this.runId = runId;
75
+ this.agentName = agentName;
76
+ }
77
+ setInput(value) {
78
+ this.input = truncate(value);
79
+ }
80
+ setOutput(value) {
81
+ this.output = truncate(value);
82
+ }
83
+ setMetadata(extra) {
84
+ Object.assign(this.metadata, extra);
85
+ }
86
+ }
87
+ /**
88
+ * SpanHandle — returned by withSpan / joinRun. Collect LLM model/token/cost
89
+ * info and tool name here; the processor picks them up at span close.
90
+ */
91
+ export class SpanHandle {
92
+ constructor(spanId, name) {
93
+ this.attributes = {};
94
+ this.spanId = spanId;
95
+ this.name = name;
96
+ }
97
+ setInput(value) {
98
+ this.input = truncate(value);
99
+ }
100
+ setOutput(value) {
101
+ this.output = truncate(value);
102
+ }
103
+ setAttribute(key, value) {
104
+ this.attributes[key] = value;
105
+ }
106
+ setLlm(opts) {
107
+ if (opts.model !== undefined)
108
+ this.model = opts.model;
109
+ if (opts.provider !== undefined)
110
+ this.provider = opts.provider;
111
+ if (opts.inputTokens !== undefined)
112
+ this.inputTokens = Number(opts.inputTokens);
113
+ if (opts.outputTokens !== undefined)
114
+ this.outputTokens = Number(opts.outputTokens);
115
+ if (opts.cost !== undefined)
116
+ this.cost = Number(opts.cost);
117
+ if (opts.temperature !== undefined)
118
+ this.temperature = Number(opts.temperature);
119
+ }
120
+ setTool(name) {
121
+ this.toolName = name;
122
+ }
123
+ }
124
+ /**
125
+ * Wrap an async function as an agent run. Every OTel span (or withSpan call)
126
+ * created inside `fn` is auto-nested under the run via AsyncLocalStorage.
127
+ *
128
+ * The callback receives a RunHandle so it can call `handle.setInput(...)` /
129
+ * `handle.setOutput(...)`. Old-style callbacks (no arg) still work.
130
+ */
131
+ export async function wrapAgent(processor, teamSiteId, agentName, fn, options = {}) {
132
+ const runId = uuidv4();
133
+ const rootSpanId = uuidv4();
134
+ const startedAt = nowIso();
135
+ const startedMs = Date.now();
136
+ const handle = new RunHandle(runId, agentName);
137
+ const ctx = {
138
+ runId,
139
+ spanId: rootSpanId,
140
+ parentSpanId: null,
141
+ teamSiteId,
142
+ processor,
143
+ };
144
+ let status = 'ok';
145
+ let output;
146
+ let errorSummary;
147
+ let result;
148
+ try {
149
+ result = await runWithContextAsync(ctx, async () => fn(handle));
150
+ output = handle.output ?? truncate(result);
151
+ }
152
+ catch (err) {
153
+ status = 'error';
154
+ errorSummary = truncate(err?.message ?? String(err), 4000);
155
+ const pending = processor.getPending(runId);
156
+ const agg = aggregate(pending);
157
+ const run = {
158
+ run_id: runId,
159
+ agent_name: agentName,
160
+ distinct_id: options.distinctId ?? null,
161
+ conversation_id: options.conversationId ?? null,
162
+ parent_run_id: options.parentRunId ?? null,
163
+ status,
164
+ input: handle.input,
165
+ started_at: startedAt,
166
+ ended_at: nowIso(),
167
+ duration_ms: Date.now() - startedMs,
168
+ error_summary: errorSummary,
169
+ metadata: { ...(options.metadata || {}), ...handle.metadata },
170
+ total_tokens_in: agg.total_tokens_in,
171
+ total_tokens_out: agg.total_tokens_out,
172
+ total_cost: agg.total_cost,
173
+ span_count: agg.span_count,
174
+ tool_count: agg.tool_count,
175
+ error_count: agg.error_count,
176
+ };
177
+ await processor.ingestRun(run);
178
+ throw err;
179
+ }
180
+ const pending = processor.getPending(runId);
181
+ const agg = aggregate(pending);
182
+ const run = {
183
+ run_id: runId,
184
+ agent_name: agentName,
185
+ distinct_id: options.distinctId ?? null,
186
+ conversation_id: options.conversationId ?? null,
187
+ parent_run_id: options.parentRunId ?? null,
188
+ status,
189
+ input: handle.input,
190
+ output,
191
+ started_at: startedAt,
192
+ ended_at: nowIso(),
193
+ duration_ms: Date.now() - startedMs,
194
+ metadata: { ...(options.metadata || {}), ...handle.metadata },
195
+ total_tokens_in: agg.total_tokens_in,
196
+ total_tokens_out: agg.total_tokens_out,
197
+ total_cost: agg.total_cost,
198
+ span_count: agg.span_count,
199
+ tool_count: agg.tool_count,
200
+ error_count: agg.error_count,
201
+ };
202
+ await processor.ingestRun(run);
203
+ return { result, runId };
204
+ }
205
+ /**
206
+ * Create a nested span for non-auto-instrumented work (KB lookups, custom
207
+ * tools, computation). Requires an enclosing wrapAgent/joinRun.
208
+ *
209
+ * The callback receives a SpanHandle so the caller can record LLM tokens /
210
+ * tool name / output inside the function body.
211
+ */
212
+ export async function withSpan(_processor, name, fn, options = {}) {
213
+ const active = getActiveContext();
214
+ const spanId = uuidv4();
215
+ const handle = new SpanHandle(spanId, name);
216
+ if (options.input !== undefined)
217
+ handle.setInput(options.input);
218
+ if (options.attributes)
219
+ Object.assign(handle.attributes, options.attributes);
220
+ if (!active) {
221
+ // Outside of a run — execute but skip tracking (don't crash user code).
222
+ return Promise.resolve(fn(handle));
223
+ }
224
+ const startedAt = nowIso();
225
+ const startedMs = Date.now();
226
+ const child = {
227
+ runId: active.runId,
228
+ spanId,
229
+ parentSpanId: active.spanId,
230
+ teamSiteId: active.teamSiteId,
231
+ processor: active.processor,
232
+ };
233
+ let status = 'ok';
234
+ let errorType;
235
+ let errorMessage;
236
+ try {
237
+ const result = await runWithContextAsync(child, async () => fn(handle));
238
+ if (handle.output === undefined)
239
+ handle.setOutput(result);
240
+ const span = {
241
+ span_id: spanId,
242
+ run_id: active.runId,
243
+ parent_span_id: active.spanId,
244
+ kind: options.kind || 'generic',
245
+ name,
246
+ status,
247
+ started_at: startedAt,
248
+ ended_at: nowIso(),
249
+ duration_ms: Date.now() - startedMs,
250
+ input: handle.input,
251
+ output: handle.output,
252
+ model: handle.model,
253
+ provider: handle.provider,
254
+ input_tokens: handle.inputTokens,
255
+ output_tokens: handle.outputTokens,
256
+ cost: handle.cost,
257
+ temperature: handle.temperature,
258
+ tool_name: handle.toolName,
259
+ attributes: Object.keys(handle.attributes).length ? handle.attributes : undefined,
260
+ };
261
+ active.processor.enqueueSpan(span);
262
+ return result;
263
+ }
264
+ catch (err) {
265
+ status = 'error';
266
+ errorType = err?.name || 'Error';
267
+ errorMessage = truncate(err?.message ?? String(err), 4000);
268
+ const span = {
269
+ span_id: spanId,
270
+ run_id: active.runId,
271
+ parent_span_id: active.spanId,
272
+ kind: options.kind || 'generic',
273
+ name,
274
+ status,
275
+ started_at: startedAt,
276
+ ended_at: nowIso(),
277
+ duration_ms: Date.now() - startedMs,
278
+ input: handle.input,
279
+ output: handle.output,
280
+ error_type: errorType,
281
+ error_message: errorMessage,
282
+ model: handle.model,
283
+ provider: handle.provider,
284
+ input_tokens: handle.inputTokens,
285
+ output_tokens: handle.outputTokens,
286
+ cost: handle.cost,
287
+ temperature: handle.temperature,
288
+ tool_name: handle.toolName,
289
+ attributes: Object.keys(handle.attributes).length ? handle.attributes : undefined,
290
+ };
291
+ active.processor.enqueueSpan(span);
292
+ throw err;
293
+ }
294
+ }
295
+ /**
296
+ * Join an existing agent run owned by a remote service. Opens a SPAN (not a
297
+ * run) under ``parentSpanId``; every span produced inside ``fn`` — including
298
+ * OTel auto-instrumented LLM spans — flushes to the backend as a child of
299
+ * the caller's run via append_spans. We never ingest a run here.
300
+ *
301
+ * Typical use: Express/FastAPI middleware detects ``X-Trodo-Run-Id`` +
302
+ * ``X-Trodo-Parent-Span-Id`` on an inbound request and wraps the handler
303
+ * with joinRun so the handler's work nests under the caller's run.
304
+ */
305
+ export async function joinRun(processor, teamSiteId, runId, parentSpanId, fn, options = {}) {
306
+ const spanId = uuidv4();
307
+ const name = options.name || 'remote.handler';
308
+ const kind = options.kind || 'agent';
309
+ const handle = new SpanHandle(spanId, name);
310
+ if (options.input !== undefined)
311
+ handle.setInput(options.input);
312
+ if (options.attributes)
313
+ Object.assign(handle.attributes, options.attributes);
314
+ processor.markJoined(runId);
315
+ const startedAt = nowIso();
316
+ const startedMs = Date.now();
317
+ const ctx = {
318
+ runId,
319
+ spanId,
320
+ parentSpanId: parentSpanId ?? null,
321
+ teamSiteId,
322
+ processor,
323
+ };
324
+ let status = 'ok';
325
+ let errorType;
326
+ let errorMessage;
327
+ try {
328
+ const result = await runWithContextAsync(ctx, async () => fn(handle));
329
+ if (handle.output === undefined)
330
+ handle.setOutput(result);
331
+ const span = {
332
+ span_id: spanId,
333
+ run_id: runId,
334
+ parent_span_id: parentSpanId ?? null,
335
+ kind,
336
+ name,
337
+ status,
338
+ started_at: startedAt,
339
+ ended_at: nowIso(),
340
+ duration_ms: Date.now() - startedMs,
341
+ input: handle.input,
342
+ output: handle.output,
343
+ model: handle.model,
344
+ provider: handle.provider,
345
+ input_tokens: handle.inputTokens,
346
+ output_tokens: handle.outputTokens,
347
+ cost: handle.cost,
348
+ temperature: handle.temperature,
349
+ tool_name: handle.toolName,
350
+ attributes: Object.keys(handle.attributes).length ? handle.attributes : undefined,
351
+ };
352
+ await processor.appendSpans(runId, [span]);
353
+ return result;
354
+ }
355
+ catch (err) {
356
+ status = 'error';
357
+ errorType = err?.name || 'Error';
358
+ errorMessage = truncate(err?.message ?? String(err), 4000);
359
+ const span = {
360
+ span_id: spanId,
361
+ run_id: runId,
362
+ parent_span_id: parentSpanId ?? null,
363
+ kind,
364
+ name,
365
+ status,
366
+ started_at: startedAt,
367
+ ended_at: nowIso(),
368
+ duration_ms: Date.now() - startedMs,
369
+ input: handle.input,
370
+ output: handle.output,
371
+ error_type: errorType,
372
+ error_message: errorMessage,
373
+ model: handle.model,
374
+ provider: handle.provider,
375
+ input_tokens: handle.inputTokens,
376
+ output_tokens: handle.outputTokens,
377
+ cost: handle.cost,
378
+ temperature: handle.temperature,
379
+ tool_name: handle.toolName,
380
+ attributes: Object.keys(handle.attributes).length ? handle.attributes : undefined,
381
+ };
382
+ await processor.appendSpans(runId, [span]);
383
+ throw err;
384
+ }
385
+ finally {
386
+ processor.unmarkJoined(runId);
387
+ }
388
+ }
389
+ //# sourceMappingURL=wrapAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapAgent.js","sourceRoot":"","sources":["../../../src/otel/wrapAgent.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ export class BatchFlusher {
25
25
  const events = this.queue.drain();
26
26
  if (events.length === 0)
27
27
  return;
28
- await this.apiClient.postBulkEvents(events);
28
+ await Promise.all(events.map((e) => this.apiClient.postEvent(e)));
29
29
  }
30
30
  }
31
31
  //# sourceMappingURL=BatchFlusher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BatchFlusher.js","sourceRoot":"","sources":["../../../src/queue/BatchFlusher.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,YAAY;IAGvB,YACmB,KAAiB,EACjB,SAAoB,EACpB,eAAuB;QAFvB,UAAK,GAAL,KAAK,CAAY;QACjB,cAAS,GAAT,SAAS,CAAW;QACpB,oBAAe,GAAf,eAAe,CAAQ;QALlC,UAAK,GAA0C,IAAI,CAAC;IAMzD,CAAC;IAEJ,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACzB,gEAAgE;QAChE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAChC,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"BatchFlusher.js","sourceRoot":"","sources":["../../../src/queue/BatchFlusher.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,YAAY;IAGvB,YACmB,KAAiB,EACjB,SAAoB,EACpB,eAAuB;QAFvB,UAAK,GAAL,KAAK,CAAY;QACjB,cAAS,GAAT,SAAS,CAAW;QACpB,oBAAe,GAAf,eAAe,CAAQ;QALlC,UAAK,GAA0C,IAAI,CAAC;IAMzD,CAAC;IAEJ,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACzB,gEAAgE;QAChE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAChC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;CACF"}
@@ -22,6 +22,13 @@ export interface TrodoConfig {
22
22
  onError?: (error: Error) => void;
23
23
  /** Log API calls and errors to stderr. Default: false */
24
24
  debug?: boolean;
25
+ /**
26
+ * Enable OpenTelemetry auto-instrumentation for agent runs. When true, the
27
+ * SDK will register OTel instrumentations (if installed) for Anthropic,
28
+ * OpenAI, LangChain, etc. so their LLM/tool calls become spans under the
29
+ * current wrapAgent run automatically.
30
+ */
31
+ autoInstrument?: boolean;
25
32
  }
26
33
  export interface ForUserOptions {
27
34
  /**
@@ -80,6 +87,25 @@ export interface ResetResult {
80
87
  distinctId?: string;
81
88
  error?: string;
82
89
  }
90
+ /**
91
+ * Feedback attached to a run. `runId` is returned by `wrapAgent` — users never
92
+ * mint IDs themselves. All fields optional except one of satisfaction / rating
93
+ * / comment must be present (server validates).
94
+ */
95
+ export interface FeedbackProps {
96
+ /** Thumbs-up / thumbs-down reaction. */
97
+ satisfaction?: 'positive' | 'negative';
98
+ /** Numeric score on whatever scale you use (1–5, NPS, etc.). */
99
+ rating?: number;
100
+ /** Free-text comment. */
101
+ comment?: string;
102
+ /** Alias of `comment` — accepted for ergonomic compatibility. */
103
+ feedback?: string;
104
+ /** Optional distinct_id for attribution; usually inherited from the run. */
105
+ distinctId?: string;
106
+ /** Free-form metadata. */
107
+ metadata?: Record<string, unknown>;
108
+ }
83
109
  export interface PeopleInterface {
84
110
  set(properties: Record<string, unknown>): Promise<ApiResult>;
85
111
  setOnce(properties: Record<string, unknown>): Promise<ApiResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AAMD,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,IAAI,CAAC;CACtB;AAMD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,YAAY,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACvC,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAMD,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACnD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3D,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3D,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACtF,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;CAClC;AAMD,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5C,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;CAC9B;AAMD,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trodo-node",
3
- "version": "1.1.0",
3
+ "version": "2.1.0",
4
4
  "description": "Trodo Analytics SDK for Node.js — server-side event tracking",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",