@cloudbase/agent-server 0.0.16 → 0.0.18
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/index.js +97 -39
- 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
|
|
394
|
+
var processTraceContextFromHeaders;
|
|
395
|
+
var observabilityLoadingPromise = null;
|
|
395
396
|
async function loadObservability() {
|
|
396
|
-
if (
|
|
397
|
-
|
|
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
|
|
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;
|
|
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,37 +521,62 @@ function createServerAdapter2(createAgent, options) {
|
|
|
514
521
|
try {
|
|
515
522
|
const isReady = await ensureObservabilityReady();
|
|
516
523
|
if (isReady) {
|
|
517
|
-
|
|
518
|
-
"
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
"agui.run_id": inputRes.result.runId
|
|
526
|
-
},
|
|
527
|
-
{ asType: "span" }
|
|
528
|
-
);
|
|
529
|
-
const spanContext = serverSpan.otelSpan.spanContext();
|
|
530
|
-
serverContextData = {
|
|
531
|
-
traceId: spanContext.traceId,
|
|
532
|
-
spanId: spanContext.spanId,
|
|
533
|
-
traceFlags: spanContext.traceFlags
|
|
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
|
|
534
532
|
};
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
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);
|
|
566
|
+
if ((spanContext == null ? void 0 : spanContext.traceId) && (spanContext == null ? void 0 : spanContext.spanId)) {
|
|
567
|
+
serverContextData = {
|
|
568
|
+
traceId: spanContext.traceId,
|
|
569
|
+
spanId: spanContext.spanId,
|
|
570
|
+
traceFlags: spanContext.traceFlags
|
|
571
|
+
};
|
|
572
|
+
inputRes.result.forwardedProps = {
|
|
573
|
+
...inputRes.result.forwardedProps,
|
|
574
|
+
__agui_server_context: serverContextData
|
|
575
|
+
};
|
|
576
|
+
}
|
|
545
577
|
}
|
|
546
578
|
} catch (e) {
|
|
547
|
-
(
|
|
579
|
+
(_l = logger.debug) == null ? void 0 : _l.call(logger, "Failed to create server span:", e);
|
|
548
580
|
}
|
|
549
581
|
}
|
|
550
582
|
let cleanupCalled = false;
|
|
@@ -567,7 +599,21 @@ function createServerAdapter2(createAgent, options) {
|
|
|
567
599
|
);
|
|
568
600
|
if ("error" in eventsResult) {
|
|
569
601
|
const { error } = eventsResult;
|
|
570
|
-
(
|
|
602
|
+
(_m = logger.error) == null ? void 0 : _m.call(logger, { err: error }, "Run agent failed");
|
|
603
|
+
if (serverSpan) {
|
|
604
|
+
try {
|
|
605
|
+
serverSpan.otelSpan.setStatus({
|
|
606
|
+
code: 2,
|
|
607
|
+
// SpanStatusCode.ERROR
|
|
608
|
+
message: error instanceof Error ? error.message : String(error)
|
|
609
|
+
});
|
|
610
|
+
serverSpan.otelSpan.setAttribute("error.type", error instanceof Error ? error.name : "UnknownError");
|
|
611
|
+
serverSpan.otelSpan.setAttribute("error.message", error instanceof Error ? error.message : String(error));
|
|
612
|
+
serverSpan.end();
|
|
613
|
+
} catch (e) {
|
|
614
|
+
(_n = logger.debug) == null ? void 0 : _n.call(logger, "Failed to update server span with error status:", e);
|
|
615
|
+
}
|
|
616
|
+
}
|
|
571
617
|
const errorCode = (0, import_agent_shared3.isErrorWithCode)(error) ? error.code : ErrorCode.INTERNAL_ERROR;
|
|
572
618
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
573
619
|
return new Response(
|
|
@@ -868,12 +914,24 @@ var import_cors = __toESM(require("cors"));
|
|
|
868
914
|
var import_async_hooks = require("async_hooks");
|
|
869
915
|
var import_server8 = require("@whatwg-node/server");
|
|
870
916
|
var DefaultFetchAPI = __toESM(require("@whatwg-node/fetch"));
|
|
917
|
+
var observabilitySetupPromise = null;
|
|
918
|
+
var observabilitySetupComplete = false;
|
|
871
919
|
async function setupObservabilityIfAvailable(configs) {
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
920
|
+
if (observabilitySetupComplete) {
|
|
921
|
+
return;
|
|
922
|
+
}
|
|
923
|
+
if (observabilitySetupPromise) {
|
|
924
|
+
return observabilitySetupPromise;
|
|
876
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;
|
|
877
935
|
}
|
|
878
936
|
var preparedAgentStorage = new import_async_hooks.AsyncLocalStorage();
|
|
879
937
|
function agentCloneFn() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudbase/agent-server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
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": "^0.0.
|
|
23
|
+
"@cloudbase/agent-shared": "^0.0.18"
|
|
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": "0.0.18"
|
|
27
28
|
},
|
|
28
|
-
"
|
|
29
|
-
"@cloudbase/agent-observability":
|
|
29
|
+
"peerDependenciesMeta": {
|
|
30
|
+
"@cloudbase/agent-observability": {
|
|
31
|
+
"optional": true
|
|
32
|
+
}
|
|
30
33
|
},
|
|
31
34
|
"devDependencies": {
|
|
32
35
|
"@types/cors": "^2.8.19",
|