@vercel/agent-runs 0.0.0-stage → 0.0.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.
Files changed (129) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +77 -0
  3. package/README.md +251 -2
  4. package/dist/src/adapters/agent-transport.d.ts +9 -0
  5. package/dist/src/adapters/agent-transport.d.ts.map +1 -0
  6. package/dist/src/adapters/agent-transport.js +87 -0
  7. package/dist/src/adapters/agent-transport.js.map +1 -0
  8. package/dist/src/adapters/ai-sdk-payload.d.ts +16 -0
  9. package/dist/src/adapters/ai-sdk-payload.d.ts.map +1 -0
  10. package/dist/src/adapters/ai-sdk-payload.js +30 -0
  11. package/dist/src/adapters/ai-sdk-payload.js.map +1 -0
  12. package/dist/src/adapters/ai-sdk-telemetry.d.ts +15 -0
  13. package/dist/src/adapters/ai-sdk-telemetry.d.ts.map +1 -0
  14. package/dist/src/adapters/ai-sdk-telemetry.js +151 -0
  15. package/dist/src/adapters/ai-sdk-telemetry.js.map +1 -0
  16. package/dist/src/adapters/otel-error.d.ts +4 -0
  17. package/dist/src/adapters/otel-error.d.ts.map +1 -0
  18. package/dist/src/adapters/otel-error.js +32 -0
  19. package/dist/src/adapters/otel-error.js.map +1 -0
  20. package/dist/src/adapters/otel-ids.d.ts +20 -0
  21. package/dist/src/adapters/otel-ids.d.ts.map +1 -0
  22. package/dist/src/adapters/otel-ids.js +74 -0
  23. package/dist/src/adapters/otel-ids.js.map +1 -0
  24. package/dist/src/adapters/otel.d.ts +34 -0
  25. package/dist/src/adapters/otel.d.ts.map +1 -0
  26. package/dist/src/adapters/otel.js +147 -0
  27. package/dist/src/adapters/otel.js.map +1 -0
  28. package/dist/src/adapters/serialization.d.ts +37 -0
  29. package/dist/src/adapters/serialization.d.ts.map +1 -0
  30. package/dist/src/adapters/serialization.js +318 -0
  31. package/dist/src/adapters/serialization.js.map +1 -0
  32. package/dist/src/agent-run.d.ts +85 -0
  33. package/dist/src/agent-run.d.ts.map +1 -0
  34. package/dist/src/agent-run.js +213 -0
  35. package/dist/src/agent-run.js.map +1 -0
  36. package/dist/src/ai-sdk.d.ts +8 -0
  37. package/dist/src/ai-sdk.d.ts.map +1 -0
  38. package/dist/src/ai-sdk.js +8 -0
  39. package/dist/src/ai-sdk.js.map +1 -0
  40. package/dist/src/capture.d.ts +6 -0
  41. package/dist/src/capture.d.ts.map +1 -0
  42. package/dist/src/capture.js +9 -0
  43. package/dist/src/capture.js.map +1 -0
  44. package/dist/src/core/activation.d.ts +4 -0
  45. package/dist/src/core/activation.d.ts.map +1 -0
  46. package/dist/src/core/activation.js +31 -0
  47. package/dist/src/core/activation.js.map +1 -0
  48. package/dist/src/core/attributes.d.ts +15 -0
  49. package/dist/src/core/attributes.d.ts.map +1 -0
  50. package/dist/src/core/attributes.js +76 -0
  51. package/dist/src/core/attributes.js.map +1 -0
  52. package/dist/src/core/content-policy.d.ts +29 -0
  53. package/dist/src/core/content-policy.d.ts.map +1 -0
  54. package/dist/src/core/content-policy.js +94 -0
  55. package/dist/src/core/content-policy.js.map +1 -0
  56. package/dist/src/core/context.d.ts +4 -0
  57. package/dist/src/core/context.d.ts.map +1 -0
  58. package/dist/src/core/context.js +28 -0
  59. package/dist/src/core/context.js.map +1 -0
  60. package/dist/src/core/delegation.d.ts +14 -0
  61. package/dist/src/core/delegation.d.ts.map +1 -0
  62. package/dist/src/core/delegation.js +7 -0
  63. package/dist/src/core/delegation.js.map +1 -0
  64. package/dist/src/core/mcp.d.ts +25 -0
  65. package/dist/src/core/mcp.d.ts.map +1 -0
  66. package/dist/src/core/mcp.js +33 -0
  67. package/dist/src/core/mcp.js.map +1 -0
  68. package/dist/src/core/scopes.d.ts +60 -0
  69. package/dist/src/core/scopes.d.ts.map +1 -0
  70. package/dist/src/core/scopes.js +574 -0
  71. package/dist/src/core/scopes.js.map +1 -0
  72. package/dist/src/core/snapshot.d.ts +8 -0
  73. package/dist/src/core/snapshot.d.ts.map +1 -0
  74. package/dist/src/core/snapshot.js +207 -0
  75. package/dist/src/core/snapshot.js.map +1 -0
  76. package/dist/src/core/span-kinds.d.ts +13 -0
  77. package/dist/src/core/span-kinds.d.ts.map +1 -0
  78. package/dist/src/core/span-kinds.js +338 -0
  79. package/dist/src/core/span-kinds.js.map +1 -0
  80. package/dist/src/core/types.d.ts +298 -0
  81. package/dist/src/core/types.d.ts.map +1 -0
  82. package/dist/src/core/types.js +2 -0
  83. package/dist/src/core/types.js.map +1 -0
  84. package/dist/src/core/writer.d.ts +16 -0
  85. package/dist/src/core/writer.d.ts.map +1 -0
  86. package/dist/src/core/writer.js +77 -0
  87. package/dist/src/core/writer.js.map +1 -0
  88. package/dist/src/delegation.d.ts +3 -0
  89. package/dist/src/delegation.d.ts.map +1 -0
  90. package/dist/src/delegation.js +3 -0
  91. package/dist/src/delegation.js.map +1 -0
  92. package/dist/src/index.d.ts +7 -0
  93. package/dist/src/index.d.ts.map +1 -0
  94. package/dist/src/index.js +5 -0
  95. package/dist/src/index.js.map +1 -0
  96. package/dist/src/operations.d.ts +97 -0
  97. package/dist/src/operations.d.ts.map +1 -0
  98. package/dist/src/operations.js +185 -0
  99. package/dist/src/operations.js.map +1 -0
  100. package/dist/src/otel.d.ts +13 -0
  101. package/dist/src/otel.d.ts.map +1 -0
  102. package/dist/src/otel.js +13 -0
  103. package/dist/src/otel.js.map +1 -0
  104. package/package.json +75 -3
  105. package/src/adapters/agent-transport.ts +113 -0
  106. package/src/adapters/ai-sdk-payload.ts +44 -0
  107. package/src/adapters/ai-sdk-telemetry.ts +179 -0
  108. package/src/adapters/otel-error.ts +34 -0
  109. package/src/adapters/otel-ids.ts +82 -0
  110. package/src/adapters/otel.ts +232 -0
  111. package/src/adapters/serialization.ts +338 -0
  112. package/src/agent-run.ts +341 -0
  113. package/src/ai-sdk.ts +7 -0
  114. package/src/capture.ts +13 -0
  115. package/src/core/activation.ts +42 -0
  116. package/src/core/attributes.ts +85 -0
  117. package/src/core/content-policy.ts +116 -0
  118. package/src/core/context.ts +34 -0
  119. package/src/core/delegation.ts +20 -0
  120. package/src/core/mcp.ts +60 -0
  121. package/src/core/scopes.ts +761 -0
  122. package/src/core/snapshot.ts +245 -0
  123. package/src/core/span-kinds.ts +406 -0
  124. package/src/core/types.ts +304 -0
  125. package/src/core/writer.ts +135 -0
  126. package/src/delegation.ts +2 -0
  127. package/src/index.ts +44 -0
  128. package/src/operations.ts +342 -0
  129. package/src/otel.ts +18 -0
