neatlogs 1.1.19 → 1.1.21
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 +34 -2
- package/dist/ai-sdk.cjs +186 -11
- package/dist/ai-sdk.cjs.map +1 -1
- package/dist/ai-sdk.d.ts +17 -7
- package/dist/ai-sdk.mjs +189 -12
- package/dist/ai-sdk.mjs.map +1 -1
- package/dist/anthropic.cjs +31 -14
- package/dist/anthropic.cjs.map +1 -1
- package/dist/anthropic.mjs +31 -14
- package/dist/anthropic.mjs.map +1 -1
- package/dist/azure-openai.cjs +31 -14
- package/dist/azure-openai.cjs.map +1 -1
- package/dist/azure-openai.mjs +31 -14
- package/dist/azure-openai.mjs.map +1 -1
- package/dist/bedrock.cjs +31 -14
- package/dist/bedrock.cjs.map +1 -1
- package/dist/bedrock.mjs +31 -14
- package/dist/bedrock.mjs.map +1 -1
- package/dist/browser.cjs +26 -1
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.ts +1 -1
- package/dist/browser.mjs +26 -1
- package/dist/browser.mjs.map +1 -1
- package/dist/claude-agent-sdk.cjs +2 -2
- package/dist/claude-agent-sdk.cjs.map +1 -1
- package/dist/claude-agent-sdk.mjs +2 -2
- package/dist/claude-agent-sdk.mjs.map +1 -1
- package/dist/cli.cjs +452 -200
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +427 -173
- package/dist/cli.mjs.map +1 -1
- package/dist/google-genai.cjs +31 -14
- package/dist/google-genai.cjs.map +1 -1
- package/dist/google-genai.mjs +31 -14
- package/dist/google-genai.mjs.map +1 -1
- package/dist/index.cjs +652 -333
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +15 -6
- package/dist/index.mjs +505 -184
- package/dist/index.mjs.map +1 -1
- package/dist/langchain.cjs +3 -3
- package/dist/langchain.cjs.map +1 -1
- package/dist/langchain.mjs +3 -3
- package/dist/langchain.mjs.map +1 -1
- package/dist/mastra-wrap.cjs +2 -2
- package/dist/mastra-wrap.cjs.map +1 -1
- package/dist/mastra-wrap.mjs +2 -2
- package/dist/mastra-wrap.mjs.map +1 -1
- package/dist/openai-agents.cjs.map +1 -1
- package/dist/openai-agents.mjs.map +1 -1
- package/dist/openai.cjs +31 -14
- package/dist/openai.cjs.map +1 -1
- package/dist/openai.mjs +31 -14
- 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 +31 -14
- package/dist/openrouter-agent.cjs.map +1 -1
- package/dist/openrouter-agent.mjs +31 -14
- package/dist/openrouter-agent.mjs.map +1 -1
- package/dist/pi-agent.cjs.map +1 -1
- package/dist/pi-agent.mjs.map +1 -1
- package/dist/vertex-ai.cjs +31 -14
- package/dist/vertex-ai.cjs.map +1 -1
- package/dist/vertex-ai.mjs +31 -14
- package/dist/vertex-ai.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -145,11 +145,11 @@ function getActiveNeatlogsSpan() {
|
|
|
145
145
|
function getNeatlogsParentContext(baseContext) {
|
|
146
146
|
return baseContext ?? getNeatlogsActiveContext();
|
|
147
147
|
}
|
|
148
|
-
function withNeatlogsSpan(span, fn, baseContext) {
|
|
148
|
+
function withNeatlogsSpan(span, fn, baseContext, rootSpan) {
|
|
149
149
|
const base = baseContext ?? getNeatlogsActiveContext();
|
|
150
150
|
let ctx = otelTrace.setSpan(base, span);
|
|
151
151
|
if (base.getValue(NEATLOGS_ROOT_SPAN_KEY) === void 0) {
|
|
152
|
-
ctx = ctx.setValue(NEATLOGS_ROOT_SPAN_KEY, span);
|
|
152
|
+
ctx = ctx.setValue(NEATLOGS_ROOT_SPAN_KEY, rootSpan ?? span);
|
|
153
153
|
}
|
|
154
154
|
return privateContextStorage.run(ctx, fn);
|
|
155
155
|
}
|
|
@@ -313,7 +313,8 @@ var USER_PROMPT_TEMPLATE_KEY = createContextKey2("neatlogs.user_prompt_template"
|
|
|
313
313
|
var USER_PROMPT_VARIABLES_KEY = createContextKey2("neatlogs.user_prompt_variables");
|
|
314
314
|
|
|
315
315
|
// src/core/auto-root.ts
|
|
316
|
-
var
|
|
316
|
+
var boundAutoRoots = /* @__PURE__ */ new WeakMap();
|
|
317
|
+
var ROOT_KINDS = /* @__PURE__ */ new Set(["workflow", "chain", "agent", "mcp_tool", "llm"]);
|
|
317
318
|
function autoRootEnabled() {
|
|
318
319
|
const val = (process.env.NEATLOGS_AUTO_ROOT ?? "").trim().toLowerCase();
|
|
319
320
|
return !["false", "0", "no", "off"].includes(val);
|
|
@@ -328,11 +329,12 @@ function resolveRootWorkflowName() {
|
|
|
328
329
|
}
|
|
329
330
|
return "workflow";
|
|
330
331
|
}
|
|
331
|
-
function
|
|
332
|
+
function stampRootIdentity(root) {
|
|
332
333
|
applySessionAttributes(root, void 0, true);
|
|
333
334
|
applyEndUserAttributes(root, void 0, void 0, true);
|
|
334
335
|
}
|
|
335
|
-
function
|
|
336
|
+
function bindSpanToAutoRoot(child, root) {
|
|
337
|
+
if (!root) return child;
|
|
336
338
|
let ended = false;
|
|
337
339
|
const proxy = new Proxy(child, {
|
|
338
340
|
get(target, prop, _receiver) {
|
|
@@ -354,6 +356,7 @@ function wrapSpanWithRoot(child, root) {
|
|
|
354
356
|
return typeof value === "function" ? value.bind(target) : value;
|
|
355
357
|
}
|
|
356
358
|
});
|
|
359
|
+
boundAutoRoots.set(proxy, root);
|
|
357
360
|
aliasMediaCaptureSpan(proxy, child);
|
|
358
361
|
return proxy;
|
|
359
362
|
}
|
|
@@ -366,27 +369,41 @@ var AutoRootTracer = class {
|
|
|
366
369
|
const kind = String(
|
|
367
370
|
options?.attributes?.["neatlogs.span.kind"] ?? ""
|
|
368
371
|
).toLowerCase();
|
|
372
|
+
const hasExplicitContext = context !== void 0;
|
|
369
373
|
const ctx = context ?? getNeatlogsParentContext();
|
|
370
374
|
const parent = getActiveNeatlogsSpan();
|
|
371
|
-
const
|
|
375
|
+
const isParentless = !hasExplicitContext && !(parent !== void 0 && parent.isRecording());
|
|
376
|
+
const needsRoot = autoRootEnabled() && !ROOT_KINDS.has(kind) && isParentless;
|
|
372
377
|
if (!needsRoot) {
|
|
373
|
-
|
|
378
|
+
const span = this._tracer.startSpan(name, options, ctx);
|
|
379
|
+
if (isParentless && ROOT_KINDS.has(kind)) stampRootIdentity(span);
|
|
380
|
+
return span;
|
|
374
381
|
}
|
|
375
382
|
const root = this._tracer.startSpan(
|
|
376
383
|
resolveRootWorkflowName(),
|
|
377
384
|
{ attributes: { "neatlogs.span.kind": "workflow", "neatlogs.auto_root": true } },
|
|
378
385
|
ctx
|
|
379
386
|
);
|
|
380
|
-
|
|
387
|
+
stampRootIdentity(root);
|
|
381
388
|
const childCtx = otelTrace3.setSpan(ctx, root);
|
|
382
389
|
const child = this._tracer.startSpan(name, options, childCtx);
|
|
383
|
-
return
|
|
390
|
+
return bindSpanToAutoRoot(child, root);
|
|
384
391
|
}
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
392
|
+
startActiveSpan = ((name, ...args) => {
|
|
393
|
+
const callback = args.at(-1);
|
|
394
|
+
if (typeof callback !== "function") {
|
|
395
|
+
throw new TypeError("startActiveSpan requires a callback");
|
|
396
|
+
}
|
|
397
|
+
const options = args.length >= 2 ? args[0] : void 0;
|
|
398
|
+
const parentContext = args.length >= 3 ? args[1] : getNeatlogsParentContext();
|
|
399
|
+
const span = args.length >= 3 ? this.startSpan(name, options, parentContext) : this.startSpan(name, options);
|
|
400
|
+
return withNeatlogsSpan(
|
|
401
|
+
span,
|
|
402
|
+
() => callback(span),
|
|
403
|
+
parentContext,
|
|
404
|
+
boundAutoRoots.get(span)
|
|
405
|
+
);
|
|
406
|
+
});
|
|
390
407
|
};
|
|
391
408
|
function getProviderTracer(name) {
|
|
392
409
|
return new AutoRootTracer(getNeatlogsTracer(name));
|