@cloudbase/agent-adapter-langgraph 1.0.1-alpha.10 → 1.0.1-alpha.11

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 CHANGED
@@ -2042,7 +2042,7 @@ var langchain_exports = {};
2042
2042
  __export(langchain_exports, {
2043
2043
  CallbackHandler: () => CallbackHandler
2044
2044
  });
2045
- var import_base, import_messages, CallbackHandler;
2045
+ var import_base, import_messages, import_agent_shared, CallbackHandler;
2046
2046
  var init_langchain = __esm({
2047
2047
  "../../observability/dist/langchain.mjs"() {
2048
2048
  "use strict";
@@ -2050,6 +2050,7 @@ var init_langchain = __esm({
2050
2050
  init_chunk_NFEGQTCC();
2051
2051
  import_base = require("@langchain/core/callbacks/base");
2052
2052
  import_messages = require("@langchain/core/messages");
2053
+ import_agent_shared = require("@cloudbase/agent-shared");
2053
2054
  init_src();
2054
2055
  CallbackHandler = class extends import_base.BaseCallbackHandler {
2055
2056
  constructor(params) {
@@ -2068,17 +2069,17 @@ var init_langchain = __esm({
2068
2069
  __publicField(this, "externalParentSpanContext");
2069
2070
  // Adapter name for ROOT span prefix
2070
2071
  __publicField(this, "adapterName");
2072
+ // Logger for debug output (defaults to noopLogger for silent operation)
2073
+ __publicField(this, "logger");
2071
2074
  this.sessionId = params?.sessionId;
2072
2075
  this.userId = params?.userId;
2073
2076
  this.tags = params?.tags ?? [];
2074
2077
  this.traceMetadata = params?.traceMetadata;
2075
2078
  this.version = params?.version;
2076
2079
  this.adapterName = params?.adapterName;
2080
+ this.logger = params?.logger ?? import_agent_shared.noopLogger;
2077
2081
  this.promptToParentRunMap = /* @__PURE__ */ new Map();
2078
2082
  }
2079
- get logger() {
2080
- return console;
2081
- }
2082
2083
  /**
2083
2084
  * Set external parent SpanContext from AG-UI.Server span.
2084
2085
  * This allows the CallbackHandler to link LangChain/LangGraph spans
@@ -2092,13 +2093,13 @@ var init_langchain = __esm({
2092
2093
  }
2093
2094
  async handleLLMNewToken(token, _idx, runId, _parentRunId, _tags, _fields) {
2094
2095
  if (runId && !(runId in this.completionStartTimes)) {
2095
- this.logger.debug(`LLM first streaming token: ${runId}`);
2096
+ this.logger.debug?.(`LLM first streaming token: ${runId}`);
2096
2097
  this.completionStartTimes[runId] = /* @__PURE__ */ new Date();
2097
2098
  }
2098
2099
  }
2099
2100
  async handleChainStart(chain, inputs, runId, parentRunId, tags, metadata, runType, name) {
2100
2101
  try {
2101
- this.logger.debug(`Chain start with Id: ${runId}`);
2102
+ this.logger.debug?.(`Chain start with Id: ${runId}`);
2102
2103
  const runName = name ?? chain.id.at(-1)?.toString() ?? "Langchain Run";
2103
2104
  this.registerPromptInfo(parentRunId, metadata);
2104
2105
  let finalInput = inputs;
@@ -2135,12 +2136,12 @@ var init_langchain = __esm({
2135
2136
  });
2136
2137
  }
2137
2138
  } catch (e) {
2138
- this.logger.debug(e instanceof Error ? e.message : String(e));
2139
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2139
2140
  }
2140
2141
  }
2141
2142
  async handleAgentAction(action, runId, parentRunId) {
2142
2143
  try {
2143
- this.logger.debug(`Agent action ${action.tool} with ID: ${runId}`);
2144
+ this.logger.debug?.(`Agent action ${action.tool} with ID: ${runId}`);
2144
2145
  this.startAndRegisterObservation({
2145
2146
  runId,
2146
2147
  parentRunId,
@@ -2151,23 +2152,23 @@ var init_langchain = __esm({
2151
2152
  asType: "tool"
2152
2153
  });
2153
2154
  } catch (e) {
2154
- this.logger.debug(e instanceof Error ? e.message : String(e));
2155
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2155
2156
  }
2156
2157
  }
2157
2158
  async handleAgentEnd(action, runId, _parentRunId) {
2158
2159
  try {
2159
- this.logger.debug(`Agent finish with ID: ${runId}`);
2160
+ this.logger.debug?.(`Agent finish with ID: ${runId}`);
2160
2161
  this.handleObservationEnd({
2161
2162
  runId,
2162
2163
  attributes: { output: action }
2163
2164
  });
2164
2165
  } catch (e) {
2165
- this.logger.debug(e instanceof Error ? e.message : String(e));
2166
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2166
2167
  }
2167
2168
  }
2168
2169
  async handleChainError(err, runId, _parentRunId) {
2169
2170
  try {
2170
- this.logger.debug(`Chain error: ${err} with ID: ${runId}`);
2171
+ this.logger.debug?.(`Chain error: ${err} with ID: ${runId}`);
2171
2172
  this.handleObservationEnd({
2172
2173
  runId,
2173
2174
  attributes: {
@@ -2176,11 +2177,11 @@ var init_langchain = __esm({
2176
2177
  }
2177
2178
  });
2178
2179
  } catch (e) {
2179
- this.logger.debug(e instanceof Error ? e.message : String(e));
2180
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2180
2181
  }
2181
2182
  }
2182
2183
  async handleGenerationStart(llm, messages, runId, parentRunId, extraParams, tags, metadata, name) {
2183
- this.logger.debug(
2184
+ this.logger.debug?.(
2184
2185
  `Generation start with ID: ${runId} and parentRunId ${parentRunId}`
2185
2186
  );
2186
2187
  const runName = name ?? llm.id.at(-1)?.toString() ?? "Langchain Generation";
@@ -2226,7 +2227,7 @@ var init_langchain = __esm({
2226
2227
  }
2227
2228
  async handleChatModelStart(llm, messages, runId, parentRunId, extraParams, tags, metadata, name) {
2228
2229
  try {
2229
- this.logger.debug(`Chat model start with ID: ${runId}`);
2230
+ this.logger.debug?.(`Chat model start with ID: ${runId}`);
2230
2231
  const prompts = messages.flatMap(
2231
2232
  (message) => message.map((m) => this.extractChatMessageContent(m))
2232
2233
  );
@@ -2241,12 +2242,12 @@ var init_langchain = __esm({
2241
2242
  name
2242
2243
  );
2243
2244
  } catch (e) {
2244
- this.logger.debug(e instanceof Error ? e.message : String(e));
2245
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2245
2246
  }
2246
2247
  }
2247
2248
  async handleChainEnd(outputs, runId, _parentRunId) {
2248
2249
  try {
2249
- this.logger.debug(`Chain end with ID: ${runId}`);
2250
+ this.logger.debug?.(`Chain end with ID: ${runId}`);
2250
2251
  let finalOutput = outputs;
2251
2252
  if (typeof outputs === "object" && "output" in outputs && typeof outputs["output"] === "string") {
2252
2253
  finalOutput = outputs["output"];
@@ -2265,12 +2266,12 @@ var init_langchain = __esm({
2265
2266
  });
2266
2267
  this.deregisterPromptInfo(runId);
2267
2268
  } catch (e) {
2268
- this.logger.debug(e instanceof Error ? e.message : String(e));
2269
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2269
2270
  }
2270
2271
  }
2271
2272
  async handleLLMStart(llm, prompts, runId, parentRunId, extraParams, tags, metadata, name) {
2272
2273
  try {
2273
- this.logger.debug(`LLM start with ID: ${runId}`);
2274
+ this.logger.debug?.(`LLM start with ID: ${runId}`);
2274
2275
  this.handleGenerationStart(
2275
2276
  llm,
2276
2277
  prompts,
@@ -2282,12 +2283,12 @@ var init_langchain = __esm({
2282
2283
  name
2283
2284
  );
2284
2285
  } catch (e) {
2285
- this.logger.debug(e instanceof Error ? e.message : String(e));
2286
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2286
2287
  }
2287
2288
  }
2288
2289
  async handleToolStart(tool, input, runId, parentRunId, tags, metadata, name) {
2289
2290
  try {
2290
- this.logger.debug(`Tool start with ID: ${runId}`);
2291
+ this.logger.debug?.(`Tool start with ID: ${runId}`);
2291
2292
  this.startAndRegisterObservation({
2292
2293
  runId,
2293
2294
  parentRunId,
@@ -2300,12 +2301,12 @@ var init_langchain = __esm({
2300
2301
  asType: "tool"
2301
2302
  });
2302
2303
  } catch (e) {
2303
- this.logger.debug(e instanceof Error ? e.message : String(e));
2304
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2304
2305
  }
2305
2306
  }
2306
2307
  async handleRetrieverStart(retriever, query, runId, parentRunId, tags, metadata, name) {
2307
2308
  try {
2308
- this.logger.debug(`Retriever start with ID: ${runId}`);
2309
+ this.logger.debug?.(`Retriever start with ID: ${runId}`);
2309
2310
  this.startAndRegisterObservation({
2310
2311
  runId,
2311
2312
  parentRunId,
@@ -2318,12 +2319,12 @@ var init_langchain = __esm({
2318
2319
  asType: "span"
2319
2320
  });
2320
2321
  } catch (e) {
2321
- this.logger.debug(e instanceof Error ? e.message : String(e));
2322
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2322
2323
  }
2323
2324
  }
2324
2325
  async handleRetrieverEnd(documents, runId, _parentRunId) {
2325
2326
  try {
2326
- this.logger.debug(`Retriever end with ID: ${runId}`);
2327
+ this.logger.debug?.(`Retriever end with ID: ${runId}`);
2327
2328
  this.handleObservationEnd({
2328
2329
  runId,
2329
2330
  attributes: {
@@ -2331,12 +2332,12 @@ var init_langchain = __esm({
2331
2332
  }
2332
2333
  });
2333
2334
  } catch (e) {
2334
- this.logger.debug(e instanceof Error ? e.message : String(e));
2335
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2335
2336
  }
2336
2337
  }
2337
2338
  async handleRetrieverError(err, runId, _parentRunId) {
2338
2339
  try {
2339
- this.logger.debug(`Retriever error: ${err} with ID: ${runId}`);
2340
+ this.logger.debug?.(`Retriever error: ${err} with ID: ${runId}`);
2340
2341
  this.handleObservationEnd({
2341
2342
  runId,
2342
2343
  attributes: {
@@ -2345,23 +2346,23 @@ var init_langchain = __esm({
2345
2346
  }
2346
2347
  });
2347
2348
  } catch (e) {
2348
- this.logger.debug(e instanceof Error ? e.message : String(e));
2349
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2349
2350
  }
2350
2351
  }
2351
2352
  async handleToolEnd(output, runId, _parentRunId) {
2352
2353
  try {
2353
- this.logger.debug(`Tool end with ID: ${runId}`);
2354
+ this.logger.debug?.(`Tool end with ID: ${runId}`);
2354
2355
  this.handleObservationEnd({
2355
2356
  runId,
2356
2357
  attributes: { output }
2357
2358
  });
2358
2359
  } catch (e) {
2359
- this.logger.debug(e instanceof Error ? e.message : String(e));
2360
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2360
2361
  }
2361
2362
  }
2362
2363
  async handleToolError(err, runId, _parentRunId) {
2363
2364
  try {
2364
- this.logger.debug(`Tool error ${err} with ID: ${runId}`);
2365
+ this.logger.debug?.(`Tool error ${err} with ID: ${runId}`);
2365
2366
  this.handleObservationEnd({
2366
2367
  runId,
2367
2368
  attributes: {
@@ -2370,12 +2371,12 @@ var init_langchain = __esm({
2370
2371
  }
2371
2372
  });
2372
2373
  } catch (e) {
2373
- this.logger.debug(e instanceof Error ? e.message : String(e));
2374
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2374
2375
  }
2375
2376
  }
2376
2377
  async handleLLMEnd(output, runId, _parentRunId) {
2377
2378
  try {
2378
- this.logger.debug(`LLM end with ID: ${runId}`);
2379
+ this.logger.debug?.(`LLM end with ID: ${runId}`);
2379
2380
  const lastResponse = output.generations[output.generations.length - 1][output.generations[output.generations.length - 1].length - 1];
2380
2381
  const llmUsage = this.extractUsageMetadata(lastResponse) ?? output.llmOutput?.["tokenUsage"];
2381
2382
  const modelName = this.extractModelNameFromMetadata(lastResponse);
@@ -2420,12 +2421,12 @@ var init_langchain = __esm({
2420
2421
  delete this.completionStartTimes[runId];
2421
2422
  }
2422
2423
  } catch (e) {
2423
- this.logger.debug(e instanceof Error ? e.message : String(e));
2424
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2424
2425
  }
2425
2426
  }
2426
2427
  async handleLLMError(err, runId, _parentRunId) {
2427
2428
  try {
2428
- this.logger.debug(`LLM error ${err} with ID: ${runId}`);
2429
+ this.logger.debug?.(`LLM error ${err} with ID: ${runId}`);
2429
2430
  this.handleObservationEnd({
2430
2431
  runId,
2431
2432
  attributes: {
@@ -2434,7 +2435,7 @@ var init_langchain = __esm({
2434
2435
  }
2435
2436
  });
2436
2437
  } catch (e) {
2437
- this.logger.debug(e instanceof Error ? e.message : String(e));
2438
+ this.logger.debug?.(e instanceof Error ? e.message : String(e));
2438
2439
  }
2439
2440
  }
2440
2441
  registerPromptInfo(parentRunId, metadata) {
@@ -2479,7 +2480,7 @@ var init_langchain = __esm({
2479
2480
  const { runId, attributes = {} } = params;
2480
2481
  const observation = this.runMap.get(runId);
2481
2482
  if (!observation) {
2482
- this.logger.warn("Observation not found in runMap. Skipping operation.");
2483
+ this.logger.warn?.("Observation not found in runMap. Skipping operation.");
2483
2484
  return;
2484
2485
  }
2485
2486
  observation.update(attributes).end();
@@ -2513,7 +2514,7 @@ var init_langchain = __esm({
2513
2514
  const usageMetadata = "message" in generation && (import_messages.AIMessage.isInstance(generation["message"]) || import_messages.AIMessageChunk.isInstance(generation["message"])) ? generation["message"].usage_metadata : void 0;
2514
2515
  return usageMetadata;
2515
2516
  } catch (err) {
2516
- this.logger.debug(`Error extracting usage metadata: ${err}`);
2517
+ this.logger.debug?.(`Error extracting usage metadata: ${err}`);
2517
2518
  return;
2518
2519
  }
2519
2520
  }
@@ -2579,8 +2580,8 @@ __export(index_exports, {
2579
2580
  LanggraphAgent: () => LanggraphAgent,
2580
2581
  TDAISaver: () => TDAISaver,
2581
2582
  TDAIStore: () => TDAIStore,
2582
- createConsoleLogger: () => import_agent_shared2.createConsoleLogger,
2583
- noopLogger: () => import_agent_shared2.noopLogger
2583
+ createConsoleLogger: () => import_agent_shared3.createConsoleLogger,
2584
+ noopLogger: () => import_agent_shared3.noopLogger
2584
2585
  });
2585
2586
  module.exports = __toCommonJS(index_exports);
2586
2587
 
@@ -2637,7 +2638,7 @@ function convertJsonSchemaToZodSchema(jsonSchema, required) {
2637
2638
  }
2638
2639
 
2639
2640
  // src/agent.ts
2640
- var import_agent_shared = require("@cloudbase/agent-shared");
2641
+ var import_agent_shared2 = require("@cloudbase/agent-shared");
2641
2642
  var LangChainCallbackHandler;
2642
2643
  var observabilityLoadAttempted = false;
2643
2644
  var ClientPropertiesAnnotation = import_langgraph.Annotation.Root({
@@ -2652,7 +2653,7 @@ var LanggraphAgent = class extends import_client.AbstractAgent {
2652
2653
  super(agentConfig);
2653
2654
  this.compiledWorkflow = agentConfig.compiledWorkflow;
2654
2655
  this.adapterName = agentConfig.adapterName || "LangGraph";
2655
- const baseLogger = agentConfig.logger ?? import_agent_shared.noopLogger;
2656
+ const baseLogger = agentConfig.logger ?? import_agent_shared2.noopLogger;
2656
2657
  this.logger = baseLogger.child?.({ component: "langgraph-agent" }) ?? baseLogger;
2657
2658
  }
2658
2659
  run(input) {
@@ -2672,7 +2673,9 @@ var LanggraphAgent = class extends import_client.AbstractAgent {
2672
2673
  LangChainCallbackHandler = obsModule.CallbackHandler;
2673
2674
  if (LangChainCallbackHandler) {
2674
2675
  this.observabilityCallback = new LangChainCallbackHandler({
2675
- adapterName: this.adapterName
2676
+ adapterName: this.adapterName,
2677
+ logger
2678
+ // Reuse the run-specific logger with context
2676
2679
  });
2677
2680
  logger.debug?.("\u2713 Observability callback created");
2678
2681
  }
@@ -3142,7 +3145,7 @@ var LanggraphAgent = class extends import_client.AbstractAgent {
3142
3145
  { err: error, eventCount, toolCallCount, textChunkCount },
3143
3146
  "Error during stream processing"
3144
3147
  );
3145
- const errorCode = (0, import_agent_shared.isErrorWithCode)(error) ? error.code : "INTERNAL_ERROR";
3148
+ const errorCode = (0, import_agent_shared2.isErrorWithCode)(error) ? error.code : "INTERNAL_ERROR";
3146
3149
  const errorMessage = error instanceof Error ? error.message : String(error);
3147
3150
  subscriber.next({
3148
3151
  type: import_client.EventType.RUN_ERROR,
@@ -3901,7 +3904,7 @@ var TDAIStore = class extends import_langgraph3.BaseStore {
3901
3904
  };
3902
3905
 
3903
3906
  // src/index.ts
3904
- var import_agent_shared2 = require("@cloudbase/agent-shared");
3907
+ var import_agent_shared3 = require("@cloudbase/agent-shared");
3905
3908
  // Annotate the CommonJS export names for ESM import in node:
3906
3909
  0 && (module.exports = {
3907
3910
  ClientPropertiesAnnotation,