@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.
@@ -0,0 +1,461 @@
1
+ import { estimateCost } from '../utils/timing.js';
2
+ // ============================================
3
+ // Main Wrapper Functions
4
+ // ============================================
5
+ /**
6
+ * Wrap Vercel AI SDK's generateText function
7
+ */
8
+ export function wrapGenerateText(originalFn, fetchClient, getContext, options = {}) {
9
+ const { traceNamePrefix = 'vercel-ai', autoTrace = true, captureInput = true, captureOutput = true, traceToolCalls = true, debug = false } = options;
10
+ return async (callOptions) => {
11
+ const model = extractModelInfo(callOptions.model);
12
+ const context = getContext();
13
+ // Create trace if needed
14
+ let traceId = context?.traceId;
15
+ let createdTrace = false;
16
+ if (!traceId && autoTrace) {
17
+ const trace = await fetchClient.createTrace({
18
+ name: `${traceNamePrefix}.generateText`,
19
+ input: captureInput ? {
20
+ prompt: callOptions.prompt,
21
+ messages: callOptions.messages,
22
+ system: callOptions.system
23
+ } : undefined,
24
+ metadata: { model: model.id, provider: model.provider }
25
+ });
26
+ traceId = trace.id;
27
+ createdTrace = true;
28
+ }
29
+ // Create span
30
+ let spanId;
31
+ if (traceId) {
32
+ const span = await fetchClient.createSpan({
33
+ traceId,
34
+ parentId: context?.spanId,
35
+ name: 'generateText',
36
+ type: 'LLM_CALL',
37
+ model: model.id,
38
+ input: captureInput ? callOptions : undefined
39
+ });
40
+ spanId = span.id;
41
+ }
42
+ try {
43
+ const result = await originalFn(callOptions);
44
+ // Create tool call/result spans
45
+ if (traceToolCalls && spanId && traceId) {
46
+ await createVercelToolSpans(result, fetchClient, traceId, spanId, debug);
47
+ }
48
+ // Update span
49
+ if (spanId) {
50
+ const promptTokens = result.usage?.promptTokens || 0;
51
+ const outputTokens = result.usage?.completionTokens || 0;
52
+ await fetchClient.updateSpan(spanId, {
53
+ status: 'COMPLETED',
54
+ output: captureOutput ? {
55
+ text: result.text,
56
+ finishReason: result.finishReason,
57
+ usage: result.usage
58
+ } : undefined,
59
+ promptTokens,
60
+ outputTokens,
61
+ cost: estimateCost(model.id, promptTokens, outputTokens)
62
+ });
63
+ }
64
+ // Complete trace
65
+ if (createdTrace && traceId) {
66
+ await fetchClient.updateTrace(traceId, {
67
+ status: 'COMPLETED',
68
+ output: captureOutput ? { text: result.text } : undefined
69
+ });
70
+ }
71
+ return result;
72
+ }
73
+ catch (error) {
74
+ if (spanId) {
75
+ await fetchClient.updateSpan(spanId, {
76
+ status: 'FAILED',
77
+ error: error instanceof Error ? error.message : String(error)
78
+ });
79
+ }
80
+ if (createdTrace && traceId) {
81
+ await fetchClient.updateTrace(traceId, { status: 'FAILED' });
82
+ }
83
+ throw error;
84
+ }
85
+ };
86
+ }
87
+ /**
88
+ * Wrap Vercel AI SDK's streamText function
89
+ */
90
+ export function wrapStreamText(originalFn, fetchClient, getContext, options = {}) {
91
+ const { traceNamePrefix = 'vercel-ai', autoTrace = true, captureInput = true, captureOutput = true, traceToolCalls = true, debug = false } = options;
92
+ return async (callOptions) => {
93
+ const model = extractModelInfo(callOptions.model);
94
+ const context = getContext();
95
+ // Create trace if needed
96
+ let traceId = context?.traceId;
97
+ let createdTrace = false;
98
+ if (!traceId && autoTrace) {
99
+ const trace = await fetchClient.createTrace({
100
+ name: `${traceNamePrefix}.streamText`,
101
+ input: captureInput ? {
102
+ prompt: callOptions.prompt,
103
+ messages: callOptions.messages
104
+ } : undefined,
105
+ metadata: { model: model.id, provider: model.provider, streaming: true }
106
+ });
107
+ traceId = trace.id;
108
+ createdTrace = true;
109
+ }
110
+ // Create span
111
+ let spanId;
112
+ if (traceId) {
113
+ const span = await fetchClient.createSpan({
114
+ traceId,
115
+ parentId: context?.spanId,
116
+ name: 'streamText',
117
+ type: 'LLM_CALL',
118
+ model: model.id,
119
+ input: captureInput ? callOptions : undefined
120
+ });
121
+ spanId = span.id;
122
+ }
123
+ try {
124
+ const result = await originalFn(callOptions);
125
+ // Wrap the textStream to track completion
126
+ const wrappedTextStream = wrapTextStream(result.textStream, result, fetchClient, {
127
+ traceId,
128
+ spanId,
129
+ createdTrace,
130
+ model,
131
+ captureOutput,
132
+ traceToolCalls,
133
+ debug
134
+ });
135
+ // Return modified result with wrapped stream
136
+ return {
137
+ ...result,
138
+ textStream: wrappedTextStream
139
+ };
140
+ }
141
+ catch (error) {
142
+ if (spanId) {
143
+ await fetchClient.updateSpan(spanId, {
144
+ status: 'FAILED',
145
+ error: error instanceof Error ? error.message : String(error)
146
+ });
147
+ }
148
+ if (createdTrace && traceId) {
149
+ await fetchClient.updateTrace(traceId, { status: 'FAILED' });
150
+ }
151
+ throw error;
152
+ }
153
+ };
154
+ }
155
+ /**
156
+ * Wrap Vercel AI SDK's generateObject function
157
+ */
158
+ export function wrapGenerateObject(originalFn, fetchClient, getContext, options = {}) {
159
+ const { traceNamePrefix = 'vercel-ai', autoTrace = true, captureInput = true, captureOutput = true } = options;
160
+ return async (callOptions) => {
161
+ const model = extractModelInfo(callOptions.model);
162
+ const context = getContext();
163
+ let traceId = context?.traceId;
164
+ let createdTrace = false;
165
+ if (!traceId && autoTrace) {
166
+ const trace = await fetchClient.createTrace({
167
+ name: `${traceNamePrefix}.generateObject`,
168
+ input: captureInput ? { prompt: callOptions.prompt } : undefined,
169
+ metadata: { model: model.id, provider: model.provider }
170
+ });
171
+ traceId = trace.id;
172
+ createdTrace = true;
173
+ }
174
+ let spanId;
175
+ if (traceId) {
176
+ const span = await fetchClient.createSpan({
177
+ traceId,
178
+ parentId: context?.spanId,
179
+ name: 'generateObject',
180
+ type: 'LLM_CALL',
181
+ model: model.id,
182
+ input: captureInput ? callOptions : undefined
183
+ });
184
+ spanId = span.id;
185
+ }
186
+ try {
187
+ const result = await originalFn(callOptions);
188
+ if (spanId) {
189
+ const promptTokens = result.usage?.promptTokens || 0;
190
+ const outputTokens = result.usage?.completionTokens || 0;
191
+ await fetchClient.updateSpan(spanId, {
192
+ status: 'COMPLETED',
193
+ output: captureOutput ? {
194
+ object: result.object,
195
+ finishReason: result.finishReason
196
+ } : undefined,
197
+ promptTokens,
198
+ outputTokens,
199
+ cost: estimateCost(model.id, promptTokens, outputTokens)
200
+ });
201
+ }
202
+ if (createdTrace && traceId) {
203
+ await fetchClient.updateTrace(traceId, {
204
+ status: 'COMPLETED',
205
+ output: captureOutput ? { object: result.object } : undefined
206
+ });
207
+ }
208
+ return result;
209
+ }
210
+ catch (error) {
211
+ if (spanId) {
212
+ await fetchClient.updateSpan(spanId, {
213
+ status: 'FAILED',
214
+ error: error instanceof Error ? error.message : String(error)
215
+ });
216
+ }
217
+ if (createdTrace && traceId) {
218
+ await fetchClient.updateTrace(traceId, { status: 'FAILED' });
219
+ }
220
+ throw error;
221
+ }
222
+ };
223
+ }
224
+ /**
225
+ * Wrap Vercel AI SDK's embed function
226
+ */
227
+ export function wrapEmbed(originalFn, fetchClient, getContext, options = {}) {
228
+ const { traceNamePrefix = 'vercel-ai', autoTrace = true, captureInput = true } = options;
229
+ return async (callOptions) => {
230
+ const model = extractModelInfo(callOptions.model);
231
+ const context = getContext();
232
+ let traceId = context?.traceId;
233
+ let createdTrace = false;
234
+ if (!traceId && autoTrace) {
235
+ const trace = await fetchClient.createTrace({
236
+ name: `${traceNamePrefix}.embed`,
237
+ metadata: { model: model.id, provider: model.provider }
238
+ });
239
+ traceId = trace.id;
240
+ createdTrace = true;
241
+ }
242
+ let spanId;
243
+ if (traceId) {
244
+ const span = await fetchClient.createSpan({
245
+ traceId,
246
+ parentId: context?.spanId,
247
+ name: 'embed',
248
+ type: 'EMBEDDING',
249
+ model: model.id,
250
+ input: captureInput ? {
251
+ valueLength: String(callOptions.value).length
252
+ } : undefined
253
+ });
254
+ spanId = span.id;
255
+ }
256
+ try {
257
+ const result = await originalFn(callOptions);
258
+ if (spanId) {
259
+ await fetchClient.updateSpan(spanId, {
260
+ status: 'COMPLETED',
261
+ output: { embeddingLength: result.embedding.length },
262
+ promptTokens: result.usage?.tokens || 0,
263
+ outputTokens: 0,
264
+ cost: estimateCost(model.id, result.usage?.tokens || 0, 0)
265
+ });
266
+ }
267
+ if (createdTrace && traceId) {
268
+ await fetchClient.updateTrace(traceId, { status: 'COMPLETED' });
269
+ }
270
+ return result;
271
+ }
272
+ catch (error) {
273
+ if (spanId) {
274
+ await fetchClient.updateSpan(spanId, {
275
+ status: 'FAILED',
276
+ error: error instanceof Error ? error.message : String(error)
277
+ });
278
+ }
279
+ if (createdTrace && traceId) {
280
+ await fetchClient.updateTrace(traceId, { status: 'FAILED' });
281
+ }
282
+ throw error;
283
+ }
284
+ };
285
+ }
286
+ /**
287
+ * Wrap Vercel AI SDK's embedMany function
288
+ */
289
+ export function wrapEmbedMany(originalFn, fetchClient, getContext, options = {}) {
290
+ const { traceNamePrefix = 'vercel-ai', autoTrace = true, captureInput = true } = options;
291
+ return async (callOptions) => {
292
+ const model = extractModelInfo(callOptions.model);
293
+ const context = getContext();
294
+ const values = callOptions.values;
295
+ let traceId = context?.traceId;
296
+ let createdTrace = false;
297
+ if (!traceId && autoTrace) {
298
+ const trace = await fetchClient.createTrace({
299
+ name: `${traceNamePrefix}.embedMany`,
300
+ metadata: { model: model.id, provider: model.provider, count: values?.length }
301
+ });
302
+ traceId = trace.id;
303
+ createdTrace = true;
304
+ }
305
+ let spanId;
306
+ if (traceId) {
307
+ const span = await fetchClient.createSpan({
308
+ traceId,
309
+ parentId: context?.spanId,
310
+ name: 'embedMany',
311
+ type: 'EMBEDDING',
312
+ model: model.id,
313
+ input: captureInput ? {
314
+ valuesCount: values?.length
315
+ } : undefined
316
+ });
317
+ spanId = span.id;
318
+ }
319
+ try {
320
+ const result = await originalFn(callOptions);
321
+ if (spanId) {
322
+ await fetchClient.updateSpan(spanId, {
323
+ status: 'COMPLETED',
324
+ output: { embeddingsCount: result.embeddings.length },
325
+ promptTokens: result.usage?.tokens || 0,
326
+ outputTokens: 0,
327
+ cost: estimateCost(model.id, result.usage?.tokens || 0, 0)
328
+ });
329
+ }
330
+ if (createdTrace && traceId) {
331
+ await fetchClient.updateTrace(traceId, { status: 'COMPLETED' });
332
+ }
333
+ return result;
334
+ }
335
+ catch (error) {
336
+ if (spanId) {
337
+ await fetchClient.updateSpan(spanId, {
338
+ status: 'FAILED',
339
+ error: error instanceof Error ? error.message : String(error)
340
+ });
341
+ }
342
+ if (createdTrace && traceId) {
343
+ await fetchClient.updateTrace(traceId, { status: 'FAILED' });
344
+ }
345
+ throw error;
346
+ }
347
+ };
348
+ }
349
+ // ============================================
350
+ // Helper Functions
351
+ // ============================================
352
+ function wrapTextStream(textStream, result, fetchClient, ctx) {
353
+ const { traceId, spanId, createdTrace, model, captureOutput, traceToolCalls, debug } = ctx;
354
+ let fullText = '';
355
+ async function* wrappedStream() {
356
+ try {
357
+ for await (const chunk of textStream) {
358
+ fullText += chunk;
359
+ yield chunk;
360
+ }
361
+ // Stream completed - get final values
362
+ const [usage, toolCalls, toolResults] = await Promise.all([
363
+ result.usage,
364
+ result.toolCalls,
365
+ result.toolResults
366
+ ]);
367
+ // Create tool spans
368
+ if (traceToolCalls && spanId && traceId && toolCalls?.length) {
369
+ for (let i = 0; i < toolCalls.length; i++) {
370
+ const tc = toolCalls[i];
371
+ const tr = toolResults?.[i];
372
+ await createToolSpan(fetchClient, traceId, spanId, tc, tr, debug);
373
+ }
374
+ }
375
+ // Update span
376
+ if (spanId) {
377
+ const promptTokens = usage?.promptTokens || 0;
378
+ const outputTokens = usage?.completionTokens || 0;
379
+ await fetchClient.updateSpan(spanId, {
380
+ status: 'COMPLETED',
381
+ output: captureOutput ? { text: fullText } : undefined,
382
+ promptTokens,
383
+ outputTokens,
384
+ cost: estimateCost(model.id, promptTokens, outputTokens)
385
+ });
386
+ }
387
+ // Complete trace
388
+ if (createdTrace && traceId) {
389
+ await fetchClient.updateTrace(traceId, {
390
+ status: 'COMPLETED',
391
+ output: captureOutput ? { text: fullText } : undefined
392
+ });
393
+ }
394
+ }
395
+ catch (error) {
396
+ if (spanId) {
397
+ await fetchClient.updateSpan(spanId, {
398
+ status: 'FAILED',
399
+ error: error instanceof Error ? error.message : String(error)
400
+ }).catch((e) => {
401
+ if (debug) {
402
+ console.warn('[AgentGov] Failed to update span on error:', e);
403
+ }
404
+ });
405
+ }
406
+ if (createdTrace && traceId) {
407
+ await fetchClient.updateTrace(traceId, { status: 'FAILED' }).catch((e) => {
408
+ if (debug) {
409
+ console.warn('[AgentGov] Failed to update trace on error:', e);
410
+ }
411
+ });
412
+ }
413
+ throw error;
414
+ }
415
+ }
416
+ return wrappedStream();
417
+ }
418
+ async function createVercelToolSpans(result, fetchClient, traceId, parentSpanId, debug) {
419
+ const toolCalls = result.toolCalls;
420
+ const toolResults = result.toolResults;
421
+ if (!toolCalls?.length)
422
+ return;
423
+ for (let i = 0; i < toolCalls.length; i++) {
424
+ const tc = toolCalls[i];
425
+ const tr = toolResults?.[i];
426
+ await createToolSpan(fetchClient, traceId, parentSpanId, tc, tr, debug);
427
+ }
428
+ }
429
+ async function createToolSpan(fetchClient, traceId, parentSpanId, toolCall, toolResult, debug) {
430
+ try {
431
+ const span = await fetchClient.createSpan({
432
+ traceId,
433
+ parentId: parentSpanId,
434
+ name: toolCall.toolName,
435
+ type: 'TOOL_CALL',
436
+ toolName: toolCall.toolName,
437
+ toolInput: toolCall.args,
438
+ metadata: { toolCallId: toolCall.toolCallId }
439
+ });
440
+ await fetchClient.updateSpan(span.id, {
441
+ status: 'COMPLETED',
442
+ toolOutput: toolResult?.result
443
+ });
444
+ }
445
+ catch (error) {
446
+ if (debug) {
447
+ console.warn('[AgentGov] Failed to record tool call span:', error);
448
+ }
449
+ }
450
+ }
451
+ function extractModelInfo(model) {
452
+ if (model && typeof model === 'object') {
453
+ const m = model;
454
+ return {
455
+ id: m.modelId || 'unknown',
456
+ provider: m.provider || 'unknown'
457
+ };
458
+ }
459
+ return { id: 'unknown', provider: 'unknown' };
460
+ }
461
+ //# sourceMappingURL=vercel-ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel-ai.js","sourceRoot":"","sources":["../../src/wrappers/vercel-ai.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "@agentgov/sdk",
3
+ "version": "0.1.1",
4
+ "description": "AgentGov SDK - AI agent observability and EU AI Act compliance",
5
+ "type": "module",
6
+ "private": false,
7
+ "main": "./dist/index.js",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "import": "./dist/index.js",
13
+ "types": "./dist/index.d.ts"
14
+ },
15
+ "./openai": {
16
+ "import": "./dist/wrappers/openai.js",
17
+ "types": "./dist/wrappers/openai.d.ts"
18
+ },
19
+ "./vercel-ai": {
20
+ "import": "./dist/wrappers/vercel-ai.js",
21
+ "types": "./dist/wrappers/vercel-ai.d.ts"
22
+ }
23
+ },
24
+ "files": [
25
+ "dist",
26
+ "README.md"
27
+ ],
28
+ "scripts": {
29
+ "build": "tsc",
30
+ "dev": "tsc --watch",
31
+ "type-check": "tsc --noEmit",
32
+ "clean": "rm -rf dist",
33
+ "test": "vitest run",
34
+ "test:watch": "vitest"
35
+ },
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "https://github.com/amadc2207/agentgov"
42
+ },
43
+ "homepage": "https://agentgov.co",
44
+ "keywords": [
45
+ "ai",
46
+ "agents",
47
+ "llm",
48
+ "observability",
49
+ "tracing",
50
+ "monitoring",
51
+ "eu-ai-act",
52
+ "compliance",
53
+ "openai",
54
+ "anthropic",
55
+ "langchain",
56
+ "governance"
57
+ ],
58
+ "author": "AgentGov",
59
+ "license": "MIT",
60
+ "devDependencies": {
61
+ "typescript": "^5.6.0",
62
+ "vitest": "^4.0.18"
63
+ },
64
+ "peerDependencies": {
65
+ "openai": ">=4.0.0"
66
+ },
67
+ "peerDependenciesMeta": {
68
+ "openai": {
69
+ "optional": true
70
+ }
71
+ },
72
+ "engines": {
73
+ "node": ">=18"
74
+ }
75
+ }