@introspection-sdk/introspection-pi 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/dist/attributes.d.ts +15 -1
- package/dist/attributes.d.ts.map +1 -1
- package/dist/attributes.js +91 -12
- package/dist/attributes.js.map +1 -1
- package/dist/convert.d.ts +8 -0
- package/dist/convert.d.ts.map +1 -1
- package/dist/convert.js +44 -8
- package/dist/convert.js.map +1 -1
- package/dist/error-type.d.ts +16 -0
- package/dist/error-type.d.ts.map +1 -0
- package/dist/error-type.js +32 -0
- package/dist/error-type.js.map +1 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/instrument-agent.d.ts +35 -6
- package/dist/instrument-agent.d.ts.map +1 -1
- package/dist/instrument-agent.js +128 -22
- package/dist/instrument-agent.js.map +1 -1
- package/dist/instrument-stream.d.ts +11 -3
- package/dist/instrument-stream.d.ts.map +1 -1
- package/dist/instrument-stream.js +99 -30
- package/dist/instrument-stream.js.map +1 -1
- package/dist/metrics.d.ts +26 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +64 -0
- package/dist/metrics.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -19,6 +19,7 @@ npm install @introspection-sdk/introspection-pi \
|
|
|
19
19
|
```ts
|
|
20
20
|
import { trace } from "@opentelemetry/api";
|
|
21
21
|
import { Agent } from "@earendil-works/pi-agent-core";
|
|
22
|
+
import { getBuiltinModel } from "@earendil-works/pi-ai/providers/all";
|
|
22
23
|
import {
|
|
23
24
|
instrumentAgent,
|
|
24
25
|
instrumentStream,
|
|
@@ -32,7 +33,12 @@ const meta: AgentMeta = {
|
|
|
32
33
|
agentName: "Support",
|
|
33
34
|
};
|
|
34
35
|
|
|
35
|
-
const agent = new Agent({
|
|
36
|
+
const agent = new Agent({
|
|
37
|
+
initialState: {
|
|
38
|
+
model: getBuiltinModel("anthropic", "claude-sonnet-4-6"),
|
|
39
|
+
systemPrompt: "You are a helpful support agent.",
|
|
40
|
+
},
|
|
41
|
+
});
|
|
36
42
|
|
|
37
43
|
// One chat span per LLM call
|
|
38
44
|
agent.streamFn = instrumentStream(agent.streamFn, { tracer, meta });
|
|
@@ -40,6 +46,8 @@ agent.streamFn = instrumentStream(agent.streamFn, { tracer, meta });
|
|
|
40
46
|
// One execute_tool span per tool call
|
|
41
47
|
const tools = instrumentAgent(agent, { tracer, meta });
|
|
42
48
|
|
|
49
|
+
await agent.prompt("Help me understand my latest invoice.");
|
|
50
|
+
|
|
43
51
|
// Later, on shutdown:
|
|
44
52
|
tools.stop();
|
|
45
53
|
```
|
package/dist/attributes.d.ts
CHANGED
|
@@ -8,6 +8,11 @@
|
|
|
8
8
|
import type { Attributes } from "@opentelemetry/api";
|
|
9
9
|
import type { AssistantMessage, Context, Model, SimpleStreamOptions } from "@earendil-works/pi-ai";
|
|
10
10
|
import { type ConvertOptions } from "./convert.js";
|
|
11
|
+
/**
|
|
12
|
+
* `server.address` / `server.port` derived from the model's base URL.
|
|
13
|
+
* Returns an empty record when the URL cannot be parsed.
|
|
14
|
+
*/
|
|
15
|
+
export declare function serverAttributes(baseUrl: string): Attributes;
|
|
11
16
|
/** Metadata that the consumer attaches to every chat / tool span. */
|
|
12
17
|
export interface AgentMeta {
|
|
13
18
|
conversationId: string;
|
|
@@ -27,7 +32,16 @@ export declare function chatRequestAttributes(model: Model<string>, context: Con
|
|
|
27
32
|
*/
|
|
28
33
|
export declare function chatResponseAttributes(message: AssistantMessage): Attributes;
|
|
29
34
|
/** Common attributes for an execute_tool span (set at start). */
|
|
30
|
-
export declare function executeToolAttributes(toolName: string, toolCallId: string, args: unknown, meta: AgentMeta): Attributes;
|
|
35
|
+
export declare function executeToolAttributes(toolName: string, toolCallId: string, args: unknown, meta: AgentMeta, description?: string): Attributes;
|
|
36
|
+
/**
|
|
37
|
+
* Attributes for an `invoke_agent` span (set at start).
|
|
38
|
+
*
|
|
39
|
+
* Per the semconv agent-span table for in-process invocation, model and
|
|
40
|
+
* provider are intentionally NOT recorded: pi agents can switch models
|
|
41
|
+
* mid-run, and the spec says `gen_ai.request.model` SHOULD NOT be
|
|
42
|
+
* populated for agents that support dynamic model selection.
|
|
43
|
+
*/
|
|
44
|
+
export declare function invokeAgentAttributes(meta: AgentMeta): Attributes;
|
|
31
45
|
/** Result attribute for an execute_tool span (set at end). */
|
|
32
46
|
export declare function executeToolResultAttribute(result: unknown): Attributes;
|
|
33
47
|
export {};
|
package/dist/attributes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EACV,gBAAgB,EAChB,OAAO,EACP,KAAK,EACL,mBAAmB,EAEpB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EACV,gBAAgB,EAChB,OAAO,EACP,KAAK,EACL,mBAAmB,EAEpB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,cAAc,CAAC;AAItB;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAY5D;AAED,qEAAqE;AACrE,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,2BAA4B,SAAQ,cAAc;IAC1D,aAAa,CAAC,EAAE,IAAI,CAClB,mBAAmB,EACnB,aAAa,GAAG,WAAW,GAAG,WAAW,CAC1C,CAAC;CACH;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,2BAA2B,GACpC,UAAU,CAwDZ;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAyC5E;AAED,iEAAiE;AACjE,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,SAAS,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,UAAU,CAiBZ;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAOjE;AAED,8DAA8D;AAC9D,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAGtE"}
|
package/dist/attributes.js
CHANGED
|
@@ -5,9 +5,27 @@
|
|
|
5
5
|
* can inspect, log, and merge with their own attributes (`extraAttributes`
|
|
6
6
|
* hook, environment-derived tenant labels, etc.).
|
|
7
7
|
*/
|
|
8
|
-
import { GenAi } from "@introspection-sdk/types";
|
|
9
|
-
import { assistantToOutputMessages, messagesToInputMessages, systemPromptToInstructions, } from "./convert.js";
|
|
8
|
+
import { GenAi, } from "@introspection-sdk/types";
|
|
9
|
+
import { assistantToOutputMessages, messagesToInputMessages, semconvFinishReason, systemPromptToInstructions, } from "./convert.js";
|
|
10
10
|
const MAX_BYTES = 64_000;
|
|
11
|
+
/**
|
|
12
|
+
* `server.address` / `server.port` derived from the model's base URL.
|
|
13
|
+
* Returns an empty record when the URL cannot be parsed.
|
|
14
|
+
*/
|
|
15
|
+
export function serverAttributes(baseUrl) {
|
|
16
|
+
try {
|
|
17
|
+
const url = new URL(baseUrl);
|
|
18
|
+
const port = url.port
|
|
19
|
+
? Number(url.port)
|
|
20
|
+
: url.protocol === "http:"
|
|
21
|
+
? 80
|
|
22
|
+
: 443;
|
|
23
|
+
return { "server.address": url.hostname, "server.port": port };
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
11
29
|
/** Attributes set on a chat span at request time, before the model has streamed. */
|
|
12
30
|
export function chatRequestAttributes(model, context, meta, options) {
|
|
13
31
|
const attributes = {
|
|
@@ -18,6 +36,7 @@ export function chatRequestAttributes(model, context, meta, options) {
|
|
|
18
36
|
[GenAi.PROVIDER_NAME]: model.provider,
|
|
19
37
|
[GenAi.REQUEST_MODEL]: model.id,
|
|
20
38
|
"gen_ai.request.stream": true,
|
|
39
|
+
...serverAttributes(model.baseUrl),
|
|
21
40
|
};
|
|
22
41
|
if (context.systemPrompt) {
|
|
23
42
|
const serialized = serializeWithCap(() => JSON.stringify(systemPromptToInstructions(context.systemPrompt)), () => undefined, GenAi.SYSTEM_INSTRUCTIONS);
|
|
@@ -30,7 +49,10 @@ export function chatRequestAttributes(model, context, meta, options) {
|
|
|
30
49
|
attributes[GenAi.TOOL_DEFINITIONS] = toolDefinitions;
|
|
31
50
|
}
|
|
32
51
|
const inputMessages = messagesToInputMessages(context.messages, options);
|
|
33
|
-
|
|
52
|
+
const serializedInput = serializeMessagesWithCap(inputMessages, GenAi.INPUT_MESSAGES);
|
|
53
|
+
if (serializedInput) {
|
|
54
|
+
attributes[GenAi.INPUT_MESSAGES] = serializedInput;
|
|
55
|
+
}
|
|
34
56
|
if (inputMessages.some((message) => message.parts.some((part) => part.type === "compaction"))) {
|
|
35
57
|
attributes["gen_ai.conversation.compacted"] = true;
|
|
36
58
|
}
|
|
@@ -55,11 +77,17 @@ export function chatRequestAttributes(model, context, meta, options) {
|
|
|
55
77
|
*/
|
|
56
78
|
export function chatResponseAttributes(message) {
|
|
57
79
|
const attributes = {
|
|
58
|
-
[GenAi.
|
|
59
|
-
|
|
60
|
-
|
|
80
|
+
[GenAi.RESPONSE_FINISH_REASONS]: [semconvFinishReason(message.stopReason)],
|
|
81
|
+
// Anthropic reports uncached, cache-read, and cache-creation input
|
|
82
|
+
// separately. Semconv defines both cache attributes as subsets of the
|
|
83
|
+
// total input token count.
|
|
84
|
+
[GenAi.USAGE_INPUT_TOKENS]: message.usage.input + message.usage.cacheRead + message.usage.cacheWrite,
|
|
61
85
|
[GenAi.USAGE_OUTPUT_TOKENS]: message.usage.output,
|
|
62
86
|
};
|
|
87
|
+
const serializedOutput = serializeMessagesWithCap(assistantToOutputMessages(message), GenAi.OUTPUT_MESSAGES);
|
|
88
|
+
if (serializedOutput) {
|
|
89
|
+
attributes[GenAi.OUTPUT_MESSAGES] = serializedOutput;
|
|
90
|
+
}
|
|
63
91
|
if (message.usage.cacheRead > 0) {
|
|
64
92
|
attributes[GenAi.USAGE_CACHE_READ_INPUT_TOKENS] = message.usage.cacheRead;
|
|
65
93
|
}
|
|
@@ -70,10 +98,9 @@ export function chatResponseAttributes(message) {
|
|
|
70
98
|
if (message.usage.cost?.total) {
|
|
71
99
|
attributes[GenAi.COST_USD] = message.usage.cost.total;
|
|
72
100
|
}
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
attributes["gen_ai.usage.reasoning.output_tokens"] = reasoningOutputTokens;
|
|
101
|
+
const reasoningTokens = message.usage.reasoning;
|
|
102
|
+
if (typeof reasoningTokens === "number" && reasoningTokens > 0) {
|
|
103
|
+
attributes[GenAi.USAGE_REASONING_TOKENS] = reasoningTokens;
|
|
77
104
|
}
|
|
78
105
|
if (message.responseId) {
|
|
79
106
|
attributes[GenAi.RESPONSE_ID] = message.responseId;
|
|
@@ -84,7 +111,7 @@ export function chatResponseAttributes(message) {
|
|
|
84
111
|
return attributes;
|
|
85
112
|
}
|
|
86
113
|
/** Common attributes for an execute_tool span (set at start). */
|
|
87
|
-
export function executeToolAttributes(toolName, toolCallId, args, meta) {
|
|
114
|
+
export function executeToolAttributes(toolName, toolCallId, args, meta, description) {
|
|
88
115
|
const attributes = {
|
|
89
116
|
[GenAi.CONVERSATION_ID]: meta.conversationId,
|
|
90
117
|
[GenAi.AGENT_ID]: meta.agentId,
|
|
@@ -94,11 +121,30 @@ export function executeToolAttributes(toolName, toolCallId, args, meta) {
|
|
|
94
121
|
[GenAi.TOOL_TYPE]: "function",
|
|
95
122
|
[GenAi.TOOL_CALL_ID]: toolCallId,
|
|
96
123
|
};
|
|
124
|
+
if (description) {
|
|
125
|
+
attributes[GenAi.TOOL_DESCRIPTION] = description;
|
|
126
|
+
}
|
|
97
127
|
if (args !== undefined) {
|
|
98
128
|
attributes[GenAi.TOOL_CALL_ARGUMENTS] = stringify(args);
|
|
99
129
|
}
|
|
100
130
|
return attributes;
|
|
101
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Attributes for an `invoke_agent` span (set at start).
|
|
134
|
+
*
|
|
135
|
+
* Per the semconv agent-span table for in-process invocation, model and
|
|
136
|
+
* provider are intentionally NOT recorded: pi agents can switch models
|
|
137
|
+
* mid-run, and the spec says `gen_ai.request.model` SHOULD NOT be
|
|
138
|
+
* populated for agents that support dynamic model selection.
|
|
139
|
+
*/
|
|
140
|
+
export function invokeAgentAttributes(meta) {
|
|
141
|
+
return {
|
|
142
|
+
[GenAi.CONVERSATION_ID]: meta.conversationId,
|
|
143
|
+
[GenAi.AGENT_ID]: meta.agentId,
|
|
144
|
+
[GenAi.AGENT_NAME]: meta.agentName,
|
|
145
|
+
[GenAi.OPERATION_NAME]: "invoke_agent",
|
|
146
|
+
};
|
|
147
|
+
}
|
|
102
148
|
/** Result attribute for an execute_tool span (set at end). */
|
|
103
149
|
export function executeToolResultAttribute(result) {
|
|
104
150
|
if (result === undefined)
|
|
@@ -112,11 +158,44 @@ function serializeToolDefinitions(tools) {
|
|
|
112
158
|
if (!tools || tools.length === 0)
|
|
113
159
|
return undefined;
|
|
114
160
|
const detailed = tools.map((tool) => ({
|
|
161
|
+
type: "function",
|
|
115
162
|
name: tool.name,
|
|
116
163
|
description: tool.description,
|
|
117
164
|
parameters: tool.parameters,
|
|
118
165
|
}));
|
|
119
|
-
return serializeWithCap(() => JSON.stringify(detailed
|
|
166
|
+
return serializeWithCap(() => JSON.stringify(detailed), () => JSON.stringify(detailed.map((def) => ({ type: def.type, name: def.name }))), GenAi.TOOL_DEFINITIONS);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Cap chars per part-content string in the truncation fallback for
|
|
170
|
+
* `gen_ai.input.messages` / `gen_ai.output.messages`. Chosen so even long
|
|
171
|
+
* transcripts stay within MAX_BYTES once every part is clamped.
|
|
172
|
+
*/
|
|
173
|
+
const MAX_PART_CONTENT_CHARS = 8_000;
|
|
174
|
+
/**
|
|
175
|
+
* Serialize an input/output message array under the size cap, per the
|
|
176
|
+
* semconv guidance that instrumentations may truncate individual message
|
|
177
|
+
* contents while preserving JSON structure: full payload first, then a
|
|
178
|
+
* fallback with each part's content clamped, then drop the attribute.
|
|
179
|
+
*/
|
|
180
|
+
function serializeMessagesWithCap(messages, attributeName) {
|
|
181
|
+
return serializeWithCap(() => JSON.stringify(messages), () => JSON.stringify(messages.map(truncateMessageParts)), attributeName);
|
|
182
|
+
}
|
|
183
|
+
function truncateMessageParts(message) {
|
|
184
|
+
return {
|
|
185
|
+
...message,
|
|
186
|
+
parts: message.parts.map((part) => {
|
|
187
|
+
const truncated = { ...part };
|
|
188
|
+
for (const key of ["content", "response"]) {
|
|
189
|
+
const value = truncated[key];
|
|
190
|
+
if (typeof value === "string" &&
|
|
191
|
+
value.length > MAX_PART_CONTENT_CHARS) {
|
|
192
|
+
truncated[key] =
|
|
193
|
+
value.slice(0, MAX_PART_CONTENT_CHARS) + "…[truncated]";
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return truncated;
|
|
197
|
+
}),
|
|
198
|
+
};
|
|
120
199
|
}
|
|
121
200
|
/**
|
|
122
201
|
* Try the detailed serializer; if it exceeds the cap, try a compact fallback;
|
package/dist/attributes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,
|
|
1
|
+
{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"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"}
|
package/dist/convert.d.ts
CHANGED
|
@@ -27,6 +27,14 @@ export declare function messagesToInputMessages(messages: readonly Message[], op
|
|
|
27
27
|
export declare function assistantToOutputMessages(message: AssistantMessage): OutputMessage[];
|
|
28
28
|
/** Wrap a system prompt in the semconv shape used for `gen_ai.system_instructions`. */
|
|
29
29
|
export declare function systemPromptToInstructions(systemPrompt: string): SystemInstruction[];
|
|
30
|
+
/**
|
|
31
|
+
* Map a pi-ai stop reason to the semconv `FinishReason` value
|
|
32
|
+
* (gen-ai-output-messages.json). Only `"toolUse"` needs translation — the
|
|
33
|
+
* schema enum calls it `"tool_call"`. The remaining pi values are either
|
|
34
|
+
* enum members already (`stop`, `length`, `error`) or intentionally kept
|
|
35
|
+
* as custom strings (`aborted`; the schema allows free-form values).
|
|
36
|
+
*/
|
|
37
|
+
export declare function semconvFinishReason(stopReason: string): string;
|
|
30
38
|
/**
|
|
31
39
|
* Hydrate an array of semconv messages back into pi-ai `Message[]`.
|
|
32
40
|
*
|
package/dist/convert.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAEhB,OAAO,EAMR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAEhB,OAAO,EAMR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAGV,YAAY,EAEZ,aAAa,EAEb,iBAAiB,EAIlB,MAAM,0BAA0B,CAAC;AAqBlC,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAMD,iFAAiF;AACjF,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,YAAY,EAAE,CAOhB;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,GACxB,aAAa,EAAE,CAGjB;AAED,uFAAuF;AACvF,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,GACnB,iBAAiB,EAAE,CAErB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE9D;AAyND;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,YAAY,EAAE,GAChC,OAAO,EAAE,CAoEX"}
|
package/dist/convert.js
CHANGED
|
@@ -44,6 +44,16 @@ export function assistantToOutputMessages(message) {
|
|
|
44
44
|
export function systemPromptToInstructions(systemPrompt) {
|
|
45
45
|
return [{ type: "text", content: systemPrompt }];
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Map a pi-ai stop reason to the semconv `FinishReason` value
|
|
49
|
+
* (gen-ai-output-messages.json). Only `"toolUse"` needs translation — the
|
|
50
|
+
* schema enum calls it `"tool_call"`. The remaining pi values are either
|
|
51
|
+
* enum members already (`stop`, `length`, `error`) or intentionally kept
|
|
52
|
+
* as custom strings (`aborted`; the schema allows free-form values).
|
|
53
|
+
*/
|
|
54
|
+
export function semconvFinishReason(stopReason) {
|
|
55
|
+
return stopReason === "toolUse" ? "tool_call" : stopReason;
|
|
56
|
+
}
|
|
47
57
|
function messageToSemconv(message, options) {
|
|
48
58
|
switch (message.role) {
|
|
49
59
|
case "user":
|
|
@@ -69,10 +79,35 @@ function userMessageToSemconv(message, options) {
|
|
|
69
79
|
parts: [{ type: "compaction", content: summary }],
|
|
70
80
|
};
|
|
71
81
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
82
|
+
if (typeof message.content === "string") {
|
|
83
|
+
return {
|
|
84
|
+
role: "user",
|
|
85
|
+
parts: [{ type: "text", content: message.content }],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// Block-array content: preserve part order, including image payloads.
|
|
89
|
+
// The bounded message serializer truncates oversized content later.
|
|
90
|
+
const parts = [];
|
|
91
|
+
for (const block of message.content) {
|
|
92
|
+
if (block.type === "text") {
|
|
93
|
+
if (block.text)
|
|
94
|
+
parts.push({ type: "text", content: block.text });
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const blob = {
|
|
98
|
+
type: "blob",
|
|
99
|
+
modality: "image",
|
|
100
|
+
content: block.data,
|
|
101
|
+
};
|
|
102
|
+
if (block.mimeType)
|
|
103
|
+
blob.mime_type = block.mimeType;
|
|
104
|
+
parts.push(blob);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (parts.length === 0) {
|
|
108
|
+
parts.push({ type: "text", content: "" });
|
|
109
|
+
}
|
|
110
|
+
return { role: "user", parts };
|
|
76
111
|
}
|
|
77
112
|
/**
|
|
78
113
|
* Identify a user message as a rendered compaction summary.
|
|
@@ -105,8 +140,9 @@ function assistantMessageToSemconv(message) {
|
|
|
105
140
|
parts.push(part);
|
|
106
141
|
}
|
|
107
142
|
const result = { parts };
|
|
108
|
-
if (message.stopReason)
|
|
109
|
-
result.finish_reason = message.stopReason;
|
|
143
|
+
if (message.stopReason) {
|
|
144
|
+
result.finish_reason = semconvFinishReason(message.stopReason);
|
|
145
|
+
}
|
|
110
146
|
if (message.api)
|
|
111
147
|
result.api = message.api;
|
|
112
148
|
if (message.provider)
|
|
@@ -163,7 +199,7 @@ function assistantBlockToPart(block) {
|
|
|
163
199
|
if (!block.thinking && !block.thinkingSignature)
|
|
164
200
|
return null;
|
|
165
201
|
const part = {
|
|
166
|
-
type: "
|
|
202
|
+
type: "reasoning",
|
|
167
203
|
content: block.thinking ?? "",
|
|
168
204
|
};
|
|
169
205
|
if (block.thinkingSignature) {
|
|
@@ -401,7 +437,7 @@ function isCompactionPart(part) {
|
|
|
401
437
|
return part.type === "compaction";
|
|
402
438
|
}
|
|
403
439
|
function isReasoningPart(part) {
|
|
404
|
-
return part.type === "
|
|
440
|
+
return part.type === "reasoning";
|
|
405
441
|
}
|
|
406
442
|
function isToolCallRequestPart(part) {
|
|
407
443
|
return part.type === "tool_call";
|
package/dist/convert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Best-effort `error.type` classification per the semconv guidance: prefer
|
|
3
|
+
* the provider's error code (HTTP status) or the canonical exception name,
|
|
4
|
+
* falling back to a documented low-cardinality label.
|
|
5
|
+
*
|
|
6
|
+
* Values this instrumentation reports:
|
|
7
|
+
* - a 4xx/5xx HTTP status extracted from the provider error message
|
|
8
|
+
* - the thrown exception's class name (when it is a subclass of Error)
|
|
9
|
+
* - `"model_error"` — the stream ended with a provider-reported error
|
|
10
|
+
* - `"exception"` — the stream function itself threw
|
|
11
|
+
* - `"tool_error"` — a tool execution returned an error result
|
|
12
|
+
*/
|
|
13
|
+
export declare function classifyErrorType(message: string | undefined, fallback: string): string;
|
|
14
|
+
/** classifyErrorType for a thrown value: status code → class name → fallback. */
|
|
15
|
+
export declare function classifyThrownErrorType(error: unknown): string;
|
|
16
|
+
//# sourceMappingURL=error-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-type.d.ts","sourceRoot":"","sources":["../src/error-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,MAAM,GACf,MAAM,CAMR;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQ9D"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Best-effort `error.type` classification per the semconv guidance: prefer
|
|
3
|
+
* the provider's error code (HTTP status) or the canonical exception name,
|
|
4
|
+
* falling back to a documented low-cardinality label.
|
|
5
|
+
*
|
|
6
|
+
* Values this instrumentation reports:
|
|
7
|
+
* - a 4xx/5xx HTTP status extracted from the provider error message
|
|
8
|
+
* - the thrown exception's class name (when it is a subclass of Error)
|
|
9
|
+
* - `"model_error"` — the stream ended with a provider-reported error
|
|
10
|
+
* - `"exception"` — the stream function itself threw
|
|
11
|
+
* - `"tool_error"` — a tool execution returned an error result
|
|
12
|
+
*/
|
|
13
|
+
export function classifyErrorType(message, fallback) {
|
|
14
|
+
if (message) {
|
|
15
|
+
const status = /\b([45]\d{2})\b/.exec(message);
|
|
16
|
+
if (status?.[1])
|
|
17
|
+
return status[1];
|
|
18
|
+
}
|
|
19
|
+
return fallback;
|
|
20
|
+
}
|
|
21
|
+
/** classifyErrorType for a thrown value: status code → class name → fallback. */
|
|
22
|
+
export function classifyThrownErrorType(error) {
|
|
23
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
24
|
+
const status = /\b([45]\d{2})\b/.exec(message);
|
|
25
|
+
if (status?.[1])
|
|
26
|
+
return status[1];
|
|
27
|
+
if (error instanceof Error && error.name && error.name !== "Error") {
|
|
28
|
+
return error.name;
|
|
29
|
+
}
|
|
30
|
+
return "exception";
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=error-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-type.js","sourceRoot":"","sources":["../src/error-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA2B,EAC3B,QAAgB;IAEhB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* (`@earendil-works/pi-ai`, `@earendil-works/pi-agent-core`).
|
|
6
6
|
*
|
|
7
7
|
* Emits OTel GenAI semantic-convention spans for chat completions
|
|
8
|
-
* (`chat ${
|
|
8
|
+
* (`chat ${model}`), tool execution (`execute_tool ${tool_name}`), and —
|
|
9
|
+
* optionally — agent runs (`invoke_agent ${agent_name}`), plus the GenAI
|
|
10
|
+
* client metrics when a meter is provided.
|
|
9
11
|
*
|
|
10
12
|
* @example
|
|
11
13
|
* ```ts
|
|
@@ -19,8 +21,9 @@
|
|
|
19
21
|
*/
|
|
20
22
|
export { instrumentStream, type InstrumentStreamOptions, } from "./instrument-stream.js";
|
|
21
23
|
export { instrumentAgent, type AgentInstrumentation, type InstrumentAgentOptions, } from "./instrument-agent.js";
|
|
22
|
-
export { chatRequestAttributes, chatResponseAttributes, executeToolAttributes, executeToolResultAttribute, type AgentMeta, } from "./attributes.js";
|
|
23
|
-
export {
|
|
24
|
+
export { chatRequestAttributes, chatResponseAttributes, executeToolAttributes, executeToolResultAttribute, invokeAgentAttributes, serverAttributes, type AgentMeta, } from "./attributes.js";
|
|
25
|
+
export { genAiMetrics, type GenAiMetrics } from "./metrics.js";
|
|
26
|
+
export { assistantToOutputMessages, inputMessagesToMessages, messagesToInputMessages, semconvFinishReason, systemPromptToInstructions, type ConvertOptions, } from "./convert.js";
|
|
24
27
|
export type { AbortTerminationReason, GenAiAttributes, InputMessage, MessagePart, MessageRole, OutputMessage, ReasoningPart, SystemInstruction, TextPart, ToolCallRequestPart, ToolCallResponsePart, ToolDefinition, } from "@introspection-sdk/types";
|
|
25
28
|
export { GenAi, GenAiSpanName, IntrospectionAttr, toAttributes, } from "@introspection-sdk/types";
|
|
26
29
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,SAAS,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAK/D,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* (`@earendil-works/pi-ai`, `@earendil-works/pi-agent-core`).
|
|
6
6
|
*
|
|
7
7
|
* Emits OTel GenAI semantic-convention spans for chat completions
|
|
8
|
-
* (`chat ${
|
|
8
|
+
* (`chat ${model}`), tool execution (`execute_tool ${tool_name}`), and —
|
|
9
|
+
* optionally — agent runs (`invoke_agent ${agent_name}`), plus the GenAI
|
|
10
|
+
* client metrics when a meter is provided.
|
|
9
11
|
*
|
|
10
12
|
* @example
|
|
11
13
|
* ```ts
|
|
@@ -21,10 +23,12 @@
|
|
|
21
23
|
export { instrumentStream, } from "./instrument-stream.js";
|
|
22
24
|
export { instrumentAgent, } from "./instrument-agent.js";
|
|
23
25
|
// Attribute builders — exposed for callers that want to compose their own spans
|
|
24
|
-
export { chatRequestAttributes, chatResponseAttributes, executeToolAttributes, executeToolResultAttribute, } from "./attributes.js";
|
|
26
|
+
export { chatRequestAttributes, chatResponseAttributes, executeToolAttributes, executeToolResultAttribute, invokeAgentAttributes, serverAttributes, } from "./attributes.js";
|
|
27
|
+
// Metric instruments — exposed for callers that record their own measurements
|
|
28
|
+
export { genAiMetrics } from "./metrics.js";
|
|
25
29
|
// Converters — exposed for telemetry replay (rebuilding pi-ai message arrays
|
|
26
30
|
// from stored span attributes) and downstream consumers that want the raw
|
|
27
31
|
// semconv shapes.
|
|
28
|
-
export { assistantToOutputMessages, inputMessagesToMessages, messagesToInputMessages, systemPromptToInstructions, } from "./convert.js";
|
|
32
|
+
export { assistantToOutputMessages, inputMessagesToMessages, messagesToInputMessages, semconvFinishReason, systemPromptToInstructions, } from "./convert.js";
|
|
29
33
|
export { GenAi, GenAiSpanName, IntrospectionAttr, toAttributes, } from "@introspection-sdk/types";
|
|
30
34
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,kBAAkB;AAClB,OAAO,EACL,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,GAGhB,MAAM,uBAAuB,CAAC;AAE/B,gFAAgF;AAChF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,gBAAgB,GAEjB,MAAM,iBAAiB,CAAC;AAEzB,8EAA8E;AAC9E,OAAO,EAAE,YAAY,EAAqB,MAAM,cAAc,CAAC;AAE/D,6EAA6E;AAC7E,0EAA0E;AAC1E,kBAAkB;AAClB,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,GAE3B,MAAM,cAAc,CAAC;AAiBtB,OAAO,EACL,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Subscribe to a pi-agent {@link Agent} to emit `execute_tool` spans for every
|
|
3
|
-
* tool call the loop runs.
|
|
3
|
+
* tool call the loop runs, and (optionally) one `invoke_agent` span per run.
|
|
4
4
|
*/
|
|
5
|
-
import { type Attributes, type Context as OtelContext, type Tracer } from "@opentelemetry/api";
|
|
5
|
+
import { type Attributes, type Context as OtelContext, type Meter, type Tracer } from "@opentelemetry/api";
|
|
6
6
|
import type { Agent, AgentEvent } from "@earendil-works/pi-agent-core";
|
|
7
7
|
import { type AgentMeta } from "./attributes.js";
|
|
8
8
|
export interface InstrumentAgentOptions {
|
|
@@ -10,9 +10,31 @@ export interface InstrumentAgentOptions {
|
|
|
10
10
|
tracer: Tracer;
|
|
11
11
|
/** Required metadata stamped onto every execute_tool span. */
|
|
12
12
|
meta: AgentMeta;
|
|
13
|
+
/**
|
|
14
|
+
* Optional meter. When set, the wrapper also records
|
|
15
|
+
* `gen_ai.execute_tool.duration` per tool call and (when `runSpans` is
|
|
16
|
+
* enabled) `gen_ai.invoke_agent.duration` per run.
|
|
17
|
+
*/
|
|
18
|
+
meter?: Meter;
|
|
19
|
+
/**
|
|
20
|
+
* Emit one `invoke_agent {agent.name}` span per agent run
|
|
21
|
+
* (`agent_start` → `agent_end`), carrying conversation/agent identity
|
|
22
|
+
* and the final finish reason. Usage attributes stay on the chat spans
|
|
23
|
+
* only, so aggregations that sum a whole trace don't double-count.
|
|
24
|
+
*
|
|
25
|
+
* Off by default: hosts that already create their own turn/run spans
|
|
26
|
+
* (and parent chat spans onto them via `getParentContext`) would get
|
|
27
|
+
* duplicate run spans otherwise. When enabled, wire the chat spans under
|
|
28
|
+
* the run span with
|
|
29
|
+
* `instrumentStream(fn, { getParentContext: () => handle.getRunContext() })`;
|
|
30
|
+
* tool spans parent onto the run span automatically unless
|
|
31
|
+
* `getParentContext` is provided.
|
|
32
|
+
*/
|
|
33
|
+
runSpans?: boolean;
|
|
13
34
|
/**
|
|
14
35
|
* Returns the parent OTel context for the next tool span. If undefined or
|
|
15
|
-
* returns null,
|
|
36
|
+
* returns null, the active run span (when `runSpans` is enabled) or
|
|
37
|
+
* `context.active()` is used at the time the start event fires.
|
|
16
38
|
*/
|
|
17
39
|
getParentContext?: () => OtelContext | null | undefined;
|
|
18
40
|
/**
|
|
@@ -26,13 +48,20 @@ export interface InstrumentAgentOptions {
|
|
|
26
48
|
spanName?: (toolName: string) => string;
|
|
27
49
|
}
|
|
28
50
|
export interface AgentInstrumentation {
|
|
29
|
-
/** Stop subscribing and finalize any
|
|
51
|
+
/** Stop subscribing and finalize any spans still open. */
|
|
30
52
|
stop: () => void;
|
|
53
|
+
/**
|
|
54
|
+
* OTel context of the active `invoke_agent` span, when `runSpans` is
|
|
55
|
+
* enabled and a run is in flight. Pass to `instrumentStream`'s
|
|
56
|
+
* `getParentContext` so chat spans nest under the run span.
|
|
57
|
+
*/
|
|
58
|
+
getRunContext: () => OtelContext | undefined;
|
|
31
59
|
}
|
|
32
60
|
/**
|
|
33
61
|
* Subscribe to {@link Agent.subscribe} and emit one `execute_tool ${name}`
|
|
34
|
-
* span per tool call
|
|
35
|
-
* finalizes any still-open
|
|
62
|
+
* span per tool call (plus one `invoke_agent` span per run when enabled).
|
|
63
|
+
* Returns a handle whose `stop()` unsubscribes and finalizes any still-open
|
|
64
|
+
* spans.
|
|
36
65
|
*
|
|
37
66
|
* Tool call IDs are assumed unique per agent run; concurrent tool execution
|
|
38
67
|
* (`ToolExecutionMode = "parallel"`) is supported because each id keys its
|