@@ -0,0 +1,207 @@
1
+ import { capturedScopeData } from "./span-kinds.js";
2
+ const SERIALIZED_BYTES = 32768;
3
+ const SNAPSHOT_BYTES = 65536;
4
+ const UNFINISHED_CHILDREN = 10000;
5
+ import { withoutDeclinedContent } from "./content-policy.js";
6
+ export function boundedSerializer(serializer, onError) {
7
+ function invoke(method, args) {
8
+ return bounded(() => Reflect.apply(serializer[method], serializer, args));
9
+ }
10
+ function bounded(serialize) {
11
+ try {
12
+ const value = serialize();
13
+ return value === undefined || new TextEncoder().encode(value).length > SERIALIZED_BYTES
14
+ ? undefined
15
+ : value;
16
+ }
17
+ catch (error) {
18
+ try {
19
+ onError?.(error, { phase: "serialize" });
20
+ }
21
+ catch { }
22
+ return undefined;
23
+ }
24
+ }
25
+ return {
26
+ json: (value) => invoke("json", [value]),
27
+ text: (value) => invoke("text", [value]),
28
+ inputMessages: (value) => {
29
+ let omitted = 0;
30
+ const json = bounded(() => {
31
+ const content = serializer.inputMessages(value);
32
+ omitted = content?.omitted ?? 0;
33
+ return content?.json;
34
+ });
35
+ return json === undefined ? undefined : { json, omitted };
36
+ },
37
+ instructions: (value) => invoke("instructions", [value]),
38
+ toolDefinitions: (value) => invoke("toolDefinitions", [value]),
39
+ outputMessages: (value, reason) => invoke("outputMessages", [value, reason]),
40
+ toolResults: (value) => invoke("toolResults", [value]),
41
+ };
42
+ }
43
+ /** Each node is capped on its own; settled children leave the tree. */
44
+ function nodeBytes(record) {
45
+ return new TextEncoder().encode(JSON.stringify({ ...record, children: undefined })).length;
46
+ }
47
+ export function traceSnapshot(value) {
48
+ return JSON.parse(JSON.stringify(value));
49
+ }
50
+ export function validSnapshot(value, maxBytes = SNAPSHOT_BYTES, depth = 0) {
51
+ try {
52
+ if (depth > 16)
53
+ return false;
54
+ if (typeof value !== "object" || value === null)
55
+ return false;
56
+ const record = value;
57
+ if (record.children !== undefined &&
58
+ (!Array.isArray(record.children) ||
59
+ record.children.length > UNFINISHED_CHILDREN ||
60
+ !record.children.every((child) => validSnapshot(child, maxBytes, depth + 1))))
61
+ return false;
62
+ if (record.version !== 1)
63
+ return false;
64
+ if (record.finished !== undefined && typeof record.finished !== "boolean")
65
+ return false;
66
+ if (record.childSequence !== undefined &&
67
+ (!Number.isSafeInteger(record.childSequence) || record.childSequence < 0))
68
+ return false;
69
+ if (typeof record.key !== "string" ||
70
+ typeof record.startTimeMs !== "number" ||
71
+ !Number.isFinite(record.startTimeMs))
72
+ return false;
73
+ if (record.reference.traceFlags !== 0 && record.reference.traceFlags !== 1)
74
+ return false;
75
+ if (record.reference.tracestate !== undefined &&
76
+ (typeof record.reference.tracestate !== "string" || record.reference.tracestate.length > 512))
77
+ return false;
78
+ if (record.parent !== undefined &&
79
+ (!/^[a-f0-9]{32}$/u.test(record.parent.traceId) ||
80
+ !/^[a-f0-9]{16}$/u.test(record.parent.spanId)))
81
+ return false;
82
+ if (![record.identity.conversationId, record.identity.runId, record.identity.turnId].every((v) => typeof v === "string"))
83
+ return false;
84
+ const options = record.data.options;
85
+ const fields = {
86
+ activation: [],
87
+ step: [],
88
+ model: ["provider", "modelId"],
89
+ tool: ["callId", "name"],
90
+ approval: ["requestId", "callId", "toolName"],
91
+ memory: ["operation", "phase", "slot", "storeId"],
92
+ };
93
+ if (!fields[record.data.type].every((key) => typeof options[key] === "string"))
94
+ return false;
95
+ if (record.data.type === "activation" && !Number.isSafeInteger(options.sequence))
96
+ return false;
97
+ if (record.data.type === "step" && !Number.isSafeInteger(options.index))
98
+ return false;
99
+ if (record.data.type === "memory" &&
100
+ options.operation !== "search_memory" &&
101
+ options.operation !== "upsert_memory")
102
+ return false;
103
+ if (!/^[a-f0-9]{32}$/u.test(record.reference.traceId) ||
104
+ !/^[a-f0-9]{16}$/u.test(record.reference.spanId) ||
105
+ typeof record.reference.traceFlags !== "number")
106
+ return false;
107
+ if (![record.capture.emit, record.capture.recordInputs, record.capture.recordOutputs].every((v) => typeof v === "boolean"))
108
+ return false;
109
+ if (!["activation", "step", "model", "tool", "approval", "memory"].includes(record.data.type) ||
110
+ typeof record.data.options !== "object" ||
111
+ record.data.options === null)
112
+ return false;
113
+ if (nodeBytes(record) > maxBytes)
114
+ return false;
115
+ return true;
116
+ }
117
+ catch {
118
+ return false;
119
+ }
120
+ }
121
+ export function snapshotRecord(record, serializer) {
122
+ const terminal = record.terminal;
123
+ record = {
124
+ ...record,
125
+ children: record.children?.map((child) => snapshotRecord({
126
+ ...child,
127
+ capture: {
128
+ emit: child.capture.emit && record.capture.emit,
129
+ recordInputs: child.capture.recordInputs && record.capture.recordInputs,
130
+ recordOutputs: child.capture.recordOutputs && record.capture.recordOutputs,
131
+ },
132
+ }, serializer)),
133
+ };
134
+ record = {
135
+ ...record,
136
+ terminal: terminal === undefined || record.finished
137
+ ? undefined
138
+ : {
139
+ ...terminal,
140
+ errorCode: terminal.errorCode ??
141
+ (terminal.error instanceof Error ? terminal.error.name : undefined),
142
+ error: record.capture.recordOutputs
143
+ ? terminal.error instanceof Error
144
+ ? { name: terminal.error.name, message: serializer.text(terminal.error.message) }
145
+ : terminal.error
146
+ : undefined,
147
+ output: record.capture.recordOutputs ? terminal.output : undefined,
148
+ response: record.capture.recordOutputs ? terminal.response : undefined,
149
+ records: record.capture.recordInputs ? terminal.records : undefined,
150
+ model: terminal.model === undefined
151
+ ? undefined
152
+ : {
153
+ ...terminal.model,
154
+ content: record.capture.recordOutputs ? terminal.model.content : undefined,
155
+ },
156
+ },
157
+ };
158
+ record = {
159
+ ...record,
160
+ attributes: (withoutDeclinedContent(record.attributes ?? {}, record.capture) ??
161
+ record.attributes),
162
+ };
163
+ const data = capturedScopeData(record.data, record.capture);
164
+ let json;
165
+ try {
166
+ json = serializer.json(data);
167
+ }
168
+ catch { }
169
+ const fallback = () => {
170
+ let structural = capturedScopeData(data, {
171
+ emit: record.capture.emit,
172
+ recordInputs: false,
173
+ recordOutputs: false,
174
+ });
175
+ if (structural.type === "step")
176
+ structural = { ...structural, options: { ...structural.options, runtimeContext: undefined } };
177
+ if (structural.type === "model")
178
+ structural = { ...structural, options: { ...structural.options, runtimeContext: undefined } };
179
+ return JSON.parse(JSON.stringify({
180
+ ...record,
181
+ version: 1,
182
+ data: structural,
183
+ terminal: record.terminal === undefined
184
+ ? undefined
185
+ : {
186
+ outcome: record.terminal.outcome,
187
+ failed: record.terminal.failed,
188
+ errorCode: record.terminal.errorCode,
189
+ usage: record.terminal.usage,
190
+ },
191
+ attributes: withoutDeclinedContent(record.attributes ?? {}, {
192
+ recordInputs: false,
193
+ recordOutputs: false,
194
+ }) ?? record.attributes,
195
+ }));
196
+ };
197
+ if (json === undefined || new TextEncoder().encode(json).length > SERIALIZED_BYTES)
198
+ return fallback();
199
+ try {
200
+ const snapshot = JSON.parse(JSON.stringify({ ...record, version: 1, data: JSON.parse(json) }));
201
+ return nodeBytes(snapshot) <= SNAPSHOT_BYTES ? snapshot : fallback();
202
+ }
203
+ catch {
204
+ return fallback();
205
+ }
206
+ }
207
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/core/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare const invocationName: (name?: string) => string;
2
+ export declare function applyAttributes(span: {
3
+ setAttribute(key: string, value: Exclude<Attributes[string], undefined>): unknown;
4
+ }, attributes: Attributes): void;
5
+ import type { ContentSerializer } from "./types.js";
6
+ import type { ScopeData, ScopeRecord, ScopeTerminal } from "./types.js";
7
+ import type { Attributes, CaptureDecision, PreparedSpan } from "./types.js";
8
+ import type { TraceOperation } from "./writer.js";
9
+ export declare function parentKinds(data: ScopeData): readonly ScopeData["type"][];
10
+ export declare function prepareScope(record: Omit<ScopeRecord, "reference">, serializer: ContentSerializer): PreparedSpan;
11
+ export declare function completeScope(span: TraceOperation, data: ScopeData, result: ScopeTerminal, capture: CaptureDecision, startTimeMs: number, serializer: ContentSerializer): void;
12
+ export declare function capturedScopeData(data: ScopeData, capture: CaptureDecision): ScopeData;
13
+ //# sourceMappingURL=span-kinds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-kinds.d.ts","sourceRoot":"","sources":["../../../src/core/span-kinds.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc,UAAW,MAAM,WACkB,CAAC;AAc/D,wBAAgB,eAAe,CAC7B,IAAI,EAAE;IAAE,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,OAAO,CAAA;CAAE,EAC3F,UAAU,EAAE,UAAU,GACrB,IAAI,CAGN;AACD,OAAO,KAAK,EAAE,iBAAiB,EAAe,MAAM,YAAY,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAiB,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA6QlD,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,CAEzE;AACD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EACtC,UAAU,EAAE,iBAAiB,GAC5B,YAAY,CAsBd;AACD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,iBAAiB,GAC5B,IAAI,CAeN;AACD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,GAAG,SAAS,CAGtF"}
@@ -0,0 +1,338 @@
1
+ import { identityAttributes, usageAttributes, frameworkAttributes, namingAttributes, runtimeContextAttributes, } from "./attributes.js";
2
+ export const invocationName = (name) => name === undefined ? "invoke_agent" : `invoke_agent ${name}`;
3
+ const modelName = (name) => `chat ${name}`;
4
+ const toolName = (name) => `execute_tool ${name}`;
5
+ const SPAN_NAMES = {
6
+ approval: "agent.approval",
7
+ step: "agent.step",
8
+ };
9
+ const CONTENT_FIELDS = {
10
+ toolArguments: "gen_ai.tool.call.arguments",
11
+ toolResult: "gen_ai.tool.call.result",
12
+ approvalRequest: "agent.approval.request",
13
+ approvalResponse: "agent.approval.response",
14
+ memoryRecords: "gen_ai.memory.records",
15
+ };
16
+ export function applyAttributes(span, attributes) {
17
+ for (const [key, value] of Object.entries(attributes))
18
+ if (value !== undefined)
19
+ span.setAttribute(key, value);
20
+ }
21
+ import { withoutDeclinedContent } from "./content-policy.js";
22
+ function attemptAttributes(context) {
23
+ return {
24
+ "agent.turn.id": context.attempt.turnId,
25
+ "agent.step.index": context.attempt.index,
26
+ "agent.step.attempt": context.attempt.attempt,
27
+ };
28
+ }
29
+ function permitted(attributes, capture) {
30
+ return (withoutDeclinedContent(attributes ?? {}, capture) ?? attributes);
31
+ }
32
+ function toolInput(arguments_, context) {
33
+ return {
34
+ [CONTENT_FIELDS.toolArguments]: context.capture.recordInputs
35
+ ? context.serializer.json(arguments_)
36
+ : undefined,
37
+ };
38
+ }
39
+ function toolOutput(span, result, context) {
40
+ if (context.capture.recordOutputs)
41
+ applyAttributes(span, { [CONTENT_FIELDS.toolResult]: context.serializer.json(result.output) });
42
+ }
43
+ const kinds = {
44
+ activation: {
45
+ parents: [],
46
+ prepare({ options }, context) {
47
+ const { identity, capture } = context;
48
+ return {
49
+ name: invocationName(identity.agentName),
50
+ attributes: {
51
+ ...context.attributes,
52
+ ...frameworkAttributes(identity.framework),
53
+ ...namingAttributes(invocationName(identity.agentName), "invoke_agent"),
54
+ "agent.channel.kind": options.channel?.kind,
55
+ "agent.session.origin": options.channel?.origin,
56
+ "agent.name": identity.agentName,
57
+ "gen_ai.agent.name": identity.agentName,
58
+ "gen_ai.operation.name": "invoke_agent",
59
+ "agent.turn.id": identity.turnId,
60
+ "agent.turn.sequence": options.sequence,
61
+ "agent.run.type": options.subagent ? "subagent" : "session",
62
+ "agent.parent_call.id": options.parentCallId,
63
+ "agent.parent_run.id": options.parentRunId,
64
+ "agent.subagent.name": options.subagentName,
65
+ "agent.trace.content.input": capture.recordInputs,
66
+ "agent.trace.content.output": capture.recordOutputs,
67
+ ...permitted(options.attributes, capture),
68
+ },
69
+ };
70
+ },
71
+ complete(span, _data, result, context) {
72
+ span.addEvent("turn.started", undefined, context.startTimeMs);
73
+ if (result.outcomeUnknown !== true || result.failed === true)
74
+ span.addEvent(`turn.${context.outcome}`, undefined, result.endTimeMs);
75
+ },
76
+ redact(data, capture) {
77
+ return {
78
+ ...data,
79
+ options: { ...data.options, attributes: permitted(data.options.attributes, capture) },
80
+ };
81
+ },
82
+ },
83
+ step: {
84
+ parents: ["activation"],
85
+ prepare({ options }, context) {
86
+ return {
87
+ name: SPAN_NAMES.step,
88
+ attributes: {
89
+ ...context.attributes,
90
+ ...frameworkAttributes(context.identity.framework),
91
+ ...attemptAttributes(context),
92
+ ...namingAttributes(SPAN_NAMES.step, "workflow"),
93
+ "gen_ai.operation.name": "workflow",
94
+ "agent.name": context.identity.agentName,
95
+ "agent.channel.kind": options.channel?.kind === "unknown" ? undefined : options.channel?.kind,
96
+ "agent.session.origin": options.channel?.kind === "unknown" ? undefined : options.channel?.origin,
97
+ ...runtimeContextAttributes(options.runtimeContext),
98
+ },
99
+ };
100
+ },
101
+ complete(span, _data, result) {
102
+ span.addEvent(result.failed ? "step.failed" : "step.completed", undefined, result.endTimeMs);
103
+ },
104
+ },
105
+ model: {
106
+ parents: ["step"],
107
+ prepare({ options }, context) {
108
+ const inputMessages = context.capture.recordInputs && options.messages !== undefined
109
+ ? context.serializer.inputMessages(options.messages)
110
+ : undefined;
111
+ return {
112
+ name: modelName(options.modelId),
113
+ kind: "CLIENT",
114
+ attributes: {
115
+ ...context.attributes,
116
+ ...namingAttributes(modelName(options.modelId), "chat"),
117
+ "gen_ai.agent.name": context.identity.agentName,
118
+ "gen_ai.operation.name": "chat",
119
+ "gen_ai.provider.name": options.provider,
120
+ "gen_ai.request.model": options.modelId,
121
+ ...runtimeContextAttributes(options.runtimeContext),
122
+ ...(context.capture.recordInputs && options.messages !== undefined
123
+ ? {
124
+ "gen_ai.input.messages": inputMessages?.json,
125
+ "agent.input.messages.omitted": inputMessages?.omitted || undefined,
126
+ "gen_ai.system_instructions": context.serializer.instructions(options.instructions),
127
+ }
128
+ : undefined),
129
+ "gen_ai.tool.definitions": context.capture.recordInputs
130
+ ? context.serializer.toolDefinitions(options.tools)
131
+ : undefined,
132
+ },
133
+ };
134
+ },
135
+ complete(span, _data, result, context) {
136
+ if (result.model !== undefined)
137
+ applyAttributes(span, modelResultAttributes(result.model, context.serializer, context.capture.recordOutputs));
138
+ },
139
+ redact(data, capture) {
140
+ return capture.recordInputs
141
+ ? data
142
+ : {
143
+ ...data,
144
+ options: {
145
+ ...data.options,
146
+ messages: undefined,
147
+ instructions: undefined,
148
+ tools: undefined,
149
+ },
150
+ };
151
+ },
152
+ },
153
+ tool: {
154
+ parents: ["step", "tool"],
155
+ prepare({ options }, context) {
156
+ const delegates = options.kind === "subagent-call" || options.kind === "remote-agent-call";
157
+ return {
158
+ name: toolName(options.name),
159
+ kind: options.kind === "remote-agent-call" ? "CLIENT" : "INTERNAL",
160
+ attributes: {
161
+ ...context.attributes,
162
+ ...frameworkAttributes(context.identity.framework),
163
+ ...attemptAttributes(context),
164
+ ...namingAttributes(toolName(options.name), "execute_tool"),
165
+ "gen_ai.agent.name": delegates ? options.name : context.identity.agentName,
166
+ "gen_ai.operation.name": "execute_tool",
167
+ "gen_ai.tool.call.id": options.callId,
168
+ "gen_ai.tool.name": options.name,
169
+ "gen_ai.tool.type": "function",
170
+ "agent.action.kind": options.kind,
171
+ "agent.action.name": options.kind === undefined ? undefined : options.name,
172
+ "agent.invocation.role": delegates ? "caller" : undefined,
173
+ ...toolInput(options.arguments, context),
174
+ },
175
+ };
176
+ },
177
+ complete(span, _data, result, context) {
178
+ if (result.outcome !== undefined)
179
+ applyAttributes(span, { "agent.action.outcome": result.outcome });
180
+ toolOutput(span, result, context);
181
+ },
182
+ redact(data, capture) {
183
+ return capture.recordInputs
184
+ ? data
185
+ : { ...data, options: { ...data.options, arguments: undefined } };
186
+ },
187
+ },
188
+ approval: {
189
+ parents: ["tool"],
190
+ prepare({ options }, context) {
191
+ return {
192
+ name: SPAN_NAMES.approval,
193
+ attributes: {
194
+ ...context.attributes,
195
+ ...frameworkAttributes(context.identity.framework),
196
+ ...attemptAttributes(context),
197
+ ...namingAttributes(SPAN_NAMES.approval, "workflow"),
198
+ "gen_ai.operation.name": "workflow",
199
+ "gen_ai.tool.call.id": options.callId,
200
+ "agent.action.name": options.toolName,
201
+ "agent.approval.kind": "tool-approval",
202
+ "agent.approval.request_id": options.requestId,
203
+ [CONTENT_FIELDS.approvalRequest]: context.capture.recordInputs
204
+ ? context.serializer.json(options.request)
205
+ : undefined,
206
+ },
207
+ };
208
+ },
209
+ complete(span, _data, result, context) {
210
+ if (context.capture.recordOutputs)
211
+ applyAttributes(span, {
212
+ [CONTENT_FIELDS.approvalResponse]: context.serializer.json(result.response),
213
+ });
214
+ },
215
+ redact(data, capture) {
216
+ return capture.recordInputs
217
+ ? data
218
+ : { ...data, options: { ...data.options, request: undefined } };
219
+ },
220
+ },
221
+ memory: {
222
+ parents: ["activation", "step", "tool"],
223
+ prepare({ options }, context) {
224
+ return {
225
+ name: options.operation,
226
+ kind: "CLIENT",
227
+ attributes: {
228
+ ...context.attributes,
229
+ ...namingAttributes(options.operation),
230
+ "gen_ai.operation.name": options.operation,
231
+ "gen_ai.memory.store.id": options.storeId,
232
+ "agent.memory.phase": options.phase,
233
+ "agent.memory.slot": options.slot,
234
+ "agent.turn.id": context.identity.turnId,
235
+ },
236
+ };
237
+ },
238
+ complete(span, _data, result, context) {
239
+ if (result.recordCount !== undefined)
240
+ applyAttributes(span, { "gen_ai.memory.record.count": result.recordCount });
241
+ if (context.capture.recordInputs)
242
+ applyAttributes(span, {
243
+ [CONTENT_FIELDS.memoryRecords]: context.serializer.json(result.records),
244
+ });
245
+ },
246
+ },
247
+ };
248
+ function kind(data) {
249
+ return kinds[data.type];
250
+ }
251
+ export function parentKinds(data) {
252
+ return kind(data).parents;
253
+ }
254
+ export function prepareScope(record, serializer) {
255
+ const context = {
256
+ identity: record.identity,
257
+ attributes: identityAttributes(record.identity),
258
+ attempt: {
259
+ turnId: record.identity.turnId,
260
+ index: record.attempt?.index ?? 0,
261
+ attempt: record.attempt?.attempt ?? 0,
262
+ },
263
+ capture: record.capture,
264
+ serializer,
265
+ };
266
+ return {
267
+ type: record.data.type,
268
+ operationId: record.key,
269
+ kind: "INTERNAL",
270
+ ...kind(record.data).prepare(record.data, context),
271
+ parent: record.parent,
272
+ root: record.data.type === "activation" && record.parent === undefined,
273
+ startTimeMs: record.startTimeMs,
274
+ links: record.links,
275
+ };
276
+ }
277
+ export function completeScope(span, data, result, capture, startTimeMs, serializer) {
278
+ const outcome = result.outcome ?? (result.failed ? "failed" : "completed");
279
+ // A failure is always recorded; otherwise an unknown outcome leaves the span without one.
280
+ const known = result.outcomeUnknown !== true || result.failed === true;
281
+ if ((data.type === "activation" || data.type === "approval") && known)
282
+ applyAttributes(span, {
283
+ [data.type === "activation" ? "agent.turn.outcome" : "agent.approval.outcome"]: outcome,
284
+ });
285
+ if (result.usage !== undefined)
286
+ applyAttributes(span, usageAttributes(result.usage, data.type === "activation" || data.type === "model"));
287
+ kind(data).complete?.(span, data, result, { capture, startTimeMs, serializer, outcome });
288
+ if (result.failed)
289
+ span.fail(result.error, result.errorCode);
290
+ }
291
+ export function capturedScopeData(data, capture) {
292
+ if (!capture.emit)
293
+ capture = { emit: false, recordInputs: false, recordOutputs: false };
294
+ return kind(data).redact?.(data, capture) ?? data;
295
+ }
296
+ function modelResultAttributes(input, serializer, recordOutputs) {
297
+ const attributes = {
298
+ ...usageAttributes(input.usage, true),
299
+ "gen_ai.response.id": input.responseId,
300
+ "gen_ai.response.model": input.responseModelId,
301
+ "gen_ai.response.finish_reasons": [input.finishReason],
302
+ };
303
+ if (!recordOutputs)
304
+ return attributes;
305
+ attributes["ai.response.finish_reason"] = input.finishReason;
306
+ const content = input.content;
307
+ if (content === undefined)
308
+ return attributes;
309
+ attributes["gen_ai.output.messages"] = serializer.outputMessages(content, input.finishReason);
310
+ attributes["ai.response.reasoning"] = serializer.text(content
311
+ .filter((part) => part.type === "reasoning")
312
+ .map((part) => part.text)
313
+ .filter((text) => text.trim().length > 0)
314
+ .join("\n"));
315
+ attributes["ai.response.text"] = serializer.text(content
316
+ .filter((part) => part.type === "text")
317
+ .map((part) => part.text)
318
+ .join(""));
319
+ const calls = content
320
+ .filter((part) => part.type === "tool-call")
321
+ .map((part) => ({ callId: part.callId, input: part.input, toolName: part.toolName }));
322
+ if (calls.length > 0)
323
+ attributes["ai.response.tool_calls"] = serializer.json(calls);
324
+ const results = content
325
+ .filter((part) => part.type === "tool-result" || part.type === "tool-error")
326
+ .map((part) => part.type === "tool-result"
327
+ ? { callId: part.callId, input: part.input, output: part.output, toolName: part.toolName }
328
+ : {
329
+ callId: part.callId,
330
+ input: part.input,
331
+ error: part.error instanceof Error ? part.error.message : part.error,
332
+ toolName: part.toolName,
333
+ });
334
+ if (results.length > 0)
335
+ attributes["ai.response.tool_results"] = serializer.toolResults(results);
336
+ return attributes;
337
+ }
338
+ //# sourceMappingURL=span-kinds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-kinds.js","sourceRoot":"","sources":["../../../src/core/span-kinds.ts"],"names":[],"mappings":"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"}