@lmnr-ai/lmnr 0.7.14 → 0.7.16
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/dist/cli.cjs +2 -2
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +2 -2
- package/dist/cli.mjs.map +1 -1
- package/dist/{client-BaOYuI3V.mjs → client-DMJy_B2_.mjs} +2 -2
- package/dist/{client-BaOYuI3V.mjs.map → client-DMJy_B2_.mjs.map} +1 -1
- package/dist/{client-Vr5R1_VP.cjs → client-DvcHN3P8.cjs} +2 -2
- package/dist/{client-Vr5R1_VP.cjs.map → client-DvcHN3P8.cjs.map} +1 -1
- package/dist/index.cjs +23 -27
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +23 -27
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as CONTEXT_SPAN_PATH_KEY, c as createResource, d as TracingLevel, f as __require, i as ASSOCIATION_PROPERTIES_KEY, l as getParentSpanId, n as getLangVersion, o as LaminarContextManager, r as version, s as LaminarSpan, t as LaminarClient, u as makeSpanOtelV2Compatible } from "./client-
|
|
1
|
+
import { a as CONTEXT_SPAN_PATH_KEY, c as createResource, d as TracingLevel, f as __require, i as ASSOCIATION_PROPERTIES_KEY, l as getParentSpanId, n as getLangVersion, o as LaminarContextManager, r as version, s as LaminarSpan, t as LaminarClient, u as makeSpanOtelV2Compatible } from "./client-DMJy_B2_.mjs";
|
|
2
2
|
import { A as SPAN_SDK_VERSION, C as SESSION_ID, D as SPAN_LANGUAGE_VERSION, E as SPAN_INSTRUMENTATION_SOURCE, M as TRACE_HAS_BROWSER_SESSION, N as TRACE_TYPE, O as SPAN_OUTPUT, P as USER_ID, S as PARENT_SPAN_PATH, T as SPAN_INPUT, _ as ASSOCIATION_PROPERTIES, a as getOtelEnvVar, b as LaminarAttributes, d as otelSpanIdToUUID, f as otelTraceIdToUUID, g as validateTracingConfig, h as tryToOtelSpanContext, j as SPAN_TYPE, k as SPAN_PATH, l as metadataToAttributes, n as Semaphore, o as initializeLogger, p as parseOtelHeaders, r as deserializeLaminarSpanContext, s as isOtelAttributeValueType, t as NIL_UUID, u as newUUID, v as ASSOCIATION_PROPERTIES_OVERRIDES, w as SPAN_IDS_PATH, x as PARENT_SPAN_IDS_PATH, y as HUMAN_EVALUATOR_OPTIONS } from "./utils-ChSbRj0P.mjs";
|
|
3
3
|
import { config } from "dotenv";
|
|
4
4
|
import { DiagConsoleLogger, DiagLogLevel, ROOT_CONTEXT, context, createContextKey, diag, isSpanContextValid, trace } from "@opentelemetry/api";
|
|
@@ -198,7 +198,7 @@ function getProxyBaseUrl() {
|
|
|
198
198
|
/**
|
|
199
199
|
* Start the claude-code proxy server with reference counting
|
|
200
200
|
*/
|
|
201
|
-
async function startProxy() {
|
|
201
|
+
async function startProxy({ env }) {
|
|
202
202
|
if (ccProxyStartupPromise !== null) {
|
|
203
203
|
logger$11.debug("Waiting for ongoing proxy startup to complete");
|
|
204
204
|
await ccProxyStartupPromise;
|
|
@@ -215,16 +215,11 @@ async function startProxy() {
|
|
|
215
215
|
logger$11.warn("Unable to allocate port for cc-proxy.");
|
|
216
216
|
return null;
|
|
217
217
|
}
|
|
218
|
-
const targetUrl = ccProxyTargetUrl || process.env.ANTHROPIC_ORIGINAL_BASE_URL || process.env.ANTHROPIC_BASE_URL || DEFAULT_ANTHROPIC_BASE_URL;
|
|
219
|
-
logger$11.debug(`process.env.ANTHROPIC_ORIGINAL_BASE_URL: ${process.env.ANTHROPIC_ORIGINAL_BASE_URL}`);
|
|
220
|
-
logger$11.debug(`process.env.ANTHROPIC_BASE_URL: ${process.env.ANTHROPIC_BASE_URL}`);
|
|
221
|
-
logger$11.debug(`DEFAULT_ANTHROPIC_BASE_URL: ${DEFAULT_ANTHROPIC_BASE_URL}`);
|
|
222
|
-
logger$11.debug(`Using anthropic base url: ${targetUrl}`);
|
|
218
|
+
const targetUrl = ccProxyTargetUrl || process.env.ANTHROPIC_ORIGINAL_BASE_URL || env.ANTHROPIC_BASE_URL || process.env.ANTHROPIC_BASE_URL || DEFAULT_ANTHROPIC_BASE_URL;
|
|
223
219
|
ccProxyTargetUrl = targetUrl;
|
|
224
220
|
process.env.ANTHROPIC_ORIGINAL_BASE_URL = targetUrl;
|
|
225
221
|
try {
|
|
226
222
|
const { runServer } = __require("@lmnr-ai/claude-code-proxy");
|
|
227
|
-
logger$11.debug(`Running cc-proxy server on port ${port} with target url ${targetUrl}`);
|
|
228
223
|
runServer(targetUrl, port);
|
|
229
224
|
} catch (e) {
|
|
230
225
|
logger$11.warn(`Unable to start cc-proxy: ${e instanceof Error ? e.message : String(e)}`);
|
|
@@ -239,7 +234,6 @@ async function startProxy() {
|
|
|
239
234
|
const proxyBaseUrl = `http://127.0.0.1:${port}`;
|
|
240
235
|
ccProxyBaseUrl = proxyBaseUrl;
|
|
241
236
|
ccProxyRefCount = 1;
|
|
242
|
-
logger$11.debug(`Setting ANTHROPIC_BASE_URL to: ${proxyBaseUrl}`);
|
|
243
237
|
process.env.ANTHROPIC_BASE_URL = proxyBaseUrl;
|
|
244
238
|
registerProxyShutdown();
|
|
245
239
|
logger$11.info(`Started claude proxy server on: ${proxyBaseUrl}`);
|
|
@@ -348,15 +342,16 @@ function instrumentClaudeAgentQuery(originalQuery) {
|
|
|
348
342
|
const generator = async function* () {
|
|
349
343
|
const collected = [];
|
|
350
344
|
try {
|
|
351
|
-
await startProxy();
|
|
345
|
+
await startProxy({ env: params.options?.env ?? process.env });
|
|
352
346
|
const proxyBaseUrl = getProxyBaseUrl();
|
|
353
347
|
logger$10.debug(`getProxyBaseUrl() result: ${proxyBaseUrl}`);
|
|
354
|
-
if (proxyBaseUrl)
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
348
|
+
if (proxyBaseUrl) {
|
|
349
|
+
await Laminar.withSpan(span, () => {
|
|
350
|
+
logger$10.debug("Setting trace to proxy...");
|
|
351
|
+
setTraceToProxy();
|
|
352
|
+
});
|
|
353
|
+
if (params.options?.env) params.options.env.ANTHROPIC_BASE_URL = proxyBaseUrl;
|
|
354
|
+
} else logger$10.debug("No claude proxy server found. Skipping span context publication.");
|
|
360
355
|
const originalGenerator = originalQuery(params);
|
|
361
356
|
for await (const message of originalGenerator) {
|
|
362
357
|
collected.push(message);
|
|
@@ -3314,20 +3309,21 @@ var LaminarSpanExporter = class {
|
|
|
3314
3309
|
let forceHttp = options.forceHttp ?? false;
|
|
3315
3310
|
const key = options.apiKey ?? process?.env?.LMNR_PROJECT_API_KEY;
|
|
3316
3311
|
let headers = {};
|
|
3317
|
-
if (key)
|
|
3318
|
-
|
|
3312
|
+
if (key) {
|
|
3313
|
+
headers = forceHttp ? { "Authorization": `Bearer ${key}` } : { "authorization": `Bearer ${key}` };
|
|
3314
|
+
if (!url) url = "https://api.lmnr.ai";
|
|
3315
|
+
} else {
|
|
3319
3316
|
const otelHeaders = getOtelEnvVar("HEADERS");
|
|
3320
3317
|
if (otelHeaders) headers = parseOtelHeaders(otelHeaders);
|
|
3318
|
+
const otelEndpoint = getOtelEnvVar("ENDPOINT");
|
|
3319
|
+
if (otelEndpoint && !url) {
|
|
3320
|
+
url = otelEndpoint;
|
|
3321
|
+
const otelProtocol = getOtelEnvVar("PROTOCOL") || "grpc/protobuf";
|
|
3322
|
+
const otelExporter = process?.env?.OTEL_EXPORTER;
|
|
3323
|
+
forceHttp = otelProtocol === "http/protobuf" || otelProtocol === "http/json" || otelExporter === "otlp_http";
|
|
3324
|
+
} else if (otelEndpoint && url) logger$4.warn("OTEL_ENDPOINT is set, but Laminar base URL is also set. Ignoring OTEL_ENDPOINT.");
|
|
3321
3325
|
}
|
|
3322
|
-
|
|
3323
|
-
if (otelEndpoint && !url) {
|
|
3324
|
-
url = otelEndpoint;
|
|
3325
|
-
const otelProtocol = getOtelEnvVar("PROTOCOL") || "grpc/protobuf";
|
|
3326
|
-
const otelExporter = process?.env?.OTEL_EXPORTER;
|
|
3327
|
-
forceHttp = otelProtocol === "http/protobuf" || otelProtocol === "http/json" || otelExporter === "otlp_http";
|
|
3328
|
-
} else if (otelEndpoint && url) logger$4.warn("OTEL_ENDPOINT is set, but Laminar base URL is also set. Ignoring OTEL_ENDPOINT.");
|
|
3329
|
-
if (!url) if (key) url = "https://api.lmnr.ai";
|
|
3330
|
-
else throw new Error("Laminar base URL is not set and OTEL_ENDPOINT is not set. Please either\n- set the LMNR_BASE_URL environment variable\n- set the OTEL_ENDPOINT environment variable\n- pass the baseUrl parameter to Laminar.initialize");
|
|
3326
|
+
if (!url) throw new Error("Laminar base URL is not set and OTEL_ENDPOINT is not set. Please either\n- set the LMNR_BASE_URL environment variable\n- set the OTEL_ENDPOINT environment variable (if you are not using a Laminar API key)\n- pass the baseUrl parameter to Laminar.initialize");
|
|
3331
3327
|
if (!port) port = url.match(/:\d{1,5}$/g) ? parseInt(url.match(/:\d{1,5}$/g)[0].slice(1)) : forceHttp ? 443 : 8443;
|
|
3332
3328
|
const urlWithoutSlash = url.replace(/\/$/, "").replace(/:\d{1,5}$/g, "");
|
|
3333
3329
|
if (forceHttp) this.exporter = new OTLPTraceExporter$1({
|