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
|
@@ -158,11 +158,11 @@ function getActiveNeatlogsSpan() {
|
|
|
158
158
|
function getNeatlogsParentContext(baseContext) {
|
|
159
159
|
return baseContext ?? getNeatlogsActiveContext();
|
|
160
160
|
}
|
|
161
|
-
function withNeatlogsSpan(span, fn, baseContext) {
|
|
161
|
+
function withNeatlogsSpan(span, fn, baseContext, rootSpan) {
|
|
162
162
|
const base = baseContext ?? getNeatlogsActiveContext();
|
|
163
163
|
let ctx = import_api.trace.setSpan(base, span);
|
|
164
164
|
if (base.getValue(NEATLOGS_ROOT_SPAN_KEY) === void 0) {
|
|
165
|
-
ctx = ctx.setValue(NEATLOGS_ROOT_SPAN_KEY, span);
|
|
165
|
+
ctx = ctx.setValue(NEATLOGS_ROOT_SPAN_KEY, rootSpan ?? span);
|
|
166
166
|
}
|
|
167
167
|
return privateContextStorage.run(ctx, fn);
|
|
168
168
|
}
|
|
@@ -323,7 +323,8 @@ var USER_PROMPT_TEMPLATE_KEY = (0, import_api3.createContextKey)("neatlogs.user_
|
|
|
323
323
|
var USER_PROMPT_VARIABLES_KEY = (0, import_api3.createContextKey)("neatlogs.user_prompt_variables");
|
|
324
324
|
|
|
325
325
|
// src/core/auto-root.ts
|
|
326
|
-
var
|
|
326
|
+
var boundAutoRoots = /* @__PURE__ */ new WeakMap();
|
|
327
|
+
var ROOT_KINDS = /* @__PURE__ */ new Set(["workflow", "chain", "agent", "mcp_tool", "llm"]);
|
|
327
328
|
function autoRootEnabled() {
|
|
328
329
|
const val = (process.env.NEATLOGS_AUTO_ROOT ?? "").trim().toLowerCase();
|
|
329
330
|
return !["false", "0", "no", "off"].includes(val);
|
|
@@ -338,11 +339,12 @@ function resolveRootWorkflowName() {
|
|
|
338
339
|
}
|
|
339
340
|
return "workflow";
|
|
340
341
|
}
|
|
341
|
-
function
|
|
342
|
+
function stampRootIdentity(root) {
|
|
342
343
|
applySessionAttributes(root, void 0, true);
|
|
343
344
|
applyEndUserAttributes(root, void 0, void 0, true);
|
|
344
345
|
}
|
|
345
|
-
function
|
|
346
|
+
function bindSpanToAutoRoot(child, root) {
|
|
347
|
+
if (!root) return child;
|
|
346
348
|
let ended = false;
|
|
347
349
|
const proxy = new Proxy(child, {
|
|
348
350
|
get(target, prop, _receiver) {
|
|
@@ -364,6 +366,7 @@ function wrapSpanWithRoot(child, root) {
|
|
|
364
366
|
return typeof value === "function" ? value.bind(target) : value;
|
|
365
367
|
}
|
|
366
368
|
});
|
|
369
|
+
boundAutoRoots.set(proxy, root);
|
|
367
370
|
aliasMediaCaptureSpan(proxy, child);
|
|
368
371
|
return proxy;
|
|
369
372
|
}
|
|
@@ -376,27 +379,41 @@ var AutoRootTracer = class {
|
|
|
376
379
|
const kind = String(
|
|
377
380
|
options?.attributes?.["neatlogs.span.kind"] ?? ""
|
|
378
381
|
).toLowerCase();
|
|
382
|
+
const hasExplicitContext = context !== void 0;
|
|
379
383
|
const ctx = context ?? getNeatlogsParentContext();
|
|
380
384
|
const parent = getActiveNeatlogsSpan();
|
|
381
|
-
const
|
|
385
|
+
const isParentless = !hasExplicitContext && !(parent !== void 0 && parent.isRecording());
|
|
386
|
+
const needsRoot = autoRootEnabled() && !ROOT_KINDS.has(kind) && isParentless;
|
|
382
387
|
if (!needsRoot) {
|
|
383
|
-
|
|
388
|
+
const span = this._tracer.startSpan(name, options, ctx);
|
|
389
|
+
if (isParentless && ROOT_KINDS.has(kind)) stampRootIdentity(span);
|
|
390
|
+
return span;
|
|
384
391
|
}
|
|
385
392
|
const root = this._tracer.startSpan(
|
|
386
393
|
resolveRootWorkflowName(),
|
|
387
394
|
{ attributes: { "neatlogs.span.kind": "workflow", "neatlogs.auto_root": true } },
|
|
388
395
|
ctx
|
|
389
396
|
);
|
|
390
|
-
|
|
397
|
+
stampRootIdentity(root);
|
|
391
398
|
const childCtx = import_api4.trace.setSpan(ctx, root);
|
|
392
399
|
const child = this._tracer.startSpan(name, options, childCtx);
|
|
393
|
-
return
|
|
400
|
+
return bindSpanToAutoRoot(child, root);
|
|
394
401
|
}
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
402
|
+
startActiveSpan = ((name, ...args) => {
|
|
403
|
+
const callback = args.at(-1);
|
|
404
|
+
if (typeof callback !== "function") {
|
|
405
|
+
throw new TypeError("startActiveSpan requires a callback");
|
|
406
|
+
}
|
|
407
|
+
const options = args.length >= 2 ? args[0] : void 0;
|
|
408
|
+
const parentContext = args.length >= 3 ? args[1] : getNeatlogsParentContext();
|
|
409
|
+
const span = args.length >= 3 ? this.startSpan(name, options, parentContext) : this.startSpan(name, options);
|
|
410
|
+
return withNeatlogsSpan(
|
|
411
|
+
span,
|
|
412
|
+
() => callback(span),
|
|
413
|
+
parentContext,
|
|
414
|
+
boundAutoRoots.get(span)
|
|
415
|
+
);
|
|
416
|
+
});
|
|
400
417
|
};
|
|
401
418
|
function getProviderTracer(name) {
|
|
402
419
|
return new AutoRootTracer(getNeatlogsTracer(name));
|