langchain 1.5.3 → 1.5.5
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 +12 -0
- package/dist/agents/ReactAgent.cjs +6 -6
- package/dist/agents/ReactAgent.cjs.map +1 -1
- package/dist/agents/ReactAgent.d.cts +1 -1
- package/dist/agents/ReactAgent.d.cts.map +1 -1
- package/dist/agents/ReactAgent.d.ts +1 -1
- package/dist/agents/ReactAgent.d.ts.map +1 -1
- package/dist/agents/ReactAgent.js +6 -5
- package/dist/agents/ReactAgent.js.map +1 -1
- package/dist/agents/RunnableCallable.cjs +0 -1
- package/dist/agents/RunnableCallable.cjs.map +1 -1
- package/dist/agents/RunnableCallable.js.map +1 -1
- package/dist/agents/annotation.cjs +0 -1
- package/dist/agents/annotation.cjs.map +1 -1
- package/dist/agents/annotation.js.map +1 -1
- package/dist/agents/constants.d.cts +1 -1
- package/dist/agents/constants.d.cts.map +1 -1
- package/dist/agents/constants.d.ts +1 -1
- package/dist/agents/constants.d.ts.map +1 -1
- package/dist/agents/errors.cjs +0 -1
- package/dist/agents/errors.cjs.map +1 -1
- package/dist/agents/errors.d.cts +0 -1
- package/dist/agents/errors.d.cts.map +1 -1
- package/dist/agents/errors.d.ts +0 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/errors.js.map +1 -1
- package/dist/agents/index.cjs +21 -7
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +2 -2
- package/dist/agents/index.d.cts.map +1 -1
- package/dist/agents/index.d.ts +2 -2
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +8 -8
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/middleware/constants.cjs +0 -1
- package/dist/agents/middleware/constants.cjs.map +1 -1
- package/dist/agents/middleware/constants.js.map +1 -1
- package/dist/agents/middleware/contextEditing.cjs +0 -1
- package/dist/agents/middleware/contextEditing.cjs.map +1 -1
- package/dist/agents/middleware/contextEditing.d.cts +1 -3
- package/dist/agents/middleware/contextEditing.d.cts.map +1 -1
- package/dist/agents/middleware/contextEditing.d.ts +1 -3
- package/dist/agents/middleware/contextEditing.d.ts.map +1 -1
- package/dist/agents/middleware/contextEditing.js.map +1 -1
- package/dist/agents/middleware/dynamicSystemPrompt.cjs +0 -1
- package/dist/agents/middleware/dynamicSystemPrompt.cjs.map +1 -1
- package/dist/agents/middleware/dynamicSystemPrompt.d.cts +1 -3
- package/dist/agents/middleware/dynamicSystemPrompt.d.cts.map +1 -1
- package/dist/agents/middleware/dynamicSystemPrompt.d.ts +1 -3
- package/dist/agents/middleware/dynamicSystemPrompt.d.ts.map +1 -1
- package/dist/agents/middleware/dynamicSystemPrompt.js.map +1 -1
- package/dist/agents/middleware/error.cjs +0 -1
- package/dist/agents/middleware/error.cjs.map +1 -1
- package/dist/agents/middleware/error.js.map +1 -1
- package/dist/agents/middleware/hitl.cjs +0 -1
- package/dist/agents/middleware/hitl.cjs.map +1 -1
- package/dist/agents/middleware/hitl.d.cts +1 -3
- package/dist/agents/middleware/hitl.d.cts.map +1 -1
- package/dist/agents/middleware/hitl.d.ts +1 -3
- package/dist/agents/middleware/hitl.d.ts.map +1 -1
- package/dist/agents/middleware/hitl.js.map +1 -1
- package/dist/agents/middleware/index.cjs +51 -19
- package/dist/agents/middleware/index.d.cts +3 -1
- package/dist/agents/middleware/index.d.ts +3 -1
- package/dist/agents/middleware/index.js +21 -20
- package/dist/agents/middleware/llmToolSelector.cjs +1 -1
- package/dist/agents/middleware/llmToolSelector.cjs.map +1 -1
- package/dist/agents/middleware/llmToolSelector.d.cts +9 -12
- package/dist/agents/middleware/llmToolSelector.d.cts.map +1 -1
- package/dist/agents/middleware/llmToolSelector.d.ts +9 -12
- package/dist/agents/middleware/llmToolSelector.d.ts.map +1 -1
- package/dist/agents/middleware/llmToolSelector.js +1 -1
- package/dist/agents/middleware/llmToolSelector.js.map +1 -1
- package/dist/agents/middleware/modelCallLimit.cjs +0 -1
- package/dist/agents/middleware/modelCallLimit.cjs.map +1 -1
- package/dist/agents/middleware/modelCallLimit.d.cts +1 -3
- package/dist/agents/middleware/modelCallLimit.d.cts.map +1 -1
- package/dist/agents/middleware/modelCallLimit.d.ts +1 -3
- package/dist/agents/middleware/modelCallLimit.d.ts.map +1 -1
- package/dist/agents/middleware/modelCallLimit.js.map +1 -1
- package/dist/agents/middleware/modelFallback.cjs.map +1 -1
- package/dist/agents/middleware/modelFallback.d.cts +1 -3
- package/dist/agents/middleware/modelFallback.d.cts.map +1 -1
- package/dist/agents/middleware/modelFallback.d.ts +1 -3
- package/dist/agents/middleware/modelFallback.d.ts.map +1 -1
- package/dist/agents/middleware/modelFallback.js.map +1 -1
- package/dist/agents/middleware/modelRetry.cjs +1 -1
- package/dist/agents/middleware/modelRetry.cjs.map +1 -1
- package/dist/agents/middleware/modelRetry.d.cts +2 -4
- package/dist/agents/middleware/modelRetry.d.cts.map +1 -1
- package/dist/agents/middleware/modelRetry.d.ts +2 -4
- package/dist/agents/middleware/modelRetry.d.ts.map +1 -1
- package/dist/agents/middleware/modelRetry.js +1 -1
- package/dist/agents/middleware/modelRetry.js.map +1 -1
- package/dist/agents/middleware/pii.cjs +2 -1
- package/dist/agents/middleware/pii.cjs.map +1 -1
- package/dist/agents/middleware/pii.d.cts +2 -4
- package/dist/agents/middleware/pii.d.cts.map +1 -1
- package/dist/agents/middleware/pii.d.ts +2 -4
- package/dist/agents/middleware/pii.d.ts.map +1 -1
- package/dist/agents/middleware/pii.js +2 -0
- package/dist/agents/middleware/pii.js.map +1 -1
- package/dist/agents/middleware/piiRedaction.cjs +0 -1
- package/dist/agents/middleware/piiRedaction.cjs.map +1 -1
- package/dist/agents/middleware/piiRedaction.d.cts +1 -3
- package/dist/agents/middleware/piiRedaction.d.cts.map +1 -1
- package/dist/agents/middleware/piiRedaction.d.ts +1 -3
- package/dist/agents/middleware/piiRedaction.d.ts.map +1 -1
- package/dist/agents/middleware/piiRedaction.js.map +1 -1
- package/dist/agents/middleware/provider/anthropic/promptCaching.cjs +0 -1
- package/dist/agents/middleware/provider/anthropic/promptCaching.cjs.map +1 -1
- package/dist/agents/middleware/provider/anthropic/promptCaching.d.cts +1 -3
- package/dist/agents/middleware/provider/anthropic/promptCaching.d.cts.map +1 -1
- package/dist/agents/middleware/provider/anthropic/promptCaching.d.ts +1 -3
- package/dist/agents/middleware/provider/anthropic/promptCaching.d.ts.map +1 -1
- package/dist/agents/middleware/provider/anthropic/promptCaching.js.map +1 -1
- package/dist/agents/middleware/provider/aws/promptCaching.cjs +0 -1
- package/dist/agents/middleware/provider/aws/promptCaching.cjs.map +1 -1
- package/dist/agents/middleware/provider/aws/promptCaching.d.cts +1 -3
- package/dist/agents/middleware/provider/aws/promptCaching.d.cts.map +1 -1
- package/dist/agents/middleware/provider/aws/promptCaching.d.ts +1 -3
- package/dist/agents/middleware/provider/aws/promptCaching.d.ts.map +1 -1
- package/dist/agents/middleware/provider/aws/promptCaching.js.map +1 -1
- package/dist/agents/middleware/provider/openai/moderation.cjs +1 -1
- package/dist/agents/middleware/provider/openai/moderation.cjs.map +1 -1
- package/dist/agents/middleware/provider/openai/moderation.d.cts +0 -4
- package/dist/agents/middleware/provider/openai/moderation.d.cts.map +1 -1
- package/dist/agents/middleware/provider/openai/moderation.d.ts +0 -4
- package/dist/agents/middleware/provider/openai/moderation.d.ts.map +1 -1
- package/dist/agents/middleware/provider/openai/moderation.js +1 -1
- package/dist/agents/middleware/provider/openai/moderation.js.map +1 -1
- package/dist/agents/middleware/providerToolSearch.cjs +0 -1
- package/dist/agents/middleware/providerToolSearch.cjs.map +1 -1
- package/dist/agents/middleware/providerToolSearch.d.cts +1 -2
- package/dist/agents/middleware/providerToolSearch.d.cts.map +1 -1
- package/dist/agents/middleware/providerToolSearch.d.ts +1 -2
- package/dist/agents/middleware/providerToolSearch.d.ts.map +1 -1
- package/dist/agents/middleware/providerToolSearch.js.map +1 -1
- package/dist/agents/middleware/summarization.cjs +2 -3
- package/dist/agents/middleware/summarization.cjs.map +1 -1
- package/dist/agents/middleware/summarization.d.cts +16 -20
- package/dist/agents/middleware/summarization.d.cts.map +1 -1
- package/dist/agents/middleware/summarization.d.ts +16 -20
- package/dist/agents/middleware/summarization.d.ts.map +1 -1
- package/dist/agents/middleware/summarization.js +2 -3
- package/dist/agents/middleware/summarization.js.map +1 -1
- package/dist/agents/middleware/todoListMiddleware.cjs +0 -1
- package/dist/agents/middleware/todoListMiddleware.cjs.map +1 -1
- package/dist/agents/middleware/todoListMiddleware.d.cts +2 -5
- package/dist/agents/middleware/todoListMiddleware.d.cts.map +1 -1
- package/dist/agents/middleware/todoListMiddleware.d.ts +2 -5
- package/dist/agents/middleware/todoListMiddleware.d.ts.map +1 -1
- package/dist/agents/middleware/todoListMiddleware.js.map +1 -1
- package/dist/agents/middleware/toolCallLimit.cjs +0 -1
- package/dist/agents/middleware/toolCallLimit.cjs.map +1 -1
- package/dist/agents/middleware/toolCallLimit.d.cts +2 -4
- package/dist/agents/middleware/toolCallLimit.d.cts.map +1 -1
- package/dist/agents/middleware/toolCallLimit.d.ts +2 -4
- package/dist/agents/middleware/toolCallLimit.d.ts.map +1 -1
- package/dist/agents/middleware/toolCallLimit.js.map +1 -1
- package/dist/agents/middleware/toolEmulator.cjs +0 -1
- package/dist/agents/middleware/toolEmulator.cjs.map +1 -1
- package/dist/agents/middleware/toolEmulator.d.cts +0 -1
- package/dist/agents/middleware/toolEmulator.d.cts.map +1 -1
- package/dist/agents/middleware/toolEmulator.d.ts +0 -1
- package/dist/agents/middleware/toolEmulator.d.ts.map +1 -1
- package/dist/agents/middleware/toolEmulator.js.map +1 -1
- package/dist/agents/middleware/toolError.cjs +67 -0
- package/dist/agents/middleware/toolError.cjs.map +1 -0
- package/dist/agents/middleware/toolError.d.cts +63 -0
- package/dist/agents/middleware/toolError.d.cts.map +1 -0
- package/dist/agents/middleware/toolError.d.ts +63 -0
- package/dist/agents/middleware/toolError.d.ts.map +1 -0
- package/dist/agents/middleware/toolError.js +67 -0
- package/dist/agents/middleware/toolError.js.map +1 -0
- package/dist/agents/middleware/toolRetry.cjs +1 -1
- package/dist/agents/middleware/toolRetry.cjs.map +1 -1
- package/dist/agents/middleware/toolRetry.d.cts +1 -2
- package/dist/agents/middleware/toolRetry.d.cts.map +1 -1
- package/dist/agents/middleware/toolRetry.d.ts +1 -2
- package/dist/agents/middleware/toolRetry.d.ts.map +1 -1
- package/dist/agents/middleware/toolRetry.js +1 -1
- package/dist/agents/middleware/toolRetry.js.map +1 -1
- package/dist/agents/middleware/types.cjs.map +1 -1
- package/dist/agents/middleware/types.d.cts +1 -2
- package/dist/agents/middleware/types.d.cts.map +1 -1
- package/dist/agents/middleware/types.d.ts +1 -2
- package/dist/agents/middleware/types.d.ts.map +1 -1
- package/dist/agents/middleware/types.js.map +1 -1
- package/dist/agents/middleware/utils.cjs +0 -1
- package/dist/agents/middleware/utils.cjs.map +1 -1
- package/dist/agents/middleware/utils.d.cts +2 -1
- package/dist/agents/middleware/utils.d.cts.map +1 -1
- package/dist/agents/middleware/utils.d.ts +2 -1
- package/dist/agents/middleware/utils.d.ts.map +1 -1
- package/dist/agents/middleware/utils.js.map +1 -1
- package/dist/agents/middleware.cjs.map +1 -1
- package/dist/agents/middleware.d.cts +0 -1
- package/dist/agents/middleware.d.cts.map +1 -1
- package/dist/agents/middleware.d.ts +0 -1
- package/dist/agents/middleware.d.ts.map +1 -1
- package/dist/agents/middleware.js.map +1 -1
- package/dist/agents/model.cjs.map +1 -1
- package/dist/agents/model.d.cts +0 -1
- package/dist/agents/model.d.cts.map +1 -1
- package/dist/agents/model.d.ts +0 -1
- package/dist/agents/model.d.ts.map +1 -1
- package/dist/agents/model.js.map +1 -1
- package/dist/agents/nodes/AfterAgentNode.cjs +1 -0
- package/dist/agents/nodes/AfterAgentNode.cjs.map +1 -1
- package/dist/agents/nodes/AfterAgentNode.js +1 -0
- package/dist/agents/nodes/AfterAgentNode.js.map +1 -1
- package/dist/agents/nodes/AfterModelNode.cjs +1 -0
- package/dist/agents/nodes/AfterModelNode.cjs.map +1 -1
- package/dist/agents/nodes/AfterModelNode.js +1 -0
- package/dist/agents/nodes/AfterModelNode.js.map +1 -1
- package/dist/agents/nodes/AgentNode.cjs +0 -1
- package/dist/agents/nodes/AgentNode.cjs.map +1 -1
- package/dist/agents/nodes/AgentNode.js.map +1 -1
- package/dist/agents/nodes/BeforeAgentNode.cjs +1 -0
- package/dist/agents/nodes/BeforeAgentNode.cjs.map +1 -1
- package/dist/agents/nodes/BeforeAgentNode.js +1 -0
- package/dist/agents/nodes/BeforeAgentNode.js.map +1 -1
- package/dist/agents/nodes/BeforeModelNode.cjs +1 -0
- package/dist/agents/nodes/BeforeModelNode.cjs.map +1 -1
- package/dist/agents/nodes/BeforeModelNode.js +1 -0
- package/dist/agents/nodes/BeforeModelNode.js.map +1 -1
- package/dist/agents/nodes/ToolNode.cjs +2 -1
- package/dist/agents/nodes/ToolNode.cjs.map +1 -1
- package/dist/agents/nodes/ToolNode.js +2 -1
- package/dist/agents/nodes/ToolNode.js.map +1 -1
- package/dist/agents/nodes/middleware.cjs +0 -1
- package/dist/agents/nodes/middleware.cjs.map +1 -1
- package/dist/agents/nodes/middleware.js.map +1 -1
- package/dist/agents/nodes/types.d.cts +0 -1
- package/dist/agents/nodes/types.d.cts.map +1 -1
- package/dist/agents/nodes/types.d.ts +0 -1
- package/dist/agents/nodes/types.d.ts.map +1 -1
- package/dist/agents/nodes/utils.cjs +0 -1
- package/dist/agents/nodes/utils.cjs.map +1 -1
- package/dist/agents/nodes/utils.js.map +1 -1
- package/dist/agents/responses.cjs +11 -5
- package/dist/agents/responses.cjs.map +1 -1
- package/dist/agents/responses.d.cts +3 -3
- package/dist/agents/responses.d.cts.map +1 -1
- package/dist/agents/responses.d.ts +3 -3
- package/dist/agents/responses.d.ts.map +1 -1
- package/dist/agents/responses.js +11 -5
- package/dist/agents/responses.js.map +1 -1
- package/dist/agents/runtime.d.cts +2 -2
- package/dist/agents/runtime.d.cts.map +1 -1
- package/dist/agents/runtime.d.ts +2 -2
- package/dist/agents/runtime.d.ts.map +1 -1
- package/dist/agents/tests/utils.cjs +0 -1
- package/dist/agents/tests/utils.cjs.map +1 -1
- package/dist/agents/tests/utils.d.cts +2 -9
- package/dist/agents/tests/utils.d.cts.map +1 -1
- package/dist/agents/tests/utils.d.ts +2 -9
- package/dist/agents/tests/utils.d.ts.map +1 -1
- package/dist/agents/tests/utils.js.map +1 -1
- package/dist/agents/transformers/index.cjs +4 -2
- package/dist/agents/transformers/index.d.cts +2 -1
- package/dist/agents/transformers/index.d.ts +2 -1
- package/dist/agents/transformers/index.js +3 -3
- package/dist/agents/transformers/subagent.cjs +0 -1
- package/dist/agents/transformers/subagent.cjs.map +1 -1
- package/dist/agents/transformers/subagent.d.cts +0 -1
- package/dist/agents/transformers/subagent.d.cts.map +1 -1
- package/dist/agents/transformers/subagent.d.ts +0 -1
- package/dist/agents/transformers/subagent.d.ts.map +1 -1
- package/dist/agents/transformers/subagent.js.map +1 -1
- package/dist/agents/transformers/tool-call.cjs +0 -1
- package/dist/agents/transformers/tool-call.cjs.map +1 -1
- package/dist/agents/transformers/tool-call.d.cts +0 -1
- package/dist/agents/transformers/tool-call.d.cts.map +1 -1
- package/dist/agents/transformers/tool-call.d.ts +0 -1
- package/dist/agents/transformers/tool-call.d.ts.map +1 -1
- package/dist/agents/transformers/tool-call.js.map +1 -1
- package/dist/agents/transformers/types.d.cts +3 -3
- package/dist/agents/transformers/types.d.cts.map +1 -1
- package/dist/agents/transformers/types.d.ts +3 -3
- package/dist/agents/transformers/types.d.ts.map +1 -1
- package/dist/agents/types.d.cts +1 -2
- package/dist/agents/types.d.cts.map +1 -1
- package/dist/agents/types.d.ts +1 -2
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/utils.cjs +11 -5
- package/dist/agents/utils.cjs.map +1 -1
- package/dist/agents/utils.js +11 -4
- package/dist/agents/utils.js.map +1 -1
- package/dist/agents/withAgentName.cjs +0 -1
- package/dist/agents/withAgentName.cjs.map +1 -1
- package/dist/agents/withAgentName.js.map +1 -1
- package/dist/browser.cjs +3 -0
- package/dist/browser.d.cts +3 -1
- package/dist/browser.d.ts +3 -1
- package/dist/browser.js +3 -1
- package/dist/chat_models/universal.cjs.map +1 -1
- package/dist/chat_models/universal.d.cts +0 -1
- package/dist/chat_models/universal.d.cts.map +1 -1
- package/dist/chat_models/universal.d.ts +0 -1
- package/dist/chat_models/universal.d.ts.map +1 -1
- package/dist/chat_models/universal.js.map +1 -1
- package/dist/hub/base.cjs +0 -1
- package/dist/hub/base.cjs.map +1 -1
- package/dist/hub/base.d.cts +1 -0
- package/dist/hub/base.d.cts.map +1 -1
- package/dist/hub/base.d.ts +1 -0
- package/dist/hub/base.d.ts.map +1 -1
- package/dist/hub/base.js.map +1 -1
- package/dist/hub/index.cjs.map +1 -1
- package/dist/hub/index.d.cts +0 -1
- package/dist/hub/index.d.cts.map +1 -1
- package/dist/hub/index.d.ts +0 -1
- package/dist/hub/index.d.ts.map +1 -1
- package/dist/hub/index.js.map +1 -1
- package/dist/hub/node.cjs.map +1 -1
- package/dist/hub/node.d.cts +0 -1
- package/dist/hub/node.d.cts.map +1 -1
- package/dist/hub/node.d.ts +0 -1
- package/dist/hub/node.d.ts.map +1 -1
- package/dist/hub/node.js.map +1 -1
- package/dist/index.cjs +3 -0
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/load/import_constants.cjs.map +1 -1
- package/dist/load/import_constants.js.map +1 -1
- package/dist/load/import_map.cjs +56 -0
- package/dist/load/import_map.cjs.map +1 -1
- package/dist/load/import_map.js +1 -1
- package/dist/load/import_map.js.map +1 -1
- package/dist/load/import_type.d.cts.map +1 -1
- package/dist/load/import_type.d.ts.map +1 -1
- package/dist/load/index.cjs +0 -1
- package/dist/load/index.cjs.map +1 -1
- package/dist/load/index.d.cts +0 -1
- package/dist/load/index.d.cts.map +1 -1
- package/dist/load/index.d.ts +0 -1
- package/dist/load/index.d.ts.map +1 -1
- package/dist/load/index.js.map +1 -1
- package/dist/storage/encoder_backed.cjs.map +1 -1
- package/dist/storage/encoder_backed.d.cts +0 -1
- package/dist/storage/encoder_backed.d.cts.map +1 -1
- package/dist/storage/encoder_backed.d.ts +0 -1
- package/dist/storage/encoder_backed.d.ts.map +1 -1
- package/dist/storage/encoder_backed.js.map +1 -1
- package/dist/storage/file_system.cjs +4 -3
- package/dist/storage/file_system.cjs.map +1 -1
- package/dist/storage/file_system.d.cts +20 -1
- package/dist/storage/file_system.d.cts.map +1 -1
- package/dist/storage/file_system.d.ts +20 -1
- package/dist/storage/file_system.d.ts.map +1 -1
- package/dist/storage/file_system.js +4 -3
- package/dist/storage/file_system.js.map +1 -1
- package/dist/tools/headless.cjs +0 -1
- package/dist/tools/headless.cjs.map +1 -1
- package/dist/tools/headless.d.cts +5 -3
- package/dist/tools/headless.d.cts.map +1 -1
- package/dist/tools/headless.d.ts +5 -3
- package/dist/tools/headless.d.ts.map +1 -1
- package/dist/tools/headless.js.map +1 -1
- package/package.json +16 -16
package/dist/index.cjs
CHANGED
|
@@ -24,6 +24,7 @@ const require_modelCallLimit = require("./agents/middleware/modelCallLimit.cjs")
|
|
|
24
24
|
const require_modelFallback = require("./agents/middleware/modelFallback.cjs");
|
|
25
25
|
const require_modelRetry = require("./agents/middleware/modelRetry.cjs");
|
|
26
26
|
const require_toolRetry = require("./agents/middleware/toolRetry.cjs");
|
|
27
|
+
const require_toolError = require("./agents/middleware/toolError.cjs");
|
|
27
28
|
const require_toolEmulator = require("./agents/middleware/toolEmulator.cjs");
|
|
28
29
|
const require_providerToolSearch = require("./agents/middleware/providerToolSearch.cjs");
|
|
29
30
|
const require_moderation = require("./agents/middleware/provider/openai/moderation.cjs");
|
|
@@ -103,6 +104,7 @@ var src_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
|
103
104
|
tool: () => require_headless.tool,
|
|
104
105
|
toolCallLimitMiddleware: () => require_toolCallLimit.toolCallLimitMiddleware,
|
|
105
106
|
toolEmulatorMiddleware: () => require_toolEmulator.toolEmulatorMiddleware,
|
|
107
|
+
toolErrorMiddleware: () => require_toolError.toolErrorMiddleware,
|
|
106
108
|
toolRetryMiddleware: () => require_toolRetry.toolRetryMiddleware,
|
|
107
109
|
toolStrategy: () => require_responses.toolStrategy,
|
|
108
110
|
trimMessages: () => _langchain_core_messages.trimMessages
|
|
@@ -279,6 +281,7 @@ exports.todoListMiddleware = require_todoListMiddleware.todoListMiddleware;
|
|
|
279
281
|
exports.tool = require_headless.tool;
|
|
280
282
|
exports.toolCallLimitMiddleware = require_toolCallLimit.toolCallLimitMiddleware;
|
|
281
283
|
exports.toolEmulatorMiddleware = require_toolEmulator.toolEmulatorMiddleware;
|
|
284
|
+
exports.toolErrorMiddleware = require_toolError.toolErrorMiddleware;
|
|
282
285
|
exports.toolRetryMiddleware = require_toolRetry.toolRetryMiddleware;
|
|
283
286
|
exports.toolStrategy = require_responses.toolStrategy;
|
|
284
287
|
Object.defineProperty(exports, "trimMessages", {
|
package/dist/index.d.cts
CHANGED
|
@@ -27,16 +27,18 @@ import { ModelCallLimitMiddlewareConfig, modelCallLimitMiddleware } from "./agen
|
|
|
27
27
|
import { modelFallbackMiddleware } from "./agents/middleware/modelFallback.cjs";
|
|
28
28
|
import { ModelRetryMiddlewareConfig, modelRetryMiddleware } from "./agents/middleware/modelRetry.cjs";
|
|
29
29
|
import { ToolRetryMiddlewareConfig, toolRetryMiddleware } from "./agents/middleware/toolRetry.cjs";
|
|
30
|
+
import { ToolErrorHandler, ToolErrorMiddlewareConfig, toolErrorMiddleware } from "./agents/middleware/toolError.cjs";
|
|
30
31
|
import { ToolEmulatorOptions, toolEmulatorMiddleware } from "./agents/middleware/toolEmulator.cjs";
|
|
31
32
|
import { ProviderToolSearchMiddlewareConfig, providerToolSearchMiddleware } from "./agents/middleware/providerToolSearch.cjs";
|
|
32
33
|
import { OpenAIModerationMiddlewareOptions, openAIModerationMiddleware } from "./agents/middleware/provider/openai/moderation.cjs";
|
|
33
34
|
import { PromptCachingMiddlewareConfig, anthropicPromptCachingMiddleware } from "./agents/middleware/provider/anthropic/promptCaching.cjs";
|
|
34
35
|
import { BedrockConversePromptCachingMiddlewareConfig, bedrockPromptCachingMiddleware } from "./agents/middleware/provider/aws/promptCaching.cjs";
|
|
35
36
|
import { countTokensApproximately } from "./agents/middleware/utils.cjs";
|
|
37
|
+
import "./agents/middleware/index.cjs";
|
|
36
38
|
import { AIMessage, AIMessageChunk, BaseMessage, BaseMessageChunk, ContentBlock, HumanMessage, HumanMessageChunk, SystemMessage, SystemMessageChunk, ToolMessage, ToolMessageChunk, filterMessages, trimMessages } from "@langchain/core/messages";
|
|
37
39
|
import { DynamicStructuredTool, DynamicTool, StructuredTool, Tool, ToolRuntime } from "@langchain/core/tools";
|
|
38
40
|
import { context } from "@langchain/core/utils/context";
|
|
39
41
|
import { InMemoryStore } from "@langchain/core/stores";
|
|
40
42
|
import { Document, DocumentInput } from "@langchain/core/documents";
|
|
41
43
|
import { LangChainMatchers, fakeModel, langchainMatchers } from "@langchain/core/testing";
|
|
42
|
-
export { AIMessage, AIMessageChunk, Action, ActionRequest, AfterAgentHook, AfterModelHook, AgentMiddleware, AgentRunStream, AgentTypeConfig, AnyAgentMiddleware, AnyAnnotationRoot, ApproveDecision, BaseMessage, BaseMessageChunk, BedrockConversePromptCachingMiddlewareConfig, BeforeAgentHook, BeforeModelHook, BuiltInPIIType, BuiltInState, ClearToolUsesEdit, ClearToolUsesEditConfig, CombineStreamTransformers, CombineTools, type ContentBlock, ContextEdit, ContextEditingMiddlewareConfig, CreateAgentParams, Decision, DecisionType, DefaultAgentTypeConfig, DefaultMiddlewareTypeConfig, DescriptionFactory, Document, type DocumentInput, DynamicStructuredTool, DynamicSystemPromptMiddlewareConfig, DynamicTool, EditDecision, ExecutedToolCall, ExtractZodArrayTypes, FakeToolCallingModel, HITLRequest, HITLResponse, type HeadlessTool, type HeadlessToolFields, type HeadlessToolImplementation, HumanInTheLoopMiddlewareConfig, HumanMessage, HumanMessageChunk, InMemoryStore, InferAgentContext, InferAgentContextSchema, InferAgentMiddleware, InferAgentResponse, InferAgentState, InferAgentStateSchema, InferAgentStreamTransformers, InferAgentTools, InferAgentType, InferChannelType, InferContextInput, InferMergedInputState, InferMergedState, InferMiddlewareContext, InferMiddlewareContextInput, InferMiddlewareContextInputs, InferMiddlewareContextSchema, InferMiddlewareContexts, InferMiddlewareFullContext, InferMiddlewareInputState, InferMiddlewareInputStates, InferMiddlewareSchema, InferMiddlewareState, InferMiddlewareStates, InferMiddlewareStreamTransformers, InferMiddlewareStreamTransformersArray, InferMiddlewareStreamTransformersFromConfig, InferMiddlewareTools, InferMiddlewareToolsArray, InferMiddlewareToolsFromConfig, InferMiddlewareType, InferSchemaInput, InferSchemaUpdateType, InferSchemaValue, InferSchemaValueType, Interrupt, InterruptOnConfig, JumpTo, JumpToTarget, LLMToolSelectorConfig, type LangChainMatchers, MIDDLEWARE_BRAND, MiddlewareError, MiddlewareResult, MiddlewareTypeConfig, ModelCallLimitMiddlewareConfig, ModelRequest, ModelRetryMiddlewareConfig, MultipleStructuredOutputsError, MultipleToolsBoundError, N, NormalizedSchemaInput, NormalizedSchemaUpdate, OpenAIModerationMiddlewareOptions, PIIDetectionError, PIIDetector, PIIMatch, PIIMiddlewareConfig, PIIRedactionMiddlewareConfig, PIIStrategy, PromptCachingMiddlewareConfig, ProviderStrategy, ProviderToolSearchMiddlewareConfig, ReactAgent, RedactionRuleConfig, RejectDecision, ResolveAgentTypeConfig, ResolveMiddlewareTypeConfig, ResolvedRedactionRule, ResponseFormat, ResponseFormatUndefined, ReviewConfig, Runtime, StructuredOutputParsingError, StructuredTool, SubagentRunStream, SummarizationMiddlewareConfig, SystemMessage, SystemMessageChunk, TODO_LIST_MIDDLEWARE_SYSTEM_PROMPT, ToAnnotationRoot, Todo, TodoListMiddlewareOptions, TokenCounter, Tool, ToolCall, ToolCallHandler, ToolCallLimitConfig, ToolCallLimitExceededError, ToolCallRequest, ToolCallStreamUnion, ToolEmulatorOptions, ToolInvocationError, ToolMessage, ToolMessageChunk, ToolResult, ToolRetryMiddlewareConfig, type ToolRuntime, ToolStrategy, ToolsToMessageToolSet, TypedToolStrategy, UserInput, WhenPredicate, WithStateGraphNodes, WrapModelCallHandler, WrapModelCallHook, WrapToolCallHook, anthropicPromptCachingMiddleware, applyStrategy, bedrockPromptCachingMiddleware, context, contextEditingMiddleware, countTokensApproximately, createAgent, createMiddleware, createSubagentTransformer, createToolCallTransformer, detectCreditCard, detectEmail, detectIP, detectMacAddress, detectUrl, dynamicSystemPromptMiddleware, fakeModel, filterMessages, humanInTheLoopMiddleware, initChatModel, langchainMatchers, llmToolSelectorMiddleware, modelCallLimitMiddleware, modelFallbackMiddleware, modelRetryMiddleware, openAIModerationMiddleware, piiMiddleware, piiRedactionMiddleware, providerStrategy, providerToolSearchMiddleware, resolveRedactionRule, summarizationMiddleware, todoListMiddleware, tool, toolCallLimitMiddleware, toolEmulatorMiddleware, toolRetryMiddleware, toolStrategy, trimMessages };
|
|
44
|
+
export { AIMessage, AIMessageChunk, Action, ActionRequest, type AfterAgentHook, type AfterModelHook, type AgentMiddleware, type AgentRunStream, AgentTypeConfig, type AnyAgentMiddleware, type AnyAnnotationRoot, ApproveDecision, BaseMessage, BaseMessageChunk, type BedrockConversePromptCachingMiddlewareConfig, type BeforeAgentHook, type BeforeModelHook, type BuiltInPIIType, BuiltInState, ClearToolUsesEdit, type ClearToolUsesEditConfig, CombineStreamTransformers, CombineTools, type ContentBlock, type ContextEdit, type ContextEditingMiddlewareConfig, CreateAgentParams, Decision, DecisionType, DefaultAgentTypeConfig, type DefaultMiddlewareTypeConfig, DescriptionFactory, Document, type DocumentInput, DynamicStructuredTool, type DynamicSystemPromptMiddlewareConfig, DynamicTool, EditDecision, ExecutedToolCall, ExtractZodArrayTypes, FakeToolCallingModel, HITLRequest, HITLResponse, type HeadlessTool, type HeadlessToolFields, type HeadlessToolImplementation, HumanInTheLoopMiddlewareConfig, HumanMessage, HumanMessageChunk, InMemoryStore, InferAgentContext, InferAgentContextSchema, InferAgentMiddleware, InferAgentResponse, InferAgentState, InferAgentStateSchema, InferAgentStreamTransformers, InferAgentTools, InferAgentType, type InferChannelType, type InferContextInput, type InferMergedInputState, type InferMergedState, type InferMiddlewareContext, type InferMiddlewareContextInput, type InferMiddlewareContextInputs, type InferMiddlewareContextSchema, type InferMiddlewareContexts, type InferMiddlewareFullContext, type InferMiddlewareInputState, type InferMiddlewareInputStates, type InferMiddlewareSchema, type InferMiddlewareState, type InferMiddlewareStates, InferMiddlewareStreamTransformers, InferMiddlewareStreamTransformersArray, type InferMiddlewareStreamTransformersFromConfig, InferMiddlewareTools, InferMiddlewareToolsArray, type InferMiddlewareToolsFromConfig, type InferMiddlewareType, type InferSchemaInput, type InferSchemaUpdateType, type InferSchemaValue, type InferSchemaValueType, Interrupt, InterruptOnConfig, JumpTo, type JumpToTarget, type LLMToolSelectorConfig, type LangChainMatchers, MIDDLEWARE_BRAND, MiddlewareError, type MiddlewareResult, type MiddlewareTypeConfig, type ModelCallLimitMiddlewareConfig, ModelRequest, type ModelRetryMiddlewareConfig, MultipleStructuredOutputsError, MultipleToolsBoundError, N, type NormalizedSchemaInput, type NormalizedSchemaUpdate, type OpenAIModerationMiddlewareOptions, PIIDetectionError, type PIIDetector, type PIIMatch, type PIIMiddlewareConfig, type PIIRedactionMiddlewareConfig, type PIIStrategy, type PromptCachingMiddlewareConfig, ProviderStrategy, type ProviderToolSearchMiddlewareConfig, type ReactAgent, type RedactionRuleConfig, RejectDecision, ResolveAgentTypeConfig, type ResolveMiddlewareTypeConfig, type ResolvedRedactionRule, type ResponseFormat, type ResponseFormatUndefined, ReviewConfig, type Runtime, StructuredOutputParsingError, StructuredTool, type SubagentRunStream, type SummarizationMiddlewareConfig, SystemMessage, SystemMessageChunk, TODO_LIST_MIDDLEWARE_SYSTEM_PROMPT, type ToAnnotationRoot, type Todo, type TodoListMiddlewareOptions, type TokenCounter, Tool, ToolCall, type ToolCallHandler, type ToolCallLimitConfig, ToolCallLimitExceededError, type ToolCallRequest, type ToolCallStreamUnion, type ToolEmulatorOptions, type ToolErrorHandler, type ToolErrorMiddlewareConfig, ToolInvocationError, ToolMessage, ToolMessageChunk, ToolResult, type ToolRetryMiddlewareConfig, type ToolRuntime, ToolStrategy, ToolsToMessageToolSet, type TypedToolStrategy, UserInput, WhenPredicate, WithStateGraphNodes, type WrapModelCallHandler, type WrapModelCallHook, type WrapToolCallHook, anthropicPromptCachingMiddleware, applyStrategy, bedrockPromptCachingMiddleware, context, contextEditingMiddleware, countTokensApproximately, createAgent, createMiddleware, createSubagentTransformer, createToolCallTransformer, detectCreditCard, detectEmail, detectIP, detectMacAddress, detectUrl, dynamicSystemPromptMiddleware, fakeModel, filterMessages, humanInTheLoopMiddleware, initChatModel, langchainMatchers, llmToolSelectorMiddleware, modelCallLimitMiddleware, modelFallbackMiddleware, modelRetryMiddleware, openAIModerationMiddleware, piiMiddleware, piiRedactionMiddleware, providerStrategy, providerToolSearchMiddleware, resolveRedactionRule, summarizationMiddleware, todoListMiddleware, tool, toolCallLimitMiddleware, toolEmulatorMiddleware, toolErrorMiddleware, toolRetryMiddleware, toolStrategy, trimMessages };
|
package/dist/index.d.ts
CHANGED
|
@@ -27,16 +27,18 @@ import { ModelCallLimitMiddlewareConfig, modelCallLimitMiddleware } from "./agen
|
|
|
27
27
|
import { modelFallbackMiddleware } from "./agents/middleware/modelFallback.js";
|
|
28
28
|
import { ModelRetryMiddlewareConfig, modelRetryMiddleware } from "./agents/middleware/modelRetry.js";
|
|
29
29
|
import { ToolRetryMiddlewareConfig, toolRetryMiddleware } from "./agents/middleware/toolRetry.js";
|
|
30
|
+
import { ToolErrorHandler, ToolErrorMiddlewareConfig, toolErrorMiddleware } from "./agents/middleware/toolError.js";
|
|
30
31
|
import { ToolEmulatorOptions, toolEmulatorMiddleware } from "./agents/middleware/toolEmulator.js";
|
|
31
32
|
import { ProviderToolSearchMiddlewareConfig, providerToolSearchMiddleware } from "./agents/middleware/providerToolSearch.js";
|
|
32
33
|
import { OpenAIModerationMiddlewareOptions, openAIModerationMiddleware } from "./agents/middleware/provider/openai/moderation.js";
|
|
33
34
|
import { PromptCachingMiddlewareConfig, anthropicPromptCachingMiddleware } from "./agents/middleware/provider/anthropic/promptCaching.js";
|
|
34
35
|
import { BedrockConversePromptCachingMiddlewareConfig, bedrockPromptCachingMiddleware } from "./agents/middleware/provider/aws/promptCaching.js";
|
|
35
36
|
import { countTokensApproximately } from "./agents/middleware/utils.js";
|
|
37
|
+
import "./agents/middleware/index.js";
|
|
36
38
|
import { AIMessage, AIMessageChunk, BaseMessage, BaseMessageChunk, ContentBlock, HumanMessage, HumanMessageChunk, SystemMessage, SystemMessageChunk, ToolMessage, ToolMessageChunk, filterMessages, trimMessages } from "@langchain/core/messages";
|
|
37
39
|
import { DynamicStructuredTool, DynamicTool, StructuredTool, Tool, ToolRuntime } from "@langchain/core/tools";
|
|
38
40
|
import { context } from "@langchain/core/utils/context";
|
|
39
41
|
import { InMemoryStore } from "@langchain/core/stores";
|
|
40
42
|
import { Document, DocumentInput } from "@langchain/core/documents";
|
|
41
43
|
import { LangChainMatchers, fakeModel, langchainMatchers } from "@langchain/core/testing";
|
|
42
|
-
export { AIMessage, AIMessageChunk, Action, ActionRequest, AfterAgentHook, AfterModelHook, AgentMiddleware, AgentRunStream, AgentTypeConfig, AnyAgentMiddleware, AnyAnnotationRoot, ApproveDecision, BaseMessage, BaseMessageChunk, BedrockConversePromptCachingMiddlewareConfig, BeforeAgentHook, BeforeModelHook, BuiltInPIIType, BuiltInState, ClearToolUsesEdit, ClearToolUsesEditConfig, CombineStreamTransformers, CombineTools, type ContentBlock, ContextEdit, ContextEditingMiddlewareConfig, CreateAgentParams, Decision, DecisionType, DefaultAgentTypeConfig, DefaultMiddlewareTypeConfig, DescriptionFactory, Document, type DocumentInput, DynamicStructuredTool, DynamicSystemPromptMiddlewareConfig, DynamicTool, EditDecision, ExecutedToolCall, ExtractZodArrayTypes, FakeToolCallingModel, HITLRequest, HITLResponse, type HeadlessTool, type HeadlessToolFields, type HeadlessToolImplementation, HumanInTheLoopMiddlewareConfig, HumanMessage, HumanMessageChunk, InMemoryStore, InferAgentContext, InferAgentContextSchema, InferAgentMiddleware, InferAgentResponse, InferAgentState, InferAgentStateSchema, InferAgentStreamTransformers, InferAgentTools, InferAgentType, InferChannelType, InferContextInput, InferMergedInputState, InferMergedState, InferMiddlewareContext, InferMiddlewareContextInput, InferMiddlewareContextInputs, InferMiddlewareContextSchema, InferMiddlewareContexts, InferMiddlewareFullContext, InferMiddlewareInputState, InferMiddlewareInputStates, InferMiddlewareSchema, InferMiddlewareState, InferMiddlewareStates, InferMiddlewareStreamTransformers, InferMiddlewareStreamTransformersArray, InferMiddlewareStreamTransformersFromConfig, InferMiddlewareTools, InferMiddlewareToolsArray, InferMiddlewareToolsFromConfig, InferMiddlewareType, InferSchemaInput, InferSchemaUpdateType, InferSchemaValue, InferSchemaValueType, Interrupt, InterruptOnConfig, JumpTo, JumpToTarget, LLMToolSelectorConfig, type LangChainMatchers, MIDDLEWARE_BRAND, MiddlewareError, MiddlewareResult, MiddlewareTypeConfig, ModelCallLimitMiddlewareConfig, ModelRequest, ModelRetryMiddlewareConfig, MultipleStructuredOutputsError, MultipleToolsBoundError, N, NormalizedSchemaInput, NormalizedSchemaUpdate, OpenAIModerationMiddlewareOptions, PIIDetectionError, PIIDetector, PIIMatch, PIIMiddlewareConfig, PIIRedactionMiddlewareConfig, PIIStrategy, PromptCachingMiddlewareConfig, ProviderStrategy, ProviderToolSearchMiddlewareConfig, ReactAgent, RedactionRuleConfig, RejectDecision, ResolveAgentTypeConfig, ResolveMiddlewareTypeConfig, ResolvedRedactionRule, ResponseFormat, ResponseFormatUndefined, ReviewConfig, Runtime, StructuredOutputParsingError, StructuredTool, SubagentRunStream, SummarizationMiddlewareConfig, SystemMessage, SystemMessageChunk, TODO_LIST_MIDDLEWARE_SYSTEM_PROMPT, ToAnnotationRoot, Todo, TodoListMiddlewareOptions, TokenCounter, Tool, ToolCall, ToolCallHandler, ToolCallLimitConfig, ToolCallLimitExceededError, ToolCallRequest, ToolCallStreamUnion, ToolEmulatorOptions, ToolInvocationError, ToolMessage, ToolMessageChunk, ToolResult, ToolRetryMiddlewareConfig, type ToolRuntime, ToolStrategy, ToolsToMessageToolSet, TypedToolStrategy, UserInput, WhenPredicate, WithStateGraphNodes, WrapModelCallHandler, WrapModelCallHook, WrapToolCallHook, anthropicPromptCachingMiddleware, applyStrategy, bedrockPromptCachingMiddleware, context, contextEditingMiddleware, countTokensApproximately, createAgent, createMiddleware, createSubagentTransformer, createToolCallTransformer, detectCreditCard, detectEmail, detectIP, detectMacAddress, detectUrl, dynamicSystemPromptMiddleware, fakeModel, filterMessages, humanInTheLoopMiddleware, initChatModel, langchainMatchers, llmToolSelectorMiddleware, modelCallLimitMiddleware, modelFallbackMiddleware, modelRetryMiddleware, openAIModerationMiddleware, piiMiddleware, piiRedactionMiddleware, providerStrategy, providerToolSearchMiddleware, resolveRedactionRule, summarizationMiddleware, todoListMiddleware, tool, toolCallLimitMiddleware, toolEmulatorMiddleware, toolRetryMiddleware, toolStrategy, trimMessages };
|
|
44
|
+
export { AIMessage, AIMessageChunk, Action, ActionRequest, type AfterAgentHook, type AfterModelHook, type AgentMiddleware, type AgentRunStream, AgentTypeConfig, type AnyAgentMiddleware, type AnyAnnotationRoot, ApproveDecision, BaseMessage, BaseMessageChunk, type BedrockConversePromptCachingMiddlewareConfig, type BeforeAgentHook, type BeforeModelHook, type BuiltInPIIType, BuiltInState, ClearToolUsesEdit, type ClearToolUsesEditConfig, CombineStreamTransformers, CombineTools, type ContentBlock, type ContextEdit, type ContextEditingMiddlewareConfig, CreateAgentParams, Decision, DecisionType, DefaultAgentTypeConfig, type DefaultMiddlewareTypeConfig, DescriptionFactory, Document, type DocumentInput, DynamicStructuredTool, type DynamicSystemPromptMiddlewareConfig, DynamicTool, EditDecision, ExecutedToolCall, ExtractZodArrayTypes, FakeToolCallingModel, HITLRequest, HITLResponse, type HeadlessTool, type HeadlessToolFields, type HeadlessToolImplementation, HumanInTheLoopMiddlewareConfig, HumanMessage, HumanMessageChunk, InMemoryStore, InferAgentContext, InferAgentContextSchema, InferAgentMiddleware, InferAgentResponse, InferAgentState, InferAgentStateSchema, InferAgentStreamTransformers, InferAgentTools, InferAgentType, type InferChannelType, type InferContextInput, type InferMergedInputState, type InferMergedState, type InferMiddlewareContext, type InferMiddlewareContextInput, type InferMiddlewareContextInputs, type InferMiddlewareContextSchema, type InferMiddlewareContexts, type InferMiddlewareFullContext, type InferMiddlewareInputState, type InferMiddlewareInputStates, type InferMiddlewareSchema, type InferMiddlewareState, type InferMiddlewareStates, InferMiddlewareStreamTransformers, InferMiddlewareStreamTransformersArray, type InferMiddlewareStreamTransformersFromConfig, InferMiddlewareTools, InferMiddlewareToolsArray, type InferMiddlewareToolsFromConfig, type InferMiddlewareType, type InferSchemaInput, type InferSchemaUpdateType, type InferSchemaValue, type InferSchemaValueType, Interrupt, InterruptOnConfig, JumpTo, type JumpToTarget, type LLMToolSelectorConfig, type LangChainMatchers, MIDDLEWARE_BRAND, MiddlewareError, type MiddlewareResult, type MiddlewareTypeConfig, type ModelCallLimitMiddlewareConfig, ModelRequest, type ModelRetryMiddlewareConfig, MultipleStructuredOutputsError, MultipleToolsBoundError, N, type NormalizedSchemaInput, type NormalizedSchemaUpdate, type OpenAIModerationMiddlewareOptions, PIIDetectionError, type PIIDetector, type PIIMatch, type PIIMiddlewareConfig, type PIIRedactionMiddlewareConfig, type PIIStrategy, type PromptCachingMiddlewareConfig, ProviderStrategy, type ProviderToolSearchMiddlewareConfig, type ReactAgent, type RedactionRuleConfig, RejectDecision, ResolveAgentTypeConfig, type ResolveMiddlewareTypeConfig, type ResolvedRedactionRule, type ResponseFormat, type ResponseFormatUndefined, ReviewConfig, type Runtime, StructuredOutputParsingError, StructuredTool, type SubagentRunStream, type SummarizationMiddlewareConfig, SystemMessage, SystemMessageChunk, TODO_LIST_MIDDLEWARE_SYSTEM_PROMPT, type ToAnnotationRoot, type Todo, type TodoListMiddlewareOptions, type TokenCounter, Tool, ToolCall, type ToolCallHandler, type ToolCallLimitConfig, ToolCallLimitExceededError, type ToolCallRequest, type ToolCallStreamUnion, type ToolEmulatorOptions, type ToolErrorHandler, type ToolErrorMiddlewareConfig, ToolInvocationError, ToolMessage, ToolMessageChunk, ToolResult, type ToolRetryMiddlewareConfig, type ToolRuntime, ToolStrategy, ToolsToMessageToolSet, type TypedToolStrategy, UserInput, WhenPredicate, WithStateGraphNodes, type WrapModelCallHandler, type WrapModelCallHook, type WrapToolCallHook, anthropicPromptCachingMiddleware, applyStrategy, bedrockPromptCachingMiddleware, context, contextEditingMiddleware, countTokensApproximately, createAgent, createMiddleware, createSubagentTransformer, createToolCallTransformer, detectCreditCard, detectEmail, detectIP, detectMacAddress, detectUrl, dynamicSystemPromptMiddleware, fakeModel, filterMessages, humanInTheLoopMiddleware, initChatModel, langchainMatchers, llmToolSelectorMiddleware, modelCallLimitMiddleware, modelFallbackMiddleware, modelRetryMiddleware, openAIModerationMiddleware, piiMiddleware, piiRedactionMiddleware, providerStrategy, providerToolSearchMiddleware, resolveRedactionRule, summarizationMiddleware, todoListMiddleware, tool, toolCallLimitMiddleware, toolEmulatorMiddleware, toolErrorMiddleware, toolRetryMiddleware, toolStrategy, trimMessages };
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,7 @@ import { modelCallLimitMiddleware } from "./agents/middleware/modelCallLimit.js"
|
|
|
23
23
|
import { modelFallbackMiddleware } from "./agents/middleware/modelFallback.js";
|
|
24
24
|
import { modelRetryMiddleware } from "./agents/middleware/modelRetry.js";
|
|
25
25
|
import { toolRetryMiddleware } from "./agents/middleware/toolRetry.js";
|
|
26
|
+
import { toolErrorMiddleware } from "./agents/middleware/toolError.js";
|
|
26
27
|
import { toolEmulatorMiddleware } from "./agents/middleware/toolEmulator.js";
|
|
27
28
|
import { providerToolSearchMiddleware } from "./agents/middleware/providerToolSearch.js";
|
|
28
29
|
import { openAIModerationMiddleware } from "./agents/middleware/provider/openai/moderation.js";
|
|
@@ -102,11 +103,12 @@ var src_exports = /* @__PURE__ */ __exportAll({
|
|
|
102
103
|
tool: () => tool,
|
|
103
104
|
toolCallLimitMiddleware: () => toolCallLimitMiddleware,
|
|
104
105
|
toolEmulatorMiddleware: () => toolEmulatorMiddleware,
|
|
106
|
+
toolErrorMiddleware: () => toolErrorMiddleware,
|
|
105
107
|
toolRetryMiddleware: () => toolRetryMiddleware,
|
|
106
108
|
toolStrategy: () => toolStrategy,
|
|
107
109
|
trimMessages: () => trimMessages
|
|
108
110
|
});
|
|
109
111
|
//#endregion
|
|
110
|
-
export { AIMessage, AIMessageChunk, BaseMessage, BaseMessageChunk, ClearToolUsesEdit, Document, DynamicStructuredTool, DynamicTool, FakeToolCallingModel, HumanMessage, HumanMessageChunk, InMemoryStore, MIDDLEWARE_BRAND, MiddlewareError, MultipleStructuredOutputsError, MultipleToolsBoundError, PIIDetectionError, ProviderStrategy, StructuredOutputParsingError, StructuredTool, SystemMessage, SystemMessageChunk, TODO_LIST_MIDDLEWARE_SYSTEM_PROMPT, Tool, ToolCallLimitExceededError, ToolInvocationError, ToolMessage, ToolMessageChunk, ToolStrategy, anthropicPromptCachingMiddleware, applyStrategy, bedrockPromptCachingMiddleware, context, contextEditingMiddleware, countTokensApproximately, createAgent, createMiddleware, createSubagentTransformer, createToolCallTransformer, detectCreditCard, detectEmail, detectIP, detectMacAddress, detectUrl, dynamicSystemPromptMiddleware, fakeModel, filterMessages, humanInTheLoopMiddleware, initChatModel, langchainMatchers, llmToolSelectorMiddleware, modelCallLimitMiddleware, modelFallbackMiddleware, modelRetryMiddleware, openAIModerationMiddleware, piiMiddleware, piiRedactionMiddleware, providerStrategy, providerToolSearchMiddleware, resolveRedactionRule, src_exports, summarizationMiddleware, todoListMiddleware, tool, toolCallLimitMiddleware, toolEmulatorMiddleware, toolRetryMiddleware, toolStrategy, trimMessages };
|
|
112
|
+
export { AIMessage, AIMessageChunk, BaseMessage, BaseMessageChunk, ClearToolUsesEdit, Document, DynamicStructuredTool, DynamicTool, FakeToolCallingModel, HumanMessage, HumanMessageChunk, InMemoryStore, MIDDLEWARE_BRAND, MiddlewareError, MultipleStructuredOutputsError, MultipleToolsBoundError, PIIDetectionError, ProviderStrategy, StructuredOutputParsingError, StructuredTool, SystemMessage, SystemMessageChunk, TODO_LIST_MIDDLEWARE_SYSTEM_PROMPT, Tool, ToolCallLimitExceededError, ToolInvocationError, ToolMessage, ToolMessageChunk, ToolStrategy, anthropicPromptCachingMiddleware, applyStrategy, bedrockPromptCachingMiddleware, context, contextEditingMiddleware, countTokensApproximately, createAgent, createMiddleware, createSubagentTransformer, createToolCallTransformer, detectCreditCard, detectEmail, detectIP, detectMacAddress, detectUrl, dynamicSystemPromptMiddleware, fakeModel, filterMessages, humanInTheLoopMiddleware, initChatModel, langchainMatchers, llmToolSelectorMiddleware, modelCallLimitMiddleware, modelFallbackMiddleware, modelRetryMiddleware, openAIModerationMiddleware, piiMiddleware, piiRedactionMiddleware, providerStrategy, providerToolSearchMiddleware, resolveRedactionRule, src_exports, summarizationMiddleware, todoListMiddleware, tool, toolCallLimitMiddleware, toolEmulatorMiddleware, toolErrorMiddleware, toolRetryMiddleware, toolStrategy, trimMessages };
|
|
111
113
|
|
|
112
114
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import_constants.cjs","names":[],"sources":["../../src/load/import_constants.ts"],"sourcesContent":["/** Auto-generated by import-constants plugin. Do not edit manually */\n\nexport const optionalImportEntrypoints: string[] = [\n \"langchain/chat_models/universal\",\n \"langchain/cache/file_system\",\n \"langchain/storage/file_system\",\n \"langchain/hub/index\",\n \"langchain/hub/node\",\n];\n"],"mappings":";;AAEA,MAAa,4BAAsC;CACjD;CACA;CACA;CACA;CACA;
|
|
1
|
+
{"version":3,"file":"import_constants.cjs","names":[],"sources":["../../src/load/import_constants.ts"],"sourcesContent":["/** Auto-generated by import-constants plugin. Do not edit manually */\n\nexport const optionalImportEntrypoints: string[] = [\n \"langchain/chat_models/universal\",\n \"langchain/cache/file_system\",\n \"langchain/storage/file_system\",\n \"langchain/hub/index\",\n \"langchain/hub/node\",\n];\n"],"mappings":";;AAEA,MAAa,4BAAsC;CACjD;CACA;CACA;CACA;CACA;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import_constants.js","names":[],"sources":["../../src/load/import_constants.ts"],"sourcesContent":["/** Auto-generated by import-constants plugin. Do not edit manually */\n\nexport const optionalImportEntrypoints: string[] = [\n \"langchain/chat_models/universal\",\n \"langchain/cache/file_system\",\n \"langchain/storage/file_system\",\n \"langchain/hub/index\",\n \"langchain/hub/node\",\n];\n"],"mappings":";;AAEA,MAAa,4BAAsC;CACjD;CACA;CACA;CACA;CACA;
|
|
1
|
+
{"version":3,"file":"import_constants.js","names":[],"sources":["../../src/load/import_constants.ts"],"sourcesContent":["/** Auto-generated by import-constants plugin. Do not edit manually */\n\nexport const optionalImportEntrypoints: string[] = [\n \"langchain/chat_models/universal\",\n \"langchain/cache/file_system\",\n \"langchain/storage/file_system\",\n \"langchain/hub/index\",\n \"langchain/hub/node\",\n];\n"],"mappings":";;AAEA,MAAa,4BAAsC;CACjD;CACA;CACA;CACA;CACA;AACF"}
|
package/dist/load/import_map.cjs
CHANGED
|
@@ -79,11 +79,67 @@ const schema__output = {
|
|
|
79
79
|
GenerationChunk: _langchain_core_outputs.GenerationChunk
|
|
80
80
|
};
|
|
81
81
|
//#endregion
|
|
82
|
+
Object.defineProperty(exports, "browser", {
|
|
83
|
+
enumerable: true,
|
|
84
|
+
get: function() {
|
|
85
|
+
return require_browser.browser_exports;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
Object.defineProperty(exports, "chat_models__universal", {
|
|
89
|
+
enumerable: true,
|
|
90
|
+
get: function() {
|
|
91
|
+
return require_chat_models_universal.universal_exports;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
82
94
|
Object.defineProperty(exports, "import_map_exports", {
|
|
83
95
|
enumerable: true,
|
|
84
96
|
get: function() {
|
|
85
97
|
return import_map_exports;
|
|
86
98
|
}
|
|
87
99
|
});
|
|
100
|
+
Object.defineProperty(exports, "index", {
|
|
101
|
+
enumerable: true,
|
|
102
|
+
get: function() {
|
|
103
|
+
return require_index.src_exports;
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
Object.defineProperty(exports, "load__serializable", {
|
|
107
|
+
enumerable: true,
|
|
108
|
+
get: function() {
|
|
109
|
+
return require_load_serializable.serializable_exports;
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
exports.prompts__base = prompts__base;
|
|
113
|
+
exports.prompts__chat = prompts__chat;
|
|
114
|
+
exports.prompts__image = prompts__image;
|
|
115
|
+
exports.prompts__pipeline = prompts__pipeline;
|
|
116
|
+
exports.prompts__prompt = prompts__prompt;
|
|
117
|
+
exports.schema = schema;
|
|
118
|
+
exports.schema__output = schema__output;
|
|
119
|
+
exports.schema__runnable = schema__runnable;
|
|
120
|
+
Object.defineProperty(exports, "storage__encoder_backed", {
|
|
121
|
+
enumerable: true,
|
|
122
|
+
get: function() {
|
|
123
|
+
return require_storage_encoder_backed.encoder_backed_exports;
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
Object.defineProperty(exports, "storage__file_system", {
|
|
127
|
+
enumerable: true,
|
|
128
|
+
get: function() {
|
|
129
|
+
return require_storage_file_system.file_system_exports;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
Object.defineProperty(exports, "storage__in_memory", {
|
|
133
|
+
enumerable: true,
|
|
134
|
+
get: function() {
|
|
135
|
+
return require_storage_in_memory.in_memory_exports;
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
Object.defineProperty(exports, "tools", {
|
|
139
|
+
enumerable: true,
|
|
140
|
+
get: function() {
|
|
141
|
+
return require_tools_index.tools_exports;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
88
144
|
|
|
89
145
|
//# sourceMappingURL=import_map.cjs.map
|
|
@@ -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 browser from \"../browser.js\";\nexport * as chat_models__universal from \"../chat_models/universal.js\";\nexport * as index from \"../index.js\";\nexport * as load__serializable from \"../load/serializable.js\";\nexport * as storage__encoder_backed from \"../storage/encoder_backed.js\";\nexport * as storage__file_system from \"../storage/file_system.js\";\nexport * as storage__in_memory from \"../storage/in_memory.js\";\nexport * as tools from \"../tools/index.js\";\nimport {\n PromptTemplate,\n AIMessagePromptTemplate,\n ChatMessagePromptTemplate,\n ChatPromptTemplate,\n HumanMessagePromptTemplate,\n MessagesPlaceholder,\n SystemMessagePromptTemplate,\n ImagePromptTemplate,\n PipelinePromptTemplate,\n} from \"@langchain/core/prompts\";\nimport {\n AIMessage,\n AIMessageChunk,\n BaseMessage,\n BaseMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n} from \"@langchain/core/messages\";\nimport { StringPromptValue } from \"@langchain/core/prompt_values\";\nimport {\n RouterRunnable,\n RunnableAssign,\n RunnableBinding,\n RunnableBranch,\n RunnableEach,\n RunnableMap,\n RunnableParallel,\n RunnablePassthrough,\n RunnablePick,\n RunnableRetry,\n RunnableSequence,\n RunnableWithFallbacks,\n RunnableWithMessageHistory,\n} from \"@langchain/core/runnables\";\nimport { ChatGenerationChunk, GenerationChunk } from \"@langchain/core/outputs\";\nconst prompts__prompt = {\n PromptTemplate,\n};\nexport { prompts__prompt };\nconst schema = {\n AIMessage,\n AIMessageChunk,\n BaseMessage,\n BaseMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n};\nexport { schema };\nconst prompts__chat = {\n AIMessagePromptTemplate,\n ChatMessagePromptTemplate,\n ChatPromptTemplate,\n HumanMessagePromptTemplate,\n MessagesPlaceholder,\n SystemMessagePromptTemplate,\n};\nexport { prompts__chat };\nconst prompts__image = {\n ImagePromptTemplate,\n};\nexport { prompts__image };\nconst prompts__pipeline = {\n PipelinePromptTemplate,\n};\nexport { prompts__pipeline };\nconst prompts__base = {\n StringPromptValue,\n};\nexport { prompts__base };\nconst schema__runnable = {\n RouterRunnable,\n RunnableAssign,\n RunnableBinding,\n RunnableBranch,\n RunnableEach,\n RunnableMap,\n RunnableParallel,\n RunnablePassthrough,\n RunnablePick,\n RunnableRetry,\n RunnableSequence,\n RunnableWithFallbacks,\n RunnableWithMessageHistory,\n};\nexport { schema__runnable };\nconst schema__output = {\n ChatGenerationChunk,\n GenerationChunk,\n};\nexport { schema__output };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,MAAM,kBAAkB,EACtB,gBAAA,wBAAA,
|
|
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 browser from \"../browser.js\";\nexport * as chat_models__universal from \"../chat_models/universal.js\";\nexport * as index from \"../index.js\";\nexport * as load__serializable from \"../load/serializable.js\";\nexport * as storage__encoder_backed from \"../storage/encoder_backed.js\";\nexport * as storage__file_system from \"../storage/file_system.js\";\nexport * as storage__in_memory from \"../storage/in_memory.js\";\nexport * as tools from \"../tools/index.js\";\nimport {\n PromptTemplate,\n AIMessagePromptTemplate,\n ChatMessagePromptTemplate,\n ChatPromptTemplate,\n HumanMessagePromptTemplate,\n MessagesPlaceholder,\n SystemMessagePromptTemplate,\n ImagePromptTemplate,\n PipelinePromptTemplate,\n} from \"@langchain/core/prompts\";\nimport {\n AIMessage,\n AIMessageChunk,\n BaseMessage,\n BaseMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n} from \"@langchain/core/messages\";\nimport { StringPromptValue } from \"@langchain/core/prompt_values\";\nimport {\n RouterRunnable,\n RunnableAssign,\n RunnableBinding,\n RunnableBranch,\n RunnableEach,\n RunnableMap,\n RunnableParallel,\n RunnablePassthrough,\n RunnablePick,\n RunnableRetry,\n RunnableSequence,\n RunnableWithFallbacks,\n RunnableWithMessageHistory,\n} from \"@langchain/core/runnables\";\nimport { ChatGenerationChunk, GenerationChunk } from \"@langchain/core/outputs\";\nconst prompts__prompt = {\n PromptTemplate,\n};\nexport { prompts__prompt };\nconst schema = {\n AIMessage,\n AIMessageChunk,\n BaseMessage,\n BaseMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n};\nexport { schema };\nconst prompts__chat = {\n AIMessagePromptTemplate,\n ChatMessagePromptTemplate,\n ChatPromptTemplate,\n HumanMessagePromptTemplate,\n MessagesPlaceholder,\n SystemMessagePromptTemplate,\n};\nexport { prompts__chat };\nconst prompts__image = {\n ImagePromptTemplate,\n};\nexport { prompts__image };\nconst prompts__pipeline = {\n PipelinePromptTemplate,\n};\nexport { prompts__pipeline };\nconst prompts__base = {\n StringPromptValue,\n};\nexport { prompts__base };\nconst schema__runnable = {\n RouterRunnable,\n RunnableAssign,\n RunnableBinding,\n RunnableBranch,\n RunnableEach,\n RunnableMap,\n RunnableParallel,\n RunnablePassthrough,\n RunnablePick,\n RunnableRetry,\n RunnableSequence,\n RunnableWithFallbacks,\n RunnableWithMessageHistory,\n};\nexport { schema__runnable };\nconst schema__output = {\n ChatGenerationChunk,\n GenerationChunk,\n};\nexport { schema__output };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,MAAM,kBAAkB,EACtB,gBAAA,wBAAA,eACF;AAEA,MAAM,SAAS;CACb,WAAA,yBAAA;CACA,gBAAA,yBAAA;CACA,aAAA,yBAAA;CACA,kBAAA,yBAAA;CACA,aAAA,yBAAA;CACA,kBAAA,yBAAA;CACA,iBAAA,yBAAA;CACA,sBAAA,yBAAA;CACA,cAAA,yBAAA;CACA,mBAAA,yBAAA;CACA,eAAA,yBAAA;CACA,oBAAA,yBAAA;CACA,aAAA,yBAAA;CACA,kBAAA,yBAAA;AACF;AAEA,MAAM,gBAAgB;CACpB,yBAAA,wBAAA;CACA,2BAAA,wBAAA;CACA,oBAAA,wBAAA;CACA,4BAAA,wBAAA;CACA,qBAAA,wBAAA;CACA,6BAAA,wBAAA;AACF;AAEA,MAAM,iBAAiB,EACrB,qBAAA,wBAAA,oBACF;AAEA,MAAM,oBAAoB,EACxB,wBAAA,wBAAA,uBACF;AAEA,MAAM,gBAAgB,EACpB,mBAAA,8BAAA,kBACF;AAEA,MAAM,mBAAmB;CACvB,gBAAA,0BAAA;CACA,gBAAA,0BAAA;CACA,iBAAA,0BAAA;CACA,gBAAA,0BAAA;CACA,cAAA,0BAAA;CACA,aAAA,0BAAA;CACA,kBAAA,0BAAA;CACA,qBAAA,0BAAA;CACA,cAAA,0BAAA;CACA,eAAA,0BAAA;CACA,kBAAA,0BAAA;CACA,uBAAA,0BAAA;CACA,4BAAA,0BAAA;AACF;AAEA,MAAM,iBAAiB;CACrB,qBAAA,wBAAA;CACA,iBAAA,wBAAA;AACF"}
|
package/dist/load/import_map.js
CHANGED
|
@@ -79,6 +79,6 @@ const schema__output = {
|
|
|
79
79
|
GenerationChunk
|
|
80
80
|
};
|
|
81
81
|
//#endregion
|
|
82
|
-
export { import_map_exports };
|
|
82
|
+
export { browser_exports as browser, universal_exports as chat_models__universal, import_map_exports, src_exports as index, serializable_exports as load__serializable, prompts__base, prompts__chat, prompts__image, prompts__pipeline, prompts__prompt, schema, schema__output, schema__runnable, encoder_backed_exports as storage__encoder_backed, file_system_exports as storage__file_system, in_memory_exports as storage__in_memory, tools_exports as tools };
|
|
83
83
|
|
|
84
84
|
//# sourceMappingURL=import_map.js.map
|
|
@@ -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 browser from \"../browser.js\";\nexport * as chat_models__universal from \"../chat_models/universal.js\";\nexport * as index from \"../index.js\";\nexport * as load__serializable from \"../load/serializable.js\";\nexport * as storage__encoder_backed from \"../storage/encoder_backed.js\";\nexport * as storage__file_system from \"../storage/file_system.js\";\nexport * as storage__in_memory from \"../storage/in_memory.js\";\nexport * as tools from \"../tools/index.js\";\nimport {\n PromptTemplate,\n AIMessagePromptTemplate,\n ChatMessagePromptTemplate,\n ChatPromptTemplate,\n HumanMessagePromptTemplate,\n MessagesPlaceholder,\n SystemMessagePromptTemplate,\n ImagePromptTemplate,\n PipelinePromptTemplate,\n} from \"@langchain/core/prompts\";\nimport {\n AIMessage,\n AIMessageChunk,\n BaseMessage,\n BaseMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n} from \"@langchain/core/messages\";\nimport { StringPromptValue } from \"@langchain/core/prompt_values\";\nimport {\n RouterRunnable,\n RunnableAssign,\n RunnableBinding,\n RunnableBranch,\n RunnableEach,\n RunnableMap,\n RunnableParallel,\n RunnablePassthrough,\n RunnablePick,\n RunnableRetry,\n RunnableSequence,\n RunnableWithFallbacks,\n RunnableWithMessageHistory,\n} from \"@langchain/core/runnables\";\nimport { ChatGenerationChunk, GenerationChunk } from \"@langchain/core/outputs\";\nconst prompts__prompt = {\n PromptTemplate,\n};\nexport { prompts__prompt };\nconst schema = {\n AIMessage,\n AIMessageChunk,\n BaseMessage,\n BaseMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n};\nexport { schema };\nconst prompts__chat = {\n AIMessagePromptTemplate,\n ChatMessagePromptTemplate,\n ChatPromptTemplate,\n HumanMessagePromptTemplate,\n MessagesPlaceholder,\n SystemMessagePromptTemplate,\n};\nexport { prompts__chat };\nconst prompts__image = {\n ImagePromptTemplate,\n};\nexport { prompts__image };\nconst prompts__pipeline = {\n PipelinePromptTemplate,\n};\nexport { prompts__pipeline };\nconst prompts__base = {\n StringPromptValue,\n};\nexport { prompts__base };\nconst schema__runnable = {\n RouterRunnable,\n RunnableAssign,\n RunnableBinding,\n RunnableBranch,\n RunnableEach,\n RunnableMap,\n RunnableParallel,\n RunnablePassthrough,\n RunnablePick,\n RunnableRetry,\n RunnableSequence,\n RunnableWithFallbacks,\n RunnableWithMessageHistory,\n};\nexport { schema__runnable };\nconst schema__output = {\n ChatGenerationChunk,\n GenerationChunk,\n};\nexport { schema__output };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,MAAM,kBAAkB,EACtB,
|
|
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 browser from \"../browser.js\";\nexport * as chat_models__universal from \"../chat_models/universal.js\";\nexport * as index from \"../index.js\";\nexport * as load__serializable from \"../load/serializable.js\";\nexport * as storage__encoder_backed from \"../storage/encoder_backed.js\";\nexport * as storage__file_system from \"../storage/file_system.js\";\nexport * as storage__in_memory from \"../storage/in_memory.js\";\nexport * as tools from \"../tools/index.js\";\nimport {\n PromptTemplate,\n AIMessagePromptTemplate,\n ChatMessagePromptTemplate,\n ChatPromptTemplate,\n HumanMessagePromptTemplate,\n MessagesPlaceholder,\n SystemMessagePromptTemplate,\n ImagePromptTemplate,\n PipelinePromptTemplate,\n} from \"@langchain/core/prompts\";\nimport {\n AIMessage,\n AIMessageChunk,\n BaseMessage,\n BaseMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n} from \"@langchain/core/messages\";\nimport { StringPromptValue } from \"@langchain/core/prompt_values\";\nimport {\n RouterRunnable,\n RunnableAssign,\n RunnableBinding,\n RunnableBranch,\n RunnableEach,\n RunnableMap,\n RunnableParallel,\n RunnablePassthrough,\n RunnablePick,\n RunnableRetry,\n RunnableSequence,\n RunnableWithFallbacks,\n RunnableWithMessageHistory,\n} from \"@langchain/core/runnables\";\nimport { ChatGenerationChunk, GenerationChunk } from \"@langchain/core/outputs\";\nconst prompts__prompt = {\n PromptTemplate,\n};\nexport { prompts__prompt };\nconst schema = {\n AIMessage,\n AIMessageChunk,\n BaseMessage,\n BaseMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n};\nexport { schema };\nconst prompts__chat = {\n AIMessagePromptTemplate,\n ChatMessagePromptTemplate,\n ChatPromptTemplate,\n HumanMessagePromptTemplate,\n MessagesPlaceholder,\n SystemMessagePromptTemplate,\n};\nexport { prompts__chat };\nconst prompts__image = {\n ImagePromptTemplate,\n};\nexport { prompts__image };\nconst prompts__pipeline = {\n PipelinePromptTemplate,\n};\nexport { prompts__pipeline };\nconst prompts__base = {\n StringPromptValue,\n};\nexport { prompts__base };\nconst schema__runnable = {\n RouterRunnable,\n RunnableAssign,\n RunnableBinding,\n RunnableBranch,\n RunnableEach,\n RunnableMap,\n RunnableParallel,\n RunnablePassthrough,\n RunnablePick,\n RunnableRetry,\n RunnableSequence,\n RunnableWithFallbacks,\n RunnableWithMessageHistory,\n};\nexport { schema__runnable };\nconst schema__output = {\n ChatGenerationChunk,\n GenerationChunk,\n};\nexport { schema__output };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,MAAM,kBAAkB,EACtB,eACF;AAEA,MAAM,SAAS;CACb;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,gBAAgB;CACpB;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,iBAAiB,EACrB,oBACF;AAEA,MAAM,oBAAoB,EACxB,uBACF;AAEA,MAAM,gBAAgB,EACpB,kBACF;AAEA,MAAM,mBAAmB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,iBAAiB;CACrB;CACA;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import_type.d.cts","names":[],"sources":["../../src/load/import_type.ts"],"mappings":";UAEiB
|
|
1
|
+
{"version":3,"file":"import_type.d.cts","names":[],"sources":["../../src/load/import_type.ts"],"mappings":";UAEiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import_type.d.ts","names":[],"sources":["../../src/load/import_type.ts"],"mappings":";UAEiB
|
|
1
|
+
{"version":3,"file":"import_type.d.ts","names":[],"sources":["../../src/load/import_type.ts"],"mappings":";UAEiB"}
|
package/dist/load/index.cjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
require("../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_import_constants = require("./import_constants.cjs");
|
|
4
3
|
const require_import_map = require("./import_map.cjs");
|
|
5
4
|
let _langchain_core_load = require("@langchain/core/load");
|
package/dist/load/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["importMap"],"sources":["../../src/load/index.ts"],"sourcesContent":["import { load as coreLoad } from \"@langchain/core/load\";\nimport { optionalImportEntrypoints } from \"./import_constants.js\";\nimport * as importMap from \"./import_map.js\";\nimport { OptionalImportMap } from \"./import_type.js\";\n\n/**\n * Load a LangChain module from a serialized text representation.\n * NOTE: This functionality is currently in beta.\n * Loaded classes may change independently of semver.\n *\n * **WARNING — insecure deserialization risk.** This function instantiates\n * classes and invokes constructors based on the contents of `text`. Never\n * call this on untrusted or user-supplied input. Only deserialize data that\n * originates from a trusted source you control.\n *\n * See `@langchain/core/load` {@link LoadOptions} for detailed security\n * guidance on `secretsFromEnv`, `secretsMap`, and import maps.\n *\n * @param text Serialized text representation of the module.\n * @param secretsMap\n * @param optionalImportsMap\n * @param additionalImportsMap\n * @param secretsFromEnv\n * @returns A loaded instance of a LangChain module.\n */\nexport async function load<T>(\n text: string,\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n secretsMap: Record<string, any> = {},\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n optionalImportsMap: OptionalImportMap & Record<string, any> = {},\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n additionalImportsMap: Record<string, any> = {},\n secretsFromEnv?: boolean\n): Promise<T> {\n return coreLoad(text, {\n secretsMap,\n optionalImportsMap,\n optionalImportEntrypoints,\n importMap: { ...importMap, ...additionalImportsMap },\n secretsFromEnv,\n });\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["importMap"],"sources":["../../src/load/index.ts"],"sourcesContent":["import { load as coreLoad } from \"@langchain/core/load\";\nimport { optionalImportEntrypoints } from \"./import_constants.js\";\nimport * as importMap from \"./import_map.js\";\nimport { OptionalImportMap } from \"./import_type.js\";\n\n/**\n * Load a LangChain module from a serialized text representation.\n * NOTE: This functionality is currently in beta.\n * Loaded classes may change independently of semver.\n *\n * **WARNING — insecure deserialization risk.** This function instantiates\n * classes and invokes constructors based on the contents of `text`. Never\n * call this on untrusted or user-supplied input. Only deserialize data that\n * originates from a trusted source you control.\n *\n * See `@langchain/core/load` {@link LoadOptions} for detailed security\n * guidance on `secretsFromEnv`, `secretsMap`, and import maps.\n *\n * @param text Serialized text representation of the module.\n * @param secretsMap\n * @param optionalImportsMap\n * @param additionalImportsMap\n * @param secretsFromEnv\n * @returns A loaded instance of a LangChain module.\n */\nexport async function load<T>(\n text: string,\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n secretsMap: Record<string, any> = {},\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n optionalImportsMap: OptionalImportMap & Record<string, any> = {},\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n additionalImportsMap: Record<string, any> = {},\n secretsFromEnv?: boolean\n): Promise<T> {\n return coreLoad(text, {\n secretsMap,\n optionalImportsMap,\n optionalImportEntrypoints,\n importMap: { ...importMap, ...additionalImportsMap },\n secretsFromEnv,\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,eAAsB,KACpB,MAEA,aAAkC,CAAC,GAEnC,qBAA8D,CAAC,GAE/D,uBAA4C,CAAC,GAC7C,gBACY;CACZ,QAAA,GAAA,qBAAA,KAAA,CAAgB,MAAM;EACpB;EACA;EACA,2BAAA,yBAAA;EACA,WAAW;GAAE,GAAGA,mBAAAA;GAAW,GAAG;EAAqB;EACnD;CACF,CAAC;AACH"}
|
package/dist/load/index.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/load/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/load/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;iBAyBsB,KAAK,GACzB,cAEA,aAAY,qBAEZ,qBAAoB,oBAAoB,qBAExC,uBAAsB,qBACtB,2BACC,QAAQ"}
|
package/dist/load/index.d.ts
CHANGED
package/dist/load/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/load/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/load/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;iBAyBsB,KAAK,GACzB,cAEA,aAAY,qBAEZ,qBAAoB,oBAAoB,qBAExC,uBAAsB,qBACtB,2BACC,QAAQ"}
|
package/dist/load/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["coreLoad","importMap"],"sources":["../../src/load/index.ts"],"sourcesContent":["import { load as coreLoad } from \"@langchain/core/load\";\nimport { optionalImportEntrypoints } from \"./import_constants.js\";\nimport * as importMap from \"./import_map.js\";\nimport { OptionalImportMap } from \"./import_type.js\";\n\n/**\n * Load a LangChain module from a serialized text representation.\n * NOTE: This functionality is currently in beta.\n * Loaded classes may change independently of semver.\n *\n * **WARNING — insecure deserialization risk.** This function instantiates\n * classes and invokes constructors based on the contents of `text`. Never\n * call this on untrusted or user-supplied input. Only deserialize data that\n * originates from a trusted source you control.\n *\n * See `@langchain/core/load` {@link LoadOptions} for detailed security\n * guidance on `secretsFromEnv`, `secretsMap`, and import maps.\n *\n * @param text Serialized text representation of the module.\n * @param secretsMap\n * @param optionalImportsMap\n * @param additionalImportsMap\n * @param secretsFromEnv\n * @returns A loaded instance of a LangChain module.\n */\nexport async function load<T>(\n text: string,\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n secretsMap: Record<string, any> = {},\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n optionalImportsMap: OptionalImportMap & Record<string, any> = {},\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n additionalImportsMap: Record<string, any> = {},\n secretsFromEnv?: boolean\n): Promise<T> {\n return coreLoad(text, {\n secretsMap,\n optionalImportsMap,\n optionalImportEntrypoints,\n importMap: { ...importMap, ...additionalImportsMap },\n secretsFromEnv,\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAyBA,eAAsB,KACpB,MAEA,aAAkC,
|
|
1
|
+
{"version":3,"file":"index.js","names":["coreLoad","importMap"],"sources":["../../src/load/index.ts"],"sourcesContent":["import { load as coreLoad } from \"@langchain/core/load\";\nimport { optionalImportEntrypoints } from \"./import_constants.js\";\nimport * as importMap from \"./import_map.js\";\nimport { OptionalImportMap } from \"./import_type.js\";\n\n/**\n * Load a LangChain module from a serialized text representation.\n * NOTE: This functionality is currently in beta.\n * Loaded classes may change independently of semver.\n *\n * **WARNING — insecure deserialization risk.** This function instantiates\n * classes and invokes constructors based on the contents of `text`. Never\n * call this on untrusted or user-supplied input. Only deserialize data that\n * originates from a trusted source you control.\n *\n * See `@langchain/core/load` {@link LoadOptions} for detailed security\n * guidance on `secretsFromEnv`, `secretsMap`, and import maps.\n *\n * @param text Serialized text representation of the module.\n * @param secretsMap\n * @param optionalImportsMap\n * @param additionalImportsMap\n * @param secretsFromEnv\n * @returns A loaded instance of a LangChain module.\n */\nexport async function load<T>(\n text: string,\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n secretsMap: Record<string, any> = {},\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n optionalImportsMap: OptionalImportMap & Record<string, any> = {},\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n additionalImportsMap: Record<string, any> = {},\n secretsFromEnv?: boolean\n): Promise<T> {\n return coreLoad(text, {\n secretsMap,\n optionalImportsMap,\n optionalImportEntrypoints,\n importMap: { ...importMap, ...additionalImportsMap },\n secretsFromEnv,\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAyBA,eAAsB,KACpB,MAEA,aAAkC,CAAC,GAEnC,qBAA8D,CAAC,GAE/D,uBAA4C,CAAC,GAC7C,gBACY;CACZ,OAAOA,OAAS,MAAM;EACpB;EACA;EACA;EACA,WAAW;GAAE,GAAGC;GAAW,GAAG;EAAqB;EACnD;CACF,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder_backed.cjs","names":["BaseStore","Document"],"sources":["../../src/storage/encoder_backed.ts"],"sourcesContent":["import { Document } from \"@langchain/core/documents\";\nimport { BaseStore } from \"@langchain/core/stores\";\n\n/**\n * Class that provides a layer of abstraction over the base storage,\n * allowing for the encoding and decoding of keys and values. It extends\n * the BaseStore class.\n */\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EncoderBackedStore<K, V, SerializedType = any> extends BaseStore<\n K,\n V\n> {\n lc_namespace = [\"langchain\", \"storage\"];\n\n store: BaseStore<string, SerializedType>;\n\n keyEncoder: (key: K) => string;\n\n valueSerializer: (value: V) => SerializedType;\n\n valueDeserializer: (value: SerializedType) => V;\n\n constructor(fields: {\n store: BaseStore<string, SerializedType>;\n keyEncoder: (key: K) => string;\n valueSerializer: (value: V) => SerializedType;\n valueDeserializer: (value: SerializedType) => V;\n }) {\n super(fields);\n this.store = fields.store;\n this.keyEncoder = fields.keyEncoder;\n this.valueSerializer = fields.valueSerializer;\n this.valueDeserializer = fields.valueDeserializer;\n }\n\n /**\n * Method to get multiple keys at once. It works with the encoded keys and\n * serialized values.\n * @param keys Array of keys to get\n * @returns Promise that resolves with an array of values or undefined for each key\n */\n async mget(keys: K[]): Promise<(V | undefined)[]> {\n const encodedKeys = keys.map(this.keyEncoder);\n const values = await this.store.mget(encodedKeys);\n return values.map((value) => {\n if (value === undefined) {\n return undefined;\n }\n return this.valueDeserializer(value);\n });\n }\n\n /**\n * Method to set multiple keys at once. It works with the encoded keys and\n * serialized values.\n * @param keyValuePairs Array of key-value pairs to set\n * @returns Promise that resolves when the operation is complete\n */\n async mset(keyValuePairs: [K, V][]): Promise<void> {\n const encodedPairs: [string, SerializedType][] = keyValuePairs.map(\n ([key, value]) => [this.keyEncoder(key), this.valueSerializer(value)]\n );\n return this.store.mset(encodedPairs);\n }\n\n /**\n * Method to delete multiple keys at once. It works with the encoded keys.\n * @param keys Array of keys to delete\n * @returns Promise that resolves when the operation is complete\n */\n async mdelete(keys: K[]): Promise<void> {\n const encodedKeys = keys.map(this.keyEncoder);\n return this.store.mdelete(encodedKeys);\n }\n\n /**\n * Method to yield keys. It works with the encoded keys.\n * @param prefix Optional prefix to filter keys\n * @returns AsyncGenerator that yields keys\n */\n async *yieldKeys(prefix?: string | undefined): AsyncGenerator<string | K> {\n yield* this.store.yieldKeys(prefix);\n }\n}\n\nexport function createDocumentStoreFromByteStore(\n store: BaseStore<string, Uint8Array>\n) {\n const encoder = new TextEncoder();\n const decoder = new TextDecoder();\n return new EncoderBackedStore({\n store,\n keyEncoder: (key: string) => key,\n valueSerializer: (doc: Document) =>\n encoder.encode(\n JSON.stringify({ pageContent: doc.pageContent, metadata: doc.metadata })\n ),\n valueDeserializer: (bytes: Uint8Array) =>\n new Document(JSON.parse(decoder.decode(bytes))),\n });\n}\n"],"mappings":";;;;;;;;;;;;;;AASA,IAAa,qBAAb,cAAoEA,uBAAAA,UAGlE;CACA,eAAe,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"encoder_backed.cjs","names":["BaseStore","Document"],"sources":["../../src/storage/encoder_backed.ts"],"sourcesContent":["import { Document } from \"@langchain/core/documents\";\nimport { BaseStore } from \"@langchain/core/stores\";\n\n/**\n * Class that provides a layer of abstraction over the base storage,\n * allowing for the encoding and decoding of keys and values. It extends\n * the BaseStore class.\n */\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EncoderBackedStore<K, V, SerializedType = any> extends BaseStore<\n K,\n V\n> {\n lc_namespace = [\"langchain\", \"storage\"];\n\n store: BaseStore<string, SerializedType>;\n\n keyEncoder: (key: K) => string;\n\n valueSerializer: (value: V) => SerializedType;\n\n valueDeserializer: (value: SerializedType) => V;\n\n constructor(fields: {\n store: BaseStore<string, SerializedType>;\n keyEncoder: (key: K) => string;\n valueSerializer: (value: V) => SerializedType;\n valueDeserializer: (value: SerializedType) => V;\n }) {\n super(fields);\n this.store = fields.store;\n this.keyEncoder = fields.keyEncoder;\n this.valueSerializer = fields.valueSerializer;\n this.valueDeserializer = fields.valueDeserializer;\n }\n\n /**\n * Method to get multiple keys at once. It works with the encoded keys and\n * serialized values.\n * @param keys Array of keys to get\n * @returns Promise that resolves with an array of values or undefined for each key\n */\n async mget(keys: K[]): Promise<(V | undefined)[]> {\n const encodedKeys = keys.map(this.keyEncoder);\n const values = await this.store.mget(encodedKeys);\n return values.map((value) => {\n if (value === undefined) {\n return undefined;\n }\n return this.valueDeserializer(value);\n });\n }\n\n /**\n * Method to set multiple keys at once. It works with the encoded keys and\n * serialized values.\n * @param keyValuePairs Array of key-value pairs to set\n * @returns Promise that resolves when the operation is complete\n */\n async mset(keyValuePairs: [K, V][]): Promise<void> {\n const encodedPairs: [string, SerializedType][] = keyValuePairs.map(\n ([key, value]) => [this.keyEncoder(key), this.valueSerializer(value)]\n );\n return this.store.mset(encodedPairs);\n }\n\n /**\n * Method to delete multiple keys at once. It works with the encoded keys.\n * @param keys Array of keys to delete\n * @returns Promise that resolves when the operation is complete\n */\n async mdelete(keys: K[]): Promise<void> {\n const encodedKeys = keys.map(this.keyEncoder);\n return this.store.mdelete(encodedKeys);\n }\n\n /**\n * Method to yield keys. It works with the encoded keys.\n * @param prefix Optional prefix to filter keys\n * @returns AsyncGenerator that yields keys\n */\n async *yieldKeys(prefix?: string | undefined): AsyncGenerator<string | K> {\n yield* this.store.yieldKeys(prefix);\n }\n}\n\nexport function createDocumentStoreFromByteStore(\n store: BaseStore<string, Uint8Array>\n) {\n const encoder = new TextEncoder();\n const decoder = new TextDecoder();\n return new EncoderBackedStore({\n store,\n keyEncoder: (key: string) => key,\n valueSerializer: (doc: Document) =>\n encoder.encode(\n JSON.stringify({ pageContent: doc.pageContent, metadata: doc.metadata })\n ),\n valueDeserializer: (bytes: Uint8Array) =>\n new Document(JSON.parse(decoder.decode(bytes))),\n });\n}\n"],"mappings":";;;;;;;;;;;;;;AASA,IAAa,qBAAb,cAAoEA,uBAAAA,UAGlE;CACA,eAAe,CAAC,aAAa,SAAS;CAEtC;CAEA;CAEA;CAEA;CAEA,YAAY,QAKT;EACD,MAAM,MAAM;EACZ,KAAK,QAAQ,OAAO;EACpB,KAAK,aAAa,OAAO;EACzB,KAAK,kBAAkB,OAAO;EAC9B,KAAK,oBAAoB,OAAO;CAClC;;;;;;;CAQA,MAAM,KAAK,MAAuC;EAChD,MAAM,cAAc,KAAK,IAAI,KAAK,UAAU;EAE5C,QAAO,MADc,KAAK,MAAM,KAAK,WAAW,EAAA,CAClC,KAAK,UAAU;GAC3B,IAAI,UAAU,KAAA,GACZ;GAEF,OAAO,KAAK,kBAAkB,KAAK;EACrC,CAAC;CACH;;;;;;;CAQA,MAAM,KAAK,eAAwC;EACjD,MAAM,eAA2C,cAAc,KAC5D,CAAC,KAAK,WAAW,CAAC,KAAK,WAAW,GAAG,GAAG,KAAK,gBAAgB,KAAK,CAAC,CACtE;EACA,OAAO,KAAK,MAAM,KAAK,YAAY;CACrC;;;;;;CAOA,MAAM,QAAQ,MAA0B;EACtC,MAAM,cAAc,KAAK,IAAI,KAAK,UAAU;EAC5C,OAAO,KAAK,MAAM,QAAQ,WAAW;CACvC;;;;;;CAOA,OAAO,UAAU,QAAyD;EACxE,OAAO,KAAK,MAAM,UAAU,MAAM;CACpC;AACF;AAEA,SAAgB,iCACd,OACA;CACA,MAAM,UAAU,IAAI,YAAY;CAChC,MAAM,UAAU,IAAI,YAAY;CAChC,OAAO,IAAI,mBAAmB;EAC5B;EACA,aAAa,QAAgB;EAC7B,kBAAkB,QAChB,QAAQ,OACN,KAAK,UAAU;GAAE,aAAa,IAAI;GAAa,UAAU,IAAI;EAAS,CAAC,CACzE;EACF,oBAAoB,UAClB,IAAIC,0BAAAA,SAAS,KAAK,MAAM,QAAQ,OAAO,KAAK,CAAC,CAAC;CAClD,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder_backed.d.cts","names":[],"sources":["../../src/storage/encoder_backed.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"encoder_backed.d.cts","names":[],"sources":["../../src/storage/encoder_backed.ts"],"mappings":";;;;;;;;cASa,mBAAmB,GAAG,GAAG,8BAA8B,UAClE,GACA;EAEA;EAEA,OAAO,kBAAkB;EAEzB,aAAa,KAAK;EAElB,kBAAkB,OAAO,MAAM;EAE/B,oBAAoB,OAAO,mBAAmB;EAE9C,YAAY;IACV,OAAO,kBAAkB;IACzB,aAAa,KAAK;IAClB,kBAAkB,OAAO,MAAM;IAC/B,oBAAoB,OAAO,mBAAmB;;;;;;;;EAe1C,KAAK,MAAM,MAAM,SAAS;;;;;;;EAiB1B,KAAK,gBAAgB,GAAG,OAAO;;;;;;EAY/B,QAAQ,MAAM,MAAM;;;;;;EAUnB,UAAU,8BAA8B,wBAAwB;;iBAKzD,iCACd,OAAO,kBAAkB,cAAW,2BAAA,SAAA,sBAAA,WAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder_backed.d.ts","names":[],"sources":["../../src/storage/encoder_backed.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"encoder_backed.d.ts","names":[],"sources":["../../src/storage/encoder_backed.ts"],"mappings":";;;;;;;;cASa,mBAAmB,GAAG,GAAG,8BAA8B,UAClE,GACA;EAEA;EAEA,OAAO,kBAAkB;EAEzB,aAAa,KAAK;EAElB,kBAAkB,OAAO,MAAM;EAE/B,oBAAoB,OAAO,mBAAmB;EAE9C,YAAY;IACV,OAAO,kBAAkB;IACzB,aAAa,KAAK;IAClB,kBAAkB,OAAO,MAAM;IAC/B,oBAAoB,OAAO,mBAAmB;;;;;;;;EAe1C,KAAK,MAAM,MAAM,SAAS;;;;;;;EAiB1B,KAAK,gBAAgB,GAAG,OAAO;;;;;;EAY/B,QAAQ,MAAM,MAAM;;;;;;EAUnB,UAAU,8BAA8B,wBAAwB;;iBAKzD,iCACd,OAAO,kBAAkB,cAAW,2BAAA,SAAA,sBAAA,WAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder_backed.js","names":[],"sources":["../../src/storage/encoder_backed.ts"],"sourcesContent":["import { Document } from \"@langchain/core/documents\";\nimport { BaseStore } from \"@langchain/core/stores\";\n\n/**\n * Class that provides a layer of abstraction over the base storage,\n * allowing for the encoding and decoding of keys and values. It extends\n * the BaseStore class.\n */\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EncoderBackedStore<K, V, SerializedType = any> extends BaseStore<\n K,\n V\n> {\n lc_namespace = [\"langchain\", \"storage\"];\n\n store: BaseStore<string, SerializedType>;\n\n keyEncoder: (key: K) => string;\n\n valueSerializer: (value: V) => SerializedType;\n\n valueDeserializer: (value: SerializedType) => V;\n\n constructor(fields: {\n store: BaseStore<string, SerializedType>;\n keyEncoder: (key: K) => string;\n valueSerializer: (value: V) => SerializedType;\n valueDeserializer: (value: SerializedType) => V;\n }) {\n super(fields);\n this.store = fields.store;\n this.keyEncoder = fields.keyEncoder;\n this.valueSerializer = fields.valueSerializer;\n this.valueDeserializer = fields.valueDeserializer;\n }\n\n /**\n * Method to get multiple keys at once. It works with the encoded keys and\n * serialized values.\n * @param keys Array of keys to get\n * @returns Promise that resolves with an array of values or undefined for each key\n */\n async mget(keys: K[]): Promise<(V | undefined)[]> {\n const encodedKeys = keys.map(this.keyEncoder);\n const values = await this.store.mget(encodedKeys);\n return values.map((value) => {\n if (value === undefined) {\n return undefined;\n }\n return this.valueDeserializer(value);\n });\n }\n\n /**\n * Method to set multiple keys at once. It works with the encoded keys and\n * serialized values.\n * @param keyValuePairs Array of key-value pairs to set\n * @returns Promise that resolves when the operation is complete\n */\n async mset(keyValuePairs: [K, V][]): Promise<void> {\n const encodedPairs: [string, SerializedType][] = keyValuePairs.map(\n ([key, value]) => [this.keyEncoder(key), this.valueSerializer(value)]\n );\n return this.store.mset(encodedPairs);\n }\n\n /**\n * Method to delete multiple keys at once. It works with the encoded keys.\n * @param keys Array of keys to delete\n * @returns Promise that resolves when the operation is complete\n */\n async mdelete(keys: K[]): Promise<void> {\n const encodedKeys = keys.map(this.keyEncoder);\n return this.store.mdelete(encodedKeys);\n }\n\n /**\n * Method to yield keys. It works with the encoded keys.\n * @param prefix Optional prefix to filter keys\n * @returns AsyncGenerator that yields keys\n */\n async *yieldKeys(prefix?: string | undefined): AsyncGenerator<string | K> {\n yield* this.store.yieldKeys(prefix);\n }\n}\n\nexport function createDocumentStoreFromByteStore(\n store: BaseStore<string, Uint8Array>\n) {\n const encoder = new TextEncoder();\n const decoder = new TextDecoder();\n return new EncoderBackedStore({\n store,\n keyEncoder: (key: string) => key,\n valueSerializer: (doc: Document) =>\n encoder.encode(\n JSON.stringify({ pageContent: doc.pageContent, metadata: doc.metadata })\n ),\n valueDeserializer: (bytes: Uint8Array) =>\n new Document(JSON.parse(decoder.decode(bytes))),\n });\n}\n"],"mappings":";;;;;;;;;;;;;AASA,IAAa,qBAAb,cAAoE,UAGlE;CACA,eAAe,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"encoder_backed.js","names":[],"sources":["../../src/storage/encoder_backed.ts"],"sourcesContent":["import { Document } from \"@langchain/core/documents\";\nimport { BaseStore } from \"@langchain/core/stores\";\n\n/**\n * Class that provides a layer of abstraction over the base storage,\n * allowing for the encoding and decoding of keys and values. It extends\n * the BaseStore class.\n */\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EncoderBackedStore<K, V, SerializedType = any> extends BaseStore<\n K,\n V\n> {\n lc_namespace = [\"langchain\", \"storage\"];\n\n store: BaseStore<string, SerializedType>;\n\n keyEncoder: (key: K) => string;\n\n valueSerializer: (value: V) => SerializedType;\n\n valueDeserializer: (value: SerializedType) => V;\n\n constructor(fields: {\n store: BaseStore<string, SerializedType>;\n keyEncoder: (key: K) => string;\n valueSerializer: (value: V) => SerializedType;\n valueDeserializer: (value: SerializedType) => V;\n }) {\n super(fields);\n this.store = fields.store;\n this.keyEncoder = fields.keyEncoder;\n this.valueSerializer = fields.valueSerializer;\n this.valueDeserializer = fields.valueDeserializer;\n }\n\n /**\n * Method to get multiple keys at once. It works with the encoded keys and\n * serialized values.\n * @param keys Array of keys to get\n * @returns Promise that resolves with an array of values or undefined for each key\n */\n async mget(keys: K[]): Promise<(V | undefined)[]> {\n const encodedKeys = keys.map(this.keyEncoder);\n const values = await this.store.mget(encodedKeys);\n return values.map((value) => {\n if (value === undefined) {\n return undefined;\n }\n return this.valueDeserializer(value);\n });\n }\n\n /**\n * Method to set multiple keys at once. It works with the encoded keys and\n * serialized values.\n * @param keyValuePairs Array of key-value pairs to set\n * @returns Promise that resolves when the operation is complete\n */\n async mset(keyValuePairs: [K, V][]): Promise<void> {\n const encodedPairs: [string, SerializedType][] = keyValuePairs.map(\n ([key, value]) => [this.keyEncoder(key), this.valueSerializer(value)]\n );\n return this.store.mset(encodedPairs);\n }\n\n /**\n * Method to delete multiple keys at once. It works with the encoded keys.\n * @param keys Array of keys to delete\n * @returns Promise that resolves when the operation is complete\n */\n async mdelete(keys: K[]): Promise<void> {\n const encodedKeys = keys.map(this.keyEncoder);\n return this.store.mdelete(encodedKeys);\n }\n\n /**\n * Method to yield keys. It works with the encoded keys.\n * @param prefix Optional prefix to filter keys\n * @returns AsyncGenerator that yields keys\n */\n async *yieldKeys(prefix?: string | undefined): AsyncGenerator<string | K> {\n yield* this.store.yieldKeys(prefix);\n }\n}\n\nexport function createDocumentStoreFromByteStore(\n store: BaseStore<string, Uint8Array>\n) {\n const encoder = new TextEncoder();\n const decoder = new TextDecoder();\n return new EncoderBackedStore({\n store,\n keyEncoder: (key: string) => key,\n valueSerializer: (doc: Document) =>\n encoder.encode(\n JSON.stringify({ pageContent: doc.pageContent, metadata: doc.metadata })\n ),\n valueDeserializer: (bytes: Uint8Array) =>\n new Document(JSON.parse(decoder.decode(bytes))),\n });\n}\n"],"mappings":";;;;;;;;;;;;;AASA,IAAa,qBAAb,cAAoE,UAGlE;CACA,eAAe,CAAC,aAAa,SAAS;CAEtC;CAEA;CAEA;CAEA;CAEA,YAAY,QAKT;EACD,MAAM,MAAM;EACZ,KAAK,QAAQ,OAAO;EACpB,KAAK,aAAa,OAAO;EACzB,KAAK,kBAAkB,OAAO;EAC9B,KAAK,oBAAoB,OAAO;CAClC;;;;;;;CAQA,MAAM,KAAK,MAAuC;EAChD,MAAM,cAAc,KAAK,IAAI,KAAK,UAAU;EAE5C,QAAO,MADc,KAAK,MAAM,KAAK,WAAW,EAAA,CAClC,KAAK,UAAU;GAC3B,IAAI,UAAU,KAAA,GACZ;GAEF,OAAO,KAAK,kBAAkB,KAAK;EACrC,CAAC;CACH;;;;;;;CAQA,MAAM,KAAK,eAAwC;EACjD,MAAM,eAA2C,cAAc,KAC5D,CAAC,KAAK,WAAW,CAAC,KAAK,WAAW,GAAG,GAAG,KAAK,gBAAgB,KAAK,CAAC,CACtE;EACA,OAAO,KAAK,MAAM,KAAK,YAAY;CACrC;;;;;;CAOA,MAAM,QAAQ,MAA0B;EACtC,MAAM,cAAc,KAAK,IAAI,KAAK,UAAU;EAC5C,OAAO,KAAK,MAAM,QAAQ,WAAW;CACvC;;;;;;CAOA,OAAO,UAAU,QAAyD;EACxE,OAAO,KAAK,MAAM,UAAU,MAAM;CACpC;AACF;AAEA,SAAgB,iCACd,OACA;CACA,MAAM,UAAU,IAAI,YAAY;CAChC,MAAM,UAAU,IAAI,YAAY;CAChC,OAAO,IAAI,mBAAmB;EAC5B;EACA,aAAa,QAAgB;EAC7B,kBAAkB,QAChB,QAAQ,OACN,KAAK,UAAU;GAAE,aAAa,IAAI;GAAa,UAAU,IAAI;EAAS,CAAC,CACzE;EACF,oBAAoB,UAClB,IAAI,SAAS,KAAK,MAAM,QAAQ,OAAO,KAAK,CAAC,CAAC;CAClD,CAAC;AACH"}
|
|
@@ -83,9 +83,10 @@ var LocalFileStore = class extends _langchain_core_stores.BaseStore {
|
|
|
83
83
|
try {
|
|
84
84
|
const keyAsTxtFile = `${key}.txt`;
|
|
85
85
|
if (!/^[a-zA-Z0-9_.\-/]+$/.test(key)) throw new Error(`Invalid characters in key: ${key}`);
|
|
86
|
-
const
|
|
87
|
-
const
|
|
88
|
-
|
|
86
|
+
const rootPath = node_path.resolve(this.rootPath);
|
|
87
|
+
const fullPath = node_path.resolve(rootPath, keyAsTxtFile);
|
|
88
|
+
const relativePath = node_path.relative(rootPath, fullPath);
|
|
89
|
+
if (relativePath === ".." || relativePath.startsWith(`..${node_path.sep}`) || node_path.isAbsolute(relativePath)) throw new Error(`Invalid key: ${key}. Key should be relative to the root path. Root path: ${this.rootPath}, Full path: ${fullPath}`);
|
|
89
90
|
return fullPath;
|
|
90
91
|
} catch (e) {
|
|
91
92
|
throw new Error(`Error getting full path for key: ${key}.\nError: ${String(e)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file_system.cjs","names":["BaseStore","fs","path"],"sources":["../../src/storage/file_system.ts"],"sourcesContent":["import * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport { BaseStore } from \"@langchain/core/stores\";\n\n/**\n * File system implementation of the BaseStore using a dictionary. Used for\n * storing key-value pairs in the file system.\n * @example\n * ```typescript\n * const store = await LocalFileStore.fromPath(\"./messages\");\n * await store.mset(\n * Array.from({ length: 5 }).map((_, index) => [\n * `message:id:${index}`,\n * new TextEncoder().encode(\n * JSON.stringify(\n * index % 2 === 0\n * ? new AIMessage(\"ai stuff...\")\n * : new HumanMessage(\"human stuff...\"),\n * ),\n * ),\n * ]),\n * );\n * const retrievedMessages = await store.mget([\"message:id:0\", \"message:id:1\"]);\n * console.log(retrievedMessages.map((v) => new TextDecoder().decode(v)));\n * for await (const key of store.yieldKeys(\"message:id:\")) {\n * await store.mdelete([key]);\n * }\n * ```\n *\n * @security **Security Notice** This file store\n * can alter any text file in the provided directory and any subfolders.\n * Make sure that the path you specify when initializing the store is free\n * of other files.\n */\nexport class LocalFileStore extends BaseStore<string, Uint8Array> {\n lc_namespace = [\"langchain\", \"storage\"];\n\n rootPath: string;\n\n private keyLocks: Map<string, Promise<void>> = new Map();\n\n constructor(fields: { rootPath: string }) {\n super(fields);\n this.rootPath = fields.rootPath;\n }\n\n /**\n * Read and parse the file at the given path.\n * @param key The key to read the file for.\n * @returns Promise that resolves to the parsed file content.\n */\n private async getParsedFile(key: string): Promise<Uint8Array | undefined> {\n // Validate the key to prevent path traversal\n if (!/^[a-zA-Z0-9_\\-:.]+$/.test(key)) {\n throw new Error(\n \"Invalid key. Only alphanumeric characters, underscores, hyphens, colons, and periods are allowed.\"\n );\n }\n try {\n const fileContent = await fs.readFile(this.getFullPath(key));\n if (!fileContent) {\n return undefined;\n }\n return fileContent;\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n // File does not exist yet.\n if (\"code\" in e && e.code === \"ENOENT\") {\n return undefined;\n }\n throw new Error(\n `Error reading and parsing file at path: ${\n this.rootPath\n }.\\nError: ${JSON.stringify(e)}`\n );\n }\n }\n\n /**\n * Writes the given key-value pairs to the file at the given path.\n * @param fileContent An object with the key-value pairs to be written to the file.\n */\n private async setFileContent(content: Uint8Array, key: string) {\n await this.withKeyLock(key, async () => {\n const fullPath = this.getFullPath(key);\n try {\n await this.writeFileAtomically(content, fullPath);\n } catch (error) {\n throw new Error(\n `Error writing file at path: ${fullPath}.\\nError: ${JSON.stringify(\n error\n )}`\n );\n }\n });\n }\n\n /**\n * Returns the full path of the file where the value of the given key is stored.\n * @param key the key to get the full path for\n */\n private getFullPath(key: string): string {\n try {\n const keyAsTxtFile = `${key}.txt`;\n\n // Validate the key to prevent path traversal\n if (!/^[a-zA-Z0-9_.\\-/]+$/.test(key)) {\n throw new Error(`Invalid characters in key: ${key}`);\n }\n\n const fullPath = path.resolve(this.rootPath, keyAsTxtFile);\n const commonPath = path.resolve(this.rootPath);\n\n if (!fullPath.startsWith(commonPath)) {\n throw new Error(\n `Invalid key: ${key}. Key should be relative to the root path. ` +\n `Root path: ${this.rootPath}, Full path: ${fullPath}`\n );\n }\n\n return fullPath;\n } catch (e) {\n throw new Error(\n `Error getting full path for key: ${key}.\\nError: ${String(e)}`\n );\n }\n }\n\n /**\n * Retrieves the values associated with the given keys from the store.\n * @param keys Keys to retrieve values for.\n * @returns Array of values associated with the given keys.\n */\n async mget(keys: string[]) {\n const values: (Uint8Array | undefined)[] = [];\n for (const key of keys) {\n const fileContent = await this.getParsedFile(key);\n values.push(fileContent);\n }\n return values;\n }\n\n /**\n * Sets the values for the given keys in the store.\n * The last value for duplicate keys will be used.\n * @param keyValuePairs Array of key-value pairs to set in the store.\n * @returns Promise that resolves when all key-value pairs have been set.\n */\n async mset(keyValuePairs: [string, Uint8Array][]): Promise<void> {\n const deduped = new Map<string, Uint8Array>();\n for (const [key, value] of keyValuePairs) {\n deduped.set(key, value);\n }\n\n await Promise.all(\n Array.from(deduped.entries(), ([key, value]) =>\n this.setFileContent(value, key)\n )\n );\n }\n\n /**\n * Deletes the given keys and their associated values from the store.\n * @param keys Keys to delete from the store.\n * @returns Promise that resolves when all keys have been deleted.\n */\n async mdelete(keys: string[]): Promise<void> {\n await Promise.all(\n keys.map((key) =>\n this.withKeyLock(key, async () => {\n try {\n await fs.unlink(this.getFullPath(key));\n } catch (error) {\n // Ignore missing files so deletes remain idempotent.\n if (!error || (error as { code?: string }).code !== \"ENOENT\") {\n throw error;\n }\n }\n })\n )\n );\n }\n\n /**\n * Asynchronous generator that yields keys from the store. If a prefix is\n * provided, it only yields keys that start with the prefix.\n * @param prefix Optional prefix to filter keys.\n * @returns AsyncGenerator that yields keys from the store.\n */\n async *yieldKeys(prefix?: string): AsyncGenerator<string> {\n const allFiles: string[] = await fs.readdir(this.rootPath);\n const allKeys = allFiles\n .filter((file) => file.endsWith(\".txt\"))\n .map((file) => file.replace(/\\.txt$/, \"\"));\n for (const key of allKeys) {\n if (prefix === undefined || key.startsWith(prefix)) {\n yield key;\n }\n }\n }\n\n /**\n * Static method for initializing the class.\n * Preforms a check to see if the directory exists, and if not, creates it.\n * @param path Path to the directory.\n * @returns Promise that resolves to an instance of the class.\n */\n static async fromPath(rootPath: string): Promise<LocalFileStore> {\n try {\n // Verifies the directory exists at the provided path, and that it is readable and writable.\n await fs.access(rootPath, fs.constants.R_OK | fs.constants.W_OK);\n } catch {\n try {\n // Directory does not exist, create it.\n await fs.mkdir(rootPath, { recursive: true });\n } catch (error) {\n throw new Error(\n `An error occurred creating directory at: ${rootPath}.\\nError: ${JSON.stringify(\n error\n )}`\n );\n }\n }\n\n // Clean up orphaned temp files left by interrupted atomic writes.\n try {\n const entries = await fs.readdir(rootPath);\n await Promise.all(\n entries\n .filter((file) => file.endsWith(\".tmp\"))\n .map((tempFile) =>\n fs.unlink(path.join(rootPath, tempFile)).catch(() => {})\n )\n );\n } catch {\n // Ignore cleanup errors.\n }\n\n return new this({ rootPath });\n }\n\n /**\n * Ensures calls for the same key run sequentially by chaining promises.\n * @param key Key to serialize operations for.\n * @param fn Async work to execute while the lock is held.\n * @returns Promise resolving with the callback result once the lock releases.\n */\n private async withKeyLock<T>(key: string, fn: () => Promise<T>): Promise<T> {\n const previous = this.keyLocks.get(key) ?? Promise.resolve();\n const waitForPrevious = previous.catch(() => {});\n\n let resolveCurrent: (() => void) | undefined;\n const current = new Promise<void>((resolve) => {\n resolveCurrent = resolve;\n });\n\n const tail = waitForPrevious.then(() => current);\n this.keyLocks.set(key, tail);\n\n await waitForPrevious;\n try {\n return await fn();\n } finally {\n resolveCurrent?.();\n if (this.keyLocks.get(key) === tail) {\n this.keyLocks.delete(key);\n }\n }\n }\n\n /**\n * Writes data to a temporary file before atomically renaming it into place.\n * @param content Serialized value to persist.\n * @param fullPath Destination path for the stored key.\n */\n private async writeFileAtomically(content: Uint8Array, fullPath: string) {\n const directory = path.dirname(fullPath);\n await fs.mkdir(directory, { recursive: true });\n\n const tempPath = `${fullPath}.${Date.now()}-${Math.random()\n .toString(16)\n .slice(2)}.tmp`;\n\n try {\n await fs.writeFile(tempPath, content);\n\n try {\n await fs.rename(tempPath, fullPath);\n } catch (renameError) {\n const code = (renameError as { code?: string }).code;\n if (renameError && (code === \"EPERM\" || code === \"EACCES\")) {\n // Fallback for Windows where replacing an existing file can fail if the\n // destination is locked by another process.\n await fs.writeFile(fullPath, content);\n await fs.unlink(tempPath).catch(() => {});\n } else {\n throw renameError;\n }\n }\n } catch (error) {\n await fs.unlink(tempPath).catch(() => {});\n throw error;\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file_system.cjs","names":["BaseStore","fs","path"],"sources":["../../src/storage/file_system.ts"],"sourcesContent":["import * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport { BaseStore } from \"@langchain/core/stores\";\n\n/**\n * File system implementation of the BaseStore using a dictionary. Used for\n * storing key-value pairs in the file system.\n * @example\n * ```typescript\n * const store = await LocalFileStore.fromPath(\"./messages\");\n * await store.mset(\n * Array.from({ length: 5 }).map((_, index) => [\n * `message:id:${index}`,\n * new TextEncoder().encode(\n * JSON.stringify(\n * index % 2 === 0\n * ? new AIMessage(\"ai stuff...\")\n * : new HumanMessage(\"human stuff...\"),\n * ),\n * ),\n * ]),\n * );\n * const retrievedMessages = await store.mget([\"message:id:0\", \"message:id:1\"]);\n * console.log(retrievedMessages.map((v) => new TextDecoder().decode(v)));\n * for await (const key of store.yieldKeys(\"message:id:\")) {\n * await store.mdelete([key]);\n * }\n * ```\n *\n * @security **Security Notice** This file store\n * can alter any text file in the provided directory and any subfolders.\n * Make sure that the path you specify when initializing the store is free\n * of other files.\n */\nexport class LocalFileStore extends BaseStore<string, Uint8Array> {\n lc_namespace = [\"langchain\", \"storage\"];\n\n rootPath: string;\n\n private keyLocks: Map<string, Promise<void>> = new Map();\n\n constructor(fields: { rootPath: string }) {\n super(fields);\n this.rootPath = fields.rootPath;\n }\n\n /**\n * Read and parse the file at the given path.\n * @param key The key to read the file for.\n * @returns Promise that resolves to the parsed file content.\n */\n private async getParsedFile(key: string): Promise<Uint8Array | undefined> {\n // Validate the key to prevent path traversal\n if (!/^[a-zA-Z0-9_\\-:.]+$/.test(key)) {\n throw new Error(\n \"Invalid key. Only alphanumeric characters, underscores, hyphens, colons, and periods are allowed.\"\n );\n }\n try {\n const fileContent = await fs.readFile(this.getFullPath(key));\n if (!fileContent) {\n return undefined;\n }\n return fileContent;\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n // File does not exist yet.\n if (\"code\" in e && e.code === \"ENOENT\") {\n return undefined;\n }\n throw new Error(\n `Error reading and parsing file at path: ${\n this.rootPath\n }.\\nError: ${JSON.stringify(e)}`\n );\n }\n }\n\n /**\n * Writes the given key-value pairs to the file at the given path.\n * @param fileContent An object with the key-value pairs to be written to the file.\n */\n private async setFileContent(content: Uint8Array, key: string) {\n await this.withKeyLock(key, async () => {\n const fullPath = this.getFullPath(key);\n try {\n await this.writeFileAtomically(content, fullPath);\n } catch (error) {\n throw new Error(\n `Error writing file at path: ${fullPath}.\\nError: ${JSON.stringify(\n error\n )}`\n );\n }\n });\n }\n\n /**\n * Returns the full path of the file where the value of the given key is stored.\n * @param key the key to get the full path for\n */\n private getFullPath(key: string): string {\n try {\n const keyAsTxtFile = `${key}.txt`;\n\n // Validate the key to prevent path traversal\n if (!/^[a-zA-Z0-9_.\\-/]+$/.test(key)) {\n throw new Error(`Invalid characters in key: ${key}`);\n }\n\n const rootPath = path.resolve(this.rootPath);\n const fullPath = path.resolve(rootPath, keyAsTxtFile);\n const relativePath = path.relative(rootPath, fullPath);\n\n if (\n relativePath === \"..\" ||\n relativePath.startsWith(`..${path.sep}`) ||\n path.isAbsolute(relativePath)\n ) {\n throw new Error(\n `Invalid key: ${key}. Key should be relative to the root path. ` +\n `Root path: ${this.rootPath}, Full path: ${fullPath}`\n );\n }\n\n return fullPath;\n } catch (e) {\n throw new Error(\n `Error getting full path for key: ${key}.\\nError: ${String(e)}`\n );\n }\n }\n\n /**\n * Retrieves the values associated with the given keys from the store.\n * @param keys Keys to retrieve values for.\n * @returns Array of values associated with the given keys.\n */\n async mget(keys: string[]) {\n const values: (Uint8Array | undefined)[] = [];\n for (const key of keys) {\n const fileContent = await this.getParsedFile(key);\n values.push(fileContent);\n }\n return values;\n }\n\n /**\n * Sets the values for the given keys in the store.\n * The last value for duplicate keys will be used.\n * @param keyValuePairs Array of key-value pairs to set in the store.\n * @returns Promise that resolves when all key-value pairs have been set.\n */\n async mset(keyValuePairs: [string, Uint8Array][]): Promise<void> {\n const deduped = new Map<string, Uint8Array>();\n for (const [key, value] of keyValuePairs) {\n deduped.set(key, value);\n }\n\n await Promise.all(\n Array.from(deduped.entries(), ([key, value]) =>\n this.setFileContent(value, key)\n )\n );\n }\n\n /**\n * Deletes the given keys and their associated values from the store.\n * @param keys Keys to delete from the store.\n * @returns Promise that resolves when all keys have been deleted.\n */\n async mdelete(keys: string[]): Promise<void> {\n await Promise.all(\n keys.map((key) =>\n this.withKeyLock(key, async () => {\n try {\n await fs.unlink(this.getFullPath(key));\n } catch (error) {\n // Ignore missing files so deletes remain idempotent.\n if (!error || (error as { code?: string }).code !== \"ENOENT\") {\n throw error;\n }\n }\n })\n )\n );\n }\n\n /**\n * Asynchronous generator that yields keys from the store. If a prefix is\n * provided, it only yields keys that start with the prefix.\n * @param prefix Optional prefix to filter keys.\n * @returns AsyncGenerator that yields keys from the store.\n */\n async *yieldKeys(prefix?: string): AsyncGenerator<string> {\n const allFiles: string[] = await fs.readdir(this.rootPath);\n const allKeys = allFiles\n .filter((file) => file.endsWith(\".txt\"))\n .map((file) => file.replace(/\\.txt$/, \"\"));\n for (const key of allKeys) {\n if (prefix === undefined || key.startsWith(prefix)) {\n yield key;\n }\n }\n }\n\n /**\n * Static method for initializing the class.\n * Preforms a check to see if the directory exists, and if not, creates it.\n * @param path Path to the directory.\n * @returns Promise that resolves to an instance of the class.\n */\n static async fromPath(rootPath: string): Promise<LocalFileStore> {\n try {\n // Verifies the directory exists at the provided path, and that it is readable and writable.\n await fs.access(rootPath, fs.constants.R_OK | fs.constants.W_OK);\n } catch {\n try {\n // Directory does not exist, create it.\n await fs.mkdir(rootPath, { recursive: true });\n } catch (error) {\n throw new Error(\n `An error occurred creating directory at: ${rootPath}.\\nError: ${JSON.stringify(\n error\n )}`\n );\n }\n }\n\n // Clean up orphaned temp files left by interrupted atomic writes.\n try {\n const entries = await fs.readdir(rootPath);\n await Promise.all(\n entries\n .filter((file) => file.endsWith(\".tmp\"))\n .map((tempFile) =>\n fs.unlink(path.join(rootPath, tempFile)).catch(() => {})\n )\n );\n } catch {\n // Ignore cleanup errors.\n }\n\n return new this({ rootPath });\n }\n\n /**\n * Ensures calls for the same key run sequentially by chaining promises.\n * @param key Key to serialize operations for.\n * @param fn Async work to execute while the lock is held.\n * @returns Promise resolving with the callback result once the lock releases.\n */\n private async withKeyLock<T>(key: string, fn: () => Promise<T>): Promise<T> {\n const previous = this.keyLocks.get(key) ?? Promise.resolve();\n const waitForPrevious = previous.catch(() => {});\n\n let resolveCurrent: (() => void) | undefined;\n const current = new Promise<void>((resolve) => {\n resolveCurrent = resolve;\n });\n\n const tail = waitForPrevious.then(() => current);\n this.keyLocks.set(key, tail);\n\n await waitForPrevious;\n try {\n return await fn();\n } finally {\n resolveCurrent?.();\n if (this.keyLocks.get(key) === tail) {\n this.keyLocks.delete(key);\n }\n }\n }\n\n /**\n * Writes data to a temporary file before atomically renaming it into place.\n * @param content Serialized value to persist.\n * @param fullPath Destination path for the stored key.\n */\n private async writeFileAtomically(content: Uint8Array, fullPath: string) {\n const directory = path.dirname(fullPath);\n await fs.mkdir(directory, { recursive: true });\n\n const tempPath = `${fullPath}.${Date.now()}-${Math.random()\n .toString(16)\n .slice(2)}.tmp`;\n\n try {\n await fs.writeFile(tempPath, content);\n\n try {\n await fs.rename(tempPath, fullPath);\n } catch (renameError) {\n const code = (renameError as { code?: string }).code;\n if (renameError && (code === \"EPERM\" || code === \"EACCES\")) {\n // Fallback for Windows where replacing an existing file can fail if the\n // destination is locked by another process.\n await fs.writeFile(fullPath, content);\n await fs.unlink(tempPath).catch(() => {});\n } else {\n throw renameError;\n }\n }\n } catch (error) {\n await fs.unlink(tempPath).catch(() => {});\n throw error;\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { BaseStore } from "@langchain/core/stores";
|
|
2
|
-
|
|
3
2
|
//#region src/storage/file_system.d.ts
|
|
4
3
|
/**
|
|
5
4
|
* File system implementation of the BaseStore using a dictionary. Used for
|
|
@@ -38,7 +37,16 @@ declare class LocalFileStore extends BaseStore<string, Uint8Array> {
|
|
|
38
37
|
constructor(fields: {
|
|
39
38
|
rootPath: string;
|
|
40
39
|
});
|
|
40
|
+
/**
|
|
41
|
+
* Read and parse the file at the given path.
|
|
42
|
+
* @param key The key to read the file for.
|
|
43
|
+
* @returns Promise that resolves to the parsed file content.
|
|
44
|
+
*/
|
|
41
45
|
private getParsedFile;
|
|
46
|
+
/**
|
|
47
|
+
* Writes the given key-value pairs to the file at the given path.
|
|
48
|
+
* @param fileContent An object with the key-value pairs to be written to the file.
|
|
49
|
+
*/
|
|
42
50
|
private setFileContent;
|
|
43
51
|
/**
|
|
44
52
|
* Returns the full path of the file where the value of the given key is stored.
|
|
@@ -78,7 +86,18 @@ declare class LocalFileStore extends BaseStore<string, Uint8Array> {
|
|
|
78
86
|
* @returns Promise that resolves to an instance of the class.
|
|
79
87
|
*/
|
|
80
88
|
static fromPath(rootPath: string): Promise<LocalFileStore>;
|
|
89
|
+
/**
|
|
90
|
+
* Ensures calls for the same key run sequentially by chaining promises.
|
|
91
|
+
* @param key Key to serialize operations for.
|
|
92
|
+
* @param fn Async work to execute while the lock is held.
|
|
93
|
+
* @returns Promise resolving with the callback result once the lock releases.
|
|
94
|
+
*/
|
|
81
95
|
private withKeyLock;
|
|
96
|
+
/**
|
|
97
|
+
* Writes data to a temporary file before atomically renaming it into place.
|
|
98
|
+
* @param content Serialized value to persist.
|
|
99
|
+
* @param fullPath Destination path for the stored key.
|
|
100
|
+
*/
|
|
82
101
|
private writeFileAtomically;
|
|
83
102
|
}
|
|
84
103
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file_system.d.cts","names":[],"sources":["../../src/storage/file_system.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"file_system.d.cts","names":[],"sources":["../../src/storage/file_system.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkCa,uBAAuB,kBAAkB;EACpD;EAEA;UAEQ;EAER,YAAY;IAAU;;;;;;;UAUR;;;;;UA+BA;;;;;UAmBN;;;;;;EAqCF,KAAK,iBAAc,SAAA,WAAA;;;;;;;EAenB,KAAK,wBAAwB,gBAAgB;;;;;;EAkB7C,QAAQ,iBAAiB;;;;;;;EAuBxB,UAAU,kBAAkB;;;;;;;SAkBtB,SAAS,mBAAmB,QAAQ;;;;;;;UAwCnC;;;;;;UA4BA"}
|