neatlogs 1.1.6 → 1.1.7
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 +16 -27
- package/dist/ai-sdk.cjs +142 -54
- package/dist/ai-sdk.cjs.map +1 -1
- package/dist/ai-sdk.mjs +145 -53
- package/dist/ai-sdk.mjs.map +1 -1
- package/dist/anthropic.cjs +65 -29
- package/dist/anthropic.cjs.map +1 -1
- package/dist/anthropic.mjs +73 -36
- package/dist/anthropic.mjs.map +1 -1
- package/dist/azure-openai.cjs +65 -29
- package/dist/azure-openai.cjs.map +1 -1
- package/dist/azure-openai.mjs +73 -36
- package/dist/azure-openai.mjs.map +1 -1
- package/dist/bedrock.cjs +65 -29
- package/dist/bedrock.cjs.map +1 -1
- package/dist/bedrock.mjs +73 -36
- package/dist/bedrock.mjs.map +1 -1
- package/dist/claude-agent-sdk.cjs +55 -15
- package/dist/claude-agent-sdk.cjs.map +1 -1
- package/dist/claude-agent-sdk.mjs +52 -8
- package/dist/claude-agent-sdk.mjs.map +1 -1
- package/dist/google-genai.cjs +69 -35
- package/dist/google-genai.cjs.map +1 -1
- package/dist/google-genai.mjs +77 -42
- package/dist/google-genai.mjs.map +1 -1
- package/dist/index.cjs +951 -682
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +44 -2
- package/dist/index.mjs +881 -609
- package/dist/index.mjs.map +1 -1
- package/dist/langchain.cjs +46 -12
- package/dist/langchain.cjs.map +1 -1
- package/dist/langchain.mjs +54 -19
- package/dist/langchain.mjs.map +1 -1
- package/dist/mastra-wrap.cjs +318 -46
- package/dist/mastra-wrap.cjs.map +1 -1
- package/dist/mastra-wrap.mjs +319 -41
- package/dist/mastra-wrap.mjs.map +1 -1
- package/dist/openai-agents.cjs +45 -9
- package/dist/openai-agents.cjs.map +1 -1
- package/dist/openai-agents.mjs +45 -5
- package/dist/openai-agents.mjs.map +1 -1
- package/dist/openai.cjs +65 -29
- package/dist/openai.cjs.map +1 -1
- package/dist/openai.mjs +73 -36
- package/dist/openai.mjs.map +1 -1
- package/dist/opencode-plugin.cjs +1 -1
- package/dist/opencode-plugin.cjs.map +1 -1
- package/dist/opencode-plugin.mjs +1 -1
- package/dist/opencode-plugin.mjs.map +1 -1
- package/dist/openrouter-agent.cjs +48 -12
- package/dist/openrouter-agent.cjs.map +1 -1
- package/dist/openrouter-agent.mjs +56 -19
- package/dist/openrouter-agent.mjs.map +1 -1
- package/dist/pi-agent.cjs +45 -9
- package/dist/pi-agent.cjs.map +1 -1
- package/dist/pi-agent.mjs +45 -6
- package/dist/pi-agent.mjs.map +1 -1
- package/dist/strands.cjs +4 -136
- package/dist/strands.cjs.map +1 -1
- package/dist/strands.d.ts +5 -24
- package/dist/strands.mjs +4 -136
- package/dist/strands.mjs.map +1 -1
- package/dist/vertex-ai.cjs +69 -35
- package/dist/vertex-ai.cjs.map +1 -1
- package/dist/vertex-ai.mjs +77 -42
- package/dist/vertex-ai.mjs.map +1 -1
- package/package.json +2 -7
package/dist/bedrock.mjs
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
// src/bedrock.ts
|
|
2
|
-
import {
|
|
2
|
+
import { SpanStatusCode as SpanStatusCode3 } from "@opentelemetry/api";
|
|
3
3
|
|
|
4
4
|
// src/core/auto-root.ts
|
|
5
5
|
import {
|
|
6
|
-
trace as otelTrace3
|
|
7
|
-
context as otelContext3
|
|
6
|
+
trace as otelTrace3
|
|
8
7
|
} from "@opentelemetry/api";
|
|
9
8
|
|
|
10
9
|
// src/core/context.ts
|
|
11
10
|
import {
|
|
12
|
-
trace as otelTrace2,
|
|
13
|
-
context as otelContext2,
|
|
14
11
|
createContextKey,
|
|
15
|
-
ROOT_CONTEXT,
|
|
12
|
+
ROOT_CONTEXT as ROOT_CONTEXT3,
|
|
16
13
|
SpanStatusCode as SpanStatusCode2
|
|
17
14
|
} from "@opentelemetry/api";
|
|
18
15
|
|
|
@@ -67,9 +64,6 @@ function getLogger() {
|
|
|
67
64
|
// src/core/mask.ts
|
|
68
65
|
var logger = getLogger();
|
|
69
66
|
|
|
70
|
-
// src/core/end-user.ts
|
|
71
|
-
import { trace as otelTrace, context as otelContext } from "@opentelemetry/api";
|
|
72
|
-
|
|
73
67
|
// src/core/identity.ts
|
|
74
68
|
import { AsyncLocalStorage as AsyncLocalStorage2 } from "async_hooks";
|
|
75
69
|
var _GLOBAL_KEY = /* @__PURE__ */ Symbol.for("neatlogs.identity.storage");
|
|
@@ -85,6 +79,51 @@ function currentEndUserMetadata() {
|
|
|
85
79
|
return _storage.getStore()?.endUserMetadata;
|
|
86
80
|
}
|
|
87
81
|
|
|
82
|
+
// src/core/provider.ts
|
|
83
|
+
import { AsyncLocalStorage as AsyncLocalStorage3 } from "async_hooks";
|
|
84
|
+
import {
|
|
85
|
+
ROOT_CONTEXT,
|
|
86
|
+
INVALID_SPAN_CONTEXT,
|
|
87
|
+
trace as otelTrace
|
|
88
|
+
} from "@opentelemetry/api";
|
|
89
|
+
var PRIVATE_SPAN_STORAGE_KEY = /* @__PURE__ */ Symbol.for(
|
|
90
|
+
"neatlogs.private_span_async_local_storage"
|
|
91
|
+
);
|
|
92
|
+
var PRIVATE_PROVIDER_STATE_KEY = /* @__PURE__ */ Symbol.for(
|
|
93
|
+
"neatlogs.private_provider_state"
|
|
94
|
+
);
|
|
95
|
+
var neatlogsGlobal = globalThis;
|
|
96
|
+
var privateContextStorage = neatlogsGlobal[PRIVATE_SPAN_STORAGE_KEY] ?? (neatlogsGlobal[PRIVATE_SPAN_STORAGE_KEY] = new AsyncLocalStorage3());
|
|
97
|
+
var providerState = neatlogsGlobal[PRIVATE_PROVIDER_STATE_KEY] ?? (neatlogsGlobal[PRIVATE_PROVIDER_STATE_KEY] = {
|
|
98
|
+
provider: null
|
|
99
|
+
});
|
|
100
|
+
var preInitTracer = {
|
|
101
|
+
startSpan() {
|
|
102
|
+
return otelTrace.wrapSpanContext(INVALID_SPAN_CONTEXT);
|
|
103
|
+
},
|
|
104
|
+
startActiveSpan(_name, arg2, arg3, arg4) {
|
|
105
|
+
const fn = typeof arg2 === "function" ? arg2 : typeof arg3 === "function" ? arg3 : arg4;
|
|
106
|
+
return fn(otelTrace.wrapSpanContext(INVALID_SPAN_CONTEXT));
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
function getNeatlogsTracer(name) {
|
|
110
|
+
return providerState.provider?.getTracer(name) ?? preInitTracer;
|
|
111
|
+
}
|
|
112
|
+
function getNeatlogsActiveContext() {
|
|
113
|
+
return privateContextStorage.getStore() ?? ROOT_CONTEXT;
|
|
114
|
+
}
|
|
115
|
+
function getActiveNeatlogsSpan() {
|
|
116
|
+
return otelTrace.getSpan(getNeatlogsActiveContext());
|
|
117
|
+
}
|
|
118
|
+
function getNeatlogsParentContext(baseContext) {
|
|
119
|
+
return baseContext ?? getNeatlogsActiveContext();
|
|
120
|
+
}
|
|
121
|
+
function withNeatlogsSpan(span, fn, baseContext) {
|
|
122
|
+
const base = baseContext ?? getNeatlogsActiveContext();
|
|
123
|
+
const ctx = otelTrace.setSpan(base, span);
|
|
124
|
+
return privateContextStorage.run(ctx, fn);
|
|
125
|
+
}
|
|
126
|
+
|
|
88
127
|
// src/core/end-user.ts
|
|
89
128
|
var logger2 = getLogger();
|
|
90
129
|
var END_USER_ID_KEY = "neatlogs.end_user.id";
|
|
@@ -133,7 +172,7 @@ function applySessionAttributes(span, sessionId, isRoot = true) {
|
|
|
133
172
|
}
|
|
134
173
|
|
|
135
174
|
// src/decorators/base.ts
|
|
136
|
-
import {
|
|
175
|
+
import { ROOT_CONTEXT as ROOT_CONTEXT2, SpanStatusCode } from "@opentelemetry/api";
|
|
137
176
|
var logger4 = getLogger();
|
|
138
177
|
|
|
139
178
|
// src/core/context.ts
|
|
@@ -198,11 +237,11 @@ var AutoRootTracer = class {
|
|
|
198
237
|
const kind = String(
|
|
199
238
|
options?.attributes?.["neatlogs.span.kind"] ?? ""
|
|
200
239
|
).toLowerCase();
|
|
201
|
-
const ctx = context ??
|
|
202
|
-
const parent =
|
|
240
|
+
const ctx = context ?? getNeatlogsParentContext();
|
|
241
|
+
const parent = getActiveNeatlogsSpan();
|
|
203
242
|
const needsRoot = autoRootEnabled() && !ROOT_KINDS.has(kind) && !(parent !== void 0 && parent.isRecording());
|
|
204
243
|
if (!needsRoot) {
|
|
205
|
-
return this._tracer.startSpan(name, options,
|
|
244
|
+
return this._tracer.startSpan(name, options, ctx);
|
|
206
245
|
}
|
|
207
246
|
const root = this._tracer.startSpan(
|
|
208
247
|
resolveRootWorkflowName(),
|
|
@@ -221,7 +260,7 @@ var AutoRootTracer = class {
|
|
|
221
260
|
));
|
|
222
261
|
};
|
|
223
262
|
function getProviderTracer(name) {
|
|
224
|
-
return new AutoRootTracer(
|
|
263
|
+
return new AutoRootTracer(getNeatlogsTracer(name));
|
|
225
264
|
}
|
|
226
265
|
|
|
227
266
|
// src/bedrock.ts
|
|
@@ -229,8 +268,8 @@ var TRACER_NAME = "neatlogs.bedrock";
|
|
|
229
268
|
var PROVIDER = "bedrock";
|
|
230
269
|
function traceTool(name, fn) {
|
|
231
270
|
return async function tracedTool(args) {
|
|
232
|
-
const tracer =
|
|
233
|
-
|
|
271
|
+
const tracer = getNeatlogsTracer(TRACER_NAME);
|
|
272
|
+
const span = tracer.startSpan(
|
|
234
273
|
`tool.${name}`,
|
|
235
274
|
{
|
|
236
275
|
attributes: {
|
|
@@ -239,21 +278,21 @@ function traceTool(name, fn) {
|
|
|
239
278
|
"input.value": safeStringify(args)
|
|
240
279
|
}
|
|
241
280
|
},
|
|
242
|
-
|
|
243
|
-
async (span) => {
|
|
244
|
-
try {
|
|
245
|
-
const result = await fn(args);
|
|
246
|
-
span.setAttribute("output.value", safeStringify(result));
|
|
247
|
-
span.setStatus({ code: SpanStatusCode3.OK });
|
|
248
|
-
return result;
|
|
249
|
-
} catch (err) {
|
|
250
|
-
recordError(span, err);
|
|
251
|
-
throw err;
|
|
252
|
-
} finally {
|
|
253
|
-
span.end();
|
|
254
|
-
}
|
|
255
|
-
}
|
|
281
|
+
getNeatlogsParentContext()
|
|
256
282
|
);
|
|
283
|
+
return withNeatlogsSpan(span, async () => {
|
|
284
|
+
try {
|
|
285
|
+
const result = await fn(args);
|
|
286
|
+
span.setAttribute("output.value", safeStringify(result));
|
|
287
|
+
span.setStatus({ code: SpanStatusCode3.OK });
|
|
288
|
+
return result;
|
|
289
|
+
} catch (err) {
|
|
290
|
+
recordError(span, err);
|
|
291
|
+
throw err;
|
|
292
|
+
} finally {
|
|
293
|
+
span.end();
|
|
294
|
+
}
|
|
295
|
+
});
|
|
257
296
|
};
|
|
258
297
|
}
|
|
259
298
|
function wrapBedrock(client) {
|
|
@@ -298,7 +337,7 @@ function startSpan(name, modelId, isStream) {
|
|
|
298
337
|
"neatlogs.llm.model_name": String(modelId ?? ""),
|
|
299
338
|
"neatlogs.llm.is_streaming": isStream
|
|
300
339
|
}
|
|
301
|
-
},
|
|
340
|
+
}, getNeatlogsParentContext());
|
|
302
341
|
}
|
|
303
342
|
function tracedConverse(originalSend, command, input, rest, isStream) {
|
|
304
343
|
const span = startSpan(
|
|
@@ -307,8 +346,7 @@ function tracedConverse(originalSend, command, input, rest, isStream) {
|
|
|
307
346
|
isStream
|
|
308
347
|
);
|
|
309
348
|
setConverseInput(span, input);
|
|
310
|
-
const
|
|
311
|
-
const promise = otelContext4.with(ctx, () => originalSend(command, ...rest));
|
|
349
|
+
const promise = withNeatlogsSpan(span, () => originalSend(command, ...rest));
|
|
312
350
|
return promise.then(
|
|
313
351
|
(response) => {
|
|
314
352
|
if (isStream) {
|
|
@@ -488,7 +526,7 @@ function tracedInvokeModel(originalSend, command, input, rest, isStream) {
|
|
|
488
526
|
"neatlogs.llm.provider": PROVIDER,
|
|
489
527
|
"neatlogs.embedding.model_name": String(input?.modelId ?? "")
|
|
490
528
|
}
|
|
491
|
-
},
|
|
529
|
+
}, getNeatlogsParentContext());
|
|
492
530
|
const text = bodyIn?.inputText ?? bodyIn?.texts ?? bodyIn?.input_text;
|
|
493
531
|
if (text) {
|
|
494
532
|
span.setAttribute("neatlogs.embedding.text", typeof text === "string" ? text : safeStringify(text));
|
|
@@ -501,8 +539,7 @@ function tracedInvokeModel(originalSend, command, input, rest, isStream) {
|
|
|
501
539
|
);
|
|
502
540
|
setInvokeInput(span, vendor, bodyIn);
|
|
503
541
|
}
|
|
504
|
-
const
|
|
505
|
-
const promise = otelContext4.with(ctx, () => originalSend(command, ...rest));
|
|
542
|
+
const promise = withNeatlogsSpan(span, () => originalSend(command, ...rest));
|
|
506
543
|
return promise.then(
|
|
507
544
|
(response) => {
|
|
508
545
|
if (isStream) {
|