@introspection-sdk/introspection-node 0.20.0 → 0.21.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 +28 -8
- package/dist/auth.d.ts +1 -1
- package/dist/client.d.ts +4 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +16 -7
- package/dist/client.js.map +1 -1
- package/dist/dev-target.js +1 -1
- package/dist/index.d.ts +3 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -6
- package/dist/index.js.map +1 -1
- package/dist/otel/index.d.ts +1 -14
- package/dist/otel/index.d.ts.map +1 -1
- package/dist/otel/index.js +10 -18
- package/dist/otel/index.js.map +1 -1
- package/dist/otel/init.d.ts +19 -21
- package/dist/otel/init.d.ts.map +1 -1
- package/dist/otel/init.js +62 -48
- package/dist/otel/init.js.map +1 -1
- package/dist/otel/integrations/base.d.ts +17 -37
- package/dist/otel/integrations/base.d.ts.map +1 -1
- package/dist/otel/integrations/base.js +6 -13
- package/dist/otel/integrations/base.js.map +1 -1
- package/dist/otel/integrations/index.d.ts +3 -4
- package/dist/otel/integrations/index.d.ts.map +1 -1
- package/dist/otel/integrations/index.js +6 -25
- package/dist/otel/integrations/index.js.map +1 -1
- package/dist/otel/integrations/pi.d.ts.map +1 -1
- package/dist/otel/integrations/pi.js +9 -1
- package/dist/otel/integrations/pi.js.map +1 -1
- package/dist/otel/logs.d.ts +41 -8
- package/dist/otel/logs.d.ts.map +1 -1
- package/dist/otel/logs.js +95 -66
- package/dist/otel/logs.js.map +1 -1
- package/dist/otel/pi.d.ts +18 -5
- package/dist/otel/pi.d.ts.map +1 -1
- package/dist/otel/pi.js +38 -9
- package/dist/otel/pi.js.map +1 -1
- package/dist/otel/register.d.ts +2 -2
- package/dist/otel/register.d.ts.map +1 -1
- package/dist/otel/register.js +7 -9
- package/dist/otel/register.js.map +1 -1
- package/dist/otel/setup.d.ts +2 -2
- package/dist/otel/setup.d.ts.map +1 -1
- package/dist/otel/setup.js +16 -6
- package/dist/otel/setup.js.map +1 -1
- package/dist/otel/span-processor.d.ts +18 -5
- package/dist/otel/span-processor.d.ts.map +1 -1
- package/dist/otel/span-processor.js +50 -65
- package/dist/otel/span-processor.js.map +1 -1
- package/dist/resources/experiments.d.ts +10 -5
- package/dist/resources/experiments.d.ts.map +1 -1
- package/dist/resources/experiments.js +9 -25
- package/dist/resources/experiments.js.map +1 -1
- package/dist/resources/recipes.d.ts +6 -6
- package/dist/resources/recipes.d.ts.map +1 -1
- package/dist/resources/recipes.js +5 -23
- package/dist/resources/recipes.js.map +1 -1
- package/dist/resources/runtimes.d.ts +2 -2
- package/dist/resources/runtimes.d.ts.map +1 -1
- package/dist/resources/runtimes.js +2 -2
- package/dist/resources/runtimes.js.map +1 -1
- package/dist/runner.d.ts +8 -4
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +26 -18
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +45 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +61 -2
- package/dist/utils.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +18 -60
- package/.turbo/turbo-build.log +0 -4
- package/dist/converters/claude.d.ts +0 -150
- package/dist/converters/claude.d.ts.map +0 -1
- package/dist/converters/claude.js +0 -211
- package/dist/converters/claude.js.map +0 -1
- package/dist/converters/gemini.d.ts +0 -90
- package/dist/converters/gemini.d.ts.map +0 -1
- package/dist/converters/gemini.js +0 -171
- package/dist/converters/gemini.js.map +0 -1
- package/dist/converters/index.d.ts +0 -9
- package/dist/converters/index.d.ts.map +0 -1
- package/dist/converters/index.js +0 -9
- package/dist/converters/index.js.map +0 -1
- package/dist/converters/openai.d.ts +0 -51
- package/dist/converters/openai.d.ts.map +0 -1
- package/dist/converters/openai.js +0 -269
- package/dist/converters/openai.js.map +0 -1
- package/dist/converters/openinference.d.ts +0 -107
- package/dist/converters/openinference.d.ts.map +0 -1
- package/dist/converters/openinference.js +0 -553
- package/dist/converters/openinference.js.map +0 -1
- package/dist/converters/vercel.d.ts +0 -21
- package/dist/converters/vercel.d.ts.map +0 -1
- package/dist/converters/vercel.js +0 -236
- package/dist/converters/vercel.js.map +0 -1
- package/dist/otel/anthropic.d.ts +0 -63
- package/dist/otel/anthropic.d.ts.map +0 -1
- package/dist/otel/anthropic.js +0 -475
- package/dist/otel/anthropic.js.map +0 -1
- package/dist/otel/claude-hooks.d.ts +0 -346
- package/dist/otel/claude-hooks.d.ts.map +0 -1
- package/dist/otel/claude-hooks.js +0 -647
- package/dist/otel/claude-hooks.js.map +0 -1
- package/dist/otel/claude-wrapper.d.ts +0 -93
- package/dist/otel/claude-wrapper.d.ts.map +0 -1
- package/dist/otel/claude-wrapper.js +0 -155
- package/dist/otel/claude-wrapper.js.map +0 -1
- package/dist/otel/gemini.d.ts +0 -56
- package/dist/otel/gemini.d.ts.map +0 -1
- package/dist/otel/gemini.js +0 -350
- package/dist/otel/gemini.js.map +0 -1
- package/dist/otel/integrations/anthropic.d.ts +0 -10
- package/dist/otel/integrations/anthropic.d.ts.map +0 -1
- package/dist/otel/integrations/anthropic.js +0 -26
- package/dist/otel/integrations/anthropic.js.map +0 -1
- package/dist/otel/integrations/claude-agent.d.ts +0 -12
- package/dist/otel/integrations/claude-agent.d.ts.map +0 -1
- package/dist/otel/integrations/claude-agent.js +0 -28
- package/dist/otel/integrations/claude-agent.js.map +0 -1
- package/dist/otel/integrations/gemini.d.ts +0 -11
- package/dist/otel/integrations/gemini.d.ts.map +0 -1
- package/dist/otel/integrations/gemini.js +0 -23
- package/dist/otel/integrations/gemini.js.map +0 -1
- package/dist/otel/integrations/langchain.d.ts +0 -15
- package/dist/otel/integrations/langchain.d.ts.map +0 -1
- package/dist/otel/integrations/langchain.js +0 -43
- package/dist/otel/integrations/langchain.js.map +0 -1
- package/dist/otel/integrations/mastra.d.ts +0 -14
- package/dist/otel/integrations/mastra.d.ts.map +0 -1
- package/dist/otel/integrations/mastra.js +0 -31
- package/dist/otel/integrations/mastra.js.map +0 -1
- package/dist/otel/integrations/openai-agents.d.ts +0 -11
- package/dist/otel/integrations/openai-agents.d.ts.map +0 -1
- package/dist/otel/integrations/openai-agents.js +0 -30
- package/dist/otel/integrations/openai-agents.js.map +0 -1
- package/dist/otel/integrations/vercel.d.ts +0 -14
- package/dist/otel/integrations/vercel.d.ts.map +0 -1
- package/dist/otel/integrations/vercel.js +0 -20
- package/dist/otel/integrations/vercel.js.map +0 -1
- package/dist/otel/langchain-handler.d.ts +0 -112
- package/dist/otel/langchain-handler.d.ts.map +0 -1
- package/dist/otel/langchain-handler.js +0 -561
- package/dist/otel/langchain-handler.js.map +0 -1
- package/dist/otel/mastra-exporter.d.ts +0 -87
- package/dist/otel/mastra-exporter.d.ts.map +0 -1
- package/dist/otel/mastra-exporter.js +0 -530
- package/dist/otel/mastra-exporter.js.map +0 -1
- package/dist/otel/openai.d.ts +0 -20
- package/dist/otel/openai.d.ts.map +0 -1
- package/dist/otel/openai.js +0 -55
- package/dist/otel/openai.js.map +0 -1
- package/dist/otel/tracing-processor.d.ts +0 -139
- package/dist/otel/tracing-processor.d.ts.map +0 -1
- package/dist/otel/tracing-processor.js +0 -434
- package/dist/otel/tracing-processor.js.map +0 -1
- package/eslint.config.mjs +0 -4
- package/src/auth.ts +0 -236
- package/src/client.ts +0 -163
- package/src/converters/claude.ts +0 -343
- package/src/converters/gemini.ts +0 -243
- package/src/converters/index.ts +0 -50
- package/src/converters/openai.ts +0 -300
- package/src/converters/openinference.ts +0 -665
- package/src/converters/vercel.ts +0 -302
- package/src/dev-target.ts +0 -79
- package/src/http.ts +0 -43
- package/src/index.ts +0 -277
- package/src/otel/anthropic.ts +0 -619
- package/src/otel/claude-hooks.ts +0 -1116
- package/src/otel/claude-wrapper.ts +0 -239
- package/src/otel/gemini.ts +0 -483
- package/src/otel/index.ts +0 -128
- package/src/otel/init.ts +0 -411
- package/src/otel/integrations/anthropic.ts +0 -36
- package/src/otel/integrations/base.ts +0 -158
- package/src/otel/integrations/claude-agent.ts +0 -36
- package/src/otel/integrations/gemini.ts +0 -30
- package/src/otel/integrations/index.ts +0 -152
- package/src/otel/integrations/langchain.ts +0 -60
- package/src/otel/integrations/mastra.ts +0 -48
- package/src/otel/integrations/openai-agents.ts +0 -47
- package/src/otel/integrations/pi.ts +0 -28
- package/src/otel/integrations/vercel.ts +0 -26
- package/src/otel/langchain-handler.ts +0 -804
- package/src/otel/logs.ts +0 -395
- package/src/otel/mastra-exporter.ts +0 -714
- package/src/otel/openai.ts +0 -93
- package/src/otel/pi.ts +0 -94
- package/src/otel/register.ts +0 -50
- package/src/otel/setup.ts +0 -215
- package/src/otel/span-processor.ts +0 -512
- package/src/otel/tracing-processor.ts +0 -637
- package/src/pagination.ts +0 -10
- package/src/proxy-from-env.d.ts +0 -7
- package/src/resources/experiments.ts +0 -176
- package/src/resources/recipes.ts +0 -74
- package/src/resources/runtimes.ts +0 -31
- package/src/runner.ts +0 -213
- package/src/types.ts +0 -13
- package/src/utils.ts +0 -95
- package/src/version.ts +0 -2
- package/tsconfig.json +0 -8
package/dist/runner.js
CHANGED
|
@@ -32,12 +32,12 @@ export class Runner {
|
|
|
32
32
|
this.source = source;
|
|
33
33
|
this.spec = spec;
|
|
34
34
|
this.http = this.buildHttp();
|
|
35
|
-
this.tasks = new TasksApi(this.guardedHttp(
|
|
36
|
-
this.files = new FilesApi(this.guardedHttp(
|
|
37
|
-
this.conversations = new ConversationsApi(this.guardedHttp(
|
|
38
|
-
this.events = new EventsApi(this.guardedHttp(
|
|
39
|
-
this.metrics = new MetricsApi(this.guardedHttp(
|
|
40
|
-
this.shares = new SharesApi(this.guardedHttp(
|
|
35
|
+
this.tasks = new TasksApi(this.guardedHttp());
|
|
36
|
+
this.files = new FilesApi(this.guardedHttp());
|
|
37
|
+
this.conversations = new ConversationsApi(this.guardedHttp());
|
|
38
|
+
this.events = new EventsApi(this.guardedHttp());
|
|
39
|
+
this.metrics = new MetricsApi(this.guardedHttp());
|
|
40
|
+
this.shares = new SharesApi(this.guardedHttp());
|
|
41
41
|
}
|
|
42
42
|
// --- public accessors ---
|
|
43
43
|
/** DP REST base URL the runner is bound to. */
|
|
@@ -85,10 +85,14 @@ export class Runner {
|
|
|
85
85
|
}
|
|
86
86
|
const fresh = await this.requestFreshSpec();
|
|
87
87
|
this.spec = fresh;
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
//
|
|
88
|
+
// The transport has to follow the spec. This used to leave `this.http`
|
|
89
|
+
// bound to the *previous* deployment and session token, so after a
|
|
90
|
+
// refresh `runner.dpEndpoint` and `runner.session_id` reported the new
|
|
91
|
+
// session while every request still went to the old host with the old
|
|
92
|
+
// bearer -- and the usual reason to call refresh() is that the old
|
|
93
|
+
// bearer stopped working, so the calls kept failing while the runner
|
|
94
|
+
// insisted it had a fresh session.
|
|
95
|
+
this.http = this.buildHttp();
|
|
92
96
|
}
|
|
93
97
|
/**
|
|
94
98
|
* Best-effort close — flips a local `isClosed` flag so subsequent
|
|
@@ -111,20 +115,24 @@ export class Runner {
|
|
|
111
115
|
});
|
|
112
116
|
}
|
|
113
117
|
/**
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
+
* A stable handle over whatever client the runner currently holds.
|
|
119
|
+
*
|
|
120
|
+
* The namespaces (`runner.tasks`, …) are built once in the constructor and
|
|
121
|
+
* handed out by reference, so they must not capture a client: they read
|
|
122
|
+
* `this.http` per call, which is what lets {@link refresh} repoint them.
|
|
123
|
+
* Calls after `close()` fail with a clear `RunnerExpiredError` instead of
|
|
124
|
+
* hitting the network with a stale bearer. No 401 retry / refresh logic --
|
|
125
|
+
* that is the DP materializer's job in v1.
|
|
118
126
|
*/
|
|
119
|
-
guardedHttp(
|
|
120
|
-
const proxy = Object.create(http);
|
|
127
|
+
guardedHttp() {
|
|
128
|
+
const proxy = Object.create(this.http);
|
|
121
129
|
proxy.request = async (opts) => {
|
|
122
130
|
this.assertOpen();
|
|
123
|
-
return http.request(opts);
|
|
131
|
+
return this.http.request(opts);
|
|
124
132
|
};
|
|
125
133
|
proxy.stream = async (opts) => {
|
|
126
134
|
this.assertOpen();
|
|
127
|
-
return http.stream(opts);
|
|
135
|
+
return this.http.stream(opts);
|
|
128
136
|
};
|
|
129
137
|
return proxy;
|
|
130
138
|
}
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,EACT,QAAQ,GACT,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAYvC;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,MAAM;IAcE;IACA;IAdX,IAAI,CAAa;IACjB,IAAI,CAAa;IACjB,MAAM,GAAG,KAAK,CAAC;IAEvB,uBAAuB;IACd,KAAK,CAAW;IAChB,KAAK,CAAW;IAChB,aAAa,CAAmB;IAChC,MAAM,CAAY;IAClB,OAAO,CAAa;IACpB,MAAM,CAAY;IAE3B,YACmB,MAA2B,EAC3B,MAAoB,EACrC,IAAgB;QAFC,WAAM,GAAN,MAAM,CAAqB;QAC3B,WAAM,GAAN,MAAM,CAAc;QAGrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export type { AdvancedOptions, IntrospectionClientOptions, FeedbackOptions, UserTraits, } from "@introspection-sdk/types";
|
|
5
5
|
export type { GenAiContext, IdentityContext } from "@introspection-sdk/types";
|
|
6
|
-
export { generateEventId } from "@introspection-sdk/types";
|
|
6
|
+
export { generateEventId, toAttributeValue } from "@introspection-sdk/types";
|
|
7
7
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EACV,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,UAAU,GACX,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EACV,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,UAAU,GACX,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { generateEventId } from "@introspection-sdk/types";
|
|
1
|
+
export { generateEventId, toAttributeValue } from "@introspection-sdk/types";
|
|
2
2
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,4 +1,39 @@
|
|
|
1
1
|
import { DiagLogger } from "@opentelemetry/api";
|
|
2
|
+
/**
|
|
3
|
+
* `service.name` for telemetry this SDK emits when the caller names none.
|
|
4
|
+
*
|
|
5
|
+
* One constant for both streams. `init()` used to label its own provider
|
|
6
|
+
* only when a name was supplied, so spans arrived as `unknown_service:node`
|
|
7
|
+
* while the events beside them said `introspection-client` — one process,
|
|
8
|
+
* two services, nothing tying them together.
|
|
9
|
+
*/
|
|
10
|
+
export declare const DEFAULT_SERVICE_NAME = "introspection-client";
|
|
11
|
+
/**
|
|
12
|
+
* Headers for an OTLP exporter pointed at Introspection.
|
|
13
|
+
*
|
|
14
|
+
* Shared by both streams. `User-Agent` used to ride the logs exporter only,
|
|
15
|
+
* so exported spans arrived at the collector unattributable to a client or a
|
|
16
|
+
* release.
|
|
17
|
+
*
|
|
18
|
+
* `Authorization` is omitted for an empty token rather than sent as a bare
|
|
19
|
+
* `Bearer `. A tokenless client is either warned about (logs) or running a
|
|
20
|
+
* caller-supplied exporter that carries its own auth (spans), and neither
|
|
21
|
+
* wants a malformed credential on the wire.
|
|
22
|
+
*
|
|
23
|
+
* Caller headers are merged last so they can override either.
|
|
24
|
+
*/
|
|
25
|
+
export declare const USER_AGENT = "introspection-sdk/0.21.0";
|
|
26
|
+
/**
|
|
27
|
+
* The OTLP HTTP transport takes the client's user agent as a dedicated option
|
|
28
|
+
* rather than a header: it assigns `headers['User-Agent']` unconditionally
|
|
29
|
+
* just before the request, so a `User-Agent` supplied through `headers` is
|
|
30
|
+
* always discarded. Passing it here instead prepends it to the exporter's own
|
|
31
|
+
* token, and exports arrive attributable to a client and a release.
|
|
32
|
+
*/
|
|
33
|
+
export declare const otlpUserAgent: {
|
|
34
|
+
readonly userAgent: "introspection-sdk/0.21.0";
|
|
35
|
+
};
|
|
36
|
+
export declare function exporterHeaders(token: string | undefined, additionalHeaders?: Record<string, string>): Record<string, string>;
|
|
2
37
|
/**
|
|
3
38
|
* Attach a forward-proxy agent to OTLP exporter options when a proxy is
|
|
4
39
|
* configured for the exporter's endpoint.
|
|
@@ -23,6 +58,16 @@ export declare function withOtlpHttpsProxy<T extends {
|
|
|
23
58
|
declare class IntrospectionLogger implements DiagLogger {
|
|
24
59
|
private logLevel;
|
|
25
60
|
constructor();
|
|
61
|
+
/**
|
|
62
|
+
* Raise the level to DEBUG for `advanced.debug`.
|
|
63
|
+
*
|
|
64
|
+
* `AdvancedOptions.debug` is shared by the browser and Node clients, but
|
|
65
|
+
* only the browser one read it: `init({ advanced: { debug: true } })` in
|
|
66
|
+
* Node was silently inert, and the only way to get debug output was the
|
|
67
|
+
* env var. Lowering is deliberately not offered — an explicit
|
|
68
|
+
* `INTROSPECTION_LOG_LEVEL` should not be undone by a config flag.
|
|
69
|
+
*/
|
|
70
|
+
enableDebug(): void;
|
|
26
71
|
private parseLogLevel;
|
|
27
72
|
private shouldLog;
|
|
28
73
|
error(...args: unknown[]): void;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAM9D;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,6BAAiC,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;;CAAqC,CAAC;AAEhE,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAQ5E;AAED;;;GAGG;AACH,cAAM,mBAAoB,YAAW,UAAU;IAC7C,OAAO,CAAC,QAAQ,CAAe;;IAc/B;;;;;;;;OAQG;IACH,WAAW,IAAI,IAAI;IAMnB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,SAAS;IAIjB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM9B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM/B,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;CAKlC;AAED,eAAO,MAAM,MAAM,qBAA4B,CAAC"}
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,46 @@
|
|
|
1
1
|
import { DiagLogLevel } from "@opentelemetry/api";
|
|
2
2
|
import { HttpsProxyAgent } from "https-proxy-agent";
|
|
3
3
|
import { getProxyForUrl } from "proxy-from-env";
|
|
4
|
+
import { VERSION } from "./version.js";
|
|
5
|
+
/**
|
|
6
|
+
* `service.name` for telemetry this SDK emits when the caller names none.
|
|
7
|
+
*
|
|
8
|
+
* One constant for both streams. `init()` used to label its own provider
|
|
9
|
+
* only when a name was supplied, so spans arrived as `unknown_service:node`
|
|
10
|
+
* while the events beside them said `introspection-client` — one process,
|
|
11
|
+
* two services, nothing tying them together.
|
|
12
|
+
*/
|
|
13
|
+
export const DEFAULT_SERVICE_NAME = "introspection-client";
|
|
14
|
+
/**
|
|
15
|
+
* Headers for an OTLP exporter pointed at Introspection.
|
|
16
|
+
*
|
|
17
|
+
* Shared by both streams. `User-Agent` used to ride the logs exporter only,
|
|
18
|
+
* so exported spans arrived at the collector unattributable to a client or a
|
|
19
|
+
* release.
|
|
20
|
+
*
|
|
21
|
+
* `Authorization` is omitted for an empty token rather than sent as a bare
|
|
22
|
+
* `Bearer `. A tokenless client is either warned about (logs) or running a
|
|
23
|
+
* caller-supplied exporter that carries its own auth (spans), and neither
|
|
24
|
+
* wants a malformed credential on the wire.
|
|
25
|
+
*
|
|
26
|
+
* Caller headers are merged last so they can override either.
|
|
27
|
+
*/
|
|
28
|
+
export const USER_AGENT = `introspection-sdk/${VERSION}`;
|
|
29
|
+
/**
|
|
30
|
+
* The OTLP HTTP transport takes the client's user agent as a dedicated option
|
|
31
|
+
* rather than a header: it assigns `headers['User-Agent']` unconditionally
|
|
32
|
+
* just before the request, so a `User-Agent` supplied through `headers` is
|
|
33
|
+
* always discarded. Passing it here instead prepends it to the exporter's own
|
|
34
|
+
* token, and exports arrive attributable to a client and a release.
|
|
35
|
+
*/
|
|
36
|
+
export const otlpUserAgent = { userAgent: USER_AGENT };
|
|
37
|
+
export function exporterHeaders(token, additionalHeaders) {
|
|
38
|
+
return {
|
|
39
|
+
"User-Agent": USER_AGENT,
|
|
40
|
+
...(token ? { Authorization: `Bearer ${token}` } : {}),
|
|
41
|
+
...(additionalHeaders || {}),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
4
44
|
/**
|
|
5
45
|
* Attach a forward-proxy agent to OTLP exporter options when a proxy is
|
|
6
46
|
* configured for the exporter's endpoint.
|
|
@@ -31,9 +71,28 @@ export function withOtlpHttpsProxy(options) {
|
|
|
31
71
|
class IntrospectionLogger {
|
|
32
72
|
logLevel;
|
|
33
73
|
constructor() {
|
|
34
|
-
|
|
74
|
+
// WARN, because these methods write straight to `console`. At INFO —
|
|
75
|
+
// the old default — merely constructing a client or a span processor
|
|
76
|
+
// printed lines onto an application's stdout that nobody asked for.
|
|
77
|
+
// A library should be quiet unless asked.
|
|
78
|
+
// `INTROSPECTION_LOG_LEVEL=info` asks.
|
|
79
|
+
const logLevelStr = (process.env.INTROSPECTION_LOG_LEVEL || "WARN").toUpperCase();
|
|
35
80
|
this.logLevel = this.parseLogLevel(logLevelStr);
|
|
36
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Raise the level to DEBUG for `advanced.debug`.
|
|
84
|
+
*
|
|
85
|
+
* `AdvancedOptions.debug` is shared by the browser and Node clients, but
|
|
86
|
+
* only the browser one read it: `init({ advanced: { debug: true } })` in
|
|
87
|
+
* Node was silently inert, and the only way to get debug output was the
|
|
88
|
+
* env var. Lowering is deliberately not offered — an explicit
|
|
89
|
+
* `INTROSPECTION_LOG_LEVEL` should not be undone by a config flag.
|
|
90
|
+
*/
|
|
91
|
+
enableDebug() {
|
|
92
|
+
if (this.logLevel < DiagLogLevel.DEBUG) {
|
|
93
|
+
this.logLevel = DiagLogLevel.DEBUG;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
37
96
|
parseLogLevel(level) {
|
|
38
97
|
switch (level) {
|
|
39
98
|
case "ERROR":
|
|
@@ -47,7 +106,7 @@ class IntrospectionLogger {
|
|
|
47
106
|
case "VERBOSE":
|
|
48
107
|
return DiagLogLevel.VERBOSE;
|
|
49
108
|
default:
|
|
50
|
-
return DiagLogLevel.
|
|
109
|
+
return DiagLogLevel.WARN;
|
|
51
110
|
}
|
|
52
111
|
}
|
|
53
112
|
shouldLog(level) {
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAA6B,OAAU;IACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,IAAI,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAC;IAE9B,OAAO;QACL,GAAG,OAAO;QACV,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC;KACjD,CAAC;AACT,CAAC;AAED;;;GAGG;AACH,MAAM,mBAAmB;IACf,QAAQ,CAAe;IAE/B;QACE,MAAM,WAAW,GAAG,CAClB,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,MAAM,CAC9C,CAAC,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,OAAO,YAAY,CAAC,KAAK,CAAC;YAC5B,KAAK,MAAM;gBACT,OAAO,YAAY,CAAC,IAAI,CAAC;YAC3B,KAAK,MAAM;gBACT,OAAO,YAAY,CAAC,IAAI,CAAC;YAC3B,KAAK,OAAO;gBACV,OAAO,YAAY,CAAC,KAAK,CAAC;YAC5B,KAAK,SAAS;gBACZ,OAAO,YAAY,CAAC,OAAO,CAAC;YAC9B;gBACE,OAAO,YAAY,CAAC,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAmB;QACnC,OAAO,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,IAAe;QACxB,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,qBAAqB,OAAO,EAAE,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,SAAS,EAAE,UAAU,EAAW,CAAC;AAEhE,MAAM,UAAU,eAAe,CAC7B,KAAyB,EACzB,iBAA0C;IAE1C,OAAO;QACL,YAAY,EAAE,UAAU;QACxB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAA6B,OAAU;IACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,IAAI,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAC;IAE9B,OAAO;QACL,GAAG,OAAO;QACV,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC;KACjD,CAAC;AACT,CAAC;AAED;;;GAGG;AACH,MAAM,mBAAmB;IACf,QAAQ,CAAe;IAE/B;QACE,qEAAqE;QACrE,qEAAqE;QACrE,oEAAoE;QACpE,0CAA0C;QAC1C,uCAAuC;QACvC,MAAM,WAAW,GAAG,CAClB,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,MAAM,CAC9C,CAAC,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;QACrC,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,OAAO,YAAY,CAAC,KAAK,CAAC;YAC5B,KAAK,MAAM;gBACT,OAAO,YAAY,CAAC,IAAI,CAAC;YAC3B,KAAK,MAAM;gBACT,OAAO,YAAY,CAAC,IAAI,CAAC;YAC3B,KAAK,OAAO;gBACV,OAAO,YAAY,CAAC,KAAK,CAAC;YAC5B,KAAK,SAAS;gBACZ,OAAO,YAAY,CAAC,OAAO,CAAC;YAC9B;gBACE,OAAO,YAAY,CAAC,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAmB;QACnC,OAAO,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,IAAe;QACxB,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,eAAO,MAAM,OAAO,WAAW,CAAC"}
|
package/dist/version.js
CHANGED
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@introspection-sdk/introspection-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Introspection observability SDK for Node.js",
|
|
6
6
|
"engines": {
|
|
@@ -18,29 +18,20 @@
|
|
|
18
18
|
"types": "./dist/otel/index.d.ts",
|
|
19
19
|
"default": "./dist/otel/index.js"
|
|
20
20
|
},
|
|
21
|
+
"./otel/pi": {
|
|
22
|
+
"types": "./dist/otel/pi.d.ts",
|
|
23
|
+
"default": "./dist/otel/pi.js"
|
|
24
|
+
},
|
|
21
25
|
"./otel/register": {
|
|
22
26
|
"types": "./dist/otel/register.d.ts",
|
|
23
27
|
"default": "./dist/otel/register.js"
|
|
24
|
-
},
|
|
25
|
-
"./mastra": {
|
|
26
|
-
"types": "./dist/otel/mastra-exporter.d.ts",
|
|
27
|
-
"default": "./dist/otel/mastra-exporter.js"
|
|
28
|
-
},
|
|
29
|
-
"./langchain": {
|
|
30
|
-
"types": "./dist/otel/langchain-handler.d.ts",
|
|
31
|
-
"default": "./dist/otel/langchain-handler.js"
|
|
32
28
|
}
|
|
33
29
|
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist/"
|
|
32
|
+
],
|
|
34
33
|
"devDependencies": {
|
|
35
|
-
"@
|
|
36
|
-
"@anthropic-ai/sdk": "^0.115.0",
|
|
37
|
-
"@earendil-works/pi-agent-core": "^0.83.0",
|
|
38
|
-
"@earendil-works/pi-ai": "^0.83.0",
|
|
39
|
-
"@google/genai": "^2.15.0",
|
|
40
|
-
"@langchain/core": "^1.2.4",
|
|
41
|
-
"@mastra/core": "^1.55.0",
|
|
42
|
-
"@mastra/observability": "^1.16.3",
|
|
43
|
-
"@openai/agents": "^0.14.1",
|
|
34
|
+
"@earendil-works/pi-agent-core": "^0.84.1",
|
|
44
35
|
"@opentelemetry/api-logs": "^0.221.0",
|
|
45
36
|
"@opentelemetry/context-async-hooks": "^2.10.0",
|
|
46
37
|
"@opentelemetry/core": "^2.10.0",
|
|
@@ -52,22 +43,13 @@
|
|
|
52
43
|
"@opentelemetry/sdk-trace-node": "^2.10.0",
|
|
53
44
|
"@opentelemetry/semantic-conventions": "^1.43.0",
|
|
54
45
|
"@types/node": "^22.20.1",
|
|
55
|
-
"ai": "^6.0.238",
|
|
56
46
|
"eslint": "^9.39.5",
|
|
57
|
-
"openai": "^6.49.0",
|
|
58
47
|
"typescript": "5.9.3",
|
|
59
|
-
"@repo/
|
|
60
|
-
"@repo/
|
|
48
|
+
"@repo/typescript-config": "0.0.0",
|
|
49
|
+
"@repo/eslint-config": "0.0.0"
|
|
61
50
|
},
|
|
62
51
|
"peerDependencies": {
|
|
63
|
-
"@anthropic-ai/claude-agent-sdk": ">=0.2.0",
|
|
64
52
|
"@earendil-works/pi-agent-core": ">=0.75.0",
|
|
65
|
-
"@earendil-works/pi-ai": ">=0.75.0",
|
|
66
|
-
"@langchain/core": ">=0.3.0",
|
|
67
|
-
"@mastra/core": ">=1.0.0",
|
|
68
|
-
"@mastra/observability": ">=1.0.0",
|
|
69
|
-
"@openai/agents": ">=0.0.1",
|
|
70
|
-
"openai": ">=4.0.0",
|
|
71
53
|
"@opentelemetry/api-logs": ">=0.50.0",
|
|
72
54
|
"@opentelemetry/context-async-hooks": ">=1.20.0 || >=2.0.0",
|
|
73
55
|
"@opentelemetry/core": ">=1.20.0 || >=2.0.0",
|
|
@@ -77,37 +59,12 @@
|
|
|
77
59
|
"@opentelemetry/sdk-logs": ">=0.50.0",
|
|
78
60
|
"@opentelemetry/sdk-trace-base": ">=1.20.0 || >=2.0.0",
|
|
79
61
|
"@opentelemetry/sdk-trace-node": ">=1.20.0 || >=2.0.0",
|
|
80
|
-
"@opentelemetry/semantic-conventions": ">=1.20.0"
|
|
81
|
-
"ai": ">=4.0.0"
|
|
62
|
+
"@opentelemetry/semantic-conventions": ">=1.20.0"
|
|
82
63
|
},
|
|
83
64
|
"peerDependenciesMeta": {
|
|
84
|
-
"@openai/agents": {
|
|
85
|
-
"optional": true
|
|
86
|
-
},
|
|
87
|
-
"openai": {
|
|
88
|
-
"optional": true
|
|
89
|
-
},
|
|
90
|
-
"@anthropic-ai/claude-agent-sdk": {
|
|
91
|
-
"optional": true
|
|
92
|
-
},
|
|
93
|
-
"ai": {
|
|
94
|
-
"optional": true
|
|
95
|
-
},
|
|
96
|
-
"@mastra/core": {
|
|
97
|
-
"optional": true
|
|
98
|
-
},
|
|
99
|
-
"@mastra/observability": {
|
|
100
|
-
"optional": true
|
|
101
|
-
},
|
|
102
|
-
"@langchain/core": {
|
|
103
|
-
"optional": true
|
|
104
|
-
},
|
|
105
65
|
"@earendil-works/pi-agent-core": {
|
|
106
66
|
"optional": true
|
|
107
67
|
},
|
|
108
|
-
"@earendil-works/pi-ai": {
|
|
109
|
-
"optional": true
|
|
110
|
-
},
|
|
111
68
|
"@opentelemetry/api-logs": {
|
|
112
69
|
"optional": true
|
|
113
70
|
},
|
|
@@ -143,14 +100,15 @@
|
|
|
143
100
|
"@opentelemetry/api": "^1.9.1",
|
|
144
101
|
"https-proxy-agent": "^7.0.6",
|
|
145
102
|
"proxy-from-env": "^2.1.0",
|
|
146
|
-
"@introspection-sdk/http": "0.
|
|
147
|
-
"@introspection-sdk/introspection-pi": "0.
|
|
148
|
-
"@introspection-sdk/
|
|
149
|
-
"@introspection-sdk/
|
|
103
|
+
"@introspection-sdk/http": "0.21.0",
|
|
104
|
+
"@introspection-sdk/introspection-pi": "0.21.0",
|
|
105
|
+
"@introspection-sdk/types": "0.21.0",
|
|
106
|
+
"@introspection-sdk/introspection-proxy": "0.21.0"
|
|
150
107
|
},
|
|
151
108
|
"scripts": {
|
|
152
109
|
"lint": "eslint . --max-warnings 0",
|
|
153
110
|
"check-types": "tsc --noEmit",
|
|
154
|
-
"build": "tsc"
|
|
111
|
+
"build": "rm -rf dist && tsc",
|
|
112
|
+
"clean": "rm -rf dist"
|
|
155
113
|
}
|
|
156
114
|
}
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Claude Agent SDK format conversion functions for OTel Gen AI Semantic Conventions.
|
|
3
|
-
*
|
|
4
|
-
* These functions convert Claude Agent SDK message formats to the standardized
|
|
5
|
-
* OTel Gen AI Semantic Convention format for gen_ai.input.messages and gen_ai.output.messages.
|
|
6
|
-
*/
|
|
7
|
-
import type { InputMessage, OutputMessage, GenAiAttributes } from "@introspection-sdk/types";
|
|
8
|
-
/** A plain-text content block from the Claude API. */
|
|
9
|
-
export interface ClaudeTextBlock {
|
|
10
|
-
type: "text";
|
|
11
|
-
text: string;
|
|
12
|
-
}
|
|
13
|
-
/** A tool-use (function call) content block from the Claude API. */
|
|
14
|
-
export interface ClaudeToolUseBlock {
|
|
15
|
-
type: "tool_use";
|
|
16
|
-
id: string;
|
|
17
|
-
name: string;
|
|
18
|
-
input: unknown;
|
|
19
|
-
}
|
|
20
|
-
/** A tool-result content block returned to the Claude API. */
|
|
21
|
-
export interface ClaudeToolResultBlock {
|
|
22
|
-
type: "tool_result";
|
|
23
|
-
tool_use_id: string;
|
|
24
|
-
content: string | unknown[];
|
|
25
|
-
is_error?: boolean;
|
|
26
|
-
}
|
|
27
|
-
/** Union of all Claude API content block shapes. */
|
|
28
|
-
export type ClaudeContentBlock = ClaudeTextBlock | ClaudeToolUseBlock | ClaudeToolResultBlock | {
|
|
29
|
-
type: string;
|
|
30
|
-
[key: string]: unknown;
|
|
31
|
-
};
|
|
32
|
-
/** A single message in a Claude multi-turn conversation. */
|
|
33
|
-
export interface ClaudeMessage {
|
|
34
|
-
role: "user" | "assistant";
|
|
35
|
-
content: string | ClaudeContentBlock[];
|
|
36
|
-
}
|
|
37
|
-
/** Subset of the Claude Messages API response used for conversion. */
|
|
38
|
-
export interface ClaudeResponse {
|
|
39
|
-
id?: string;
|
|
40
|
-
model?: string;
|
|
41
|
-
content?: ClaudeContentBlock[];
|
|
42
|
-
stop_reason?: string;
|
|
43
|
-
usage?: {
|
|
44
|
-
input_tokens?: number;
|
|
45
|
-
output_tokens?: number;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Convert a user prompt string to OTel Gen AI input message format.
|
|
50
|
-
*
|
|
51
|
-
* @param prompt - The user's text prompt.
|
|
52
|
-
* @returns An array containing a single user-role {@link InputMessage}.
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
* ```ts
|
|
56
|
-
* const msgs = convertClaudePromptToInputMessages("Hello, Claude!");
|
|
57
|
-
* // [{ role: "user", parts: [{ type: "text", content: "Hello, Claude!" }] }]
|
|
58
|
-
* ```
|
|
59
|
-
*/
|
|
60
|
-
export declare function convertClaudePromptToInputMessages(prompt: string): InputMessage[];
|
|
61
|
-
/**
|
|
62
|
-
* Convert Claude assistant response content to OTel Gen AI output message format.
|
|
63
|
-
*
|
|
64
|
-
* @param content - A plain string or array of {@link ClaudeContentBlock} objects.
|
|
65
|
-
* @param stopReason - Optional stop/finish reason (e.g. `"end_turn"`).
|
|
66
|
-
* @returns An array containing a single assistant-role {@link OutputMessage}.
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```ts
|
|
70
|
-
* const msgs = convertClaudeResponseToOutputMessages(response.content, response.stop_reason);
|
|
71
|
-
* span.setAttribute("gen_ai.output.messages", JSON.stringify(msgs));
|
|
72
|
-
* ```
|
|
73
|
-
*/
|
|
74
|
-
export declare function convertClaudeResponseToOutputMessages(content: string | ClaudeContentBlock[], stopReason?: string): OutputMessage[];
|
|
75
|
-
/**
|
|
76
|
-
* Convert a Claude multi-turn conversation to OTel Gen AI input message format.
|
|
77
|
-
*
|
|
78
|
-
* @param messages - Array of {@link ClaudeMessage} objects (user + assistant turns).
|
|
79
|
-
* @returns An array of {@link InputMessage} objects preserving turn order.
|
|
80
|
-
*
|
|
81
|
-
* @example
|
|
82
|
-
* ```ts
|
|
83
|
-
* const msgs = convertClaudeMessagesToInputMessages(conversation);
|
|
84
|
-
* span.setAttribute("gen_ai.input.messages", JSON.stringify(msgs));
|
|
85
|
-
* ```
|
|
86
|
-
*/
|
|
87
|
-
export declare function convertClaudeMessagesToInputMessages(messages: ClaudeMessage[]): InputMessage[];
|
|
88
|
-
/**
|
|
89
|
-
* Aggregated session data from the Claude Agent SDK, used as input for
|
|
90
|
-
* the {@link convertClaudeSessionToGenAI} and
|
|
91
|
-
* {@link convertClaudeSessionToOtelAttributes} converters.
|
|
92
|
-
*/
|
|
93
|
-
export interface ClaudeSessionData {
|
|
94
|
-
/** Input prompt */
|
|
95
|
-
inputPrompt?: string;
|
|
96
|
-
/** Response content (text extracted from assistant messages) */
|
|
97
|
-
responseContent?: string;
|
|
98
|
-
/** Full response content blocks (if available) */
|
|
99
|
-
responseBlocks?: ClaudeContentBlock[];
|
|
100
|
-
/** Model name */
|
|
101
|
-
model?: string;
|
|
102
|
-
/** Session ID */
|
|
103
|
-
sessionId?: string;
|
|
104
|
-
/** Input token count */
|
|
105
|
-
inputTokens?: number;
|
|
106
|
-
/** Output token count */
|
|
107
|
-
outputTokens?: number;
|
|
108
|
-
/** Cost in USD */
|
|
109
|
-
costUsd?: number;
|
|
110
|
-
/** Stop/finish reason */
|
|
111
|
-
stopReason?: string;
|
|
112
|
-
/** Response ID */
|
|
113
|
-
responseId?: string;
|
|
114
|
-
/** Tool names from init message */
|
|
115
|
-
toolNames?: string[];
|
|
116
|
-
/** System instructions / system prompt */
|
|
117
|
-
systemInstructions?: string;
|
|
118
|
-
/** Tokens read from the LLM prompt cache */
|
|
119
|
-
cacheReadInputTokens?: number;
|
|
120
|
-
/** Tokens written to the LLM prompt cache */
|
|
121
|
-
cacheCreationInputTokens?: number;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Convert Claude session data to camelCase {@link GenAiAttributes}.
|
|
125
|
-
*
|
|
126
|
-
* @param data - Aggregated {@link ClaudeSessionData} for one session.
|
|
127
|
-
* @returns A {@link GenAiAttributes} object ready for {@link toAttributes}.
|
|
128
|
-
*
|
|
129
|
-
* @example
|
|
130
|
-
* ```ts
|
|
131
|
-
* const genAi = convertClaudeSessionToGenAI({ model: "claude-sonnet-4-20250514", inputTokens: 100 });
|
|
132
|
-
* const otel = toAttributes(genAi);
|
|
133
|
-
* ```
|
|
134
|
-
*/
|
|
135
|
-
export declare function convertClaudeSessionToGenAI(data: ClaudeSessionData): GenAiAttributes;
|
|
136
|
-
/**
|
|
137
|
-
* Convert Claude session data directly to OTel span attributes with `gen_ai.*`
|
|
138
|
-
* dot-notation keys, plus Claude-specific keys like `claude.session_id`.
|
|
139
|
-
*
|
|
140
|
-
* @param data - Aggregated {@link ClaudeSessionData} for one session.
|
|
141
|
-
* @returns A flat dictionary suitable for `span.setAttributes()`.
|
|
142
|
-
*
|
|
143
|
-
* @example
|
|
144
|
-
* ```ts
|
|
145
|
-
* const attrs = convertClaudeSessionToOtelAttributes(sessionData);
|
|
146
|
-
* for (const [k, v] of Object.entries(attrs)) span.setAttribute(k, v);
|
|
147
|
-
* ```
|
|
148
|
-
*/
|
|
149
|
-
export declare function convertClaudeSessionToOtelAttributes(data: ClaudeSessionData): Record<string, string | number | string[] | number[]>;
|
|
150
|
-
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/converters/claude.ts"],"names":[],"mappings":"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"}
|