@langchain/core 0.3.6-rc.0 → 0.3.7
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/messages/base.cjs +4 -0
- package/dist/messages/base.d.ts +15 -3
- package/dist/messages/base.js +4 -0
- package/dist/messages/chat.cjs +9 -1
- package/dist/messages/chat.d.ts +2 -0
- package/dist/messages/chat.js +6 -0
- package/dist/messages/function.cjs +9 -1
- package/dist/messages/function.d.ts +2 -0
- package/dist/messages/function.js +6 -0
- package/dist/messages/human.cjs +9 -1
- package/dist/messages/human.d.ts +2 -0
- package/dist/messages/human.js +6 -0
- package/dist/messages/index.cjs +3 -1
- package/dist/messages/index.d.ts +1 -1
- package/dist/messages/index.js +1 -1
- package/dist/messages/system.cjs +9 -1
- package/dist/messages/system.d.ts +2 -0
- package/dist/messages/system.js +6 -0
- package/dist/messages/tool.cjs +9 -1
- package/dist/messages/tool.d.ts +2 -0
- package/dist/messages/tool.js +6 -0
- package/dist/messages/utils.cjs +34 -2
- package/dist/messages/utils.js +34 -2
- package/package.json +1 -1
package/dist/messages/base.cjs
CHANGED
|
@@ -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) {
|
package/dist/messages/base.d.ts
CHANGED
|
@@ -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
|
-
/**
|
|
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;
|
package/dist/messages/base.js
CHANGED
|
@@ -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) {
|
package/dist/messages/chat.cjs
CHANGED
|
@@ -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;
|
package/dist/messages/chat.d.ts
CHANGED
|
@@ -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;
|
package/dist/messages/chat.js
CHANGED
|
@@ -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;
|
package/dist/messages/human.cjs
CHANGED
|
@@ -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;
|
package/dist/messages/human.d.ts
CHANGED
|
@@ -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;
|
package/dist/messages/human.js
CHANGED
package/dist/messages/index.cjs
CHANGED
|
@@ -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; } });
|
package/dist/messages/index.d.ts
CHANGED
|
@@ -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";
|
package/dist/messages/index.js
CHANGED
|
@@ -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";
|
package/dist/messages/system.cjs
CHANGED
|
@@ -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;
|
package/dist/messages/system.js
CHANGED
package/dist/messages/tool.cjs
CHANGED
|
@@ -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;
|
package/dist/messages/tool.d.ts
CHANGED
|
@@ -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;
|
package/dist/messages/tool.js
CHANGED
package/dist/messages/utils.cjs
CHANGED
|
@@ -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
|
-
|
|
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) {
|
package/dist/messages/utils.js
CHANGED
|
@@ -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
|
-
|
|
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) {
|