@langchain/core 1.0.0 → 1.0.2
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/CHANGELOG.md +19 -0
- package/dist/agents.d.ts.map +1 -1
- package/dist/callbacks/dispatch/index.cjs +0 -8
- package/dist/callbacks/dispatch/index.cjs.map +1 -1
- package/dist/callbacks/dispatch/index.js +1 -4
- package/dist/callbacks/dispatch/index.js.map +1 -1
- package/dist/callbacks/dispatch/web.cjs +0 -9
- package/dist/callbacks/dispatch/web.cjs.map +1 -1
- package/dist/callbacks/dispatch/web.js +1 -4
- package/dist/callbacks/dispatch/web.js.map +1 -1
- package/dist/context.cjs +0 -13
- package/dist/context.cjs.map +1 -1
- package/dist/context.js +1 -9
- package/dist/context.js.map +1 -1
- package/dist/load/import_map.cjs +1 -7
- package/dist/load/import_map.cjs.map +1 -1
- package/dist/load/import_map.js +1 -7
- package/dist/load/import_map.js.map +1 -1
- package/dist/messages/ai.cjs +3 -2
- package/dist/messages/ai.cjs.map +1 -1
- package/dist/messages/ai.js +3 -2
- package/dist/messages/ai.js.map +1 -1
- package/dist/messages/base.cjs +4 -0
- package/dist/messages/base.cjs.map +1 -1
- package/dist/messages/base.d.cts +2 -0
- package/dist/messages/base.d.cts.map +1 -1
- package/dist/messages/base.d.ts +2 -0
- package/dist/messages/base.d.ts.map +1 -1
- package/dist/messages/base.js +4 -0
- package/dist/messages/base.js.map +1 -1
- package/dist/messages/format.cjs +39 -0
- package/dist/messages/format.cjs.map +1 -0
- package/dist/messages/format.d.cts +5 -0
- package/dist/messages/format.d.cts.map +1 -0
- package/dist/messages/format.d.ts +5 -0
- package/dist/messages/format.d.ts.map +1 -0
- package/dist/messages/format.js +38 -0
- package/dist/messages/format.js.map +1 -0
- package/dist/utils/async_caller.d.cts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @langchain/core
|
|
2
2
|
|
|
3
|
+
## 1.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6426eb6: fix chunks constructed with tool calls + chunks
|
|
8
|
+
- 619ae64: Add `BaseMessage.toFormattedString()`
|
|
9
|
+
|
|
10
|
+
## 1.0.1
|
|
11
|
+
|
|
12
|
+
### Patch changes
|
|
13
|
+
|
|
14
|
+
- cacc137: remove bad import map exports
|
|
15
|
+
|
|
3
16
|
## 1.0.0
|
|
4
17
|
|
|
5
18
|
🎉 **LangChain v1.0** is here! This release provides a focused, production-ready foundation for building agents with significant improvements to the core abstractions and APIs. See the [release notes](https://docs.langchain.com/oss/javascript/releases/langchain-v1) for more details.
|
|
@@ -95,6 +108,12 @@ The `@langchain/core` package remains focused on essential abstractions:
|
|
|
95
108
|
|
|
96
109
|
---
|
|
97
110
|
|
|
111
|
+
## 0.3.79
|
|
112
|
+
|
|
113
|
+
### Patch Changes
|
|
114
|
+
|
|
115
|
+
- 1063b43: fix chunks constructed with tool calls + chunks
|
|
116
|
+
|
|
98
117
|
## 0.3.78
|
|
99
118
|
|
|
100
119
|
### Patch Changes
|
package/dist/agents.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","names":["AgentAction","Record","AgentFinish","AgentStep"],"sources":["../src/agents.d.ts"],"sourcesContent":["export type AgentAction = {\n tool: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n toolInput: string | Record<string, any>;\n log: string;\n};\nexport type AgentFinish = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n returnValues: Record<string, any>;\n log: string;\n};\nexport type AgentStep = {\n action: AgentAction;\n observation: string;\n};\n"],"mappings":";KAAYA,WAAAA;EAAAA,IAAAA,EAAAA,MAAAA;EAMAE;EAKAC,SAAAA,EAAAA,MAAS,GARGF,MASZD,CAAAA,
|
|
1
|
+
{"version":3,"file":"agents.d.ts","names":["AgentAction","Record","AgentFinish","AgentStep"],"sources":["../src/agents.d.ts"],"sourcesContent":["export type AgentAction = {\n tool: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n toolInput: string | Record<string, any>;\n log: string;\n};\nexport type AgentFinish = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n returnValues: Record<string, any>;\n log: string;\n};\nexport type AgentStep = {\n action: AgentAction;\n observation: string;\n};\n"],"mappings":";KAAYA,WAAAA;EAAAA,IAAAA,EAAAA,MAAAA;EAMAE;EAKAC,SAAAA,EAAAA,MAAS,GARGF,MASZD,CAAAA,MAAAA,EAAW,GAAA,CAAA;;;KANXE,WAAAA;;gBAEMD;;;KAGNE,SAAAA;UACAH"}
|
|
@@ -6,8 +6,6 @@ const require_callbacks_dispatch_web = require('./web.cjs');
|
|
|
6
6
|
const node_async_hooks = require_rolldown_runtime.__toESM(require("node:async_hooks"));
|
|
7
7
|
|
|
8
8
|
//#region src/callbacks/dispatch/index.ts
|
|
9
|
-
var dispatch_exports = {};
|
|
10
|
-
require_rolldown_runtime.__export(dispatch_exports, { dispatchCustomEvent: () => dispatchCustomEvent$1 });
|
|
11
9
|
require_index.AsyncLocalStorageProviderSingleton.initializeGlobalInstance(new node_async_hooks.AsyncLocalStorage());
|
|
12
10
|
/**
|
|
13
11
|
* Dispatch a custom event.
|
|
@@ -49,10 +47,4 @@ async function dispatchCustomEvent$1(eventName, payload, config) {
|
|
|
49
47
|
|
|
50
48
|
//#endregion
|
|
51
49
|
exports.dispatchCustomEvent = dispatchCustomEvent$1;
|
|
52
|
-
Object.defineProperty(exports, 'dispatch_exports', {
|
|
53
|
-
enumerable: true,
|
|
54
|
-
get: function () {
|
|
55
|
-
return dispatch_exports;
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
50
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["AsyncLocalStorageProviderSingleton","AsyncLocalStorage","dispatchCustomEvent","eventName: string","payload: any","config?: RunnableConfig","ensureConfig","dispatchCustomEventWeb"],"sources":["../../../src/callbacks/dispatch/index.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { dispatchCustomEvent as dispatchCustomEventWeb } from \"./web.js\";\nimport { type RunnableConfig, ensureConfig } from \"../../runnables/config.js\";\nimport { AsyncLocalStorageProviderSingleton } from \"../../singletons/index.js\";\n\nAsyncLocalStorageProviderSingleton.initializeGlobalInstance(\n new AsyncLocalStorage()\n);\n\n/**\n * Dispatch a custom event.\n *\n * Note: this method is only supported in non-web environments\n * due to usage of async_hooks to infer config.\n *\n * If you are using this method in the browser, please import and use\n * from \"@langchain/core/callbacks/dispatch/web\".\n *\n * @param name The name of the custom event.\n * @param payload The data for the custom event.\n * Ideally should be JSON serializable to avoid serialization issues downstream, but not enforced.\n * @param config Optional config object.\n *\n * @example\n * ```typescript\n * import { dispatchCustomEvent } from \"@langchain/core/callbacks/dispatch\";\n *\n * const foo = RunnableLambda.from(async (input: string) => {\n * await dispatchCustomEvent(\"my_custom_event\", { arbitraryField: \"someval\" });\n * return input;\n * });\n *\n * const callbacks = [{\n * handleCustomEvent: (eventName: string, payload: any) => {\n * // Logs \"my_custom_event\" and { arbitraryField: \"someval\" }\n * console.log(eventName, payload);\n * }\n * }];\n *\n * await foo.invoke(\"hi\", { callbacks })\n * ```\n */\nexport async function dispatchCustomEvent(\n eventName: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload: any,\n config?: RunnableConfig\n) {\n const ensuredConfig = ensureConfig(config);\n await dispatchCustomEventWeb(eventName, payload, ensuredConfig);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["AsyncLocalStorageProviderSingleton","AsyncLocalStorage","dispatchCustomEvent","eventName: string","payload: any","config?: RunnableConfig","ensureConfig","dispatchCustomEventWeb"],"sources":["../../../src/callbacks/dispatch/index.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { dispatchCustomEvent as dispatchCustomEventWeb } from \"./web.js\";\nimport { type RunnableConfig, ensureConfig } from \"../../runnables/config.js\";\nimport { AsyncLocalStorageProviderSingleton } from \"../../singletons/index.js\";\n\nAsyncLocalStorageProviderSingleton.initializeGlobalInstance(\n new AsyncLocalStorage()\n);\n\n/**\n * Dispatch a custom event.\n *\n * Note: this method is only supported in non-web environments\n * due to usage of async_hooks to infer config.\n *\n * If you are using this method in the browser, please import and use\n * from \"@langchain/core/callbacks/dispatch/web\".\n *\n * @param name The name of the custom event.\n * @param payload The data for the custom event.\n * Ideally should be JSON serializable to avoid serialization issues downstream, but not enforced.\n * @param config Optional config object.\n *\n * @example\n * ```typescript\n * import { dispatchCustomEvent } from \"@langchain/core/callbacks/dispatch\";\n *\n * const foo = RunnableLambda.from(async (input: string) => {\n * await dispatchCustomEvent(\"my_custom_event\", { arbitraryField: \"someval\" });\n * return input;\n * });\n *\n * const callbacks = [{\n * handleCustomEvent: (eventName: string, payload: any) => {\n * // Logs \"my_custom_event\" and { arbitraryField: \"someval\" }\n * console.log(eventName, payload);\n * }\n * }];\n *\n * await foo.invoke(\"hi\", { callbacks })\n * ```\n */\nexport async function dispatchCustomEvent(\n eventName: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload: any,\n config?: RunnableConfig\n) {\n const ensuredConfig = ensureConfig(config);\n await dispatchCustomEventWeb(eventName, payload, ensuredConfig);\n}\n"],"mappings":";;;;;;;;AAOAA,iDAAmC,yBACjC,IAAIC,qCACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCD,eAAsBC,sBACpBC,WAEAC,SACAC,QACA;CACA,MAAM,gBAAgBC,4BAAa,OAAO;CAC1C,MAAMC,mDAAuB,WAAW,SAAS,cAAc;AAChE"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __export } from "../../_virtual/rolldown_runtime.js";
|
|
2
1
|
import { AsyncLocalStorageProviderSingleton } from "../../singletons/async_local_storage/index.js";
|
|
3
2
|
import "../../singletons/index.js";
|
|
4
3
|
import { ensureConfig } from "../../runnables/config.js";
|
|
@@ -6,8 +5,6 @@ import { dispatchCustomEvent } from "./web.js";
|
|
|
6
5
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
7
6
|
|
|
8
7
|
//#region src/callbacks/dispatch/index.ts
|
|
9
|
-
var dispatch_exports = {};
|
|
10
|
-
__export(dispatch_exports, { dispatchCustomEvent: () => dispatchCustomEvent$1 });
|
|
11
8
|
AsyncLocalStorageProviderSingleton.initializeGlobalInstance(new AsyncLocalStorage());
|
|
12
9
|
/**
|
|
13
10
|
* Dispatch a custom event.
|
|
@@ -48,5 +45,5 @@ async function dispatchCustomEvent$1(eventName, payload, config) {
|
|
|
48
45
|
}
|
|
49
46
|
|
|
50
47
|
//#endregion
|
|
51
|
-
export { dispatchCustomEvent$1 as dispatchCustomEvent
|
|
48
|
+
export { dispatchCustomEvent$1 as dispatchCustomEvent };
|
|
52
49
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["dispatchCustomEvent","eventName: string","payload: any","config?: RunnableConfig","dispatchCustomEventWeb"],"sources":["../../../src/callbacks/dispatch/index.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { dispatchCustomEvent as dispatchCustomEventWeb } from \"./web.js\";\nimport { type RunnableConfig, ensureConfig } from \"../../runnables/config.js\";\nimport { AsyncLocalStorageProviderSingleton } from \"../../singletons/index.js\";\n\nAsyncLocalStorageProviderSingleton.initializeGlobalInstance(\n new AsyncLocalStorage()\n);\n\n/**\n * Dispatch a custom event.\n *\n * Note: this method is only supported in non-web environments\n * due to usage of async_hooks to infer config.\n *\n * If you are using this method in the browser, please import and use\n * from \"@langchain/core/callbacks/dispatch/web\".\n *\n * @param name The name of the custom event.\n * @param payload The data for the custom event.\n * Ideally should be JSON serializable to avoid serialization issues downstream, but not enforced.\n * @param config Optional config object.\n *\n * @example\n * ```typescript\n * import { dispatchCustomEvent } from \"@langchain/core/callbacks/dispatch\";\n *\n * const foo = RunnableLambda.from(async (input: string) => {\n * await dispatchCustomEvent(\"my_custom_event\", { arbitraryField: \"someval\" });\n * return input;\n * });\n *\n * const callbacks = [{\n * handleCustomEvent: (eventName: string, payload: any) => {\n * // Logs \"my_custom_event\" and { arbitraryField: \"someval\" }\n * console.log(eventName, payload);\n * }\n * }];\n *\n * await foo.invoke(\"hi\", { callbacks })\n * ```\n */\nexport async function dispatchCustomEvent(\n eventName: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload: any,\n config?: RunnableConfig\n) {\n const ensuredConfig = ensureConfig(config);\n await dispatchCustomEventWeb(eventName, payload, ensuredConfig);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["dispatchCustomEvent","eventName: string","payload: any","config?: RunnableConfig","dispatchCustomEventWeb"],"sources":["../../../src/callbacks/dispatch/index.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { dispatchCustomEvent as dispatchCustomEventWeb } from \"./web.js\";\nimport { type RunnableConfig, ensureConfig } from \"../../runnables/config.js\";\nimport { AsyncLocalStorageProviderSingleton } from \"../../singletons/index.js\";\n\nAsyncLocalStorageProviderSingleton.initializeGlobalInstance(\n new AsyncLocalStorage()\n);\n\n/**\n * Dispatch a custom event.\n *\n * Note: this method is only supported in non-web environments\n * due to usage of async_hooks to infer config.\n *\n * If you are using this method in the browser, please import and use\n * from \"@langchain/core/callbacks/dispatch/web\".\n *\n * @param name The name of the custom event.\n * @param payload The data for the custom event.\n * Ideally should be JSON serializable to avoid serialization issues downstream, but not enforced.\n * @param config Optional config object.\n *\n * @example\n * ```typescript\n * import { dispatchCustomEvent } from \"@langchain/core/callbacks/dispatch\";\n *\n * const foo = RunnableLambda.from(async (input: string) => {\n * await dispatchCustomEvent(\"my_custom_event\", { arbitraryField: \"someval\" });\n * return input;\n * });\n *\n * const callbacks = [{\n * handleCustomEvent: (eventName: string, payload: any) => {\n * // Logs \"my_custom_event\" and { arbitraryField: \"someval\" }\n * console.log(eventName, payload);\n * }\n * }];\n *\n * await foo.invoke(\"hi\", { callbacks })\n * ```\n */\nexport async function dispatchCustomEvent(\n eventName: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload: any,\n config?: RunnableConfig\n) {\n const ensuredConfig = ensureConfig(config);\n await dispatchCustomEventWeb(eventName, payload, ensuredConfig);\n}\n"],"mappings":";;;;;;;AAOA,mCAAmC,yBACjC,IAAI,oBACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCD,eAAsBA,sBACpBC,WAEAC,SACAC,QACA;CACA,MAAM,gBAAgB,aAAa,OAAO;CAC1C,MAAMC,oBAAuB,WAAW,SAAS,cAAc;AAChE"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
1
|
const require_config = require('../../runnables/config.cjs');
|
|
3
2
|
|
|
4
3
|
//#region src/callbacks/dispatch/web.ts
|
|
5
|
-
var web_exports = {};
|
|
6
|
-
require_rolldown_runtime.__export(web_exports, { dispatchCustomEvent: () => dispatchCustomEvent });
|
|
7
4
|
/**
|
|
8
5
|
* Dispatch a custom event. Requires an explicit config object.
|
|
9
6
|
* @param name The name of the custom event.
|
|
@@ -53,10 +50,4 @@ async function dispatchCustomEvent(name, payload, config) {
|
|
|
53
50
|
|
|
54
51
|
//#endregion
|
|
55
52
|
exports.dispatchCustomEvent = dispatchCustomEvent;
|
|
56
|
-
Object.defineProperty(exports, 'web_exports', {
|
|
57
|
-
enumerable: true,
|
|
58
|
-
get: function () {
|
|
59
|
-
return web_exports;
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
53
|
//# sourceMappingURL=web.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.cjs","names":["name: string","payload: any","config?: RunnableConfig","getCallbackManagerForConfig"],"sources":["../../../src/callbacks/dispatch/web.ts"],"sourcesContent":["import {\n type RunnableConfig,\n getCallbackManagerForConfig,\n} from \"../../runnables/config.js\";\n\n/**\n * Dispatch a custom event. Requires an explicit config object.\n * @param name The name of the custom event.\n * @param payload The data for the custom event.\n * Ideally should be JSON serializable to avoid serialization issues downstream, but not enforced.\n * @param config Config object.\n *\n * @example\n * ```typescript\n * import { dispatchCustomEvent } from \"@langchain/core/callbacks/dispatch\";\n *\n * const foo = RunnableLambda.from(async (input: string, config?: RunnableConfig) => {\n * await dispatchCustomEvent(\n * \"my_custom_event\",\n * { arbitraryField: \"someval\" },\n * config\n * );\n * return input;\n * });\n *\n * const callbacks = [{\n * handleCustomEvent: (eventName: string, payload: any) => {\n * // Logs \"my_custom_event\" and { arbitraryField: \"someval\" }\n * console.log(eventName, payload);\n * }\n * }];\n *\n * await foo.invoke(\"hi\", { callbacks })\n * ```\n */\nexport async function dispatchCustomEvent(\n name: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload: any,\n config?: RunnableConfig\n) {\n if (config === undefined) {\n throw new Error(\n [\n \"Unable to dispatch a custom event without a parent run id.\",\n `\"dispatchCustomEvent\" can only be called from within an existing run (e.g.,`,\n \"inside a tool or a RunnableLambda).\",\n `\\n\\nIf you continue to see this error, please import from \"@langchain/core/callbacks/dispatch/web\"`,\n \"and explicitly pass in a config parameter.\",\n `\\n\\nOr, if you are calling this from a custom tool, ensure you're using the \"tool\" helper constructor as documented here:`,\n \"\\n |\",\n \"\\n └-> https://js.langchain.com/docs/how_to/custom_tools#tool-function\",\n \"\\n\",\n ].join(\" \")\n );\n }\n const callbackManager = await getCallbackManagerForConfig(config);\n const parentRunId = callbackManager?.getParentRunId();\n // We pass parent id as the current run id here intentionally since events dispatch\n // from within things like RunnableLambda\n if (callbackManager !== undefined && parentRunId !== undefined) {\n await callbackManager.handleCustomEvent?.(name, payload, parentRunId);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"web.cjs","names":["name: string","payload: any","config?: RunnableConfig","getCallbackManagerForConfig"],"sources":["../../../src/callbacks/dispatch/web.ts"],"sourcesContent":["import {\n type RunnableConfig,\n getCallbackManagerForConfig,\n} from \"../../runnables/config.js\";\n\n/**\n * Dispatch a custom event. Requires an explicit config object.\n * @param name The name of the custom event.\n * @param payload The data for the custom event.\n * Ideally should be JSON serializable to avoid serialization issues downstream, but not enforced.\n * @param config Config object.\n *\n * @example\n * ```typescript\n * import { dispatchCustomEvent } from \"@langchain/core/callbacks/dispatch\";\n *\n * const foo = RunnableLambda.from(async (input: string, config?: RunnableConfig) => {\n * await dispatchCustomEvent(\n * \"my_custom_event\",\n * { arbitraryField: \"someval\" },\n * config\n * );\n * return input;\n * });\n *\n * const callbacks = [{\n * handleCustomEvent: (eventName: string, payload: any) => {\n * // Logs \"my_custom_event\" and { arbitraryField: \"someval\" }\n * console.log(eventName, payload);\n * }\n * }];\n *\n * await foo.invoke(\"hi\", { callbacks })\n * ```\n */\nexport async function dispatchCustomEvent(\n name: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload: any,\n config?: RunnableConfig\n) {\n if (config === undefined) {\n throw new Error(\n [\n \"Unable to dispatch a custom event without a parent run id.\",\n `\"dispatchCustomEvent\" can only be called from within an existing run (e.g.,`,\n \"inside a tool or a RunnableLambda).\",\n `\\n\\nIf you continue to see this error, please import from \"@langchain/core/callbacks/dispatch/web\"`,\n \"and explicitly pass in a config parameter.\",\n `\\n\\nOr, if you are calling this from a custom tool, ensure you're using the \"tool\" helper constructor as documented here:`,\n \"\\n |\",\n \"\\n └-> https://js.langchain.com/docs/how_to/custom_tools#tool-function\",\n \"\\n\",\n ].join(\" \")\n );\n }\n const callbackManager = await getCallbackManagerForConfig(config);\n const parentRunId = callbackManager?.getParentRunId();\n // We pass parent id as the current run id here intentionally since events dispatch\n // from within things like RunnableLambda\n if (callbackManager !== undefined && parentRunId !== undefined) {\n await callbackManager.handleCustomEvent?.(name, payload, parentRunId);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,eAAsB,oBACpBA,MAEAC,SACAC,QACA;AACA,KAAI,WAAW,OACb,OAAM,IAAI,MACR;EACE;EACA,CAAC,2EAA2E,CAAC;EAC7E;EACA,CAAC,kGAAkG,CAAC;EACpG;EACA,CAAC,yHAAyH,CAAC;EAC3H;EACA;EACA;CACD,EAAC,KAAK,IAAI;CAGf,MAAM,kBAAkB,MAAMC,2CAA4B,OAAO;CACjE,MAAM,cAAc,iBAAiB,gBAAgB;AAGrD,KAAI,oBAAoB,UAAa,gBAAgB,QACnD,MAAM,gBAAgB,oBAAoB,MAAM,SAAS,YAAY;AAExE"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { __export } from "../../_virtual/rolldown_runtime.js";
|
|
2
1
|
import { getCallbackManagerForConfig } from "../../runnables/config.js";
|
|
3
2
|
|
|
4
3
|
//#region src/callbacks/dispatch/web.ts
|
|
5
|
-
var web_exports = {};
|
|
6
|
-
__export(web_exports, { dispatchCustomEvent: () => dispatchCustomEvent });
|
|
7
4
|
/**
|
|
8
5
|
* Dispatch a custom event. Requires an explicit config object.
|
|
9
6
|
* @param name The name of the custom event.
|
|
@@ -52,5 +49,5 @@ async function dispatchCustomEvent(name, payload, config) {
|
|
|
52
49
|
}
|
|
53
50
|
|
|
54
51
|
//#endregion
|
|
55
|
-
export { dispatchCustomEvent
|
|
52
|
+
export { dispatchCustomEvent };
|
|
56
53
|
//# sourceMappingURL=web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","names":["name: string","payload: any","config?: RunnableConfig"],"sources":["../../../src/callbacks/dispatch/web.ts"],"sourcesContent":["import {\n type RunnableConfig,\n getCallbackManagerForConfig,\n} from \"../../runnables/config.js\";\n\n/**\n * Dispatch a custom event. Requires an explicit config object.\n * @param name The name of the custom event.\n * @param payload The data for the custom event.\n * Ideally should be JSON serializable to avoid serialization issues downstream, but not enforced.\n * @param config Config object.\n *\n * @example\n * ```typescript\n * import { dispatchCustomEvent } from \"@langchain/core/callbacks/dispatch\";\n *\n * const foo = RunnableLambda.from(async (input: string, config?: RunnableConfig) => {\n * await dispatchCustomEvent(\n * \"my_custom_event\",\n * { arbitraryField: \"someval\" },\n * config\n * );\n * return input;\n * });\n *\n * const callbacks = [{\n * handleCustomEvent: (eventName: string, payload: any) => {\n * // Logs \"my_custom_event\" and { arbitraryField: \"someval\" }\n * console.log(eventName, payload);\n * }\n * }];\n *\n * await foo.invoke(\"hi\", { callbacks })\n * ```\n */\nexport async function dispatchCustomEvent(\n name: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload: any,\n config?: RunnableConfig\n) {\n if (config === undefined) {\n throw new Error(\n [\n \"Unable to dispatch a custom event without a parent run id.\",\n `\"dispatchCustomEvent\" can only be called from within an existing run (e.g.,`,\n \"inside a tool or a RunnableLambda).\",\n `\\n\\nIf you continue to see this error, please import from \"@langchain/core/callbacks/dispatch/web\"`,\n \"and explicitly pass in a config parameter.\",\n `\\n\\nOr, if you are calling this from a custom tool, ensure you're using the \"tool\" helper constructor as documented here:`,\n \"\\n |\",\n \"\\n └-> https://js.langchain.com/docs/how_to/custom_tools#tool-function\",\n \"\\n\",\n ].join(\" \")\n );\n }\n const callbackManager = await getCallbackManagerForConfig(config);\n const parentRunId = callbackManager?.getParentRunId();\n // We pass parent id as the current run id here intentionally since events dispatch\n // from within things like RunnableLambda\n if (callbackManager !== undefined && parentRunId !== undefined) {\n await callbackManager.handleCustomEvent?.(name, payload, parentRunId);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"web.js","names":["name: string","payload: any","config?: RunnableConfig"],"sources":["../../../src/callbacks/dispatch/web.ts"],"sourcesContent":["import {\n type RunnableConfig,\n getCallbackManagerForConfig,\n} from \"../../runnables/config.js\";\n\n/**\n * Dispatch a custom event. Requires an explicit config object.\n * @param name The name of the custom event.\n * @param payload The data for the custom event.\n * Ideally should be JSON serializable to avoid serialization issues downstream, but not enforced.\n * @param config Config object.\n *\n * @example\n * ```typescript\n * import { dispatchCustomEvent } from \"@langchain/core/callbacks/dispatch\";\n *\n * const foo = RunnableLambda.from(async (input: string, config?: RunnableConfig) => {\n * await dispatchCustomEvent(\n * \"my_custom_event\",\n * { arbitraryField: \"someval\" },\n * config\n * );\n * return input;\n * });\n *\n * const callbacks = [{\n * handleCustomEvent: (eventName: string, payload: any) => {\n * // Logs \"my_custom_event\" and { arbitraryField: \"someval\" }\n * console.log(eventName, payload);\n * }\n * }];\n *\n * await foo.invoke(\"hi\", { callbacks })\n * ```\n */\nexport async function dispatchCustomEvent(\n name: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload: any,\n config?: RunnableConfig\n) {\n if (config === undefined) {\n throw new Error(\n [\n \"Unable to dispatch a custom event without a parent run id.\",\n `\"dispatchCustomEvent\" can only be called from within an existing run (e.g.,`,\n \"inside a tool or a RunnableLambda).\",\n `\\n\\nIf you continue to see this error, please import from \"@langchain/core/callbacks/dispatch/web\"`,\n \"and explicitly pass in a config parameter.\",\n `\\n\\nOr, if you are calling this from a custom tool, ensure you're using the \"tool\" helper constructor as documented here:`,\n \"\\n |\",\n \"\\n └-> https://js.langchain.com/docs/how_to/custom_tools#tool-function\",\n \"\\n\",\n ].join(\" \")\n );\n }\n const callbackManager = await getCallbackManagerForConfig(config);\n const parentRunId = callbackManager?.getParentRunId();\n // We pass parent id as the current run id here intentionally since events dispatch\n // from within things like RunnableLambda\n if (callbackManager !== undefined && parentRunId !== undefined) {\n await callbackManager.handleCustomEvent?.(name, payload, parentRunId);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,eAAsB,oBACpBA,MAEAC,SACAC,QACA;AACA,KAAI,WAAW,OACb,OAAM,IAAI,MACR;EACE;EACA,CAAC,2EAA2E,CAAC;EAC7E;EACA,CAAC,kGAAkG,CAAC;EACpG;EACA,CAAC,yHAAyH,CAAC;EAC3H;EACA;EACA;CACD,EAAC,KAAK,IAAI;CAGf,MAAM,kBAAkB,MAAM,4BAA4B,OAAO;CACjE,MAAM,cAAc,iBAAiB,gBAAgB;AAGrD,KAAI,oBAAoB,UAAa,gBAAgB,QACnD,MAAM,gBAAgB,oBAAoB,MAAM,SAAS,YAAY;AAExE"}
|
package/dist/context.cjs
CHANGED
|
@@ -5,23 +5,10 @@ require('./singletons/index.cjs');
|
|
|
5
5
|
const node_async_hooks = require_rolldown_runtime.__toESM(require("node:async_hooks"));
|
|
6
6
|
|
|
7
7
|
//#region src/context.ts
|
|
8
|
-
var context_exports = {};
|
|
9
|
-
require_rolldown_runtime.__export(context_exports, {
|
|
10
|
-
foo: () => foo,
|
|
11
|
-
getContextVariable: () => require_context.getContextVariable,
|
|
12
|
-
registerConfigureHook: () => require_context.registerConfigureHook,
|
|
13
|
-
setContextVariable: () => require_context.setContextVariable
|
|
14
|
-
});
|
|
15
8
|
require_index.AsyncLocalStorageProviderSingleton.initializeGlobalInstance(new node_async_hooks.AsyncLocalStorage());
|
|
16
9
|
const foo = "bar";
|
|
17
10
|
|
|
18
11
|
//#endregion
|
|
19
|
-
Object.defineProperty(exports, 'context_exports', {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: function () {
|
|
22
|
-
return context_exports;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
12
|
exports.foo = foo;
|
|
26
13
|
exports.getContextVariable = require_context.getContextVariable;
|
|
27
14
|
exports.registerConfigureHook = require_context.registerConfigureHook;
|
package/dist/context.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.cjs","names":["AsyncLocalStorageProviderSingleton","AsyncLocalStorage"],"sources":["../src/context.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\n/**\n * This file exists as a convenient public entrypoint for functionality\n * related to context variables.\n *\n * Because it automatically initializes AsyncLocalStorage, internal\n * functionality SHOULD NEVER import from this file outside of tests.\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { AsyncLocalStorageProviderSingleton } from \"./singletons/index.js\";\nimport {\n getContextVariable,\n setContextVariable,\n type ConfigureHook,\n registerConfigureHook,\n} from \"./singletons/async_local_storage/context.js\";\n\nAsyncLocalStorageProviderSingleton.initializeGlobalInstance(\n new AsyncLocalStorage()\n);\n\nexport {\n getContextVariable,\n setContextVariable,\n registerConfigureHook,\n type ConfigureHook,\n};\n\nexport const foo = \"bar\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.cjs","names":["AsyncLocalStorageProviderSingleton","AsyncLocalStorage"],"sources":["../src/context.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\n/**\n * This file exists as a convenient public entrypoint for functionality\n * related to context variables.\n *\n * Because it automatically initializes AsyncLocalStorage, internal\n * functionality SHOULD NEVER import from this file outside of tests.\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { AsyncLocalStorageProviderSingleton } from \"./singletons/index.js\";\nimport {\n getContextVariable,\n setContextVariable,\n type ConfigureHook,\n registerConfigureHook,\n} from \"./singletons/async_local_storage/context.js\";\n\nAsyncLocalStorageProviderSingleton.initializeGlobalInstance(\n new AsyncLocalStorage()\n);\n\nexport {\n getContextVariable,\n setContextVariable,\n registerConfigureHook,\n type ConfigureHook,\n};\n\nexport const foo = \"bar\";\n"],"mappings":";;;;;;;AAmBAA,iDAAmC,yBACjC,IAAIC,qCACL;AASD,MAAa,MAAM"}
|
package/dist/context.js
CHANGED
|
@@ -1,20 +1,12 @@
|
|
|
1
|
-
import { __export } from "./_virtual/rolldown_runtime.js";
|
|
2
1
|
import { getContextVariable, registerConfigureHook, setContextVariable } from "./singletons/async_local_storage/context.js";
|
|
3
2
|
import { AsyncLocalStorageProviderSingleton } from "./singletons/async_local_storage/index.js";
|
|
4
3
|
import "./singletons/index.js";
|
|
5
4
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
6
5
|
|
|
7
6
|
//#region src/context.ts
|
|
8
|
-
var context_exports = {};
|
|
9
|
-
__export(context_exports, {
|
|
10
|
-
foo: () => foo,
|
|
11
|
-
getContextVariable: () => getContextVariable,
|
|
12
|
-
registerConfigureHook: () => registerConfigureHook,
|
|
13
|
-
setContextVariable: () => setContextVariable
|
|
14
|
-
});
|
|
15
7
|
AsyncLocalStorageProviderSingleton.initializeGlobalInstance(new AsyncLocalStorage());
|
|
16
8
|
const foo = "bar";
|
|
17
9
|
|
|
18
10
|
//#endregion
|
|
19
|
-
export {
|
|
11
|
+
export { foo, getContextVariable, registerConfigureHook, setContextVariable };
|
|
20
12
|
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../src/context.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\n/**\n * This file exists as a convenient public entrypoint for functionality\n * related to context variables.\n *\n * Because it automatically initializes AsyncLocalStorage, internal\n * functionality SHOULD NEVER import from this file outside of tests.\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { AsyncLocalStorageProviderSingleton } from \"./singletons/index.js\";\nimport {\n getContextVariable,\n setContextVariable,\n type ConfigureHook,\n registerConfigureHook,\n} from \"./singletons/async_local_storage/context.js\";\n\nAsyncLocalStorageProviderSingleton.initializeGlobalInstance(\n new AsyncLocalStorage()\n);\n\nexport {\n getContextVariable,\n setContextVariable,\n registerConfigureHook,\n type ConfigureHook,\n};\n\nexport const foo = \"bar\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../src/context.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\n/**\n * This file exists as a convenient public entrypoint for functionality\n * related to context variables.\n *\n * Because it automatically initializes AsyncLocalStorage, internal\n * functionality SHOULD NEVER import from this file outside of tests.\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { AsyncLocalStorageProviderSingleton } from \"./singletons/index.js\";\nimport {\n getContextVariable,\n setContextVariable,\n type ConfigureHook,\n registerConfigureHook,\n} from \"./singletons/async_local_storage/context.js\";\n\nAsyncLocalStorageProviderSingleton.initializeGlobalInstance(\n new AsyncLocalStorage()\n);\n\nexport {\n getContextVariable,\n setContextVariable,\n registerConfigureHook,\n type ConfigureHook,\n};\n\nexport const foo = \"bar\";\n"],"mappings":";;;;;;AAmBA,mCAAmC,yBACjC,IAAI,oBACL;AASD,MAAa,MAAM"}
|
package/dist/load/import_map.cjs
CHANGED
|
@@ -18,7 +18,6 @@ const require_utils_json_schema = require('../utils/json_schema.cjs');
|
|
|
18
18
|
const require_runnables_graph = require('../runnables/graph.cjs');
|
|
19
19
|
const require_messages_index = require('../messages/index.cjs');
|
|
20
20
|
const require_chat_history = require('../chat_history.cjs');
|
|
21
|
-
const require_context = require('../context.cjs');
|
|
22
21
|
const require_embeddings = require('../embeddings.cjs');
|
|
23
22
|
const require_index = require('../index.cjs');
|
|
24
23
|
const require_memory = require('../memory.cjs');
|
|
@@ -32,13 +31,11 @@ const require_document_loaders_base = require('../document_loaders/base.cjs');
|
|
|
32
31
|
const require_document_loaders_langsmith = require('../document_loaders/langsmith.cjs');
|
|
33
32
|
const require_documents_index = require('../documents/index.cjs');
|
|
34
33
|
const require_example_selectors_index = require('../example_selectors/index.cjs');
|
|
35
|
-
const require_indexing_index = require('../indexing/index.cjs');
|
|
36
34
|
const require_utils_tiktoken = require('../utils/tiktoken.cjs');
|
|
37
35
|
const require_language_models_base = require('../language_models/base.cjs');
|
|
38
36
|
const require_language_models_chat_models = require('../language_models/chat_models.cjs');
|
|
39
37
|
const require_language_models_llms = require('../language_models/llms.cjs');
|
|
40
|
-
const
|
|
41
|
-
const require_callbacks_dispatch_index = require('../callbacks/dispatch/index.cjs');
|
|
38
|
+
const require_indexing_index = require('../indexing/index.cjs');
|
|
42
39
|
const require_runnables_index = require('../runnables/index.cjs');
|
|
43
40
|
const require_utils_json_patch = require('../utils/json_patch.cjs');
|
|
44
41
|
const require_output_parsers_index = require('../output_parsers/index.cjs');
|
|
@@ -63,12 +60,9 @@ require_rolldown_runtime.__export(import_map_exports, {
|
|
|
63
60
|
agents: () => require_agents.agents_exports,
|
|
64
61
|
caches: () => require_caches_base.base_exports,
|
|
65
62
|
callbacks__base: () => require_callbacks_base.base_exports,
|
|
66
|
-
callbacks__dispatch: () => require_callbacks_dispatch_index.dispatch_exports,
|
|
67
|
-
callbacks__dispatch__web: () => require_callbacks_dispatch_web.web_exports,
|
|
68
63
|
callbacks__manager: () => require_callbacks_manager.manager_exports,
|
|
69
64
|
callbacks__promises: () => require_callbacks_promises.promises_exports,
|
|
70
65
|
chat_history: () => require_chat_history.chat_history_exports,
|
|
71
|
-
context: () => require_context.context_exports,
|
|
72
66
|
document_loaders__base: () => require_document_loaders_base.base_exports,
|
|
73
67
|
document_loaders__langsmith: () => require_document_loaders_langsmith.langsmith_exports,
|
|
74
68
|
documents: () => require_documents_index.documents_exports,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import_map.cjs","names":[],"sources":["../../src/load/import_map.ts"],"sourcesContent":["// Auto-generated by import-map plugin. Do not edit manually.\n\nexport * as index from \"../index.js\";\nexport * as agents from \"../agents.js\";\nexport * as caches from \"../caches/base.js\";\nexport * as callbacks__base from \"../callbacks/base.js\";\nexport * as
|
|
1
|
+
{"version":3,"file":"import_map.cjs","names":[],"sources":["../../src/load/import_map.ts"],"sourcesContent":["// Auto-generated by import-map plugin. Do not edit manually.\n\nexport * as index from \"../index.js\";\nexport * as agents from \"../agents.js\";\nexport * as caches from \"../caches/base.js\";\nexport * as callbacks__base from \"../callbacks/base.js\";\nexport * as callbacks__manager from \"../callbacks/manager.js\";\nexport * as callbacks__promises from \"../callbacks/promises.js\";\nexport * as chat_history from \"../chat_history.js\";\nexport * as documents from \"../documents/index.js\";\nexport * as document_loaders__base from \"../document_loaders/base.js\";\nexport * as document_loaders__langsmith from \"../document_loaders/langsmith.js\";\nexport * as embeddings from \"../embeddings.js\";\nexport * as example_selectors from \"../example_selectors/index.js\";\nexport * as indexing from \"../indexing/index.js\";\nexport * as language_models__base from \"../language_models/base.js\";\nexport * as language_models__chat_models from \"../language_models/chat_models.js\";\nexport * as language_models__llms from \"../language_models/llms.js\";\nexport * as load__serializable from \"../load/serializable.js\";\nexport * as memory from \"../memory.js\";\nexport * as messages from \"../messages/index.js\";\nexport * as messages__tool from \"../messages/tool.js\";\nexport * as output_parsers from \"../output_parsers/index.js\";\nexport * as output_parsers__openai_tools from \"../output_parsers/openai_tools/index.js\";\nexport * as output_parsers__openai_functions from \"../output_parsers/openai_functions/index.js\";\nexport * as outputs from \"../outputs.js\";\nexport * as prompts from \"../prompts/index.js\";\nexport * as prompt_values from \"../prompt_values.js\";\nexport * as runnables from \"../runnables/index.js\";\nexport * as runnables__graph from \"../runnables/graph.js\";\nexport * as retrievers from \"../retrievers/index.js\";\nexport * as retrievers__document_compressors from \"../retrievers/document_compressors/base.js\";\nexport * as singletons from \"../singletons/index.js\";\nexport * as stores from \"../stores.js\";\nexport * as structured_query from \"../structured_query/index.js\";\nexport * as tools from \"../tools/index.js\";\nexport * as tracers__base from \"../tracers/base.js\";\nexport * as tracers__console from \"../tracers/console.js\";\nexport * as tracers__log_stream from \"../tracers/log_stream.js\";\nexport * as tracers__run_collector from \"../tracers/run_collector.js\";\nexport * as tracers__tracer_langchain from \"../tracers/tracer_langchain.js\";\nexport * as types__stream from \"../types/stream.js\";\nexport * as utils__async_caller from \"../utils/async_caller.js\";\nexport * as utils__chunk_array from \"../utils/chunk_array.js\";\nexport * as utils__env from \"../utils/env.js\";\nexport * as utils__event_source_parse from \"../utils/event_source_parse.js\";\nexport * as utils__function_calling from \"../utils/function_calling.js\";\nexport * as utils__hash from \"../utils/hash.js\";\nexport * as utils__json_patch from \"../utils/json_patch.js\";\nexport * as utils__json_schema from \"../utils/json_schema.js\";\nexport * as utils__math from \"../utils/math.js\";\nexport * as utils__stream from \"../utils/stream.js\";\nexport * as utils__testing from \"../utils/testing/index.js\";\nexport * as utils__tiktoken from \"../utils/tiktoken.js\";\nexport * as utils__types from \"../utils/types/index.js\";\nexport * as vectorstores from \"../vectorstores.js\";\n"],"mappings":""}
|
package/dist/load/import_map.js
CHANGED
|
@@ -18,7 +18,6 @@ import { json_schema_exports } from "../utils/json_schema.js";
|
|
|
18
18
|
import { graph_exports } from "../runnables/graph.js";
|
|
19
19
|
import { messages_exports } from "../messages/index.js";
|
|
20
20
|
import { chat_history_exports } from "../chat_history.js";
|
|
21
|
-
import { context_exports } from "../context.js";
|
|
22
21
|
import { embeddings_exports } from "../embeddings.js";
|
|
23
22
|
import { src_exports } from "../index.js";
|
|
24
23
|
import { memory_exports } from "../memory.js";
|
|
@@ -32,13 +31,11 @@ import { base_exports as base_exports$3 } from "../document_loaders/base.js";
|
|
|
32
31
|
import { langsmith_exports } from "../document_loaders/langsmith.js";
|
|
33
32
|
import { documents_exports } from "../documents/index.js";
|
|
34
33
|
import { example_selectors_exports } from "../example_selectors/index.js";
|
|
35
|
-
import { indexing_exports } from "../indexing/index.js";
|
|
36
34
|
import { tiktoken_exports } from "../utils/tiktoken.js";
|
|
37
35
|
import { base_exports as base_exports$4 } from "../language_models/base.js";
|
|
38
36
|
import { chat_models_exports } from "../language_models/chat_models.js";
|
|
39
37
|
import { llms_exports } from "../language_models/llms.js";
|
|
40
|
-
import {
|
|
41
|
-
import { dispatch_exports } from "../callbacks/dispatch/index.js";
|
|
38
|
+
import { indexing_exports } from "../indexing/index.js";
|
|
42
39
|
import { runnables_exports } from "../runnables/index.js";
|
|
43
40
|
import { json_patch_exports } from "../utils/json_patch.js";
|
|
44
41
|
import { output_parsers_exports } from "../output_parsers/index.js";
|
|
@@ -63,12 +60,9 @@ __export(import_map_exports, {
|
|
|
63
60
|
agents: () => agents_exports,
|
|
64
61
|
caches: () => base_exports$2,
|
|
65
62
|
callbacks__base: () => base_exports,
|
|
66
|
-
callbacks__dispatch: () => dispatch_exports,
|
|
67
|
-
callbacks__dispatch__web: () => web_exports,
|
|
68
63
|
callbacks__manager: () => manager_exports,
|
|
69
64
|
callbacks__promises: () => promises_exports,
|
|
70
65
|
chat_history: () => chat_history_exports,
|
|
71
|
-
context: () => context_exports,
|
|
72
66
|
document_loaders__base: () => base_exports$3,
|
|
73
67
|
document_loaders__langsmith: () => langsmith_exports,
|
|
74
68
|
documents: () => documents_exports,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import_map.js","names":[],"sources":["../../src/load/import_map.ts"],"sourcesContent":["// Auto-generated by import-map plugin. Do not edit manually.\n\nexport * as index from \"../index.js\";\nexport * as agents from \"../agents.js\";\nexport * as caches from \"../caches/base.js\";\nexport * as callbacks__base from \"../callbacks/base.js\";\nexport * as
|
|
1
|
+
{"version":3,"file":"import_map.js","names":[],"sources":["../../src/load/import_map.ts"],"sourcesContent":["// Auto-generated by import-map plugin. Do not edit manually.\n\nexport * as index from \"../index.js\";\nexport * as agents from \"../agents.js\";\nexport * as caches from \"../caches/base.js\";\nexport * as callbacks__base from \"../callbacks/base.js\";\nexport * as callbacks__manager from \"../callbacks/manager.js\";\nexport * as callbacks__promises from \"../callbacks/promises.js\";\nexport * as chat_history from \"../chat_history.js\";\nexport * as documents from \"../documents/index.js\";\nexport * as document_loaders__base from \"../document_loaders/base.js\";\nexport * as document_loaders__langsmith from \"../document_loaders/langsmith.js\";\nexport * as embeddings from \"../embeddings.js\";\nexport * as example_selectors from \"../example_selectors/index.js\";\nexport * as indexing from \"../indexing/index.js\";\nexport * as language_models__base from \"../language_models/base.js\";\nexport * as language_models__chat_models from \"../language_models/chat_models.js\";\nexport * as language_models__llms from \"../language_models/llms.js\";\nexport * as load__serializable from \"../load/serializable.js\";\nexport * as memory from \"../memory.js\";\nexport * as messages from \"../messages/index.js\";\nexport * as messages__tool from \"../messages/tool.js\";\nexport * as output_parsers from \"../output_parsers/index.js\";\nexport * as output_parsers__openai_tools from \"../output_parsers/openai_tools/index.js\";\nexport * as output_parsers__openai_functions from \"../output_parsers/openai_functions/index.js\";\nexport * as outputs from \"../outputs.js\";\nexport * as prompts from \"../prompts/index.js\";\nexport * as prompt_values from \"../prompt_values.js\";\nexport * as runnables from \"../runnables/index.js\";\nexport * as runnables__graph from \"../runnables/graph.js\";\nexport * as retrievers from \"../retrievers/index.js\";\nexport * as retrievers__document_compressors from \"../retrievers/document_compressors/base.js\";\nexport * as singletons from \"../singletons/index.js\";\nexport * as stores from \"../stores.js\";\nexport * as structured_query from \"../structured_query/index.js\";\nexport * as tools from \"../tools/index.js\";\nexport * as tracers__base from \"../tracers/base.js\";\nexport * as tracers__console from \"../tracers/console.js\";\nexport * as tracers__log_stream from \"../tracers/log_stream.js\";\nexport * as tracers__run_collector from \"../tracers/run_collector.js\";\nexport * as tracers__tracer_langchain from \"../tracers/tracer_langchain.js\";\nexport * as types__stream from \"../types/stream.js\";\nexport * as utils__async_caller from \"../utils/async_caller.js\";\nexport * as utils__chunk_array from \"../utils/chunk_array.js\";\nexport * as utils__env from \"../utils/env.js\";\nexport * as utils__event_source_parse from \"../utils/event_source_parse.js\";\nexport * as utils__function_calling from \"../utils/function_calling.js\";\nexport * as utils__hash from \"../utils/hash.js\";\nexport * as utils__json_patch from \"../utils/json_patch.js\";\nexport * as utils__json_schema from \"../utils/json_schema.js\";\nexport * as utils__math from \"../utils/math.js\";\nexport * as utils__stream from \"../utils/stream.js\";\nexport * as utils__testing from \"../utils/testing/index.js\";\nexport * as utils__tiktoken from \"../utils/tiktoken.js\";\nexport * as utils__types from \"../utils/types/index.js\";\nexport * as vectorstores from \"../vectorstores.js\";\n"],"mappings":""}
|
package/dist/messages/ai.cjs
CHANGED
|
@@ -139,7 +139,7 @@ var AIMessageChunk = class extends require_base.BaseMessageChunk {
|
|
|
139
139
|
invalid_tool_calls: [],
|
|
140
140
|
tool_call_chunks: []
|
|
141
141
|
};
|
|
142
|
-
else if (fields.tool_call_chunks === void 0) initParams = {
|
|
142
|
+
else if (fields.tool_call_chunks === void 0 || fields.tool_call_chunks.length === 0) initParams = {
|
|
143
143
|
...fields,
|
|
144
144
|
tool_calls: fields.tool_calls ?? [],
|
|
145
145
|
invalid_tool_calls: [],
|
|
@@ -147,7 +147,8 @@ var AIMessageChunk = class extends require_base.BaseMessageChunk {
|
|
|
147
147
|
usage_metadata: fields.usage_metadata !== void 0 ? fields.usage_metadata : void 0
|
|
148
148
|
};
|
|
149
149
|
else {
|
|
150
|
-
const
|
|
150
|
+
const toolCallChunks = fields.tool_call_chunks ?? [];
|
|
151
|
+
const groupedToolCallChunks = toolCallChunks.reduce((acc, chunk) => {
|
|
151
152
|
const matchedChunkIndex = acc.findIndex(([match]) => {
|
|
152
153
|
if ("id" in chunk && chunk.id && "index" in chunk && chunk.index !== void 0) return chunk.id === match.id && chunk.index === match.index;
|
|
153
154
|
if ("id" in chunk && chunk.id) return chunk.id === match.id;
|
package/dist/messages/ai.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.cjs","names":["BaseMessage","fields: $InferMessageContent<TStructure, \"ai\"> | AIMessageFields<TStructure>","initParams: AIMessageFields<TStructure>","toolCalls","defaultToolCallParser","getTranslator","obj: unknown","x: BaseMessage","x: BaseMessageChunk","BaseMessageChunk","fields:\n | $InferMessageContent<TStructure, \"ai\">\n | AIMessageChunkFields<TStructure>","initParams: AIMessageChunkFields<TStructure>","toolCalls: ToolCall[]","invalidToolCalls: InvalidToolCall[]","parsedArgs: Record<string, unknown> | null","parsePartialJson","chunk: AIMessageChunk<TStructure>","combinedFields: AIMessageChunkFields","mergeContent","_mergeDicts","mergeResponseMetadata","_mergeLists","mergeUsageMetadata"],"sources":["../../src/messages/ai.ts"],"sourcesContent":["import { parsePartialJson } from \"../utils/json.js\";\nimport {\n BaseMessage,\n BaseMessageChunk,\n mergeContent,\n _mergeDicts,\n _mergeLists,\n BaseMessageFields,\n} from \"./base.js\";\nimport { getTranslator } from \"./block_translators/index.js\";\nimport { ContentBlock } from \"./content/index.js\";\nimport {\n $InferMessageContent,\n $InferMessageProperty,\n MessageStructure,\n} from \"./message.js\";\nimport { mergeResponseMetadata, mergeUsageMetadata } from \"./metadata.js\";\nimport {\n InvalidToolCall,\n ToolCall,\n ToolCallChunk,\n defaultToolCallParser,\n} from \"./tool.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface AIMessageFields<\n TStructure extends MessageStructure = MessageStructure\n> extends BaseMessageFields<TStructure, \"ai\"> {\n tool_calls?: ToolCall[];\n invalid_tool_calls?: InvalidToolCall[];\n usage_metadata?: $InferMessageProperty<TStructure, \"ai\", \"usage_metadata\">;\n}\n\nexport class AIMessage<TStructure extends MessageStructure = MessageStructure>\n extends BaseMessage<TStructure, \"ai\">\n implements AIMessageFields<TStructure>\n{\n readonly type = \"ai\" as const;\n\n tool_calls?: ToolCall[] = [];\n\n invalid_tool_calls?: InvalidToolCall[] = [];\n\n usage_metadata?: AIMessageFields<TStructure>[\"usage_metadata\"];\n\n get lc_aliases(): Record<string, string> {\n // exclude snake case conversion to pascal case\n return {\n ...super.lc_aliases,\n tool_calls: \"tool_calls\",\n invalid_tool_calls: \"invalid_tool_calls\",\n };\n }\n\n constructor(\n fields: $InferMessageContent<TStructure, \"ai\"> | AIMessageFields<TStructure>\n ) {\n let initParams: AIMessageFields<TStructure>;\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n initParams = {\n content: fields,\n tool_calls: [],\n invalid_tool_calls: [],\n additional_kwargs: {},\n };\n } else {\n initParams = fields;\n const rawToolCalls = initParams.additional_kwargs?.tool_calls;\n const toolCalls = initParams.tool_calls;\n if (\n !(rawToolCalls == null) &&\n rawToolCalls.length > 0 &&\n (toolCalls === undefined || toolCalls.length === 0)\n ) {\n console.warn(\n [\n \"New LangChain packages are available that more efficiently handle\",\n \"tool calling.\\n\\nPlease upgrade your packages to versions that set\",\n \"message tool calls. e.g., `pnpm install @langchain/anthropic`,\",\n \"pnpm install @langchain/openai`, etc.\",\n ].join(\" \")\n );\n }\n try {\n if (!(rawToolCalls == null) && toolCalls === undefined) {\n const [toolCalls, invalidToolCalls] =\n defaultToolCallParser(rawToolCalls);\n initParams.tool_calls = toolCalls ?? [];\n initParams.invalid_tool_calls = invalidToolCalls ?? [];\n } else {\n initParams.tool_calls = initParams.tool_calls ?? [];\n initParams.invalid_tool_calls = initParams.invalid_tool_calls ?? [];\n }\n } catch {\n // Do nothing if parsing fails\n initParams.tool_calls = [];\n initParams.invalid_tool_calls = [];\n }\n\n // Convert content to content blocks if output version is v1\n if (\n initParams.response_metadata !== undefined &&\n \"output_version\" in initParams.response_metadata &&\n initParams.response_metadata.output_version === \"v1\"\n ) {\n initParams.contentBlocks =\n initParams.content as Array<ContentBlock.Standard>;\n initParams.content = undefined;\n }\n\n if (initParams.contentBlocks !== undefined) {\n // Add constructor tool calls as content blocks\n initParams.contentBlocks.push(\n ...initParams.tool_calls.map((toolCall) => ({\n type: \"tool_call\" as const,\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n }))\n );\n // Add content block tool calls that aren't in the constructor tool calls\n const missingToolCalls = initParams.contentBlocks\n .filter<ContentBlock.Tools.ToolCall>(\n (block): block is ContentBlock.Tools.ToolCall =>\n block.type === \"tool_call\"\n )\n .filter(\n (block) =>\n !initParams.tool_calls?.some(\n (toolCall) =>\n toolCall.id === block.id && toolCall.name === block.name\n )\n );\n if (missingToolCalls.length > 0) {\n initParams.tool_calls = missingToolCalls.map((block) => ({\n type: \"tool_call\" as const,\n id: block.id!,\n name: block.name,\n args: block.args as Record<string, unknown>,\n }));\n }\n }\n }\n // Sadly, TypeScript only allows super() calls at root if the class has\n // properties with initializers, so we have to check types twice.\n super(initParams);\n if (typeof initParams !== \"string\") {\n this.tool_calls = initParams.tool_calls ?? this.tool_calls;\n this.invalid_tool_calls =\n initParams.invalid_tool_calls ?? this.invalid_tool_calls;\n }\n this.usage_metadata = initParams.usage_metadata;\n }\n\n static lc_name() {\n return \"AIMessage\";\n }\n\n get contentBlocks(): Array<ContentBlock.Standard> {\n if (\n this.response_metadata &&\n \"output_version\" in this.response_metadata &&\n this.response_metadata.output_version === \"v1\"\n ) {\n return this.content as Array<ContentBlock.Standard>;\n }\n\n if (\n this.response_metadata &&\n \"model_provider\" in this.response_metadata &&\n typeof this.response_metadata.model_provider === \"string\"\n ) {\n const translator = getTranslator(this.response_metadata.model_provider);\n if (translator) {\n return translator.translateContent(this);\n }\n }\n\n const blocks = super.contentBlocks;\n\n if (this.tool_calls) {\n const missingToolCalls = this.tool_calls.filter(\n (block) =>\n !blocks.some((b) => b.id === block.id && b.name === block.name)\n );\n blocks.push(\n ...missingToolCalls.map((block) => ({\n ...block,\n type: \"tool_call\" as const,\n id: block.id,\n name: block.name,\n args: block.args,\n }))\n );\n }\n\n return blocks;\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n tool_calls: this.tool_calls,\n invalid_tool_calls: this.invalid_tool_calls,\n usage_metadata: this.usage_metadata,\n };\n }\n\n static isInstance(obj: unknown): obj is AIMessage {\n return super.isInstance(obj) && obj.type === \"ai\";\n }\n}\n\n/**\n * @deprecated Use {@link AIMessage.isInstance} instead\n */\nexport function isAIMessage<TStructure extends MessageStructure>(\n x: BaseMessage\n): x is AIMessage<TStructure> {\n return x._getType() === \"ai\";\n}\n\n/**\n * @deprecated Use {@link AIMessageChunk.isInstance} instead\n */\nexport function isAIMessageChunk<TStructure extends MessageStructure>(\n x: BaseMessageChunk\n): x is AIMessageChunk<TStructure> {\n return x._getType() === \"ai\";\n}\n\nexport type AIMessageChunkFields<\n TStructure extends MessageStructure = MessageStructure\n> = AIMessageFields<TStructure> & {\n tool_call_chunks?: ToolCallChunk[];\n};\n\n/**\n * Represents a chunk of an AI message, which can be concatenated with\n * other AI message chunks.\n */\nexport class AIMessageChunk<\n TStructure extends MessageStructure = MessageStructure\n >\n extends BaseMessageChunk<TStructure, \"ai\">\n implements AIMessage<TStructure>, AIMessageChunkFields<TStructure>\n{\n readonly type = \"ai\" as const;\n\n tool_calls?: ToolCall[] = [];\n\n invalid_tool_calls?: InvalidToolCall[] = [];\n\n tool_call_chunks?: ToolCallChunk[] = [];\n\n usage_metadata?: AIMessageChunkFields<TStructure>[\"usage_metadata\"];\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"ai\">\n | AIMessageChunkFields<TStructure>\n ) {\n let initParams: AIMessageChunkFields<TStructure>;\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n initParams = {\n content: fields,\n tool_calls: [],\n invalid_tool_calls: [],\n tool_call_chunks: [],\n };\n } else if (fields.tool_call_chunks === undefined) {\n initParams = {\n ...fields,\n tool_calls: fields.tool_calls ?? [],\n invalid_tool_calls: [],\n tool_call_chunks: [],\n usage_metadata:\n fields.usage_metadata !== undefined\n ? fields.usage_metadata\n : undefined,\n };\n } else {\n const groupedToolCallChunks = fields.tool_call_chunks.reduce(\n (acc, chunk) => {\n const matchedChunkIndex = acc.findIndex(([match]) => {\n // If chunk has an id and index, match if both are present\n if (\n \"id\" in chunk &&\n chunk.id &&\n \"index\" in chunk &&\n chunk.index !== undefined\n ) {\n return chunk.id === match.id && chunk.index === match.index;\n }\n // If chunk has an id, we match on id\n if (\"id\" in chunk && chunk.id) {\n return chunk.id === match.id;\n }\n // If chunk has an index, we match on index\n if (\"index\" in chunk && chunk.index !== undefined) {\n return chunk.index === match.index;\n }\n return false;\n });\n if (matchedChunkIndex !== -1) {\n acc[matchedChunkIndex].push(chunk);\n } else {\n acc.push([chunk]);\n }\n return acc;\n },\n [] as ToolCallChunk[][]\n );\n\n const toolCalls: ToolCall[] = [];\n const invalidToolCalls: InvalidToolCall[] = [];\n for (const chunks of groupedToolCallChunks) {\n let parsedArgs: Record<string, unknown> | null = null;\n const name = chunks[0]?.name ?? \"\";\n const joinedArgs = chunks.map((c) => c.args || \"\").join(\"\");\n const argsStr = joinedArgs.length ? joinedArgs : \"{}\";\n const id = chunks[0]?.id;\n try {\n parsedArgs = parsePartialJson(argsStr);\n if (\n !id ||\n parsedArgs === null ||\n typeof parsedArgs !== \"object\" ||\n Array.isArray(parsedArgs)\n ) {\n throw new Error(\"Malformed tool call chunk args.\");\n }\n toolCalls.push({\n name,\n args: parsedArgs,\n id,\n type: \"tool_call\",\n });\n } catch {\n invalidToolCalls.push({\n name,\n args: argsStr,\n id,\n error: \"Malformed args.\",\n type: \"invalid_tool_call\",\n });\n }\n }\n initParams = {\n ...fields,\n tool_calls: toolCalls,\n invalid_tool_calls: invalidToolCalls,\n usage_metadata:\n fields.usage_metadata !== undefined\n ? fields.usage_metadata\n : undefined,\n };\n }\n // Sadly, TypeScript only allows super() calls at root if the class has\n // properties with initializers, so we have to check types twice.\n super(initParams);\n this.tool_call_chunks =\n initParams.tool_call_chunks ?? this.tool_call_chunks;\n this.tool_calls = initParams.tool_calls ?? this.tool_calls;\n this.invalid_tool_calls =\n initParams.invalid_tool_calls ?? this.invalid_tool_calls;\n this.usage_metadata = initParams.usage_metadata;\n }\n\n get lc_aliases(): Record<string, string> {\n // exclude snake case conversion to pascal case\n return {\n ...super.lc_aliases,\n tool_calls: \"tool_calls\",\n invalid_tool_calls: \"invalid_tool_calls\",\n tool_call_chunks: \"tool_call_chunks\",\n };\n }\n\n static lc_name() {\n return \"AIMessageChunk\";\n }\n\n get contentBlocks(): Array<ContentBlock.Standard> {\n if (\n this.response_metadata &&\n \"output_version\" in this.response_metadata &&\n this.response_metadata.output_version === \"v1\"\n ) {\n return this.content as Array<ContentBlock.Standard>;\n }\n\n if (\n this.response_metadata &&\n \"model_provider\" in this.response_metadata &&\n typeof this.response_metadata.model_provider === \"string\"\n ) {\n const translator = getTranslator(this.response_metadata.model_provider);\n if (translator) {\n return translator.translateContent(this);\n }\n }\n\n const blocks = super.contentBlocks;\n\n if (this.tool_calls) {\n if (typeof this.content !== \"string\") {\n const contentToolCalls = this.content\n .filter((block) => block.type === \"tool_call\")\n .map((block) => block.id);\n for (const toolCall of this.tool_calls) {\n if (toolCall.id && !contentToolCalls.includes(toolCall.id)) {\n blocks.push({\n ...toolCall,\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n }\n }\n }\n\n return blocks;\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n tool_calls: this.tool_calls,\n tool_call_chunks: this.tool_call_chunks,\n invalid_tool_calls: this.invalid_tool_calls,\n usage_metadata: this.usage_metadata,\n };\n }\n\n concat(chunk: AIMessageChunk<TStructure>) {\n const combinedFields: AIMessageChunkFields = {\n content: mergeContent(this.content, chunk.content),\n additional_kwargs: _mergeDicts(\n this.additional_kwargs,\n chunk.additional_kwargs\n ),\n response_metadata: mergeResponseMetadata(\n this.response_metadata,\n chunk.response_metadata\n ),\n tool_call_chunks: [],\n id: this.id ?? chunk.id,\n };\n if (\n this.tool_call_chunks !== undefined ||\n chunk.tool_call_chunks !== undefined\n ) {\n const rawToolCalls = _mergeLists(\n this.tool_call_chunks as ContentBlock.Tools.ToolCallChunk[],\n chunk.tool_call_chunks as ContentBlock.Tools.ToolCallChunk[]\n );\n if (rawToolCalls !== undefined && rawToolCalls.length > 0) {\n combinedFields.tool_call_chunks = rawToolCalls;\n }\n }\n if (\n this.usage_metadata !== undefined ||\n chunk.usage_metadata !== undefined\n ) {\n combinedFields.usage_metadata = mergeUsageMetadata(\n this.usage_metadata,\n chunk.usage_metadata\n );\n }\n const Cls = this.constructor as Constructor<this>;\n return new Cls(combinedFields);\n }\n\n static isInstance(obj: unknown): obj is AIMessageChunk {\n return super.isInstance(obj) && obj.type === \"ai\";\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai.cjs","names":["BaseMessage","fields: $InferMessageContent<TStructure, \"ai\"> | AIMessageFields<TStructure>","initParams: AIMessageFields<TStructure>","toolCalls","defaultToolCallParser","getTranslator","obj: unknown","x: BaseMessage","x: BaseMessageChunk","BaseMessageChunk","fields:\n | $InferMessageContent<TStructure, \"ai\">\n | AIMessageChunkFields<TStructure>","initParams: AIMessageChunkFields<TStructure>","toolCalls: ToolCall[]","invalidToolCalls: InvalidToolCall[]","parsedArgs: Record<string, unknown> | null","parsePartialJson","chunk: AIMessageChunk<TStructure>","combinedFields: AIMessageChunkFields","mergeContent","_mergeDicts","mergeResponseMetadata","_mergeLists","mergeUsageMetadata"],"sources":["../../src/messages/ai.ts"],"sourcesContent":["import { parsePartialJson } from \"../utils/json.js\";\nimport {\n BaseMessage,\n BaseMessageChunk,\n mergeContent,\n _mergeDicts,\n _mergeLists,\n BaseMessageFields,\n} from \"./base.js\";\nimport { getTranslator } from \"./block_translators/index.js\";\nimport { ContentBlock } from \"./content/index.js\";\nimport {\n $InferMessageContent,\n $InferMessageProperty,\n MessageStructure,\n} from \"./message.js\";\nimport { mergeResponseMetadata, mergeUsageMetadata } from \"./metadata.js\";\nimport {\n InvalidToolCall,\n ToolCall,\n ToolCallChunk,\n defaultToolCallParser,\n} from \"./tool.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface AIMessageFields<\n TStructure extends MessageStructure = MessageStructure\n> extends BaseMessageFields<TStructure, \"ai\"> {\n tool_calls?: ToolCall[];\n invalid_tool_calls?: InvalidToolCall[];\n usage_metadata?: $InferMessageProperty<TStructure, \"ai\", \"usage_metadata\">;\n}\n\nexport class AIMessage<TStructure extends MessageStructure = MessageStructure>\n extends BaseMessage<TStructure, \"ai\">\n implements AIMessageFields<TStructure>\n{\n readonly type = \"ai\" as const;\n\n tool_calls?: ToolCall[] = [];\n\n invalid_tool_calls?: InvalidToolCall[] = [];\n\n usage_metadata?: AIMessageFields<TStructure>[\"usage_metadata\"];\n\n get lc_aliases(): Record<string, string> {\n // exclude snake case conversion to pascal case\n return {\n ...super.lc_aliases,\n tool_calls: \"tool_calls\",\n invalid_tool_calls: \"invalid_tool_calls\",\n };\n }\n\n constructor(\n fields: $InferMessageContent<TStructure, \"ai\"> | AIMessageFields<TStructure>\n ) {\n let initParams: AIMessageFields<TStructure>;\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n initParams = {\n content: fields,\n tool_calls: [],\n invalid_tool_calls: [],\n additional_kwargs: {},\n };\n } else {\n initParams = fields;\n const rawToolCalls = initParams.additional_kwargs?.tool_calls;\n const toolCalls = initParams.tool_calls;\n if (\n !(rawToolCalls == null) &&\n rawToolCalls.length > 0 &&\n (toolCalls === undefined || toolCalls.length === 0)\n ) {\n console.warn(\n [\n \"New LangChain packages are available that more efficiently handle\",\n \"tool calling.\\n\\nPlease upgrade your packages to versions that set\",\n \"message tool calls. e.g., `pnpm install @langchain/anthropic`,\",\n \"pnpm install @langchain/openai`, etc.\",\n ].join(\" \")\n );\n }\n try {\n if (!(rawToolCalls == null) && toolCalls === undefined) {\n const [toolCalls, invalidToolCalls] =\n defaultToolCallParser(rawToolCalls);\n initParams.tool_calls = toolCalls ?? [];\n initParams.invalid_tool_calls = invalidToolCalls ?? [];\n } else {\n initParams.tool_calls = initParams.tool_calls ?? [];\n initParams.invalid_tool_calls = initParams.invalid_tool_calls ?? [];\n }\n } catch {\n // Do nothing if parsing fails\n initParams.tool_calls = [];\n initParams.invalid_tool_calls = [];\n }\n\n // Convert content to content blocks if output version is v1\n if (\n initParams.response_metadata !== undefined &&\n \"output_version\" in initParams.response_metadata &&\n initParams.response_metadata.output_version === \"v1\"\n ) {\n initParams.contentBlocks =\n initParams.content as Array<ContentBlock.Standard>;\n initParams.content = undefined;\n }\n\n if (initParams.contentBlocks !== undefined) {\n // Add constructor tool calls as content blocks\n initParams.contentBlocks.push(\n ...initParams.tool_calls.map((toolCall) => ({\n type: \"tool_call\" as const,\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n }))\n );\n // Add content block tool calls that aren't in the constructor tool calls\n const missingToolCalls = initParams.contentBlocks\n .filter<ContentBlock.Tools.ToolCall>(\n (block): block is ContentBlock.Tools.ToolCall =>\n block.type === \"tool_call\"\n )\n .filter(\n (block) =>\n !initParams.tool_calls?.some(\n (toolCall) =>\n toolCall.id === block.id && toolCall.name === block.name\n )\n );\n if (missingToolCalls.length > 0) {\n initParams.tool_calls = missingToolCalls.map((block) => ({\n type: \"tool_call\" as const,\n id: block.id!,\n name: block.name,\n args: block.args as Record<string, unknown>,\n }));\n }\n }\n }\n // Sadly, TypeScript only allows super() calls at root if the class has\n // properties with initializers, so we have to check types twice.\n super(initParams);\n if (typeof initParams !== \"string\") {\n this.tool_calls = initParams.tool_calls ?? this.tool_calls;\n this.invalid_tool_calls =\n initParams.invalid_tool_calls ?? this.invalid_tool_calls;\n }\n this.usage_metadata = initParams.usage_metadata;\n }\n\n static lc_name() {\n return \"AIMessage\";\n }\n\n get contentBlocks(): Array<ContentBlock.Standard> {\n if (\n this.response_metadata &&\n \"output_version\" in this.response_metadata &&\n this.response_metadata.output_version === \"v1\"\n ) {\n return this.content as Array<ContentBlock.Standard>;\n }\n\n if (\n this.response_metadata &&\n \"model_provider\" in this.response_metadata &&\n typeof this.response_metadata.model_provider === \"string\"\n ) {\n const translator = getTranslator(this.response_metadata.model_provider);\n if (translator) {\n return translator.translateContent(this);\n }\n }\n\n const blocks = super.contentBlocks;\n\n if (this.tool_calls) {\n const missingToolCalls = this.tool_calls.filter(\n (block) =>\n !blocks.some((b) => b.id === block.id && b.name === block.name)\n );\n blocks.push(\n ...missingToolCalls.map((block) => ({\n ...block,\n type: \"tool_call\" as const,\n id: block.id,\n name: block.name,\n args: block.args,\n }))\n );\n }\n\n return blocks;\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n tool_calls: this.tool_calls,\n invalid_tool_calls: this.invalid_tool_calls,\n usage_metadata: this.usage_metadata,\n };\n }\n\n static isInstance(obj: unknown): obj is AIMessage {\n return super.isInstance(obj) && obj.type === \"ai\";\n }\n}\n\n/**\n * @deprecated Use {@link AIMessage.isInstance} instead\n */\nexport function isAIMessage<TStructure extends MessageStructure>(\n x: BaseMessage\n): x is AIMessage<TStructure> {\n return x._getType() === \"ai\";\n}\n\n/**\n * @deprecated Use {@link AIMessageChunk.isInstance} instead\n */\nexport function isAIMessageChunk<TStructure extends MessageStructure>(\n x: BaseMessageChunk\n): x is AIMessageChunk<TStructure> {\n return x._getType() === \"ai\";\n}\n\nexport type AIMessageChunkFields<\n TStructure extends MessageStructure = MessageStructure\n> = AIMessageFields<TStructure> & {\n tool_call_chunks?: ToolCallChunk[];\n};\n\n/**\n * Represents a chunk of an AI message, which can be concatenated with\n * other AI message chunks.\n */\nexport class AIMessageChunk<\n TStructure extends MessageStructure = MessageStructure\n >\n extends BaseMessageChunk<TStructure, \"ai\">\n implements AIMessage<TStructure>, AIMessageChunkFields<TStructure>\n{\n readonly type = \"ai\" as const;\n\n tool_calls?: ToolCall[] = [];\n\n invalid_tool_calls?: InvalidToolCall[] = [];\n\n tool_call_chunks?: ToolCallChunk[] = [];\n\n usage_metadata?: AIMessageChunkFields<TStructure>[\"usage_metadata\"];\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"ai\">\n | AIMessageChunkFields<TStructure>\n ) {\n let initParams: AIMessageChunkFields<TStructure>;\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n initParams = {\n content: fields,\n tool_calls: [],\n invalid_tool_calls: [],\n tool_call_chunks: [],\n };\n } else if (\n fields.tool_call_chunks === undefined ||\n fields.tool_call_chunks.length === 0\n ) {\n initParams = {\n ...fields,\n tool_calls: fields.tool_calls ?? [],\n invalid_tool_calls: [],\n tool_call_chunks: [],\n usage_metadata:\n fields.usage_metadata !== undefined\n ? fields.usage_metadata\n : undefined,\n };\n } else {\n const toolCallChunks = fields.tool_call_chunks ?? [];\n const groupedToolCallChunks = toolCallChunks.reduce((acc, chunk) => {\n const matchedChunkIndex = acc.findIndex(([match]) => {\n // If chunk has an id and index, match if both are present\n if (\n \"id\" in chunk &&\n chunk.id &&\n \"index\" in chunk &&\n chunk.index !== undefined\n ) {\n return chunk.id === match.id && chunk.index === match.index;\n }\n // If chunk has an id, we match on id\n if (\"id\" in chunk && chunk.id) {\n return chunk.id === match.id;\n }\n // If chunk has an index, we match on index\n if (\"index\" in chunk && chunk.index !== undefined) {\n return chunk.index === match.index;\n }\n return false;\n });\n if (matchedChunkIndex !== -1) {\n acc[matchedChunkIndex].push(chunk);\n } else {\n acc.push([chunk]);\n }\n return acc;\n }, [] as ToolCallChunk[][]);\n\n const toolCalls: ToolCall[] = [];\n const invalidToolCalls: InvalidToolCall[] = [];\n for (const chunks of groupedToolCallChunks) {\n let parsedArgs: Record<string, unknown> | null = null;\n const name = chunks[0]?.name ?? \"\";\n const joinedArgs = chunks.map((c) => c.args || \"\").join(\"\");\n const argsStr = joinedArgs.length ? joinedArgs : \"{}\";\n const id = chunks[0]?.id;\n try {\n parsedArgs = parsePartialJson(argsStr);\n if (\n !id ||\n parsedArgs === null ||\n typeof parsedArgs !== \"object\" ||\n Array.isArray(parsedArgs)\n ) {\n throw new Error(\"Malformed tool call chunk args.\");\n }\n toolCalls.push({\n name,\n args: parsedArgs,\n id,\n type: \"tool_call\",\n });\n } catch {\n invalidToolCalls.push({\n name,\n args: argsStr,\n id,\n error: \"Malformed args.\",\n type: \"invalid_tool_call\",\n });\n }\n }\n initParams = {\n ...fields,\n tool_calls: toolCalls,\n invalid_tool_calls: invalidToolCalls,\n usage_metadata:\n fields.usage_metadata !== undefined\n ? fields.usage_metadata\n : undefined,\n };\n }\n // Sadly, TypeScript only allows super() calls at root if the class has\n // properties with initializers, so we have to check types twice.\n super(initParams);\n this.tool_call_chunks =\n initParams.tool_call_chunks ?? this.tool_call_chunks;\n this.tool_calls = initParams.tool_calls ?? this.tool_calls;\n this.invalid_tool_calls =\n initParams.invalid_tool_calls ?? this.invalid_tool_calls;\n this.usage_metadata = initParams.usage_metadata;\n }\n\n get lc_aliases(): Record<string, string> {\n // exclude snake case conversion to pascal case\n return {\n ...super.lc_aliases,\n tool_calls: \"tool_calls\",\n invalid_tool_calls: \"invalid_tool_calls\",\n tool_call_chunks: \"tool_call_chunks\",\n };\n }\n\n static lc_name() {\n return \"AIMessageChunk\";\n }\n\n get contentBlocks(): Array<ContentBlock.Standard> {\n if (\n this.response_metadata &&\n \"output_version\" in this.response_metadata &&\n this.response_metadata.output_version === \"v1\"\n ) {\n return this.content as Array<ContentBlock.Standard>;\n }\n\n if (\n this.response_metadata &&\n \"model_provider\" in this.response_metadata &&\n typeof this.response_metadata.model_provider === \"string\"\n ) {\n const translator = getTranslator(this.response_metadata.model_provider);\n if (translator) {\n return translator.translateContent(this);\n }\n }\n\n const blocks = super.contentBlocks;\n\n if (this.tool_calls) {\n if (typeof this.content !== \"string\") {\n const contentToolCalls = this.content\n .filter((block) => block.type === \"tool_call\")\n .map((block) => block.id);\n for (const toolCall of this.tool_calls) {\n if (toolCall.id && !contentToolCalls.includes(toolCall.id)) {\n blocks.push({\n ...toolCall,\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n }\n }\n }\n\n return blocks;\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n tool_calls: this.tool_calls,\n tool_call_chunks: this.tool_call_chunks,\n invalid_tool_calls: this.invalid_tool_calls,\n usage_metadata: this.usage_metadata,\n };\n }\n\n concat(chunk: AIMessageChunk<TStructure>) {\n const combinedFields: AIMessageChunkFields = {\n content: mergeContent(this.content, chunk.content),\n additional_kwargs: _mergeDicts(\n this.additional_kwargs,\n chunk.additional_kwargs\n ),\n response_metadata: mergeResponseMetadata(\n this.response_metadata,\n chunk.response_metadata\n ),\n tool_call_chunks: [],\n id: this.id ?? chunk.id,\n };\n if (\n this.tool_call_chunks !== undefined ||\n chunk.tool_call_chunks !== undefined\n ) {\n const rawToolCalls = _mergeLists(\n this.tool_call_chunks as ContentBlock.Tools.ToolCallChunk[],\n chunk.tool_call_chunks as ContentBlock.Tools.ToolCallChunk[]\n );\n if (rawToolCalls !== undefined && rawToolCalls.length > 0) {\n combinedFields.tool_call_chunks = rawToolCalls;\n }\n }\n if (\n this.usage_metadata !== undefined ||\n chunk.usage_metadata !== undefined\n ) {\n combinedFields.usage_metadata = mergeUsageMetadata(\n this.usage_metadata,\n chunk.usage_metadata\n );\n }\n const Cls = this.constructor as Constructor<this>;\n return new Cls(combinedFields);\n }\n\n static isInstance(obj: unknown): obj is AIMessageChunk {\n return super.isInstance(obj) && obj.type === \"ai\";\n }\n}\n"],"mappings":"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"}
|
package/dist/messages/ai.js
CHANGED
|
@@ -139,7 +139,7 @@ var AIMessageChunk = class extends BaseMessageChunk {
|
|
|
139
139
|
invalid_tool_calls: [],
|
|
140
140
|
tool_call_chunks: []
|
|
141
141
|
};
|
|
142
|
-
else if (fields.tool_call_chunks === void 0) initParams = {
|
|
142
|
+
else if (fields.tool_call_chunks === void 0 || fields.tool_call_chunks.length === 0) initParams = {
|
|
143
143
|
...fields,
|
|
144
144
|
tool_calls: fields.tool_calls ?? [],
|
|
145
145
|
invalid_tool_calls: [],
|
|
@@ -147,7 +147,8 @@ var AIMessageChunk = class extends BaseMessageChunk {
|
|
|
147
147
|
usage_metadata: fields.usage_metadata !== void 0 ? fields.usage_metadata : void 0
|
|
148
148
|
};
|
|
149
149
|
else {
|
|
150
|
-
const
|
|
150
|
+
const toolCallChunks = fields.tool_call_chunks ?? [];
|
|
151
|
+
const groupedToolCallChunks = toolCallChunks.reduce((acc, chunk) => {
|
|
151
152
|
const matchedChunkIndex = acc.findIndex(([match]) => {
|
|
152
153
|
if ("id" in chunk && chunk.id && "index" in chunk && chunk.index !== void 0) return chunk.id === match.id && chunk.index === match.index;
|
|
153
154
|
if ("id" in chunk && chunk.id) return chunk.id === match.id;
|