@langchain/core 0.3.6 → 0.3.8-rc.0

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.
@@ -156,9 +156,10 @@ class BaseLanguageModel extends BaseLangChain {
156
156
  return ["stop", "timeout", "signal", "tags", "metadata", "callbacks"];
157
157
  }
158
158
  constructor({ callbacks, callbackManager, ...params }) {
159
+ const { cache, ...rest } = params;
159
160
  super({
160
161
  callbacks: callbacks ?? callbackManager,
161
- ...params,
162
+ ...rest,
162
163
  });
163
164
  /**
164
165
  * The async caller should be used by subclasses to make any async calls,
@@ -182,10 +183,10 @@ class BaseLanguageModel extends BaseLangChain {
182
183
  writable: true,
183
184
  value: void 0
184
185
  });
185
- if (typeof params.cache === "object") {
186
- this.cache = params.cache;
186
+ if (typeof cache === "object") {
187
+ this.cache = cache;
187
188
  }
188
- else if (params.cache) {
189
+ else if (cache) {
189
190
  this.cache = base_js_1.InMemoryCache.global();
190
191
  }
191
192
  else {
@@ -147,9 +147,10 @@ export class BaseLanguageModel extends BaseLangChain {
147
147
  return ["stop", "timeout", "signal", "tags", "metadata", "callbacks"];
148
148
  }
149
149
  constructor({ callbacks, callbackManager, ...params }) {
150
+ const { cache, ...rest } = params;
150
151
  super({
151
152
  callbacks: callbacks ?? callbackManager,
152
- ...params,
153
+ ...rest,
153
154
  });
154
155
  /**
155
156
  * The async caller should be used by subclasses to make any async calls,
@@ -173,10 +174,10 @@ export class BaseLanguageModel extends BaseLangChain {
173
174
  writable: true,
174
175
  value: void 0
175
176
  });
176
- if (typeof params.cache === "object") {
177
- this.cache = params.cache;
177
+ if (typeof cache === "object") {
178
+ this.cache = cache;
178
179
  }
179
- else if (params.cache) {
180
+ else if (cache) {
180
181
  this.cache = InMemoryCache.global();
181
182
  }
182
183
  else {
@@ -84,6 +84,10 @@ class BaseMessage extends serializable_js_1.Serializable {
84
84
  get text() {
85
85
  return typeof this.content === "string" ? this.content : "";
86
86
  }
87
+ /** The type of the message. */
88
+ getType() {
89
+ return this._getType();
90
+ }
87
91
  constructor(fields,
88
92
  /** @deprecated */
89
93
  kwargs) {
@@ -1,4 +1,4 @@
1
- import { Serializable } from "../load/serializable.js";
1
+ import { Serializable, SerializedConstructor } from "../load/serializable.js";
2
2
  import { StringWithAutocomplete } from "../utils/types/index.js";
3
3
  export interface StoredMessageData {
4
4
  content: string;
@@ -114,8 +114,20 @@ export declare abstract class BaseMessage extends Serializable implements BaseMe
114
114
  * provided by the provider/model which created the message.
115
115
  */
116
116
  id?: string;
117
- /** The type of the message. */
117
+ /**
118
+ * @deprecated Use .getType() instead or import the proper typeguard.
119
+ * For example:
120
+ *
121
+ * ```ts
122
+ * import { isAIMessage } from "@langchain/core/messages";
123
+ *
124
+ * const message = new AIMessage("Hello!");
125
+ * isAIMessage(message); // true
126
+ * ```
127
+ */
118
128
  abstract _getType(): MessageType;
129
+ /** The type of the message. */
130
+ getType(): MessageType;
119
131
  constructor(fields: string | BaseMessageFields,
120
132
  /** @deprecated */
121
133
  kwargs?: Record<string, unknown>);
@@ -172,6 +184,6 @@ export type BaseMessageLike = BaseMessage | MessageFieldWithRole | [
172
184
  */
173
185
  | ({
174
186
  type: MessageType | "user" | "assistant" | "placeholder";
175
- } & BaseMessageFields & Record<string, unknown>);
187
+ } & BaseMessageFields & Record<string, unknown>) | SerializedConstructor;
176
188
  export declare function isBaseMessage(messageLike?: unknown): messageLike is BaseMessage;
177
189
  export declare function isBaseMessageChunk(messageLike?: unknown): messageLike is BaseMessageChunk;
@@ -79,6 +79,10 @@ export class BaseMessage extends Serializable {
79
79
  get text() {
80
80
  return typeof this.content === "string" ? this.content : "";
81
81
  }
82
+ /** The type of the message. */
83
+ getType() {
84
+ return this._getType();
85
+ }
82
86
  constructor(fields,
83
87
  /** @deprecated */
84
88
  kwargs) {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChatMessageChunk = exports.ChatMessage = void 0;
3
+ exports.isChatMessageChunk = exports.isChatMessage = exports.ChatMessageChunk = exports.ChatMessage = void 0;
4
4
  const base_js_1 = require("./base.cjs");
5
5
  /**
6
6
  * Represents a chat message in a conversation.
@@ -82,3 +82,11 @@ class ChatMessageChunk extends base_js_1.BaseMessageChunk {
82
82
  }
83
83
  }
84
84
  exports.ChatMessageChunk = ChatMessageChunk;
85
+ function isChatMessage(x) {
86
+ return x._getType() === "generic";
87
+ }
88
+ exports.isChatMessage = isChatMessage;
89
+ function isChatMessageChunk(x) {
90
+ return x._getType() === "generic";
91
+ }
92
+ exports.isChatMessageChunk = isChatMessageChunk;
@@ -28,3 +28,5 @@ export declare class ChatMessageChunk extends BaseMessageChunk {
28
28
  concat(chunk: ChatMessageChunk): ChatMessageChunk;
29
29
  get _printableFields(): Record<string, unknown>;
30
30
  }
31
+ export declare function isChatMessage(x: BaseMessage): x is ChatMessage;
32
+ export declare function isChatMessageChunk(x: BaseMessageChunk): x is ChatMessageChunk;
@@ -77,3 +77,9 @@ export class ChatMessageChunk extends BaseMessageChunk {
77
77
  };
78
78
  }
79
79
  }
80
+ export function isChatMessage(x) {
81
+ return x._getType() === "generic";
82
+ }
83
+ export function isChatMessageChunk(x) {
84
+ return x._getType() === "generic";
85
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FunctionMessageChunk = exports.FunctionMessage = void 0;
3
+ exports.isFunctionMessageChunk = exports.isFunctionMessage = exports.FunctionMessageChunk = exports.FunctionMessage = void 0;
4
4
  const base_js_1 = require("./base.cjs");
5
5
  /**
6
6
  * Represents a function message in a conversation.
@@ -45,3 +45,11 @@ class FunctionMessageChunk extends base_js_1.BaseMessageChunk {
45
45
  }
46
46
  }
47
47
  exports.FunctionMessageChunk = FunctionMessageChunk;
48
+ function isFunctionMessage(x) {
49
+ return x._getType() === "function";
50
+ }
51
+ exports.isFunctionMessage = isFunctionMessage;
52
+ function isFunctionMessageChunk(x) {
53
+ return x._getType() === "function";
54
+ }
55
+ exports.isFunctionMessageChunk = isFunctionMessageChunk;
@@ -22,3 +22,5 @@ export declare class FunctionMessageChunk extends BaseMessageChunk {
22
22
  _getType(): MessageType;
23
23
  concat(chunk: FunctionMessageChunk): FunctionMessageChunk;
24
24
  }
25
+ export declare function isFunctionMessage(x: BaseMessage): x is FunctionMessage;
26
+ export declare function isFunctionMessageChunk(x: BaseMessageChunk): x is FunctionMessageChunk;
@@ -40,3 +40,9 @@ export class FunctionMessageChunk extends BaseMessageChunk {
40
40
  });
41
41
  }
42
42
  }
43
+ export function isFunctionMessage(x) {
44
+ return x._getType() === "function";
45
+ }
46
+ export function isFunctionMessageChunk(x) {
47
+ return x._getType() === "function";
48
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HumanMessageChunk = exports.HumanMessage = void 0;
3
+ exports.isHumanMessageChunk = exports.isHumanMessage = exports.HumanMessageChunk = exports.HumanMessage = void 0;
4
4
  const base_js_1 = require("./base.cjs");
5
5
  /**
6
6
  * Represents a human message in a conversation.
@@ -35,3 +35,11 @@ class HumanMessageChunk extends base_js_1.BaseMessageChunk {
35
35
  }
36
36
  }
37
37
  exports.HumanMessageChunk = HumanMessageChunk;
38
+ function isHumanMessage(x) {
39
+ return x.getType() === "human";
40
+ }
41
+ exports.isHumanMessage = isHumanMessage;
42
+ function isHumanMessageChunk(x) {
43
+ return x.getType() === "human";
44
+ }
45
+ exports.isHumanMessageChunk = isHumanMessageChunk;
@@ -15,3 +15,5 @@ export declare class HumanMessageChunk extends BaseMessageChunk {
15
15
  _getType(): MessageType;
16
16
  concat(chunk: HumanMessageChunk): HumanMessageChunk;
17
17
  }
18
+ export declare function isHumanMessage(x: BaseMessage): x is HumanMessage;
19
+ export declare function isHumanMessageChunk(x: BaseMessageChunk): x is HumanMessageChunk;
@@ -30,3 +30,9 @@ export class HumanMessageChunk extends BaseMessageChunk {
30
30
  });
31
31
  }
32
32
  }
33
+ export function isHumanMessage(x) {
34
+ return x.getType() === "human";
35
+ }
36
+ export function isHumanMessageChunk(x) {
37
+ return x.getType() === "human";
38
+ }
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.ToolMessageChunk = exports.ToolMessage = void 0;
17
+ exports.isToolMessageChunk = exports.isToolMessage = exports.ToolMessageChunk = exports.ToolMessage = void 0;
18
18
  __exportStar(require("./ai.cjs"), exports);
19
19
  __exportStar(require("./base.cjs"), exports);
20
20
  __exportStar(require("./chat.cjs"), exports);
@@ -29,3 +29,5 @@ __exportStar(require("./modifier.cjs"), exports);
29
29
  var tool_js_1 = require("./tool.cjs");
30
30
  Object.defineProperty(exports, "ToolMessage", { enumerable: true, get: function () { return tool_js_1.ToolMessage; } });
31
31
  Object.defineProperty(exports, "ToolMessageChunk", { enumerable: true, get: function () { return tool_js_1.ToolMessageChunk; } });
32
+ Object.defineProperty(exports, "isToolMessage", { enumerable: true, get: function () { return tool_js_1.isToolMessage; } });
33
+ Object.defineProperty(exports, "isToolMessageChunk", { enumerable: true, get: function () { return tool_js_1.isToolMessageChunk; } });
@@ -7,4 +7,4 @@ export * from "./system.js";
7
7
  export * from "./utils.js";
8
8
  export * from "./transformers.js";
9
9
  export * from "./modifier.js";
10
- export { type ToolMessageFieldsWithToolCallId, ToolMessage, ToolMessageChunk, type InvalidToolCall, } from "./tool.js";
10
+ export { type ToolMessageFieldsWithToolCallId, ToolMessage, ToolMessageChunk, type InvalidToolCall, isToolMessage, isToolMessageChunk, } from "./tool.js";
@@ -9,4 +9,4 @@ export * from "./transformers.js";
9
9
  export * from "./modifier.js";
10
10
  // TODO: Use a star export when we deprecate the
11
11
  // existing "ToolCall" type in "base.js".
12
- export { ToolMessage, ToolMessageChunk, } from "./tool.js";
12
+ export { ToolMessage, ToolMessageChunk, isToolMessage, isToolMessageChunk, } from "./tool.js";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SystemMessageChunk = exports.SystemMessage = void 0;
3
+ exports.isSystemMessageChunk = exports.isSystemMessage = exports.SystemMessageChunk = exports.SystemMessage = void 0;
4
4
  const base_js_1 = require("./base.cjs");
5
5
  /**
6
6
  * Represents a system message in a conversation.
@@ -35,3 +35,11 @@ class SystemMessageChunk extends base_js_1.BaseMessageChunk {
35
35
  }
36
36
  }
37
37
  exports.SystemMessageChunk = SystemMessageChunk;
38
+ function isSystemMessage(x) {
39
+ return x._getType() === "system";
40
+ }
41
+ exports.isSystemMessage = isSystemMessage;
42
+ function isSystemMessageChunk(x) {
43
+ return x._getType() === "system";
44
+ }
45
+ exports.isSystemMessageChunk = isSystemMessageChunk;
@@ -15,3 +15,5 @@ export declare class SystemMessageChunk extends BaseMessageChunk {
15
15
  _getType(): MessageType;
16
16
  concat(chunk: SystemMessageChunk): SystemMessageChunk;
17
17
  }
18
+ export declare function isSystemMessage(x: BaseMessage): x is SystemMessage;
19
+ export declare function isSystemMessageChunk(x: BaseMessageChunk): x is SystemMessageChunk;
@@ -30,3 +30,9 @@ export class SystemMessageChunk extends BaseMessageChunk {
30
30
  });
31
31
  }
32
32
  }
33
+ export function isSystemMessage(x) {
34
+ return x._getType() === "system";
35
+ }
36
+ export function isSystemMessageChunk(x) {
37
+ return x._getType() === "system";
38
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultToolCallParser = exports.ToolMessageChunk = exports.ToolMessage = void 0;
3
+ exports.isToolMessageChunk = exports.isToolMessage = exports.defaultToolCallParser = exports.ToolMessageChunk = exports.ToolMessage = void 0;
4
4
  const base_js_1 = require("./base.cjs");
5
5
  /**
6
6
  * Represents a tool message in a conversation.
@@ -168,3 +168,11 @@ rawToolCalls) {
168
168
  return [toolCalls, invalidToolCalls];
169
169
  }
170
170
  exports.defaultToolCallParser = defaultToolCallParser;
171
+ function isToolMessage(x) {
172
+ return x._getType() === "tool";
173
+ }
174
+ exports.isToolMessage = isToolMessage;
175
+ function isToolMessageChunk(x) {
176
+ return x._getType() === "tool";
177
+ }
178
+ exports.isToolMessageChunk = isToolMessageChunk;
@@ -143,3 +143,5 @@ export type InvalidToolCall = {
143
143
  type?: "invalid_tool_call";
144
144
  };
145
145
  export declare function defaultToolCallParser(rawToolCalls: Record<string, any>[]): [ToolCall[], InvalidToolCall[]];
146
+ export declare function isToolMessage(x: BaseMessage): x is ToolMessage;
147
+ export declare function isToolMessageChunk(x: BaseMessageChunk): x is ToolMessageChunk;
@@ -162,3 +162,9 @@ rawToolCalls) {
162
162
  }
163
163
  return [toolCalls, invalidToolCalls];
164
164
  }
165
+ export function isToolMessage(x) {
166
+ return x._getType() === "tool";
167
+ }
168
+ export function isToolMessageChunk(x) {
169
+ return x._getType() === "tool";
170
+ }
@@ -34,8 +34,40 @@ function _coerceToolCall(toolCall) {
34
34
  return toolCall;
35
35
  }
36
36
  }
37
+ function isSerializedConstructor(x) {
38
+ return (typeof x === "object" &&
39
+ x != null &&
40
+ x.lc === 1 &&
41
+ Array.isArray(x.id) &&
42
+ x.kwargs != null &&
43
+ typeof x.kwargs === "object");
44
+ }
37
45
  function _constructMessageFromParams(params) {
38
- const { type, ...rest } = params;
46
+ let type;
47
+ let rest;
48
+ // Support serialized messages
49
+ if (isSerializedConstructor(params)) {
50
+ const className = params.id.at(-1);
51
+ if (className === "HumanMessage" || className === "HumanMessageChunk") {
52
+ type = "user";
53
+ }
54
+ else if (className === "AIMessage" || className === "AIMessageChunk") {
55
+ type = "assistant";
56
+ }
57
+ else if (className === "SystemMessage" ||
58
+ className === "SystemMessageChunk") {
59
+ type = "system";
60
+ }
61
+ else {
62
+ type = "unknown";
63
+ }
64
+ rest = params.kwargs;
65
+ }
66
+ else {
67
+ const { type: extractedType, ...otherParams } = params;
68
+ type = extractedType;
69
+ rest = otherParams;
70
+ }
39
71
  if (type === "human" || type === "user") {
40
72
  return new human_js_1.HumanMessage(rest);
41
73
  }
@@ -59,7 +91,7 @@ function _constructMessageFromParams(params) {
59
91
  });
60
92
  }
61
93
  else {
62
- throw new Error(`Unable to coerce message from array: only human, AI, or system message coercion is currently supported.`);
94
+ throw new Error(`Unable to coerce message from array: only human, AI, or system message coercion is currently supported.\n\nReceived:${params}`);
63
95
  }
64
96
  }
65
97
  function coerceMessageLikeToMessage(messageLike) {
@@ -31,8 +31,40 @@ function _coerceToolCall(toolCall) {
31
31
  return toolCall;
32
32
  }
33
33
  }
34
+ function isSerializedConstructor(x) {
35
+ return (typeof x === "object" &&
36
+ x != null &&
37
+ x.lc === 1 &&
38
+ Array.isArray(x.id) &&
39
+ x.kwargs != null &&
40
+ typeof x.kwargs === "object");
41
+ }
34
42
  function _constructMessageFromParams(params) {
35
- const { type, ...rest } = params;
43
+ let type;
44
+ let rest;
45
+ // Support serialized messages
46
+ if (isSerializedConstructor(params)) {
47
+ const className = params.id.at(-1);
48
+ if (className === "HumanMessage" || className === "HumanMessageChunk") {
49
+ type = "user";
50
+ }
51
+ else if (className === "AIMessage" || className === "AIMessageChunk") {
52
+ type = "assistant";
53
+ }
54
+ else if (className === "SystemMessage" ||
55
+ className === "SystemMessageChunk") {
56
+ type = "system";
57
+ }
58
+ else {
59
+ type = "unknown";
60
+ }
61
+ rest = params.kwargs;
62
+ }
63
+ else {
64
+ const { type: extractedType, ...otherParams } = params;
65
+ type = extractedType;
66
+ rest = otherParams;
67
+ }
36
68
  if (type === "human" || type === "user") {
37
69
  return new HumanMessage(rest);
38
70
  }
@@ -56,7 +88,7 @@ function _constructMessageFromParams(params) {
56
88
  });
57
89
  }
58
90
  else {
59
- throw new Error(`Unable to coerce message from array: only human, AI, or system message coercion is currently supported.`);
91
+ throw new Error(`Unable to coerce message from array: only human, AI, or system message coercion is currently supported.\n\nReceived:${params}`);
60
92
  }
61
93
  }
62
94
  export function coerceMessageLikeToMessage(messageLike) {
@@ -479,7 +479,7 @@ export declare class RunnableSequence<RunInput = any, RunOutput = any> extends R
479
479
  last: Runnable<any, RunOutput>;
480
480
  name?: string;
481
481
  });
482
- get steps(): Runnable<any, any, RunnableConfig>[];
482
+ get steps(): Runnable<any, any, RunnableConfig<Record<string, any>>>[];
483
483
  invoke(input: RunInput, options?: RunnableConfig): Promise<RunOutput>;
484
484
  batch(inputs: RunInput[], options?: Partial<RunnableConfig> | Partial<RunnableConfig>[], batchOptions?: RunnableBatchOptions & {
485
485
  returnExceptions?: false;
@@ -593,7 +593,7 @@ export declare class RunnableWithFallbacks<RunInput, RunOutput> extends Runnable
593
593
  runnable: Runnable<RunInput, RunOutput>;
594
594
  fallbacks: Runnable<RunInput, RunOutput>[];
595
595
  });
596
- runnables(): Generator<Runnable<RunInput, RunOutput, RunnableConfig>, void, unknown>;
596
+ runnables(): Generator<Runnable<RunInput, RunOutput, RunnableConfig<Record<string, any>>>, void, unknown>;
597
597
  invoke(input: RunInput, options?: Partial<RunnableConfig>): Promise<RunOutput>;
598
598
  _streamIterator(input: RunInput, options?: Partial<RunnableConfig> | undefined): AsyncGenerator<RunOutput>;
599
599
  batch(inputs: RunInput[], options?: Partial<RunnableConfig> | Partial<RunnableConfig>[], batchOptions?: RunnableBatchOptions & {
@@ -19,7 +19,7 @@ export declare class Graph {
19
19
  */
20
20
  extend(graph: Graph, prefix?: string): ({
21
21
  id: string;
22
- data: RunnableIOSchema | RunnableInterface<any, any, import("./types.js").RunnableConfig>;
22
+ data: RunnableIOSchema | RunnableInterface<any, any, import("./types.js").RunnableConfig<Record<string, any>>>;
23
23
  } | undefined)[];
24
24
  trimFirstNode(): void;
25
25
  trimLastNode(): void;
@@ -87,6 +87,6 @@ export declare class RunnableWithMessageHistory<RunInput, RunOutput> extends Run
87
87
  _getOutputMessages(outputValue: string | BaseMessage | Array<BaseMessage> | Record<string, any>): Array<BaseMessage>;
88
88
  _enterHistory(input: any, kwargs?: RunnableConfig): Promise<BaseMessage[]>;
89
89
  _exitHistory(run: Run, config: RunnableConfig): Promise<void>;
90
- _mergeConfig(...configs: Array<RunnableConfig | undefined>): Promise<Partial<RunnableConfig>>;
90
+ _mergeConfig(...configs: Array<RunnableConfig | undefined>): Promise<Partial<RunnableConfig<Record<string, any>>>>;
91
91
  }
92
92
  export {};
@@ -43,12 +43,12 @@ export interface Node {
43
43
  data: RunnableIOSchema | RunnableInterface;
44
44
  metadata?: Record<string, any>;
45
45
  }
46
- export interface RunnableConfig extends BaseCallbackConfig {
46
+ export interface RunnableConfig<ConfigurableFieldType extends Record<string, any> = Record<string, any>> extends BaseCallbackConfig {
47
47
  /**
48
48
  * Runtime values for attributes previously made configurable on this Runnable,
49
49
  * or sub-Runnables.
50
50
  */
51
- configurable?: Record<string, any>;
51
+ configurable?: ConfigurableFieldType;
52
52
  /**
53
53
  * Maximum number of times a call can recurse. If not provided, defaults to 25.
54
54
  */
@@ -309,8 +309,14 @@ class FakeListChatModel extends chat_models_js_1.BaseChatModel {
309
309
  static lc_name() {
310
310
  return "FakeListChatModel";
311
311
  }
312
- constructor({ responses, sleep, emitCustomEvent }) {
313
- super({});
312
+ constructor(params) {
313
+ super(params);
314
+ Object.defineProperty(this, "lc_serializable", {
315
+ enumerable: true,
316
+ configurable: true,
317
+ writable: true,
318
+ value: true
319
+ });
314
320
  Object.defineProperty(this, "responses", {
315
321
  enumerable: true,
316
322
  configurable: true,
@@ -335,6 +341,7 @@ class FakeListChatModel extends chat_models_js_1.BaseChatModel {
335
341
  writable: true,
336
342
  value: false
337
343
  });
344
+ const { responses, sleep, emitCustomEvent } = params;
338
345
  this.responses = responses;
339
346
  this.sleep = sleep;
340
347
  this.emitCustomEvent = emitCustomEvent ?? this.emitCustomEvent;
@@ -116,11 +116,12 @@ export interface FakeListChatModelCallOptions extends BaseChatModelCallOptions {
116
116
  */
117
117
  export declare class FakeListChatModel extends BaseChatModel<FakeListChatModelCallOptions> {
118
118
  static lc_name(): string;
119
+ lc_serializable: boolean;
119
120
  responses: string[];
120
121
  i: number;
121
122
  sleep?: number;
122
123
  emitCustomEvent: boolean;
123
- constructor({ responses, sleep, emitCustomEvent }: FakeChatInput);
124
+ constructor(params: FakeChatInput);
124
125
  _combineLLMOutput(): never[];
125
126
  _llmType(): string;
126
127
  _generate(_messages: BaseMessage[], options?: this["ParsedCallOptions"], runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;
@@ -299,8 +299,14 @@ export class FakeListChatModel extends BaseChatModel {
299
299
  static lc_name() {
300
300
  return "FakeListChatModel";
301
301
  }
302
- constructor({ responses, sleep, emitCustomEvent }) {
303
- super({});
302
+ constructor(params) {
303
+ super(params);
304
+ Object.defineProperty(this, "lc_serializable", {
305
+ enumerable: true,
306
+ configurable: true,
307
+ writable: true,
308
+ value: true
309
+ });
304
310
  Object.defineProperty(this, "responses", {
305
311
  enumerable: true,
306
312
  configurable: true,
@@ -325,6 +331,7 @@ export class FakeListChatModel extends BaseChatModel {
325
331
  writable: true,
326
332
  value: false
327
333
  });
334
+ const { responses, sleep, emitCustomEvent } = params;
328
335
  this.responses = responses;
329
336
  this.sleep = sleep;
330
337
  this.emitCustomEvent = emitCustomEvent ?? this.emitCustomEvent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langchain/core",
3
- "version": "0.3.6",
3
+ "version": "0.3.8-rc.0",
4
4
  "description": "Core LangChain.js abstractions and schemas",
5
5
  "type": "module",
6
6
  "engines": {