@cloudbase/agent-server 1.0.1-alpha.25-2 → 1.0.1-alpha.26

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.
Files changed (2) hide show
  1. package/dist/index.js +74 -27
  2. package/package.json +8 -5
package/dist/index.js CHANGED
@@ -391,21 +391,28 @@ var ErrorCode = {
391
391
  // src/agui/sendMessageAGUI/server.ts
392
392
  var startObservation;
393
393
  var setupObservability;
394
- var observabilityLoadAttempted = false;
394
+ var processTraceContextFromHeaders;
395
+ var observabilityLoadingPromise = null;
395
396
  async function loadObservability() {
396
- if (!observabilityLoadAttempted) {
397
- observabilityLoadAttempted = true;
397
+ if (startObservation) {
398
+ return true;
399
+ }
400
+ if (observabilityLoadingPromise) {
401
+ return observabilityLoadingPromise;
402
+ }
403
+ observabilityLoadingPromise = (async () => {
398
404
  try {
399
405
  const obs = await import("@cloudbase/agent-observability");
400
406
  const obsServer = await import("@cloudbase/agent-observability/server");
401
407
  startObservation = obs.startObservation;
408
+ processTraceContextFromHeaders = obs.processTraceContextFromHeaders;
402
409
  setupObservability = obsServer.setupObservability;
403
410
  return true;
404
411
  } catch (e) {
405
412
  return false;
406
413
  }
407
- }
408
- return !!startObservation;
414
+ })();
415
+ return observabilityLoadingPromise;
409
416
  }
410
417
  async function ensureObservabilityReady() {
411
418
  if (!setupObservability) return false;
@@ -427,7 +434,7 @@ function createServerAdapter2(createAgent, options) {
427
434
  const { logger: parentLogger = import_agent_shared2.noopLogger } = options ?? {};
428
435
  const adapterLogger = ((_a = parentLogger.child) == null ? void 0 : _a.call(parentLogger, { component: "sendMessageAGUI" })) ?? parentLogger;
429
436
  return (0, import_server3.createServerAdapter)(async (request) => {
430
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;
437
+ var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
431
438
  const requestId = getOrGenerateRequestId(request.headers, "agui");
432
439
  const logger = ((_a2 = adapterLogger.child) == null ? void 0 : _a2.call(adapterLogger, { requestId })) ?? adapterLogger;
433
440
  (_b = logger.info) == null ? void 0 : _b.call(logger, "Request received");
@@ -514,20 +521,48 @@ function createServerAdapter2(createAgent, options) {
514
521
  try {
515
522
  const isReady = await ensureObservabilityReady();
516
523
  if (isReady) {
517
- serverSpan = startObservation(
518
- "AG-UI.Server",
519
- {
520
- "http.method": request.method,
521
- "http.url": request.url,
522
- "http.host": request.headers.get("host") || "unknown",
523
- "http.user_agent": request.headers.get("user-agent") || "unknown",
524
- "agui.thread_id": inputRes.result.threadId,
525
- "agui.run_id": inputRes.result.runId,
526
- "agui.request_id": requestId
527
- },
528
- { asType: "span" }
529
- );
530
- const spanContext = (_j = (_i = serverSpan == null ? void 0 : serverSpan.otelSpan) == null ? void 0 : _i.spanContext) == null ? void 0 : _j.call(_i);
524
+ const spanAttributes = {
525
+ "http.method": request.method,
526
+ "http.url": request.url,
527
+ "http.host": request.headers.get("host") || "unknown",
528
+ "http.user_agent": request.headers.get("user-agent") || "unknown",
529
+ "agui.thread_id": inputRes.result.threadId,
530
+ "agui.run_id": inputRes.result.runId,
531
+ "agui.request_id": requestId
532
+ };
533
+ if (processTraceContextFromHeaders) {
534
+ try {
535
+ const traceContext = processTraceContextFromHeaders(
536
+ request.headers,
537
+ logger
538
+ );
539
+ if (traceContext.isInherited) {
540
+ Object.assign(spanAttributes, traceContext.spanAttributes);
541
+ }
542
+ serverSpan = startObservation(
543
+ "AG-UI.Server",
544
+ spanAttributes,
545
+ {
546
+ asType: "chain",
547
+ links: traceContext.links.length > 0 ? traceContext.links : void 0
548
+ }
549
+ );
550
+ } catch (e) {
551
+ (_i = logger.debug) == null ? void 0 : _i.call(logger, "Failed to process external trace context:", e);
552
+ serverSpan = startObservation(
553
+ "AG-UI.Server",
554
+ spanAttributes,
555
+ { asType: "chain" }
556
+ );
557
+ }
558
+ } else {
559
+ serverSpan = startObservation(
560
+ "AG-UI.Server",
561
+ spanAttributes,
562
+ { asType: "chain" }
563
+ );
564
+ }
565
+ const spanContext = (_k = (_j = serverSpan == null ? void 0 : serverSpan.otelSpan) == null ? void 0 : _j.spanContext) == null ? void 0 : _k.call(_j);
531
566
  if ((spanContext == null ? void 0 : spanContext.traceId) && (spanContext == null ? void 0 : spanContext.spanId)) {
532
567
  serverContextData = {
533
568
  traceId: spanContext.traceId,
@@ -541,7 +576,7 @@ function createServerAdapter2(createAgent, options) {
541
576
  }
542
577
  }
543
578
  } catch (e) {
544
- (_k = logger.debug) == null ? void 0 : _k.call(logger, "Failed to create server span:", e);
579
+ (_l = logger.debug) == null ? void 0 : _l.call(logger, "Failed to create server span:", e);
545
580
  }
546
581
  }
547
582
  let cleanupCalled = false;
@@ -564,7 +599,7 @@ function createServerAdapter2(createAgent, options) {
564
599
  );
565
600
  if ("error" in eventsResult) {
566
601
  const { error } = eventsResult;
567
- (_l = logger.error) == null ? void 0 : _l.call(logger, { err: error }, "Run agent failed");
602
+ (_m = logger.error) == null ? void 0 : _m.call(logger, { err: error }, "Run agent failed");
568
603
  if (serverSpan) {
569
604
  try {
570
605
  serverSpan.otelSpan.setStatus({
@@ -576,7 +611,7 @@ function createServerAdapter2(createAgent, options) {
576
611
  serverSpan.otelSpan.setAttribute("error.message", error instanceof Error ? error.message : String(error));
577
612
  serverSpan.end();
578
613
  } catch (e) {
579
- (_m = logger.debug) == null ? void 0 : _m.call(logger, "Failed to update server span with error status:", e);
614
+ (_n = logger.debug) == null ? void 0 : _n.call(logger, "Failed to update server span with error status:", e);
580
615
  }
581
616
  }
582
617
  const errorCode = (0, import_agent_shared3.isErrorWithCode)(error) ? error.code : ErrorCode.INTERNAL_ERROR;
@@ -879,12 +914,24 @@ var import_cors = __toESM(require("cors"));
879
914
  var import_async_hooks = require("async_hooks");
880
915
  var import_server8 = require("@whatwg-node/server");
881
916
  var DefaultFetchAPI = __toESM(require("@whatwg-node/fetch"));
917
+ var observabilitySetupPromise = null;
918
+ var observabilitySetupComplete = false;
882
919
  async function setupObservabilityIfAvailable(configs) {
883
- try {
884
- const { setupObservability: setupObservability2 } = await import("@cloudbase/agent-observability/server");
885
- await setupObservability2(configs);
886
- } catch (error) {
920
+ if (observabilitySetupComplete) {
921
+ return;
887
922
  }
923
+ if (observabilitySetupPromise) {
924
+ return observabilitySetupPromise;
925
+ }
926
+ observabilitySetupPromise = (async () => {
927
+ try {
928
+ const { setupObservability: setupObservability2 } = await import("@cloudbase/agent-observability/server");
929
+ await setupObservability2(configs);
930
+ observabilitySetupComplete = true;
931
+ } catch (error) {
932
+ }
933
+ })();
934
+ return observabilitySetupPromise;
888
935
  }
889
936
  var preparedAgentStorage = new import_async_hooks.AsyncLocalStorage();
890
937
  function agentCloneFn() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/agent-server",
3
- "version": "1.0.1-alpha.25-2",
3
+ "version": "1.0.1-alpha.26",
4
4
  "main": "dist/index.js",
5
5
  "files": [
6
6
  "dist/",
@@ -20,13 +20,16 @@
20
20
  "express": "^5.1.0",
21
21
  "openai": "6.3.0",
22
22
  "uuid": "^10.0.0",
23
- "@cloudbase/agent-shared": "^1.0.1-alpha.25-2"
23
+ "@cloudbase/agent-shared": "^1.0.1-alpha.26"
24
24
  },
25
25
  "peerDependencies": {
26
- "zod": "^3.25.0 || ^4.0.0"
26
+ "zod": "^3.25.0 || ^4.0.0",
27
+ "@cloudbase/agent-observability": "1.0.1-alpha.26"
27
28
  },
28
- "optionalDependencies": {
29
- "@cloudbase/agent-observability": "1.0.1-alpha.25-2"
29
+ "peerDependenciesMeta": {
30
+ "@cloudbase/agent-observability": {
31
+ "optional": true
32
+ }
30
33
  },
31
34
  "devDependencies": {
32
35
  "@types/cors": "^2.8.19",