@agentgov/sdk 0.1.1
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 +408 -0
- package/dist/client.d.ts +164 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +399 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +91 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/fetch.d.ts +59 -0
- package/dist/utils/fetch.d.ts.map +1 -0
- package/dist/utils/fetch.js +198 -0
- package/dist/utils/fetch.js.map +1 -0
- package/dist/utils/timing.d.ts +10 -0
- package/dist/utils/timing.d.ts.map +1 -0
- package/dist/utils/timing.js +67 -0
- package/dist/utils/timing.js.map +1 -0
- package/dist/wrappers/openai.d.ts +36 -0
- package/dist/wrappers/openai.d.ts.map +1 -0
- package/dist/wrappers/openai.js +351 -0
- package/dist/wrappers/openai.js.map +1 -0
- package/dist/wrappers/vercel-ai.d.ts +101 -0
- package/dist/wrappers/vercel-ai.d.ts.map +1 -0
- package/dist/wrappers/vercel-ai.js +461 -0
- package/dist/wrappers/vercel-ai.js.map +1 -0
- package/package.json +75 -0
package/dist/client.js
ADDED
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
import { FetchClient } from './utils/fetch.js';
|
|
2
|
+
import { wrapOpenAI } from './wrappers/openai.js';
|
|
3
|
+
import { wrapGenerateText, wrapStreamText, wrapGenerateObject, wrapEmbed, wrapEmbedMany } from './wrappers/vercel-ai.js';
|
|
4
|
+
const DEFAULT_BASE_URL = 'https://api.agentgov.co';
|
|
5
|
+
export class AgentGov {
|
|
6
|
+
fetchClient;
|
|
7
|
+
config;
|
|
8
|
+
currentContext = null;
|
|
9
|
+
// Batching
|
|
10
|
+
batchQueue = [];
|
|
11
|
+
batchTimer = null;
|
|
12
|
+
isFlushing = false;
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.config = {
|
|
15
|
+
baseUrl: DEFAULT_BASE_URL,
|
|
16
|
+
debug: false,
|
|
17
|
+
flushInterval: 5000,
|
|
18
|
+
batchSize: 10,
|
|
19
|
+
maxRetries: 3,
|
|
20
|
+
retryDelay: 1000,
|
|
21
|
+
timeout: 30000,
|
|
22
|
+
...config
|
|
23
|
+
};
|
|
24
|
+
// Warn about non-HTTPS URLs in production
|
|
25
|
+
const parsedUrl = new URL(this.config.baseUrl);
|
|
26
|
+
const isLocal = parsedUrl.hostname === 'localhost' || parsedUrl.hostname === '127.0.0.1';
|
|
27
|
+
if (parsedUrl.protocol !== 'https:' && !isLocal) {
|
|
28
|
+
console.warn('[AgentGov] WARNING: Using non-HTTPS URL. This is insecure in production.');
|
|
29
|
+
}
|
|
30
|
+
this.fetchClient = new FetchClient({
|
|
31
|
+
baseUrl: this.config.baseUrl,
|
|
32
|
+
apiKey: this.config.apiKey,
|
|
33
|
+
projectId: this.config.projectId,
|
|
34
|
+
debug: this.config.debug,
|
|
35
|
+
maxRetries: this.config.maxRetries,
|
|
36
|
+
retryDelay: this.config.retryDelay,
|
|
37
|
+
timeout: this.config.timeout
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
// ============================================
|
|
41
|
+
// OpenAI Integration
|
|
42
|
+
// ============================================
|
|
43
|
+
/**
|
|
44
|
+
* Wrap OpenAI client to automatically trace all calls
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const ag = new AgentGov({ apiKey: 'ag_xxx', projectId: 'xxx' })
|
|
49
|
+
* const openai = ag.wrapOpenAI(new OpenAI())
|
|
50
|
+
*
|
|
51
|
+
* // All calls are now automatically traced (including streaming)
|
|
52
|
+
* const response = await openai.chat.completions.create({
|
|
53
|
+
* model: 'gpt-4o',
|
|
54
|
+
* messages: [{ role: 'user', content: 'Hello!' }]
|
|
55
|
+
* })
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
wrapOpenAI(client, options) {
|
|
59
|
+
return wrapOpenAI(client, this.fetchClient, () => this.currentContext, {
|
|
60
|
+
...options,
|
|
61
|
+
debug: options?.debug ?? this.config.debug
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// ============================================
|
|
65
|
+
// Vercel AI SDK Integration
|
|
66
|
+
// ============================================
|
|
67
|
+
/**
|
|
68
|
+
* Wrap Vercel AI SDK's generateText function
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* import { generateText } from 'ai'
|
|
73
|
+
* import { openai } from '@ai-sdk/openai'
|
|
74
|
+
*
|
|
75
|
+
* const ag = new AgentGov({ apiKey: 'ag_xxx', projectId: 'xxx' })
|
|
76
|
+
* const tracedGenerateText = ag.wrapGenerateText(generateText)
|
|
77
|
+
*
|
|
78
|
+
* const { text } = await tracedGenerateText({
|
|
79
|
+
* model: openai('gpt-4o'),
|
|
80
|
+
* prompt: 'Hello!'
|
|
81
|
+
* })
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
wrapGenerateText(fn, options) {
|
|
85
|
+
return wrapGenerateText(fn, this.fetchClient, () => this.currentContext, {
|
|
86
|
+
...options,
|
|
87
|
+
debug: options?.debug ?? this.config.debug
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Wrap Vercel AI SDK's streamText function
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* import { streamText } from 'ai'
|
|
96
|
+
* import { openai } from '@ai-sdk/openai'
|
|
97
|
+
*
|
|
98
|
+
* const ag = new AgentGov({ apiKey: 'ag_xxx', projectId: 'xxx' })
|
|
99
|
+
* const tracedStreamText = ag.wrapStreamText(streamText)
|
|
100
|
+
*
|
|
101
|
+
* const { textStream } = await tracedStreamText({
|
|
102
|
+
* model: openai('gpt-4o'),
|
|
103
|
+
* prompt: 'Hello!'
|
|
104
|
+
* })
|
|
105
|
+
*
|
|
106
|
+
* for await (const chunk of textStream) {
|
|
107
|
+
* process.stdout.write(chunk)
|
|
108
|
+
* }
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
wrapStreamText(fn, options) {
|
|
112
|
+
return wrapStreamText(fn, this.fetchClient, () => this.currentContext, {
|
|
113
|
+
...options,
|
|
114
|
+
debug: options?.debug ?? this.config.debug
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Wrap Vercel AI SDK's generateObject function
|
|
119
|
+
*/
|
|
120
|
+
wrapGenerateObject(fn, options) {
|
|
121
|
+
return wrapGenerateObject(fn, this.fetchClient, () => this.currentContext, {
|
|
122
|
+
...options,
|
|
123
|
+
debug: options?.debug ?? this.config.debug
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Wrap Vercel AI SDK's embed function
|
|
128
|
+
*/
|
|
129
|
+
wrapEmbed(fn, options) {
|
|
130
|
+
return wrapEmbed(fn, this.fetchClient, () => this.currentContext, {
|
|
131
|
+
...options,
|
|
132
|
+
debug: options?.debug ?? this.config.debug
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Wrap Vercel AI SDK's embedMany function
|
|
137
|
+
*/
|
|
138
|
+
wrapEmbedMany(fn, options) {
|
|
139
|
+
return wrapEmbedMany(fn, this.fetchClient, () => this.currentContext, {
|
|
140
|
+
...options,
|
|
141
|
+
debug: options?.debug ?? this.config.debug
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
// ============================================
|
|
145
|
+
// Manual Tracing API
|
|
146
|
+
// ============================================
|
|
147
|
+
/**
|
|
148
|
+
* Create a new trace
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* const trace = await ag.trace({ name: 'My Agent Run' })
|
|
153
|
+
* // ... do work ...
|
|
154
|
+
* await ag.endTrace(trace.id, { status: 'COMPLETED' })
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
async trace(input = {}) {
|
|
158
|
+
const trace = await this.fetchClient.createTrace(input);
|
|
159
|
+
this.currentContext = { traceId: trace.id };
|
|
160
|
+
return trace;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* End a trace
|
|
164
|
+
*/
|
|
165
|
+
async endTrace(traceId, update = {}) {
|
|
166
|
+
const result = await this.fetchClient.updateTrace(traceId, {
|
|
167
|
+
status: update.status || 'COMPLETED',
|
|
168
|
+
output: update.output
|
|
169
|
+
});
|
|
170
|
+
if (this.currentContext?.traceId === traceId) {
|
|
171
|
+
this.currentContext = null;
|
|
172
|
+
}
|
|
173
|
+
return result;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Create a span within current trace
|
|
177
|
+
*/
|
|
178
|
+
async span(input) {
|
|
179
|
+
const traceId = input.traceId || this.currentContext?.traceId;
|
|
180
|
+
if (!traceId) {
|
|
181
|
+
throw new Error('No active trace. Call trace() first or provide traceId.');
|
|
182
|
+
}
|
|
183
|
+
const span = await this.fetchClient.createSpan({
|
|
184
|
+
...input,
|
|
185
|
+
traceId,
|
|
186
|
+
parentId: input.parentId || this.currentContext?.spanId
|
|
187
|
+
});
|
|
188
|
+
return span;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* End a span
|
|
192
|
+
*/
|
|
193
|
+
async endSpan(spanId, update = {}) {
|
|
194
|
+
return this.fetchClient.updateSpan(spanId, {
|
|
195
|
+
status: update.status || 'COMPLETED',
|
|
196
|
+
...update
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
// ============================================
|
|
200
|
+
// Context Management
|
|
201
|
+
// ============================================
|
|
202
|
+
/**
|
|
203
|
+
* Run a function within a trace context
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* const result = await ag.withTrace({ name: 'My Operation' }, async (ctx) => {
|
|
208
|
+
* // All OpenAI calls within this function are traced
|
|
209
|
+
* const response = await openai.chat.completions.create(...)
|
|
210
|
+
* return response
|
|
211
|
+
* })
|
|
212
|
+
* ```
|
|
213
|
+
*/
|
|
214
|
+
async withTrace(input, fn) {
|
|
215
|
+
const trace = await this.trace(input);
|
|
216
|
+
try {
|
|
217
|
+
const result = await fn({ traceId: trace.id });
|
|
218
|
+
await this.endTrace(trace.id, { status: 'COMPLETED' });
|
|
219
|
+
return result;
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
await this.endTrace(trace.id, { status: 'FAILED' });
|
|
223
|
+
throw error;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Run a function within a span context
|
|
228
|
+
*/
|
|
229
|
+
async withSpan(input, fn) {
|
|
230
|
+
const span = await this.span(input);
|
|
231
|
+
const previousSpanId = this.currentContext?.spanId;
|
|
232
|
+
if (this.currentContext) {
|
|
233
|
+
this.currentContext.spanId = span.id;
|
|
234
|
+
}
|
|
235
|
+
try {
|
|
236
|
+
const result = await fn(span);
|
|
237
|
+
await this.endSpan(span.id, { status: 'COMPLETED' });
|
|
238
|
+
return result;
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
await this.endSpan(span.id, {
|
|
242
|
+
status: 'FAILED',
|
|
243
|
+
error: error instanceof Error ? error.message : String(error)
|
|
244
|
+
});
|
|
245
|
+
throw error;
|
|
246
|
+
}
|
|
247
|
+
finally {
|
|
248
|
+
if (this.currentContext) {
|
|
249
|
+
this.currentContext.spanId = previousSpanId;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
// ============================================
|
|
254
|
+
// Batching API (for high-throughput scenarios)
|
|
255
|
+
// ============================================
|
|
256
|
+
/**
|
|
257
|
+
* Queue a trace creation (batched)
|
|
258
|
+
* Use this for high-throughput scenarios where you don't need immediate response
|
|
259
|
+
*/
|
|
260
|
+
queueTrace(input) {
|
|
261
|
+
return new Promise((resolve, reject) => {
|
|
262
|
+
this.batchQueue.push({
|
|
263
|
+
type: 'trace',
|
|
264
|
+
data: input,
|
|
265
|
+
resolve: resolve,
|
|
266
|
+
reject
|
|
267
|
+
});
|
|
268
|
+
this.scheduleBatchFlush();
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Queue a span creation (batched)
|
|
273
|
+
*/
|
|
274
|
+
queueSpan(input) {
|
|
275
|
+
return new Promise((resolve, reject) => {
|
|
276
|
+
this.batchQueue.push({
|
|
277
|
+
type: 'span',
|
|
278
|
+
data: input,
|
|
279
|
+
resolve: resolve,
|
|
280
|
+
reject
|
|
281
|
+
});
|
|
282
|
+
this.scheduleBatchFlush();
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Force flush all queued items
|
|
287
|
+
*/
|
|
288
|
+
async flush() {
|
|
289
|
+
if (this.batchTimer) {
|
|
290
|
+
clearTimeout(this.batchTimer);
|
|
291
|
+
this.batchTimer = null;
|
|
292
|
+
}
|
|
293
|
+
await this.processBatch();
|
|
294
|
+
}
|
|
295
|
+
handleFlushError(error, itemCount) {
|
|
296
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
297
|
+
if (this.config.onError) {
|
|
298
|
+
this.config.onError(err, { operation: 'batch_flush', itemCount });
|
|
299
|
+
}
|
|
300
|
+
else if (this.config.debug) {
|
|
301
|
+
console.error('[AgentGov] Batch flush failed:', err.message);
|
|
302
|
+
}
|
|
303
|
+
// In non-debug mode without onError callback, errors are silently dropped
|
|
304
|
+
// This is intentional for SDK users who don't want tracing to affect their app
|
|
305
|
+
}
|
|
306
|
+
scheduleBatchFlush() {
|
|
307
|
+
// Immediate flush if batch is full
|
|
308
|
+
if (this.batchQueue.length >= this.config.batchSize) {
|
|
309
|
+
const itemCount = this.batchQueue.length;
|
|
310
|
+
this.flush().catch((error) => this.handleFlushError(error, itemCount));
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
// Schedule flush after interval
|
|
314
|
+
if (!this.batchTimer) {
|
|
315
|
+
this.batchTimer = setTimeout(() => {
|
|
316
|
+
this.batchTimer = null;
|
|
317
|
+
const itemCount = this.batchQueue.length;
|
|
318
|
+
this.flush().catch((error) => this.handleFlushError(error, itemCount));
|
|
319
|
+
}, this.config.flushInterval);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
async processBatch() {
|
|
323
|
+
if (this.isFlushing || this.batchQueue.length === 0)
|
|
324
|
+
return;
|
|
325
|
+
this.isFlushing = true;
|
|
326
|
+
const items = this.batchQueue.splice(0, this.config.batchSize);
|
|
327
|
+
try {
|
|
328
|
+
// Process items in parallel
|
|
329
|
+
await Promise.all(items.map(async (item) => {
|
|
330
|
+
try {
|
|
331
|
+
let result;
|
|
332
|
+
switch (item.type) {
|
|
333
|
+
case 'trace':
|
|
334
|
+
result = await this.fetchClient.createTrace(item.data);
|
|
335
|
+
break;
|
|
336
|
+
case 'span':
|
|
337
|
+
result = await this.fetchClient.createSpan(item.data);
|
|
338
|
+
break;
|
|
339
|
+
case 'traceUpdate': {
|
|
340
|
+
const { id, ...update } = item.data;
|
|
341
|
+
result = await this.fetchClient.updateTrace(id, update);
|
|
342
|
+
break;
|
|
343
|
+
}
|
|
344
|
+
case 'spanUpdate': {
|
|
345
|
+
const { id, ...update } = item.data;
|
|
346
|
+
result = await this.fetchClient.updateSpan(id, update);
|
|
347
|
+
break;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
item.resolve(result);
|
|
351
|
+
}
|
|
352
|
+
catch (error) {
|
|
353
|
+
item.reject(error instanceof Error ? error : new Error(String(error)));
|
|
354
|
+
}
|
|
355
|
+
}));
|
|
356
|
+
}
|
|
357
|
+
finally {
|
|
358
|
+
this.isFlushing = false;
|
|
359
|
+
// Process remaining items if any
|
|
360
|
+
if (this.batchQueue.length > 0) {
|
|
361
|
+
this.scheduleBatchFlush();
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
// ============================================
|
|
366
|
+
// Utility Methods
|
|
367
|
+
// ============================================
|
|
368
|
+
/**
|
|
369
|
+
* Get current trace context
|
|
370
|
+
*/
|
|
371
|
+
getContext() {
|
|
372
|
+
return this.currentContext;
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Set trace context (useful for distributed tracing)
|
|
376
|
+
*/
|
|
377
|
+
setContext(context) {
|
|
378
|
+
this.currentContext = context;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Get a trace by ID
|
|
382
|
+
*/
|
|
383
|
+
async getTrace(traceId) {
|
|
384
|
+
return this.fetchClient.getTrace(traceId);
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Get a span by ID
|
|
388
|
+
*/
|
|
389
|
+
async getSpan(spanId) {
|
|
390
|
+
return this.fetchClient.getSpan(spanId);
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Shutdown the client, flushing any remaining batched items
|
|
394
|
+
*/
|
|
395
|
+
async shutdown() {
|
|
396
|
+
await this.flush();
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { AgentGov } from './client.js';
|
|
2
|
+
export type { AgentGovConfig, TraceContext, TraceInput, Trace, TraceStatus, SpanInput, SpanUpdate, Span, SpanStatus, SpanType } from './types.js';
|
|
3
|
+
export type { WrapOpenAIOptions } from './wrappers/openai.js';
|
|
4
|
+
export type { WrapVercelAIOptions } from './wrappers/vercel-ai.js';
|
|
5
|
+
export { estimateCost, calculateDuration } from './utils/timing.js';
|
|
6
|
+
export { AgentGovAPIError } from './utils/fetch.js';
|
|
7
|
+
export { safeStringify } from './utils/fetch.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGtC,YAAY,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,KAAK,EACL,WAAW,EACX,SAAS,EACT,UAAU,EACV,IAAI,EACJ,UAAU,EACV,QAAQ,EACT,MAAM,YAAY,CAAA;AAGnB,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAGlE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAGnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Main client
|
|
2
|
+
export { AgentGov } from './client.js';
|
|
3
|
+
// Utils (for advanced users)
|
|
4
|
+
export { estimateCost, calculateDuration } from './utils/timing.js';
|
|
5
|
+
// Errors
|
|
6
|
+
export { AgentGovAPIError } from './utils/fetch.js';
|
|
7
|
+
// Safety utilities
|
|
8
|
+
export { safeStringify } from './utils/fetch.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAoBtC,6BAA6B;AAC7B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEnE,SAAS;AACT,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEnD,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
export interface AgentGovConfig {
|
|
2
|
+
/** API key from AgentGov dashboard (ag_xxx) */
|
|
3
|
+
apiKey: string;
|
|
4
|
+
/** Project ID */
|
|
5
|
+
projectId: string;
|
|
6
|
+
/** API base URL (default: http://localhost:3001) */
|
|
7
|
+
baseUrl?: string;
|
|
8
|
+
/** Enable debug logging */
|
|
9
|
+
debug?: boolean;
|
|
10
|
+
/** Flush interval in ms (default: 5000) */
|
|
11
|
+
flushInterval?: number;
|
|
12
|
+
/** Max batch size before auto-flush (default: 10) */
|
|
13
|
+
batchSize?: number;
|
|
14
|
+
/** Max retry attempts for failed API requests (default: 3) */
|
|
15
|
+
maxRetries?: number;
|
|
16
|
+
/** Base delay in ms for exponential backoff (default: 1000) */
|
|
17
|
+
retryDelay?: number;
|
|
18
|
+
/** Request timeout in ms (default: 30000) */
|
|
19
|
+
timeout?: number;
|
|
20
|
+
/** Callback for batch flush errors (default: logs to console in debug mode) */
|
|
21
|
+
onError?: (error: Error, context: {
|
|
22
|
+
operation: string;
|
|
23
|
+
itemCount?: number;
|
|
24
|
+
}) => void;
|
|
25
|
+
}
|
|
26
|
+
export type TraceStatus = 'RUNNING' | 'COMPLETED' | 'FAILED' | 'CANCELLED';
|
|
27
|
+
export type SpanStatus = 'RUNNING' | 'COMPLETED' | 'FAILED';
|
|
28
|
+
export type SpanType = 'LLM_CALL' | 'TOOL_CALL' | 'AGENT_STEP' | 'RETRIEVAL' | 'EMBEDDING' | 'CUSTOM';
|
|
29
|
+
export interface TraceInput {
|
|
30
|
+
name?: string;
|
|
31
|
+
input?: Record<string, unknown>;
|
|
32
|
+
metadata?: Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
export interface Trace {
|
|
35
|
+
id: string;
|
|
36
|
+
projectId: string;
|
|
37
|
+
name?: string;
|
|
38
|
+
status: TraceStatus;
|
|
39
|
+
startedAt: string;
|
|
40
|
+
endedAt?: string;
|
|
41
|
+
input?: Record<string, unknown>;
|
|
42
|
+
output?: Record<string, unknown>;
|
|
43
|
+
metadata?: Record<string, unknown>;
|
|
44
|
+
totalCost?: number;
|
|
45
|
+
totalTokens?: number;
|
|
46
|
+
totalDuration?: number;
|
|
47
|
+
}
|
|
48
|
+
export interface SpanInput {
|
|
49
|
+
traceId: string;
|
|
50
|
+
parentId?: string;
|
|
51
|
+
name: string;
|
|
52
|
+
type: SpanType;
|
|
53
|
+
input?: Record<string, unknown>;
|
|
54
|
+
metadata?: Record<string, unknown>;
|
|
55
|
+
model?: string;
|
|
56
|
+
toolName?: string;
|
|
57
|
+
toolInput?: Record<string, unknown>;
|
|
58
|
+
}
|
|
59
|
+
export interface SpanUpdate {
|
|
60
|
+
status?: SpanStatus;
|
|
61
|
+
output?: Record<string, unknown>;
|
|
62
|
+
error?: string;
|
|
63
|
+
promptTokens?: number;
|
|
64
|
+
outputTokens?: number;
|
|
65
|
+
cost?: number;
|
|
66
|
+
toolOutput?: Record<string, unknown>;
|
|
67
|
+
metadata?: Record<string, unknown>;
|
|
68
|
+
}
|
|
69
|
+
export interface Span {
|
|
70
|
+
id: string;
|
|
71
|
+
traceId: string;
|
|
72
|
+
parentId?: string;
|
|
73
|
+
name: string;
|
|
74
|
+
type: SpanType;
|
|
75
|
+
status: SpanStatus;
|
|
76
|
+
startedAt: string;
|
|
77
|
+
endedAt?: string;
|
|
78
|
+
duration?: number;
|
|
79
|
+
input?: Record<string, unknown>;
|
|
80
|
+
output?: Record<string, unknown>;
|
|
81
|
+
error?: string;
|
|
82
|
+
model?: string;
|
|
83
|
+
promptTokens?: number;
|
|
84
|
+
outputTokens?: number;
|
|
85
|
+
cost?: number;
|
|
86
|
+
}
|
|
87
|
+
export interface TraceContext {
|
|
88
|
+
traceId: string;
|
|
89
|
+
spanId?: string;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { Trace, TraceInput, Span, SpanInput, SpanUpdate } from '../types.js';
|
|
2
|
+
export interface FetchClientConfig {
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
apiKey: string;
|
|
5
|
+
projectId: string;
|
|
6
|
+
debug?: boolean;
|
|
7
|
+
/** Max retry attempts for failed requests (default: 3) */
|
|
8
|
+
maxRetries?: number;
|
|
9
|
+
/** Base delay in ms for exponential backoff (default: 1000) */
|
|
10
|
+
retryDelay?: number;
|
|
11
|
+
/** Request timeout in ms (default: 30000) */
|
|
12
|
+
timeout?: number;
|
|
13
|
+
}
|
|
14
|
+
/** Error thrown when API request fails */
|
|
15
|
+
export declare class AgentGovAPIError extends Error {
|
|
16
|
+
readonly statusCode: number;
|
|
17
|
+
readonly retryable: boolean;
|
|
18
|
+
constructor(message: string, statusCode: number, retryable: boolean);
|
|
19
|
+
}
|
|
20
|
+
/** Safely serialize data, handling circular references */
|
|
21
|
+
export declare function safeStringify(data: unknown): string;
|
|
22
|
+
export declare class FetchClient {
|
|
23
|
+
private baseUrl;
|
|
24
|
+
private headers;
|
|
25
|
+
private projectId;
|
|
26
|
+
private debug;
|
|
27
|
+
private maxRetries;
|
|
28
|
+
private retryDelay;
|
|
29
|
+
private timeout;
|
|
30
|
+
constructor(config: FetchClientConfig);
|
|
31
|
+
/**
|
|
32
|
+
* Sanitize data for logging - removes sensitive fields
|
|
33
|
+
*/
|
|
34
|
+
private sanitize;
|
|
35
|
+
private log;
|
|
36
|
+
/**
|
|
37
|
+
* Check if error is retryable based on status code
|
|
38
|
+
*/
|
|
39
|
+
private isRetryable;
|
|
40
|
+
/**
|
|
41
|
+
* Calculate delay with exponential backoff and jitter
|
|
42
|
+
*/
|
|
43
|
+
private calculateDelay;
|
|
44
|
+
/**
|
|
45
|
+
* Sleep for specified duration
|
|
46
|
+
*/
|
|
47
|
+
private sleep;
|
|
48
|
+
private request;
|
|
49
|
+
createTrace(input: TraceInput): Promise<Trace>;
|
|
50
|
+
updateTrace(traceId: string, update: {
|
|
51
|
+
status?: string;
|
|
52
|
+
output?: Record<string, unknown>;
|
|
53
|
+
}): Promise<Trace>;
|
|
54
|
+
getTrace(traceId: string): Promise<Trace>;
|
|
55
|
+
createSpan(input: SpanInput): Promise<Span>;
|
|
56
|
+
updateSpan(spanId: string, update: SpanUpdate): Promise<Span>;
|
|
57
|
+
getSpan(spanId: string): Promise<Span>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,UAAU,EACV,IAAI,EACJ,SAAS,EACT,UAAU,EACX,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,0CAA0C;AAC1C,qBAAa,gBAAiB,SAAQ,KAAK;aAGvB,UAAU,EAAE,MAAM;aAClB,SAAS,EAAE,OAAO;gBAFlC,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO;CAKrC;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAMnD;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,iBAAiB;IAarC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,GAAG;IAOX;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,KAAK;YAIC,OAAO;IAoHf,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;IAO9C,WAAW,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAC5D,OAAO,CAAC,KAAK,CAAC;IAIX,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAQzC,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7C"}
|