@langchain/core 1.0.0-alpha.3 → 1.0.0-alpha.4
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/README.md +3 -19
- package/dist/caches/base.cjs +2 -2
- package/dist/caches/base.cjs.map +1 -1
- package/dist/callbacks/base.d.ts.map +1 -1
- package/dist/document_loaders/langsmith.cjs +1 -1
- package/dist/document_loaders/langsmith.cjs.map +1 -1
- package/dist/document_loaders/langsmith.js +1 -1
- package/dist/document_loaders/langsmith.js.map +1 -1
- package/dist/embeddings.cjs.map +1 -1
- package/dist/embeddings.d.cts +6 -6
- package/dist/embeddings.d.cts.map +1 -1
- package/dist/embeddings.d.ts +6 -6
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/embeddings.js.map +1 -1
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/indexing/base.cjs +2 -2
- package/dist/indexing/base.cjs.map +1 -1
- package/dist/indexing/base.d.cts +0 -3
- package/dist/indexing/base.d.cts.map +1 -1
- package/dist/indexing/base.d.ts +0 -3
- package/dist/indexing/base.d.ts.map +1 -1
- package/dist/indexing/base.js +2 -2
- package/dist/indexing/base.js.map +1 -1
- package/dist/language_models/base.cjs +1 -1
- package/dist/language_models/base.cjs.map +1 -1
- package/dist/language_models/base.d.cts +3 -3
- package/dist/language_models/base.d.cts.map +1 -1
- package/dist/language_models/base.d.ts +3 -3
- package/dist/language_models/base.d.ts.map +1 -1
- package/dist/language_models/base.js +1 -1
- package/dist/language_models/base.js.map +1 -1
- package/dist/language_models/chat_models.cjs.map +1 -1
- package/dist/language_models/chat_models.d.ts.map +1 -1
- package/dist/language_models/chat_models.js.map +1 -1
- package/dist/language_models/llms.cjs.map +1 -1
- package/dist/language_models/llms.js.map +1 -1
- package/dist/load/import_map.cjs +1 -5
- package/dist/load/import_map.cjs.map +1 -1
- package/dist/load/import_map.js +3 -7
- package/dist/load/import_map.js.map +1 -1
- package/dist/load/index.cjs.map +1 -1
- package/dist/load/index.js.map +1 -1
- package/dist/load/serializable.cjs.map +1 -1
- package/dist/load/serializable.d.cts +1 -3
- package/dist/load/serializable.d.cts.map +1 -1
- package/dist/load/serializable.d.ts +1 -3
- package/dist/load/serializable.d.ts.map +1 -1
- package/dist/load/serializable.js.map +1 -1
- package/dist/messages/ai.cjs +2 -2
- package/dist/messages/ai.cjs.map +1 -1
- package/dist/messages/ai.js +2 -2
- package/dist/messages/ai.js.map +1 -1
- package/dist/messages/base.cjs +5 -5
- package/dist/messages/base.cjs.map +1 -1
- package/dist/messages/base.d.cts +1 -2
- package/dist/messages/base.d.cts.map +1 -1
- package/dist/messages/base.d.ts +1 -2
- package/dist/messages/base.d.ts.map +1 -1
- package/dist/messages/base.js +5 -5
- package/dist/messages/base.js.map +1 -1
- package/dist/messages/block_translators/utils.cjs +1 -1
- package/dist/messages/block_translators/utils.cjs.map +1 -1
- package/dist/messages/block_translators/utils.js +1 -1
- package/dist/messages/block_translators/utils.js.map +1 -1
- package/dist/messages/index.cjs +1 -1
- package/dist/messages/index.js +1 -1
- package/dist/messages/modifier.cjs +4 -1
- package/dist/messages/modifier.cjs.map +1 -1
- package/dist/messages/modifier.js +4 -1
- package/dist/messages/modifier.js.map +1 -1
- package/dist/messages/tool.cjs +7 -7
- package/dist/messages/tool.cjs.map +1 -1
- package/dist/messages/tool.js +7 -7
- package/dist/messages/tool.js.map +1 -1
- package/dist/messages/transformers.cjs +2 -2
- package/dist/messages/transformers.cjs.map +1 -1
- package/dist/messages/transformers.js +2 -2
- package/dist/messages/transformers.js.map +1 -1
- package/dist/messages/utils.cjs +5 -0
- package/dist/messages/utils.cjs.map +1 -1
- package/dist/messages/utils.js +5 -0
- package/dist/messages/utils.js.map +1 -1
- package/dist/output_parsers/list.cjs +1 -1
- package/dist/output_parsers/list.cjs.map +1 -1
- package/dist/output_parsers/list.js +1 -1
- package/dist/output_parsers/list.js.map +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.cts +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.ts +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.cjs +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.cjs.map +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.js +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.js.map +1 -1
- package/dist/output_parsers/structured.cjs +2 -1
- package/dist/output_parsers/structured.cjs.map +1 -1
- package/dist/output_parsers/structured.js +2 -1
- package/dist/output_parsers/structured.js.map +1 -1
- package/dist/prompts/chat.cjs +3 -1
- package/dist/prompts/chat.cjs.map +1 -1
- package/dist/prompts/chat.d.cts +4 -12
- package/dist/prompts/chat.d.cts.map +1 -1
- package/dist/prompts/chat.d.ts +4 -12
- package/dist/prompts/chat.d.ts.map +1 -1
- package/dist/prompts/chat.js +3 -1
- package/dist/prompts/chat.js.map +1 -1
- package/dist/prompts/image.cjs.map +1 -1
- package/dist/prompts/image.d.cts +0 -2
- package/dist/prompts/image.d.cts.map +1 -1
- package/dist/prompts/image.d.ts +0 -2
- package/dist/prompts/image.d.ts.map +1 -1
- package/dist/prompts/image.js.map +1 -1
- package/dist/prompts/pipeline.cjs.map +1 -1
- package/dist/prompts/pipeline.js.map +1 -1
- package/dist/prompts/prompt.cjs.map +1 -1
- package/dist/prompts/prompt.d.cts +4 -16
- package/dist/prompts/prompt.d.cts.map +1 -1
- package/dist/prompts/prompt.d.ts +4 -16
- package/dist/prompts/prompt.d.ts.map +1 -1
- package/dist/prompts/prompt.js.map +1 -1
- package/dist/prompts/structured.cjs.map +1 -1
- package/dist/prompts/structured.js.map +1 -1
- package/dist/prompts/template.cjs +4 -2
- package/dist/prompts/template.cjs.map +1 -1
- package/dist/prompts/template.js +4 -2
- package/dist/prompts/template.js.map +1 -1
- package/dist/runnables/base.cjs +6 -6
- package/dist/runnables/base.cjs.map +1 -1
- package/dist/runnables/base.d.cts +0 -3
- package/dist/runnables/base.d.cts.map +1 -1
- package/dist/runnables/base.d.ts +0 -3
- package/dist/runnables/base.d.ts.map +1 -1
- package/dist/runnables/base.js +6 -6
- package/dist/runnables/base.js.map +1 -1
- package/dist/runnables/branch.cjs +2 -2
- package/dist/runnables/branch.cjs.map +1 -1
- package/dist/runnables/branch.js +2 -2
- package/dist/runnables/branch.js.map +1 -1
- package/dist/runnables/config.cjs.map +1 -1
- package/dist/runnables/config.js.map +1 -1
- package/dist/runnables/graph.cjs +1 -1
- package/dist/runnables/graph.cjs.map +1 -1
- package/dist/runnables/graph.js +1 -1
- package/dist/runnables/graph.js.map +1 -1
- package/dist/runnables/graph_mermaid.cjs +26 -3
- package/dist/runnables/graph_mermaid.cjs.map +1 -1
- package/dist/runnables/graph_mermaid.js +26 -3
- package/dist/runnables/graph_mermaid.js.map +1 -1
- package/dist/runnables/remote.cjs.map +1 -1
- package/dist/runnables/remote.js.map +1 -1
- package/dist/runnables/types.d.cts +0 -1
- package/dist/runnables/types.d.cts.map +1 -1
- package/dist/runnables/types.d.ts +0 -1
- package/dist/runnables/types.d.ts.map +1 -1
- package/dist/singletons/async_local_storage/context.cjs.map +1 -1
- package/dist/singletons/async_local_storage/context.d.cts +0 -1
- package/dist/singletons/async_local_storage/context.d.cts.map +1 -1
- package/dist/singletons/async_local_storage/context.d.ts +0 -1
- package/dist/singletons/async_local_storage/context.d.ts.map +1 -1
- package/dist/singletons/async_local_storage/context.js.map +1 -1
- package/dist/singletons/callbacks.cjs.map +1 -1
- package/dist/singletons/callbacks.js.map +1 -1
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.d.cts +2 -2
- package/dist/tools/index.d.cts.map +1 -1
- package/dist/tools/index.d.ts +2 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.d.cts +5 -5
- package/dist/tools/types.d.cts.map +1 -1
- package/dist/tools/types.d.ts +5 -5
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tracers/base.cjs.map +1 -1
- package/dist/tracers/base.js.map +1 -1
- package/dist/tracers/console.cjs +1 -1
- package/dist/tracers/console.cjs.map +1 -1
- package/dist/tracers/console.js +1 -1
- package/dist/tracers/console.js.map +1 -1
- package/dist/tracers/event_stream.cjs +1 -1
- package/dist/tracers/event_stream.cjs.map +1 -1
- package/dist/tracers/event_stream.d.cts +0 -1
- package/dist/tracers/event_stream.d.cts.map +1 -1
- package/dist/tracers/event_stream.d.ts +0 -1
- package/dist/tracers/event_stream.d.ts.map +1 -1
- package/dist/tracers/event_stream.js +1 -1
- package/dist/tracers/event_stream.js.map +1 -1
- package/dist/tracers/log_stream.cjs.map +1 -1
- package/dist/tracers/log_stream.js.map +1 -1
- package/dist/tracers/tracer_langchain.cjs.map +1 -1
- package/dist/tracers/tracer_langchain.js.map +1 -1
- package/dist/utils/chunk_array.cjs.map +1 -1
- package/dist/utils/chunk_array.js.map +1 -1
- package/dist/utils/env.cjs +1 -1
- package/dist/utils/env.cjs.map +1 -1
- package/dist/utils/env.js +1 -1
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/event_source_parse.cjs.map +1 -1
- package/dist/utils/event_source_parse.d.cts.map +1 -1
- package/dist/utils/event_source_parse.d.ts.map +1 -1
- package/dist/utils/event_source_parse.js.map +1 -1
- package/dist/utils/hash.cjs +3 -8
- package/dist/utils/hash.cjs.map +1 -1
- package/dist/utils/hash.d.cts +1 -2
- package/dist/utils/hash.d.cts.map +1 -1
- package/dist/utils/hash.d.ts +1 -2
- package/dist/utils/hash.d.ts.map +1 -1
- package/dist/utils/hash.js +2 -6
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/js-sha256/hash.cjs +0 -9
- package/dist/utils/js-sha256/hash.cjs.map +1 -1
- package/dist/utils/js-sha256/hash.js +1 -5
- package/dist/utils/js-sha256/hash.js.map +1 -1
- package/dist/utils/json.cjs +2 -2
- package/dist/utils/json.cjs.map +1 -1
- package/dist/utils/json.js +2 -2
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/json_schema.cjs +3 -2
- package/dist/utils/json_schema.cjs.map +1 -1
- package/dist/utils/json_schema.d.cts +8 -4
- package/dist/utils/json_schema.d.cts.map +1 -1
- package/dist/utils/json_schema.d.ts +8 -4
- package/dist/utils/json_schema.d.ts.map +1 -1
- package/dist/utils/json_schema.js +2 -1
- package/dist/utils/json_schema.js.map +1 -1
- package/dist/utils/stream.cjs.map +1 -1
- package/dist/utils/stream.js.map +1 -1
- package/dist/utils/testing/index.cjs.map +1 -1
- package/dist/utils/testing/index.d.cts +4 -9
- package/dist/utils/testing/index.d.cts.map +1 -1
- package/dist/utils/testing/index.d.ts +4 -9
- package/dist/utils/testing/index.d.ts.map +1 -1
- package/dist/utils/testing/index.js.map +1 -1
- package/dist/utils/zod-to-json-schema/Options.cjs +40 -0
- package/dist/utils/zod-to-json-schema/Options.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/Options.js +37 -0
- package/dist/utils/zod-to-json-schema/Options.js.map +1 -0
- package/dist/utils/zod-to-json-schema/Refs.cjs +30 -0
- package/dist/utils/zod-to-json-schema/Refs.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/Refs.js +30 -0
- package/dist/utils/zod-to-json-schema/Refs.js.map +1 -0
- package/dist/utils/zod-to-json-schema/errorMessages.cjs +18 -0
- package/dist/utils/zod-to-json-schema/errorMessages.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/errorMessages.d.cts +11 -0
- package/dist/utils/zod-to-json-schema/errorMessages.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/errorMessages.d.ts +11 -0
- package/dist/utils/zod-to-json-schema/errorMessages.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/errorMessages.js +16 -0
- package/dist/utils/zod-to-json-schema/errorMessages.js.map +1 -0
- package/dist/utils/zod-to-json-schema/getRelativePath.cjs +11 -0
- package/dist/utils/zod-to-json-schema/getRelativePath.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/getRelativePath.js +10 -0
- package/dist/utils/zod-to-json-schema/getRelativePath.js.map +1 -0
- package/dist/utils/zod-to-json-schema/index.cjs +37 -0
- package/dist/utils/zod-to-json-schema/index.js +37 -0
- package/dist/utils/zod-to-json-schema/parseDef.cjs +57 -0
- package/dist/utils/zod-to-json-schema/parseDef.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parseDef.js +57 -0
- package/dist/utils/zod-to-json-schema/parseDef.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parseTypes.d.cts +38 -0
- package/dist/utils/zod-to-json-schema/parseTypes.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parseTypes.d.ts +38 -0
- package/dist/utils/zod-to-json-schema/parseTypes.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/any.cjs +17 -0
- package/dist/utils/zod-to-json-schema/parsers/any.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/any.d.cts +7 -0
- package/dist/utils/zod-to-json-schema/parsers/any.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/any.d.ts +7 -0
- package/dist/utils/zod-to-json-schema/parsers/any.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/any.js +17 -0
- package/dist/utils/zod-to-json-schema/parsers/any.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/array.cjs +24 -0
- package/dist/utils/zod-to-json-schema/parsers/array.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/array.d.cts +14 -0
- package/dist/utils/zod-to-json-schema/parsers/array.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/array.d.ts +15 -0
- package/dist/utils/zod-to-json-schema/parsers/array.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/array.js +23 -0
- package/dist/utils/zod-to-json-schema/parsers/array.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/bigint.cjs +36 -0
- package/dist/utils/zod-to-json-schema/parsers/bigint.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/bigint.d.cts +16 -0
- package/dist/utils/zod-to-json-schema/parsers/bigint.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/bigint.d.ts +17 -0
- package/dist/utils/zod-to-json-schema/parsers/bigint.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/bigint.js +36 -0
- package/dist/utils/zod-to-json-schema/parsers/bigint.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/boolean.cjs +9 -0
- package/dist/utils/zod-to-json-schema/parsers/boolean.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/boolean.d.cts +7 -0
- package/dist/utils/zod-to-json-schema/parsers/boolean.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/boolean.d.ts +7 -0
- package/dist/utils/zod-to-json-schema/parsers/boolean.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/boolean.js +8 -0
- package/dist/utils/zod-to-json-schema/parsers/boolean.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/branded.cjs +10 -0
- package/dist/utils/zod-to-json-schema/parsers/branded.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/branded.js +10 -0
- package/dist/utils/zod-to-json-schema/parsers/branded.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/catch.cjs +10 -0
- package/dist/utils/zod-to-json-schema/parsers/catch.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/catch.js +10 -0
- package/dist/utils/zod-to-json-schema/parsers/catch.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/date.cjs +39 -0
- package/dist/utils/zod-to-json-schema/parsers/date.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/date.d.cts +17 -0
- package/dist/utils/zod-to-json-schema/parsers/date.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/date.d.ts +17 -0
- package/dist/utils/zod-to-json-schema/parsers/date.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/date.js +39 -0
- package/dist/utils/zod-to-json-schema/parsers/date.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/default.cjs +13 -0
- package/dist/utils/zod-to-json-schema/parsers/default.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/default.js +13 -0
- package/dist/utils/zod-to-json-schema/parsers/default.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/effects.cjs +11 -0
- package/dist/utils/zod-to-json-schema/parsers/effects.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/effects.js +11 -0
- package/dist/utils/zod-to-json-schema/parsers/effects.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/enum.cjs +12 -0
- package/dist/utils/zod-to-json-schema/parsers/enum.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/enum.d.cts +8 -0
- package/dist/utils/zod-to-json-schema/parsers/enum.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/enum.d.ts +10 -0
- package/dist/utils/zod-to-json-schema/parsers/enum.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/enum.js +11 -0
- package/dist/utils/zod-to-json-schema/parsers/enum.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/intersection.cjs +47 -0
- package/dist/utils/zod-to-json-schema/parsers/intersection.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/intersection.d.cts +10 -0
- package/dist/utils/zod-to-json-schema/parsers/intersection.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/intersection.d.ts +11 -0
- package/dist/utils/zod-to-json-schema/parsers/intersection.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/intersection.js +47 -0
- package/dist/utils/zod-to-json-schema/parsers/intersection.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/literal.cjs +18 -0
- package/dist/utils/zod-to-json-schema/parsers/literal.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/literal.d.cts +11 -0
- package/dist/utils/zod-to-json-schema/parsers/literal.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/literal.d.ts +12 -0
- package/dist/utils/zod-to-json-schema/parsers/literal.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/literal.js +17 -0
- package/dist/utils/zod-to-json-schema/parsers/literal.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/map.cjs +40 -0
- package/dist/utils/zod-to-json-schema/parsers/map.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/map.d.cts +17 -0
- package/dist/utils/zod-to-json-schema/parsers/map.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/map.d.ts +17 -0
- package/dist/utils/zod-to-json-schema/parsers/map.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/map.js +40 -0
- package/dist/utils/zod-to-json-schema/parsers/map.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.cjs +18 -0
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.cts +8 -0
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.ts +10 -0
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.js +17 -0
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/never.cjs +13 -0
- package/dist/utils/zod-to-json-schema/parsers/never.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/never.d.cts +9 -0
- package/dist/utils/zod-to-json-schema/parsers/never.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/never.d.ts +9 -0
- package/dist/utils/zod-to-json-schema/parsers/never.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/never.js +13 -0
- package/dist/utils/zod-to-json-schema/parsers/never.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/null.cjs +12 -0
- package/dist/utils/zod-to-json-schema/parsers/null.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/null.d.cts +7 -0
- package/dist/utils/zod-to-json-schema/parsers/null.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/null.d.ts +7 -0
- package/dist/utils/zod-to-json-schema/parsers/null.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/null.js +11 -0
- package/dist/utils/zod-to-json-schema/parsers/null.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/nullable.cjs +46 -0
- package/dist/utils/zod-to-json-schema/parsers/nullable.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/nullable.d.cts +12 -0
- package/dist/utils/zod-to-json-schema/parsers/nullable.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/nullable.d.ts +13 -0
- package/dist/utils/zod-to-json-schema/parsers/nullable.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/nullable.js +46 -0
- package/dist/utils/zod-to-json-schema/parsers/nullable.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/number.cjs +37 -0
- package/dist/utils/zod-to-json-schema/parsers/number.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/number.d.cts +15 -0
- package/dist/utils/zod-to-json-schema/parsers/number.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/number.d.ts +16 -0
- package/dist/utils/zod-to-json-schema/parsers/number.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/number.js +37 -0
- package/dist/utils/zod-to-json-schema/parsers/number.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/object.cjs +64 -0
- package/dist/utils/zod-to-json-schema/parsers/object.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/object.d.cts +12 -0
- package/dist/utils/zod-to-json-schema/parsers/object.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/object.d.ts +13 -0
- package/dist/utils/zod-to-json-schema/parsers/object.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/object.js +64 -0
- package/dist/utils/zod-to-json-schema/parsers/object.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/optional.cjs +20 -0
- package/dist/utils/zod-to-json-schema/parsers/optional.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/optional.js +20 -0
- package/dist/utils/zod-to-json-schema/parsers/optional.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/pipeline.cjs +28 -0
- package/dist/utils/zod-to-json-schema/parsers/pipeline.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/pipeline.js +28 -0
- package/dist/utils/zod-to-json-schema/parsers/pipeline.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/promise.cjs +10 -0
- package/dist/utils/zod-to-json-schema/parsers/promise.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/promise.js +10 -0
- package/dist/utils/zod-to-json-schema/parsers/promise.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/readonly.cjs +10 -0
- package/dist/utils/zod-to-json-schema/parsers/readonly.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/readonly.js +10 -0
- package/dist/utils/zod-to-json-schema/parsers/readonly.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/record.cjs +57 -0
- package/dist/utils/zod-to-json-schema/parsers/record.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/record.d.cts +14 -0
- package/dist/utils/zod-to-json-schema/parsers/record.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/record.d.ts +15 -0
- package/dist/utils/zod-to-json-schema/parsers/record.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/record.js +56 -0
- package/dist/utils/zod-to-json-schema/parsers/record.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/set.cjs +22 -0
- package/dist/utils/zod-to-json-schema/parsers/set.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/set.d.cts +15 -0
- package/dist/utils/zod-to-json-schema/parsers/set.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/set.d.ts +16 -0
- package/dist/utils/zod-to-json-schema/parsers/set.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/set.js +22 -0
- package/dist/utils/zod-to-json-schema/parsers/set.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/string.cjs +255 -0
- package/dist/utils/zod-to-json-schema/parsers/string.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/string.d.cts +28 -0
- package/dist/utils/zod-to-json-schema/parsers/string.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/string.d.ts +29 -0
- package/dist/utils/zod-to-json-schema/parsers/string.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/string.js +254 -0
- package/dist/utils/zod-to-json-schema/parsers/string.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/tuple.cjs +38 -0
- package/dist/utils/zod-to-json-schema/parsers/tuple.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/tuple.d.cts +15 -0
- package/dist/utils/zod-to-json-schema/parsers/tuple.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/tuple.d.ts +16 -0
- package/dist/utils/zod-to-json-schema/parsers/tuple.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/tuple.js +38 -0
- package/dist/utils/zod-to-json-schema/parsers/tuple.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/undefined.cjs +10 -0
- package/dist/utils/zod-to-json-schema/parsers/undefined.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/undefined.d.cts +9 -0
- package/dist/utils/zod-to-json-schema/parsers/undefined.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/undefined.d.ts +9 -0
- package/dist/utils/zod-to-json-schema/parsers/undefined.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/undefined.js +10 -0
- package/dist/utils/zod-to-json-schema/parsers/undefined.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/union.cjs +67 -0
- package/dist/utils/zod-to-json-schema/parsers/union.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/union.d.cts +24 -0
- package/dist/utils/zod-to-json-schema/parsers/union.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/union.d.ts +25 -0
- package/dist/utils/zod-to-json-schema/parsers/union.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/union.js +66 -0
- package/dist/utils/zod-to-json-schema/parsers/union.js.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/unknown.cjs +10 -0
- package/dist/utils/zod-to-json-schema/parsers/unknown.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/unknown.d.cts +7 -0
- package/dist/utils/zod-to-json-schema/parsers/unknown.d.cts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/unknown.d.ts +7 -0
- package/dist/utils/zod-to-json-schema/parsers/unknown.d.ts.map +1 -0
- package/dist/utils/zod-to-json-schema/parsers/unknown.js +10 -0
- package/dist/utils/zod-to-json-schema/parsers/unknown.js.map +1 -0
- package/dist/utils/zod-to-json-schema/selectParser.cjs +81 -0
- package/dist/utils/zod-to-json-schema/selectParser.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/selectParser.js +80 -0
- package/dist/utils/zod-to-json-schema/selectParser.js.map +1 -0
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.cjs +70 -0
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.cjs.map +1 -0
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.js +70 -0
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.js.map +1 -0
- package/package.json +7 -36
- package/dist/utils/js-sha1/hash.cjs +0 -291
- package/dist/utils/js-sha1/hash.cjs.map +0 -1
- package/dist/utils/js-sha1/hash.d.cts +0 -9
- package/dist/utils/js-sha1/hash.d.cts.map +0 -1
- package/dist/utils/js-sha1/hash.d.ts +0 -9
- package/dist/utils/js-sha1/hash.d.ts.map +0 -1
- package/dist/utils/js-sha1/hash.js +0 -284
- package/dist/utils/js-sha1/hash.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph_mermaid.js","names":["nodeLabel: string","nodeColors: Record<string, string>","nodes: Record<string, Node>","edges: Edge[]","config?: {\n firstNode?: string;\n lastNode?: string;\n curveStyle?: string;\n withStyles?: boolean;\n nodeColors?: Record<string, string>;\n wrapLabelNWords?: number;\n }","formatDict: Record<string, string>","edgeGroups: Record<string, Edge[]>","prefix: string","edges","mermaidSyntax: string","config?: {\n backgroundColor?: string;\n }"],"sources":["../../src/runnables/graph_mermaid.ts"],"sourcesContent":["import { Edge, Node } from \"./types.js\";\n\nfunction _escapeNodeLabel(nodeLabel: string): string {\n // Escapes the node label for Mermaid syntax.\n return nodeLabel.replace(/[^a-zA-Z-_0-9]/g, \"_\");\n}\n\nconst MARKDOWN_SPECIAL_CHARS = [\"*\", \"_\", \"`\"];\n\nfunction _generateMermaidGraphStyles(\n nodeColors: Record<string, string>\n): string {\n let styles = \"\";\n for (const [className, color] of Object.entries(nodeColors)) {\n styles += `\\tclassDef ${className} ${color};\\n`;\n }\n return styles;\n}\n\n/**\n * Draws a Mermaid graph using the provided graph data\n */\nexport function drawMermaid(\n nodes: Record<string, Node>,\n edges: Edge[],\n config?: {\n firstNode?: string;\n lastNode?: string;\n curveStyle?: string;\n withStyles?: boolean;\n nodeColors?: Record<string, string>;\n wrapLabelNWords?: number;\n }\n): string {\n const {\n firstNode,\n lastNode,\n nodeColors,\n withStyles = true,\n curveStyle = \"linear\",\n wrapLabelNWords = 9,\n } = config ?? {};\n // Initialize Mermaid graph configuration\n let mermaidGraph = withStyles\n ? `%%{init: {'flowchart': {'curve': '${curveStyle}'}}}%%\\ngraph TD;\\n`\n : \"graph TD;\\n\";\n if (withStyles) {\n // Node formatting templates\n const defaultClassLabel = \"default\";\n const formatDict: Record<string, string> = {\n [defaultClassLabel]: \"{0}({1})\",\n };\n if (firstNode !== undefined) {\n formatDict[firstNode] = \"{0}([{1}]):::first\";\n }\n if (lastNode !== undefined) {\n formatDict[lastNode] = \"{0}([{1}]):::last\";\n }\n\n // Add nodes to the graph\n for (const [key, node] of Object.entries(nodes)) {\n const nodeName = node.name.split(\":\").pop() ?? \"\";\n const label = MARKDOWN_SPECIAL_CHARS.some(\n (char) => nodeName.startsWith(char) && nodeName.endsWith(char)\n )\n ? `<p>${nodeName}</p>`\n : nodeName;\n\n let finalLabel = label;\n if (Object.keys(node.metadata ?? {}).length) {\n finalLabel += `<hr/><small><em>${Object.entries(node.metadata ?? {})\n .map(([k, v]) => `${k} = ${v}`)\n .join(\"\\n\")}</em></small>`;\n }\n\n const nodeLabel = (formatDict[key] ?? formatDict[defaultClassLabel])\n .replace(\"{0}\", _escapeNodeLabel(key))\n .replace(\"{1}\", finalLabel);\n\n mermaidGraph += `\\t${nodeLabel}\\n`;\n }\n }\n\n // Group edges by their common prefixes\n const edgeGroups: Record<string, Edge[]> = {};\n for (const edge of edges) {\n const srcParts = edge.source.split(\":\");\n const tgtParts = edge.target.split(\":\");\n const commonPrefix = srcParts\n .filter((src, i) => src === tgtParts[i])\n .join(\":\");\n if (!edgeGroups[commonPrefix]) {\n edgeGroups[commonPrefix] = [];\n }\n edgeGroups[commonPrefix].push(edge);\n }\n\n const seenSubgraphs = new Set<string>();\n\n function addSubgraph(edges: Edge[], prefix: string): void {\n const selfLoop = edges.length === 1 && edges[0].source === edges[0].target;\n if (prefix && !selfLoop) {\n const subgraph = prefix.split(\":\").pop()!;\n if (seenSubgraphs.has(subgraph)) {\n throw new Error(\n `Found duplicate subgraph '${subgraph}' -- this likely means that ` +\n \"you're reusing a subgraph node with the same name. \" +\n \"Please adjust your graph to have subgraph nodes with unique names.\"\n );\n }\n\n seenSubgraphs.add(subgraph);\n mermaidGraph += `\\tsubgraph ${subgraph}\\n`;\n }\n\n for (const edge of edges) {\n const { source, target, data, conditional } = edge;\n\n let edgeLabel = \"\";\n if (data !== undefined) {\n let edgeData = data;\n const words = edgeData.split(\" \");\n if (words.length > wrapLabelNWords) {\n edgeData = Array.from(\n { length: Math.ceil(words.length / wrapLabelNWords) },\n (_, i) =>\n words\n .slice(i * wrapLabelNWords, (i + 1) * wrapLabelNWords)\n .join(\" \")\n ).join(\" <br> \");\n }\n edgeLabel = conditional\n ? ` -. ${edgeData} .-> `\n : ` -- ${edgeData} --> `;\n } else {\n edgeLabel = conditional ? \" -.-> \" : \" --> \";\n }\n\n mermaidGraph += `\\t${_escapeNodeLabel(\n source\n )}${edgeLabel}${_escapeNodeLabel(target)};\\n`;\n }\n\n // Recursively add nested subgraphs\n for (const nestedPrefix in edgeGroups) {\n if (nestedPrefix.startsWith(`${prefix}:`) && nestedPrefix !== prefix) {\n addSubgraph(edgeGroups[nestedPrefix], nestedPrefix);\n }\n }\n\n if (prefix && !selfLoop) {\n mermaidGraph += \"\\tend\\n\";\n }\n }\n\n // Start with the top-level edges (no common prefix)\n addSubgraph(edgeGroups[\"\"] ?? [], \"\");\n\n // Add remaining subgraphs\n for (const prefix in edgeGroups) {\n if (!prefix.includes(\":\") && prefix !== \"\") {\n addSubgraph(edgeGroups[prefix], prefix);\n }\n }\n\n // Add custom styles for nodes\n if (withStyles) {\n mermaidGraph += _generateMermaidGraphStyles(nodeColors ?? {});\n }\n\n return mermaidGraph;\n}\n\n/**\n * Renders Mermaid graph using the Mermaid.INK API.\n */\nexport async function drawMermaidPng(\n mermaidSyntax: string,\n config?: {\n backgroundColor?: string;\n }\n) {\n let { backgroundColor = \"white\" } = config ?? {};\n // Use btoa for compatibility, assume ASCII\n const mermaidSyntaxEncoded = btoa(mermaidSyntax);\n // Check if the background color is a hexadecimal color code using regex\n if (backgroundColor !== undefined) {\n const hexColorPattern = /^#(?:[0-9a-fA-F]{3}){1,2}$/;\n if (!hexColorPattern.test(backgroundColor)) {\n backgroundColor = `!${backgroundColor}`;\n }\n }\n const imageUrl = `https://mermaid.ink/img/${mermaidSyntaxEncoded}?bgColor=${backgroundColor}`;\n const res = await fetch(imageUrl);\n if (!res.ok) {\n throw new Error(\n [\n `Failed to render the graph using the Mermaid.INK API.`,\n `Status code: ${res.status}`,\n `Status text: ${res.statusText}`,\n ].join(\"\\n\")\n );\n }\n const content = await res.blob();\n return content;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph_mermaid.js","names":["nodeLabel: string","nodeColors: Record<string, string>","nodes: Record<string, Node>","edges: Edge[]","config?: {\n firstNode?: string;\n lastNode?: string;\n curveStyle?: string;\n withStyles?: boolean;\n nodeColors?: Record<string, string>;\n wrapLabelNWords?: number;\n }","formatDict: Record<string, string>","edgeGroups: Record<string, Edge[]>","prefix: string","edges","mermaidSyntax: string","config?: {\n backgroundColor?: string;\n }","config?: {\n /**\n * The type of image to render.\n * @default \"png\"\n */\n imageType?: \"png\" | \"jpeg\" | \"webp\";\n backgroundColor?: string;\n }"],"sources":["../../src/runnables/graph_mermaid.ts"],"sourcesContent":["import { Edge, Node } from \"./types.js\";\n\nfunction _escapeNodeLabel(nodeLabel: string): string {\n // Escapes the node label for Mermaid syntax.\n return nodeLabel.replace(/[^a-zA-Z-_0-9]/g, \"_\");\n}\n\nconst MARKDOWN_SPECIAL_CHARS = [\"*\", \"_\", \"`\"];\n\nfunction _generateMermaidGraphStyles(\n nodeColors: Record<string, string>\n): string {\n let styles = \"\";\n for (const [className, color] of Object.entries(nodeColors)) {\n styles += `\\tclassDef ${className} ${color};\\n`;\n }\n return styles;\n}\n\n/**\n * Draws a Mermaid graph using the provided graph data\n */\nexport function drawMermaid(\n nodes: Record<string, Node>,\n edges: Edge[],\n config?: {\n firstNode?: string;\n lastNode?: string;\n curveStyle?: string;\n withStyles?: boolean;\n nodeColors?: Record<string, string>;\n wrapLabelNWords?: number;\n }\n): string {\n const {\n firstNode,\n lastNode,\n nodeColors,\n withStyles = true,\n curveStyle = \"linear\",\n wrapLabelNWords = 9,\n } = config ?? {};\n // Initialize Mermaid graph configuration\n let mermaidGraph = withStyles\n ? `%%{init: {'flowchart': {'curve': '${curveStyle}'}}}%%\\ngraph TD;\\n`\n : \"graph TD;\\n\";\n if (withStyles) {\n // Node formatting templates\n const defaultClassLabel = \"default\";\n const formatDict: Record<string, string> = {\n [defaultClassLabel]: \"{0}({1})\",\n };\n if (firstNode !== undefined) {\n formatDict[firstNode] = \"{0}([{1}]):::first\";\n }\n if (lastNode !== undefined) {\n formatDict[lastNode] = \"{0}([{1}]):::last\";\n }\n\n // Add nodes to the graph\n for (const [key, node] of Object.entries(nodes)) {\n const nodeName = node.name.split(\":\").pop() ?? \"\";\n const label = MARKDOWN_SPECIAL_CHARS.some(\n (char) => nodeName.startsWith(char) && nodeName.endsWith(char)\n )\n ? `<p>${nodeName}</p>`\n : nodeName;\n\n let finalLabel = label;\n if (Object.keys(node.metadata ?? {}).length) {\n finalLabel += `<hr/><small><em>${Object.entries(node.metadata ?? {})\n .map(([k, v]) => `${k} = ${v}`)\n .join(\"\\n\")}</em></small>`;\n }\n\n const nodeLabel = (formatDict[key] ?? formatDict[defaultClassLabel])\n .replace(\"{0}\", _escapeNodeLabel(key))\n .replace(\"{1}\", finalLabel);\n\n mermaidGraph += `\\t${nodeLabel}\\n`;\n }\n }\n\n // Group edges by their common prefixes\n const edgeGroups: Record<string, Edge[]> = {};\n for (const edge of edges) {\n const srcParts = edge.source.split(\":\");\n const tgtParts = edge.target.split(\":\");\n const commonPrefix = srcParts\n .filter((src, i) => src === tgtParts[i])\n .join(\":\");\n if (!edgeGroups[commonPrefix]) {\n edgeGroups[commonPrefix] = [];\n }\n edgeGroups[commonPrefix].push(edge);\n }\n\n const seenSubgraphs = new Set<string>();\n\n function addSubgraph(edges: Edge[], prefix: string): void {\n const selfLoop = edges.length === 1 && edges[0].source === edges[0].target;\n if (prefix && !selfLoop) {\n const subgraph = prefix.split(\":\").pop()!;\n if (seenSubgraphs.has(subgraph)) {\n throw new Error(\n `Found duplicate subgraph '${subgraph}' -- this likely means that ` +\n \"you're reusing a subgraph node with the same name. \" +\n \"Please adjust your graph to have subgraph nodes with unique names.\"\n );\n }\n\n seenSubgraphs.add(subgraph);\n mermaidGraph += `\\tsubgraph ${subgraph}\\n`;\n }\n\n for (const edge of edges) {\n const { source, target, data, conditional } = edge;\n\n let edgeLabel = \"\";\n if (data !== undefined) {\n let edgeData = data;\n const words = edgeData.split(\" \");\n if (words.length > wrapLabelNWords) {\n edgeData = Array.from(\n { length: Math.ceil(words.length / wrapLabelNWords) },\n (_, i) =>\n words\n .slice(i * wrapLabelNWords, (i + 1) * wrapLabelNWords)\n .join(\" \")\n ).join(\" <br> \");\n }\n edgeLabel = conditional\n ? ` -. ${edgeData} .-> `\n : ` -- ${edgeData} --> `;\n } else {\n edgeLabel = conditional ? \" -.-> \" : \" --> \";\n }\n\n mermaidGraph += `\\t${_escapeNodeLabel(\n source\n )}${edgeLabel}${_escapeNodeLabel(target)};\\n`;\n }\n\n // Recursively add nested subgraphs\n for (const nestedPrefix in edgeGroups) {\n if (nestedPrefix.startsWith(`${prefix}:`) && nestedPrefix !== prefix) {\n addSubgraph(edgeGroups[nestedPrefix], nestedPrefix);\n }\n }\n\n if (prefix && !selfLoop) {\n mermaidGraph += \"\\tend\\n\";\n }\n }\n\n // Start with the top-level edges (no common prefix)\n addSubgraph(edgeGroups[\"\"] ?? [], \"\");\n\n // Add remaining subgraphs\n for (const prefix in edgeGroups) {\n if (!prefix.includes(\":\") && prefix !== \"\") {\n addSubgraph(edgeGroups[prefix], prefix);\n }\n }\n\n // Add custom styles for nodes\n if (withStyles) {\n mermaidGraph += _generateMermaidGraphStyles(nodeColors ?? {});\n }\n\n return mermaidGraph;\n}\n\n/**\n * @deprecated Use `drawMermaidImage` instead.\n */\nexport async function drawMermaidPng(\n mermaidSyntax: string,\n config?: {\n backgroundColor?: string;\n }\n) {\n return drawMermaidImage(mermaidSyntax, {\n ...config,\n imageType: \"png\",\n });\n}\n\n/**\n * Renders Mermaid graph using the Mermaid.INK API.\n *\n * @example\n * ```javascript\n * const image = await drawMermaidImage(mermaidSyntax, {\n * backgroundColor: \"white\",\n * imageType: \"png\",\n * });\n * fs.writeFileSync(\"image.png\", image);\n * ```\n *\n * @param mermaidSyntax - The Mermaid syntax to render.\n * @param config - The configuration for the image.\n * @returns The image as a Blob.\n */\nexport async function drawMermaidImage(\n mermaidSyntax: string,\n config?: {\n /**\n * The type of image to render.\n * @default \"png\"\n */\n imageType?: \"png\" | \"jpeg\" | \"webp\";\n backgroundColor?: string;\n }\n) {\n let backgroundColor = config?.backgroundColor ?? \"white\";\n const imageType = config?.imageType ?? \"png\";\n\n // Use btoa for compatibility, assume ASCII\n const mermaidSyntaxEncoded = btoa(mermaidSyntax);\n // Check if the background color is a hexadecimal color code using regex\n if (backgroundColor !== undefined) {\n const hexColorPattern = /^#(?:[0-9a-fA-F]{3}){1,2}$/;\n if (!hexColorPattern.test(backgroundColor)) {\n backgroundColor = `!${backgroundColor}`;\n }\n }\n const imageUrl = `https://mermaid.ink/img/${mermaidSyntaxEncoded}?bgColor=${backgroundColor}&type=${imageType}`;\n const res = await fetch(imageUrl);\n if (!res.ok) {\n throw new Error(\n [\n `Failed to render the graph using the Mermaid.INK API.`,\n `Status code: ${res.status}`,\n `Status text: ${res.statusText}`,\n ].join(\"\\n\")\n );\n }\n const content = await res.blob();\n return content;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.cjs","names":["set: Set<string>","subset: Set<string>","obj: any","Document","HumanMessage","SystemMessage","ChatMessage","FunctionMessage","ToolMessage","AIMessage","HumanMessageChunk","SystemMessageChunk","ChatMessageChunk","FunctionMessageChunk","ToolMessageChunk","AIMessageChunk","ChatGenerationChunk","GenerationChunk","RUN_KEY","ChatPromptValue","msg: any","StringPromptValue","innerRevive: (key: string) => [string, any]","key: string","str: string","options?: RunnableConfig","input: RunInput","isBaseMessage","serializedMessage: Record<string, any>","innerSerialize: (key: string) => [string, any]","Runnable","fields: {\n url: string;\n options?: RemoteRunnableOptions;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetch?: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n }","path: string","body: Body","signal?: AbortSignal","options?: Partial<CallOptions>","_?: CallbackManagerForChainRun","inputs: RunInput[]","options?: Partial<CallOptions>[]","_?: (CallbackManagerForChainRun | undefined)[]","batchOptions?: RunnableBatchOptions","options?: Partial<CallOptions> | Partial<CallOptions>[]","getCallbackManagerForConfig","_coerceToDict","finalOutput: RunOutput | undefined","convertEventStreamToIterableReadableDataStream","concat","streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">","RunLogPatch","RunLog","options: Partial<CallOptions> & { version: \"v1\" | \"v2\" }","streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\"> | undefined","options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding?: \"text/event-stream\" | undefined;\n }","IterableReadableStream"],"sources":["../../src/runnables/remote.ts"],"sourcesContent":["import { Runnable, RunnableBatchOptions, _coerceToDict } from \"./base.js\";\nimport { getCallbackManagerForConfig, type RunnableConfig } from \"./config.js\";\nimport { Document } from \"../documents/index.js\";\nimport { CallbackManagerForChainRun } from \"../callbacks/manager.js\";\nimport { ChatPromptValue, StringPromptValue } from \"../prompt_values.js\";\nimport {\n RunLogPatch,\n type LogStreamCallbackHandlerInput,\n type StreamEvent,\n RunLog,\n} from \"../tracers/log_stream.js\";\nimport {\n AIMessage,\n AIMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n isBaseMessage,\n} from \"../messages/index.js\";\nimport { GenerationChunk, ChatGenerationChunk, RUN_KEY } from \"../outputs.js\";\nimport { convertEventStreamToIterableReadableDataStream } from \"../utils/event_source_parse.js\";\nimport { IterableReadableStream, concat } from \"../utils/stream.js\";\n\ntype RemoteRunnableOptions = {\n timeout?: number;\n headers?: Record<string, unknown>;\n};\n\nfunction isSuperset(set: Set<string>, subset: Set<string>) {\n for (const elem of subset) {\n if (!set.has(elem)) {\n return false;\n }\n }\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction revive(obj: any): any {\n if (Array.isArray(obj)) return obj.map(revive);\n if (typeof obj === \"object\") {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!obj || obj instanceof Date) {\n return obj;\n }\n const keysArr = Object.keys(obj);\n const keys = new Set(keysArr);\n if (isSuperset(keys, new Set([\"page_content\", \"metadata\"]))) {\n return new Document({\n pageContent: obj.page_content,\n metadata: obj.metadata,\n });\n }\n\n if (isSuperset(keys, new Set([\"content\", \"type\", \"additional_kwargs\"]))) {\n if (obj.type === \"HumanMessage\" || obj.type === \"human\") {\n return new HumanMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"SystemMessage\" || obj.type === \"system\") {\n return new SystemMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"ChatMessage\" || obj.type === \"generic\") {\n return new ChatMessage({\n content: obj.content,\n role: obj.role,\n });\n }\n if (obj.type === \"FunctionMessage\" || obj.type === \"function\") {\n return new FunctionMessage({\n content: obj.content,\n name: obj.name,\n });\n }\n if (obj.type === \"ToolMessage\" || obj.type === \"tool\") {\n return new ToolMessage({\n content: obj.content,\n tool_call_id: obj.tool_call_id,\n status: obj.status,\n artifact: obj.artifact,\n });\n }\n if (obj.type === \"AIMessage\" || obj.type === \"ai\") {\n return new AIMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"HumanMessageChunk\") {\n return new HumanMessageChunk({\n content: obj.content,\n });\n }\n if (obj.type === \"SystemMessageChunk\") {\n return new SystemMessageChunk({\n content: obj.content,\n });\n }\n if (obj.type === \"ChatMessageChunk\") {\n return new ChatMessageChunk({\n content: obj.content,\n role: obj.role,\n });\n }\n if (obj.type === \"FunctionMessageChunk\") {\n return new FunctionMessageChunk({\n content: obj.content,\n name: obj.name,\n });\n }\n if (obj.type === \"ToolMessageChunk\") {\n return new ToolMessageChunk({\n content: obj.content,\n tool_call_id: obj.tool_call_id,\n status: obj.status,\n artifact: obj.artifact,\n });\n }\n if (obj.type === \"AIMessageChunk\") {\n return new AIMessageChunk({\n content: obj.content,\n });\n }\n }\n if (isSuperset(keys, new Set([\"text\", \"generation_info\", \"type\"]))) {\n if (obj.type === \"ChatGenerationChunk\") {\n return new ChatGenerationChunk({\n message: revive(obj.message),\n text: obj.text,\n generationInfo: obj.generation_info,\n });\n } else if (obj.type === \"ChatGeneration\") {\n return {\n message: revive(obj.message),\n text: obj.text,\n generationInfo: obj.generation_info,\n };\n } else if (obj.type === \"GenerationChunk\") {\n return new GenerationChunk({\n text: obj.text,\n generationInfo: obj.generation_info,\n });\n } else if (obj.type === \"Generation\") {\n return {\n text: obj.text,\n generationInfo: obj.generation_info,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"tool\", \"tool_input\", \"log\", \"type\"]))) {\n if (obj.type === \"AgentAction\") {\n return {\n tool: obj.tool,\n toolInput: obj.tool_input,\n log: obj.log,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"return_values\", \"log\", \"type\"]))) {\n if (obj.type === \"AgentFinish\") {\n return {\n returnValues: obj.return_values,\n log: obj.log,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"generations\", \"run\", \"type\"]))) {\n if (obj.type === \"LLMResult\") {\n return {\n generations: revive(obj.generations),\n llmOutput: obj.llm_output,\n [RUN_KEY]: obj.run,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"messages\"]))) {\n // TODO: Start checking for type: ChatPromptValue and ChatPromptValueConcrete\n // when LangServe bug is fixed\n return new ChatPromptValue({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n messages: obj.messages.map((msg: any) => revive(msg)),\n });\n }\n\n if (isSuperset(keys, new Set([\"text\"]))) {\n // TODO: Start checking for type: StringPromptValue\n // when LangServe bug is fixed\n return new StringPromptValue(obj.text);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const innerRevive: (key: string) => [string, any] = (key: string) => [\n key,\n revive(obj[key]),\n ];\n const rtn = Object.fromEntries(keysArr.map(innerRevive));\n return rtn;\n }\n return obj;\n}\nfunction deserialize<RunOutput>(str: string): RunOutput {\n const obj = JSON.parse(str);\n return revive(obj);\n}\n\nfunction removeCallbacksAndSignal(\n options?: RunnableConfig\n): Omit<RunnableConfig, \"callbacks\" | \"signal\"> {\n const rest = { ...options };\n delete rest.callbacks;\n delete rest.signal;\n return rest;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction serialize<RunInput>(input: RunInput): any {\n if (Array.isArray(input)) return input.map(serialize);\n if (isBaseMessage(input)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const serializedMessage: Record<string, any> = {\n content: input.content,\n type: input._getType(),\n additional_kwargs: input.additional_kwargs,\n name: input.name,\n example: false,\n };\n if (ToolMessage.isInstance(input)) {\n serializedMessage.tool_call_id = input.tool_call_id;\n } else if (ChatMessage.isInstance(input)) {\n serializedMessage.role = input.role;\n }\n return serializedMessage;\n }\n if (typeof input === \"object\") {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!input || input instanceof Date) {\n return input;\n }\n const keysArr = Object.keys(input);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const innerSerialize: (key: string) => [string, any] = (key: string) => [\n key,\n serialize((input as Record<string, unknown>)[key]),\n ];\n const rtn = Object.fromEntries(keysArr.map(innerSerialize));\n return rtn;\n }\n return input;\n}\n\n/**\n * Client for interacting with LangChain runnables\n * that are hosted as LangServe endpoints.\n *\n * Allows you to interact with hosted runnables using the standard\n * `.invoke()`, `.stream()`, `.streamEvents()`, etc. methods that\n * other runnables support.\n *\n * @deprecated LangServe is no longer actively developed - please consider using LangGraph Platform.\n *\n * @param url - The base URL of the LangServe endpoint.\n * @param options - Optional configuration for the remote runnable, including timeout and headers.\n * @param fetch - Optional custom fetch implementation.\n * @param fetchRequestOptions - Optional additional options for fetch requests.\n */\nexport class RemoteRunnable<\n RunInput,\n RunOutput,\n CallOptions extends RunnableConfig\n> extends Runnable<RunInput, RunOutput, CallOptions> {\n private url: string;\n\n private options?: RemoteRunnableOptions;\n\n // Wrap the default fetch call due to issues with illegal invocations\n // from the browser:\n // https://stackoverflow.com/questions/69876859/why-does-bind-fix-failed-to-execute-fetch-on-window-illegal-invocation-err\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchImplementation: (...args: any[]) => any = (...args: any[]) =>\n // @ts-expect-error Broad typing to support a range of fetch implementations\n fetch(...args);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n\n lc_namespace = [\"langchain\", \"schema\", \"runnable\", \"remote\"];\n\n constructor(fields: {\n url: string;\n options?: RemoteRunnableOptions;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetch?: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n }) {\n super(fields);\n const {\n url,\n options,\n fetch: fetchImplementation,\n fetchRequestOptions,\n } = fields;\n\n this.url = url.replace(/\\/$/, \"\"); // remove trailing slash\n this.options = options;\n this.fetchImplementation = fetchImplementation ?? this.fetchImplementation;\n this.fetchRequestOptions = fetchRequestOptions;\n }\n\n private async post<Body>(path: string, body: Body, signal?: AbortSignal) {\n return this.fetchImplementation(`${this.url}${path}`, {\n method: \"POST\",\n body: JSON.stringify(serialize(body)),\n signal: signal ?? AbortSignal.timeout(this.options?.timeout ?? 60000),\n ...this.fetchRequestOptions,\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.fetchRequestOptions?.headers,\n ...this.options?.headers,\n },\n });\n }\n\n async _invoke(\n input: RunInput,\n options?: Partial<CallOptions>,\n _?: CallbackManagerForChainRun\n ) {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n }>(\n \"/invoke\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs: kwargs ?? {},\n },\n config.signal\n );\n if (!response.ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n return revive((await response.json()).output) as RunOutput;\n }\n\n async invoke(\n input: RunInput,\n options?: Partial<CallOptions>\n ): Promise<RunOutput> {\n return this._callWithConfig(this._invoke, input, options);\n }\n\n async _batch(\n inputs: RunInput[],\n options?: Partial<CallOptions>[],\n _?: (CallbackManagerForChainRun | undefined)[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]> {\n if (batchOptions?.returnExceptions) {\n throw new Error(\"returnExceptions is not supported for remote clients\");\n }\n const configsAndKwargsArray = options?.map((opts) =>\n this._separateRunnableConfigFromCallOptions(opts)\n );\n const [configs, kwargs] = configsAndKwargsArray?.reduce(\n ([pc, pk], [c, k]) =>\n [\n [...pc, c],\n [...pk, k],\n ] as [\n RunnableConfig[],\n Omit<Partial<CallOptions>, keyof RunnableConfig>[]\n ],\n [[], []] as [\n RunnableConfig[],\n Omit<Partial<CallOptions>, keyof RunnableConfig>[]\n ]\n ) ?? [undefined, undefined];\n const response = await this.post<{\n inputs: RunInput[];\n config?: (RunnableConfig & RunnableBatchOptions)[];\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>[];\n }>(\n \"/batch\",\n {\n inputs,\n config: (configs ?? [])\n .map(removeCallbacksAndSignal)\n .map((config) => ({ ...config, ...batchOptions })),\n kwargs,\n },\n options?.[0]?.signal\n );\n if (!response.ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n const body = await response.json();\n\n if (!body.output) throw new Error(\"Invalid response from remote runnable\");\n\n return revive(body.output);\n }\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions?: false }\n ): Promise<RunOutput[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions: true }\n ): Promise<(RunOutput | Error)[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]> {\n if (batchOptions?.returnExceptions) {\n throw Error(\"returnExceptions is not supported for remote clients\");\n }\n return this._batchWithConfig(\n this._batch.bind(this),\n inputs,\n options,\n batchOptions\n );\n }\n\n async *_streamIterator(\n input: RunInput,\n options?: Partial<CallOptions>\n ): AsyncGenerator<RunOutput> {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n let finalOutput: RunOutput | undefined;\n let finalOutputSupported = true;\n try {\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n }>(\n \"/stream\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n },\n config.signal\n );\n if (!response.ok) {\n const json = await response.json();\n const error = new Error(\n `RemoteRunnable call failed with status code ${response.status}: ${json.message}`\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (error as any).response = response;\n throw error;\n }\n const { body } = response;\n if (!body) {\n throw new Error(\n \"Could not begin remote stream. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const chunk of runnableStream) {\n const deserializedChunk = deserialize(chunk) as RunOutput;\n yield deserializedChunk;\n if (finalOutputSupported) {\n if (finalOutput === undefined) {\n finalOutput = deserializedChunk;\n } else {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n finalOutput = concat(finalOutput, deserializedChunk as any);\n } catch {\n finalOutput = undefined;\n finalOutputSupported = false;\n }\n }\n }\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(finalOutput ?? {});\n }\n\n async *streamLog(\n input: RunInput,\n options?: Partial<CallOptions>,\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): AsyncGenerator<RunLogPatch> {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n // The type is in camelCase but the API only accepts snake_case.\n const camelCaseStreamOptions = {\n include_names: streamOptions?.includeNames,\n include_types: streamOptions?.includeTypes,\n include_tags: streamOptions?.includeTags,\n exclude_names: streamOptions?.excludeNames,\n exclude_types: streamOptions?.excludeTypes,\n exclude_tags: streamOptions?.excludeTags,\n };\n let runLog;\n try {\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n diff: false;\n }>(\n \"/stream_log\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n ...camelCaseStreamOptions,\n diff: false,\n },\n config.signal\n );\n const { body, ok } = response;\n if (!ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n if (!body) {\n throw new Error(\n \"Could not begin remote stream log. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const log of runnableStream) {\n const chunk = revive(JSON.parse(log));\n const logPatch = new RunLogPatch({ ops: chunk.ops });\n yield logPatch;\n if (runLog === undefined) {\n runLog = RunLog.fromRunLogPatch(logPatch);\n } else {\n runLog = runLog.concat(logPatch);\n }\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(runLog?.state.final_output);\n }\n\n _streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & { version: \"v1\" | \"v2\" },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\"> | undefined\n ): AsyncGenerator<StreamEvent> {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const outerThis = this;\n const generator = async function* () {\n const [config, kwargs] =\n outerThis._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n outerThis.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n // The type is in camelCase but the API only accepts snake_case.\n const camelCaseStreamOptions = {\n include_names: streamOptions?.includeNames,\n include_types: streamOptions?.includeTypes,\n include_tags: streamOptions?.includeTags,\n exclude_names: streamOptions?.excludeNames,\n exclude_types: streamOptions?.excludeTypes,\n exclude_tags: streamOptions?.excludeTags,\n };\n const events = [];\n try {\n const response = await outerThis.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n diff: false;\n }>(\n \"/stream_events\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n ...camelCaseStreamOptions,\n diff: false,\n },\n config.signal\n );\n const { body, ok } = response;\n if (!ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n if (!body) {\n throw new Error(\n \"Could not begin remote stream events. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const log of runnableStream) {\n const chunk = revive(JSON.parse(log));\n const event = {\n event: chunk.event,\n name: chunk.name,\n run_id: chunk.run_id,\n tags: chunk.tags,\n metadata: chunk.metadata,\n data: chunk.data,\n };\n yield event;\n events.push(event);\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(events);\n };\n return generator();\n }\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & { version: \"v1\" | \"v2\" },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<StreamEvent>;\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding: \"text/event-stream\";\n },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<Uint8Array>;\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding?: \"text/event-stream\" | undefined;\n },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<StreamEvent | Uint8Array> {\n if (options.version !== \"v1\" && options.version !== \"v2\") {\n throw new Error(\n `Only versions \"v1\" and \"v2\" of the events schema is currently supported.`\n );\n }\n if (options.encoding !== undefined) {\n throw new Error(\"Special encodings are not supported for this runnable.\");\n }\n const eventStream = this._streamEvents(input, options, streamOptions);\n return IterableReadableStream.fromAsyncGenerator(eventStream);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remote.cjs","names":["set: Set<string>","subset: Set<string>","obj: any","Document","HumanMessage","SystemMessage","ChatMessage","FunctionMessage","ToolMessage","AIMessage","HumanMessageChunk","SystemMessageChunk","ChatMessageChunk","FunctionMessageChunk","ToolMessageChunk","AIMessageChunk","ChatGenerationChunk","GenerationChunk","RUN_KEY","ChatPromptValue","msg: any","StringPromptValue","innerRevive: (key: string) => [string, any]","key: string","str: string","options?: RunnableConfig","input: RunInput","isBaseMessage","serializedMessage: Record<string, any>","innerSerialize: (key: string) => [string, any]","Runnable","fields: {\n url: string;\n options?: RemoteRunnableOptions;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetch?: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n }","path: string","body: Body","signal?: AbortSignal","options?: Partial<CallOptions>","_?: CallbackManagerForChainRun","inputs: RunInput[]","options?: Partial<CallOptions>[]","_?: (CallbackManagerForChainRun | undefined)[]","batchOptions?: RunnableBatchOptions","options?: Partial<CallOptions> | Partial<CallOptions>[]","getCallbackManagerForConfig","_coerceToDict","finalOutput: RunOutput | undefined","convertEventStreamToIterableReadableDataStream","concat","streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">","RunLogPatch","RunLog","options: Partial<CallOptions> & { version: \"v1\" | \"v2\" }","streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\"> | undefined","options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding?: \"text/event-stream\" | undefined;\n }","IterableReadableStream"],"sources":["../../src/runnables/remote.ts"],"sourcesContent":["import { Runnable, RunnableBatchOptions, _coerceToDict } from \"./base.js\";\nimport { getCallbackManagerForConfig, type RunnableConfig } from \"./config.js\";\nimport { Document } from \"../documents/index.js\";\nimport { CallbackManagerForChainRun } from \"../callbacks/manager.js\";\nimport { ChatPromptValue, StringPromptValue } from \"../prompt_values.js\";\nimport {\n RunLogPatch,\n type LogStreamCallbackHandlerInput,\n type StreamEvent,\n RunLog,\n} from \"../tracers/log_stream.js\";\nimport {\n AIMessage,\n AIMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n isBaseMessage,\n} from \"../messages/index.js\";\nimport { GenerationChunk, ChatGenerationChunk, RUN_KEY } from \"../outputs.js\";\nimport { convertEventStreamToIterableReadableDataStream } from \"../utils/event_source_parse.js\";\nimport { IterableReadableStream, concat } from \"../utils/stream.js\";\n\ntype RemoteRunnableOptions = {\n timeout?: number;\n headers?: Record<string, unknown>;\n};\n\nfunction isSuperset(set: Set<string>, subset: Set<string>) {\n for (const elem of subset) {\n if (!set.has(elem)) {\n return false;\n }\n }\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction revive(obj: any): any {\n if (Array.isArray(obj)) return obj.map(revive);\n if (typeof obj === \"object\") {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!obj || obj instanceof Date) {\n return obj;\n }\n const keysArr = Object.keys(obj);\n const keys = new Set(keysArr);\n if (isSuperset(keys, new Set([\"page_content\", \"metadata\"]))) {\n return new Document({\n pageContent: obj.page_content,\n metadata: obj.metadata,\n });\n }\n\n if (isSuperset(keys, new Set([\"content\", \"type\", \"additional_kwargs\"]))) {\n if (obj.type === \"HumanMessage\" || obj.type === \"human\") {\n return new HumanMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"SystemMessage\" || obj.type === \"system\") {\n return new SystemMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"ChatMessage\" || obj.type === \"generic\") {\n return new ChatMessage({\n content: obj.content,\n role: obj.role,\n });\n }\n if (obj.type === \"FunctionMessage\" || obj.type === \"function\") {\n return new FunctionMessage({\n content: obj.content,\n name: obj.name,\n });\n }\n if (obj.type === \"ToolMessage\" || obj.type === \"tool\") {\n return new ToolMessage({\n content: obj.content,\n tool_call_id: obj.tool_call_id,\n status: obj.status,\n artifact: obj.artifact,\n });\n }\n if (obj.type === \"AIMessage\" || obj.type === \"ai\") {\n return new AIMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"HumanMessageChunk\") {\n return new HumanMessageChunk({\n content: obj.content,\n });\n }\n if (obj.type === \"SystemMessageChunk\") {\n return new SystemMessageChunk({\n content: obj.content,\n });\n }\n if (obj.type === \"ChatMessageChunk\") {\n return new ChatMessageChunk({\n content: obj.content,\n role: obj.role,\n });\n }\n if (obj.type === \"FunctionMessageChunk\") {\n return new FunctionMessageChunk({\n content: obj.content,\n name: obj.name,\n });\n }\n if (obj.type === \"ToolMessageChunk\") {\n return new ToolMessageChunk({\n content: obj.content,\n tool_call_id: obj.tool_call_id,\n status: obj.status,\n artifact: obj.artifact,\n });\n }\n if (obj.type === \"AIMessageChunk\") {\n return new AIMessageChunk({\n content: obj.content,\n });\n }\n }\n if (isSuperset(keys, new Set([\"text\", \"generation_info\", \"type\"]))) {\n if (obj.type === \"ChatGenerationChunk\") {\n return new ChatGenerationChunk({\n message: revive(obj.message),\n text: obj.text,\n generationInfo: obj.generation_info,\n });\n } else if (obj.type === \"ChatGeneration\") {\n return {\n message: revive(obj.message),\n text: obj.text,\n generationInfo: obj.generation_info,\n };\n } else if (obj.type === \"GenerationChunk\") {\n return new GenerationChunk({\n text: obj.text,\n generationInfo: obj.generation_info,\n });\n } else if (obj.type === \"Generation\") {\n return {\n text: obj.text,\n generationInfo: obj.generation_info,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"tool\", \"tool_input\", \"log\", \"type\"]))) {\n if (obj.type === \"AgentAction\") {\n return {\n tool: obj.tool,\n toolInput: obj.tool_input,\n log: obj.log,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"return_values\", \"log\", \"type\"]))) {\n if (obj.type === \"AgentFinish\") {\n return {\n returnValues: obj.return_values,\n log: obj.log,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"generations\", \"run\", \"type\"]))) {\n if (obj.type === \"LLMResult\") {\n return {\n generations: revive(obj.generations),\n llmOutput: obj.llm_output,\n [RUN_KEY]: obj.run,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"messages\"]))) {\n // TODO: Start checking for type: ChatPromptValue and ChatPromptValueConcrete\n // when LangServe bug is fixed\n return new ChatPromptValue({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n messages: obj.messages.map((msg: any) => revive(msg)),\n });\n }\n\n if (isSuperset(keys, new Set([\"text\"]))) {\n // TODO: Start checking for type: StringPromptValue\n // when LangServe bug is fixed\n return new StringPromptValue(obj.text);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const innerRevive: (key: string) => [string, any] = (key: string) => [\n key,\n revive(obj[key]),\n ];\n const rtn = Object.fromEntries(keysArr.map(innerRevive));\n return rtn;\n }\n return obj;\n}\nfunction deserialize<RunOutput>(str: string): RunOutput {\n const obj = JSON.parse(str);\n return revive(obj);\n}\n\nfunction removeCallbacksAndSignal(\n options?: RunnableConfig\n): Omit<RunnableConfig, \"callbacks\" | \"signal\"> {\n const rest = { ...options };\n delete rest.callbacks;\n delete rest.signal;\n return rest;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction serialize<RunInput>(input: RunInput): any {\n if (Array.isArray(input)) return input.map(serialize);\n if (isBaseMessage(input)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const serializedMessage: Record<string, any> = {\n content: input.content,\n type: input._getType(),\n additional_kwargs: input.additional_kwargs,\n name: input.name,\n example: false,\n };\n if (ToolMessage.isInstance(input)) {\n serializedMessage.tool_call_id = input.tool_call_id;\n } else if (ChatMessage.isInstance(input)) {\n serializedMessage.role = input.role;\n }\n return serializedMessage;\n }\n if (typeof input === \"object\") {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!input || input instanceof Date) {\n return input;\n }\n const keysArr = Object.keys(input);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const innerSerialize: (key: string) => [string, any] = (key: string) => [\n key,\n serialize((input as Record<string, unknown>)[key]),\n ];\n const rtn = Object.fromEntries(keysArr.map(innerSerialize));\n return rtn;\n }\n return input;\n}\n\n/**\n * Client for interacting with LangChain runnables\n * that are hosted as LangServe endpoints.\n *\n * Allows you to interact with hosted runnables using the standard\n * `.invoke()`, `.stream()`, `.streamEvents()`, etc. methods that\n * other runnables support.\n *\n * @deprecated LangServe is no longer actively developed - please consider using LangGraph Platform.\n *\n * @param url - The base URL of the LangServe endpoint.\n * @param options - Optional configuration for the remote runnable, including timeout and headers.\n * @param fetch - Optional custom fetch implementation.\n * @param fetchRequestOptions - Optional additional options for fetch requests.\n */\nexport class RemoteRunnable<\n RunInput,\n RunOutput,\n CallOptions extends RunnableConfig\n> extends Runnable<RunInput, RunOutput, CallOptions> {\n private url: string;\n\n private options?: RemoteRunnableOptions;\n\n // Wrap the default fetch call due to issues with illegal invocations\n // from the browser:\n // https://stackoverflow.com/questions/69876859/why-does-bind-fix-failed-to-execute-fetch-on-window-illegal-invocation-err\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchImplementation: (...args: any[]) => any = (...args: any[]) =>\n // @ts-expect-error Broad typing to support a range of fetch implementations\n fetch(...args);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n\n lc_namespace = [\"langchain\", \"schema\", \"runnable\", \"remote\"];\n\n constructor(fields: {\n url: string;\n options?: RemoteRunnableOptions;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetch?: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n }) {\n super(fields);\n const {\n url,\n options,\n fetch: fetchImplementation,\n fetchRequestOptions,\n } = fields;\n\n this.url = url.replace(/\\/$/, \"\"); // remove trailing slash\n this.options = options;\n this.fetchImplementation = fetchImplementation ?? this.fetchImplementation;\n this.fetchRequestOptions = fetchRequestOptions;\n }\n\n private async post<Body>(path: string, body: Body, signal?: AbortSignal) {\n return this.fetchImplementation(`${this.url}${path}`, {\n method: \"POST\",\n body: JSON.stringify(serialize(body)),\n signal: signal ?? AbortSignal.timeout(this.options?.timeout ?? 60000),\n ...this.fetchRequestOptions,\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.fetchRequestOptions?.headers,\n ...this.options?.headers,\n },\n });\n }\n\n async _invoke(\n input: RunInput,\n options?: Partial<CallOptions>,\n _?: CallbackManagerForChainRun\n ) {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n }>(\n \"/invoke\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs: kwargs ?? {},\n },\n config.signal\n );\n if (!response.ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n return revive((await response.json()).output) as RunOutput;\n }\n\n async invoke(\n input: RunInput,\n options?: Partial<CallOptions>\n ): Promise<RunOutput> {\n return this._callWithConfig(this._invoke, input, options);\n }\n\n async _batch(\n inputs: RunInput[],\n options?: Partial<CallOptions>[],\n _?: (CallbackManagerForChainRun | undefined)[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]> {\n if (batchOptions?.returnExceptions) {\n throw new Error(\"returnExceptions is not supported for remote clients\");\n }\n const configsAndKwargsArray = options?.map((opts) =>\n this._separateRunnableConfigFromCallOptions(opts)\n );\n const [configs, kwargs] = configsAndKwargsArray?.reduce(\n ([pc, pk], [c, k]) =>\n [\n [...pc, c],\n [...pk, k],\n ] as [\n RunnableConfig[],\n Omit<Partial<CallOptions>, keyof RunnableConfig>[]\n ],\n [[], []] as [\n RunnableConfig[],\n Omit<Partial<CallOptions>, keyof RunnableConfig>[]\n ]\n ) ?? [undefined, undefined];\n const response = await this.post<{\n inputs: RunInput[];\n config?: (RunnableConfig & RunnableBatchOptions)[];\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>[];\n }>(\n \"/batch\",\n {\n inputs,\n config: (configs ?? [])\n .map(removeCallbacksAndSignal)\n .map((config) => ({ ...config, ...batchOptions })),\n kwargs,\n },\n options?.[0]?.signal\n );\n if (!response.ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n const body = await response.json();\n\n if (!body.output) throw new Error(\"Invalid response from remote runnable\");\n\n return revive(body.output);\n }\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions?: false }\n ): Promise<RunOutput[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions: true }\n ): Promise<(RunOutput | Error)[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]> {\n if (batchOptions?.returnExceptions) {\n throw Error(\"returnExceptions is not supported for remote clients\");\n }\n return this._batchWithConfig(\n this._batch.bind(this),\n inputs,\n options,\n batchOptions\n );\n }\n\n async *_streamIterator(\n input: RunInput,\n options?: Partial<CallOptions>\n ): AsyncGenerator<RunOutput> {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n let finalOutput: RunOutput | undefined;\n let finalOutputSupported = true;\n try {\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n }>(\n \"/stream\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n },\n config.signal\n );\n if (!response.ok) {\n const json = await response.json();\n const error = new Error(\n `RemoteRunnable call failed with status code ${response.status}: ${json.message}`\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (error as any).response = response;\n throw error;\n }\n const { body } = response;\n if (!body) {\n throw new Error(\n \"Could not begin remote stream. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const chunk of runnableStream) {\n const deserializedChunk = deserialize(chunk) as RunOutput;\n yield deserializedChunk;\n if (finalOutputSupported) {\n if (finalOutput === undefined) {\n finalOutput = deserializedChunk;\n } else {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n finalOutput = concat(finalOutput, deserializedChunk as any);\n } catch {\n finalOutput = undefined;\n finalOutputSupported = false;\n }\n }\n }\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(finalOutput ?? {});\n }\n\n async *streamLog(\n input: RunInput,\n options?: Partial<CallOptions>,\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): AsyncGenerator<RunLogPatch> {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n // The type is in camelCase but the API only accepts snake_case.\n const camelCaseStreamOptions = {\n include_names: streamOptions?.includeNames,\n include_types: streamOptions?.includeTypes,\n include_tags: streamOptions?.includeTags,\n exclude_names: streamOptions?.excludeNames,\n exclude_types: streamOptions?.excludeTypes,\n exclude_tags: streamOptions?.excludeTags,\n };\n let runLog;\n try {\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n diff: false;\n }>(\n \"/stream_log\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n ...camelCaseStreamOptions,\n diff: false,\n },\n config.signal\n );\n const { body, ok } = response;\n if (!ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n if (!body) {\n throw new Error(\n \"Could not begin remote stream log. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const log of runnableStream) {\n const chunk = revive(JSON.parse(log));\n const logPatch = new RunLogPatch({ ops: chunk.ops });\n yield logPatch;\n if (runLog === undefined) {\n runLog = RunLog.fromRunLogPatch(logPatch);\n } else {\n runLog = runLog.concat(logPatch);\n }\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(runLog?.state.final_output);\n }\n\n _streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & { version: \"v1\" | \"v2\" },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\"> | undefined\n ): AsyncGenerator<StreamEvent> {\n const outerThis = this;\n const generator = async function* () {\n const [config, kwargs] =\n outerThis._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n outerThis.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n // The type is in camelCase but the API only accepts snake_case.\n const camelCaseStreamOptions = {\n include_names: streamOptions?.includeNames,\n include_types: streamOptions?.includeTypes,\n include_tags: streamOptions?.includeTags,\n exclude_names: streamOptions?.excludeNames,\n exclude_types: streamOptions?.excludeTypes,\n exclude_tags: streamOptions?.excludeTags,\n };\n const events = [];\n try {\n const response = await outerThis.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n diff: false;\n }>(\n \"/stream_events\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n ...camelCaseStreamOptions,\n diff: false,\n },\n config.signal\n );\n const { body, ok } = response;\n if (!ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n if (!body) {\n throw new Error(\n \"Could not begin remote stream events. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const log of runnableStream) {\n const chunk = revive(JSON.parse(log));\n const event = {\n event: chunk.event,\n name: chunk.name,\n run_id: chunk.run_id,\n tags: chunk.tags,\n metadata: chunk.metadata,\n data: chunk.data,\n };\n yield event;\n events.push(event);\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(events);\n };\n return generator();\n }\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & { version: \"v1\" | \"v2\" },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<StreamEvent>;\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding: \"text/event-stream\";\n },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<Uint8Array>;\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding?: \"text/event-stream\" | undefined;\n },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<StreamEvent | Uint8Array> {\n if (options.version !== \"v1\" && options.version !== \"v2\") {\n throw new Error(\n `Only versions \"v1\" and \"v2\" of the events schema is currently supported.`\n );\n }\n if (options.encoding !== undefined) {\n throw new Error(\"Special encodings are not supported for this runnable.\");\n }\n const eventStream = this._streamEvents(input, options, streamOptions);\n return IterableReadableStream.fromAsyncGenerator(eventStream);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","names":["set: Set<string>","subset: Set<string>","obj: any","msg: any","innerRevive: (key: string) => [string, any]","key: string","str: string","options?: RunnableConfig","input: RunInput","serializedMessage: Record<string, any>","innerSerialize: (key: string) => [string, any]","fields: {\n url: string;\n options?: RemoteRunnableOptions;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetch?: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n }","path: string","body: Body","signal?: AbortSignal","options?: Partial<CallOptions>","_?: CallbackManagerForChainRun","inputs: RunInput[]","options?: Partial<CallOptions>[]","_?: (CallbackManagerForChainRun | undefined)[]","batchOptions?: RunnableBatchOptions","options?: Partial<CallOptions> | Partial<CallOptions>[]","finalOutput: RunOutput | undefined","streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">","options: Partial<CallOptions> & { version: \"v1\" | \"v2\" }","streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\"> | undefined","options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding?: \"text/event-stream\" | undefined;\n }"],"sources":["../../src/runnables/remote.ts"],"sourcesContent":["import { Runnable, RunnableBatchOptions, _coerceToDict } from \"./base.js\";\nimport { getCallbackManagerForConfig, type RunnableConfig } from \"./config.js\";\nimport { Document } from \"../documents/index.js\";\nimport { CallbackManagerForChainRun } from \"../callbacks/manager.js\";\nimport { ChatPromptValue, StringPromptValue } from \"../prompt_values.js\";\nimport {\n RunLogPatch,\n type LogStreamCallbackHandlerInput,\n type StreamEvent,\n RunLog,\n} from \"../tracers/log_stream.js\";\nimport {\n AIMessage,\n AIMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n isBaseMessage,\n} from \"../messages/index.js\";\nimport { GenerationChunk, ChatGenerationChunk, RUN_KEY } from \"../outputs.js\";\nimport { convertEventStreamToIterableReadableDataStream } from \"../utils/event_source_parse.js\";\nimport { IterableReadableStream, concat } from \"../utils/stream.js\";\n\ntype RemoteRunnableOptions = {\n timeout?: number;\n headers?: Record<string, unknown>;\n};\n\nfunction isSuperset(set: Set<string>, subset: Set<string>) {\n for (const elem of subset) {\n if (!set.has(elem)) {\n return false;\n }\n }\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction revive(obj: any): any {\n if (Array.isArray(obj)) return obj.map(revive);\n if (typeof obj === \"object\") {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!obj || obj instanceof Date) {\n return obj;\n }\n const keysArr = Object.keys(obj);\n const keys = new Set(keysArr);\n if (isSuperset(keys, new Set([\"page_content\", \"metadata\"]))) {\n return new Document({\n pageContent: obj.page_content,\n metadata: obj.metadata,\n });\n }\n\n if (isSuperset(keys, new Set([\"content\", \"type\", \"additional_kwargs\"]))) {\n if (obj.type === \"HumanMessage\" || obj.type === \"human\") {\n return new HumanMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"SystemMessage\" || obj.type === \"system\") {\n return new SystemMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"ChatMessage\" || obj.type === \"generic\") {\n return new ChatMessage({\n content: obj.content,\n role: obj.role,\n });\n }\n if (obj.type === \"FunctionMessage\" || obj.type === \"function\") {\n return new FunctionMessage({\n content: obj.content,\n name: obj.name,\n });\n }\n if (obj.type === \"ToolMessage\" || obj.type === \"tool\") {\n return new ToolMessage({\n content: obj.content,\n tool_call_id: obj.tool_call_id,\n status: obj.status,\n artifact: obj.artifact,\n });\n }\n if (obj.type === \"AIMessage\" || obj.type === \"ai\") {\n return new AIMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"HumanMessageChunk\") {\n return new HumanMessageChunk({\n content: obj.content,\n });\n }\n if (obj.type === \"SystemMessageChunk\") {\n return new SystemMessageChunk({\n content: obj.content,\n });\n }\n if (obj.type === \"ChatMessageChunk\") {\n return new ChatMessageChunk({\n content: obj.content,\n role: obj.role,\n });\n }\n if (obj.type === \"FunctionMessageChunk\") {\n return new FunctionMessageChunk({\n content: obj.content,\n name: obj.name,\n });\n }\n if (obj.type === \"ToolMessageChunk\") {\n return new ToolMessageChunk({\n content: obj.content,\n tool_call_id: obj.tool_call_id,\n status: obj.status,\n artifact: obj.artifact,\n });\n }\n if (obj.type === \"AIMessageChunk\") {\n return new AIMessageChunk({\n content: obj.content,\n });\n }\n }\n if (isSuperset(keys, new Set([\"text\", \"generation_info\", \"type\"]))) {\n if (obj.type === \"ChatGenerationChunk\") {\n return new ChatGenerationChunk({\n message: revive(obj.message),\n text: obj.text,\n generationInfo: obj.generation_info,\n });\n } else if (obj.type === \"ChatGeneration\") {\n return {\n message: revive(obj.message),\n text: obj.text,\n generationInfo: obj.generation_info,\n };\n } else if (obj.type === \"GenerationChunk\") {\n return new GenerationChunk({\n text: obj.text,\n generationInfo: obj.generation_info,\n });\n } else if (obj.type === \"Generation\") {\n return {\n text: obj.text,\n generationInfo: obj.generation_info,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"tool\", \"tool_input\", \"log\", \"type\"]))) {\n if (obj.type === \"AgentAction\") {\n return {\n tool: obj.tool,\n toolInput: obj.tool_input,\n log: obj.log,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"return_values\", \"log\", \"type\"]))) {\n if (obj.type === \"AgentFinish\") {\n return {\n returnValues: obj.return_values,\n log: obj.log,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"generations\", \"run\", \"type\"]))) {\n if (obj.type === \"LLMResult\") {\n return {\n generations: revive(obj.generations),\n llmOutput: obj.llm_output,\n [RUN_KEY]: obj.run,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"messages\"]))) {\n // TODO: Start checking for type: ChatPromptValue and ChatPromptValueConcrete\n // when LangServe bug is fixed\n return new ChatPromptValue({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n messages: obj.messages.map((msg: any) => revive(msg)),\n });\n }\n\n if (isSuperset(keys, new Set([\"text\"]))) {\n // TODO: Start checking for type: StringPromptValue\n // when LangServe bug is fixed\n return new StringPromptValue(obj.text);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const innerRevive: (key: string) => [string, any] = (key: string) => [\n key,\n revive(obj[key]),\n ];\n const rtn = Object.fromEntries(keysArr.map(innerRevive));\n return rtn;\n }\n return obj;\n}\nfunction deserialize<RunOutput>(str: string): RunOutput {\n const obj = JSON.parse(str);\n return revive(obj);\n}\n\nfunction removeCallbacksAndSignal(\n options?: RunnableConfig\n): Omit<RunnableConfig, \"callbacks\" | \"signal\"> {\n const rest = { ...options };\n delete rest.callbacks;\n delete rest.signal;\n return rest;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction serialize<RunInput>(input: RunInput): any {\n if (Array.isArray(input)) return input.map(serialize);\n if (isBaseMessage(input)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const serializedMessage: Record<string, any> = {\n content: input.content,\n type: input._getType(),\n additional_kwargs: input.additional_kwargs,\n name: input.name,\n example: false,\n };\n if (ToolMessage.isInstance(input)) {\n serializedMessage.tool_call_id = input.tool_call_id;\n } else if (ChatMessage.isInstance(input)) {\n serializedMessage.role = input.role;\n }\n return serializedMessage;\n }\n if (typeof input === \"object\") {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!input || input instanceof Date) {\n return input;\n }\n const keysArr = Object.keys(input);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const innerSerialize: (key: string) => [string, any] = (key: string) => [\n key,\n serialize((input as Record<string, unknown>)[key]),\n ];\n const rtn = Object.fromEntries(keysArr.map(innerSerialize));\n return rtn;\n }\n return input;\n}\n\n/**\n * Client for interacting with LangChain runnables\n * that are hosted as LangServe endpoints.\n *\n * Allows you to interact with hosted runnables using the standard\n * `.invoke()`, `.stream()`, `.streamEvents()`, etc. methods that\n * other runnables support.\n *\n * @deprecated LangServe is no longer actively developed - please consider using LangGraph Platform.\n *\n * @param url - The base URL of the LangServe endpoint.\n * @param options - Optional configuration for the remote runnable, including timeout and headers.\n * @param fetch - Optional custom fetch implementation.\n * @param fetchRequestOptions - Optional additional options for fetch requests.\n */\nexport class RemoteRunnable<\n RunInput,\n RunOutput,\n CallOptions extends RunnableConfig\n> extends Runnable<RunInput, RunOutput, CallOptions> {\n private url: string;\n\n private options?: RemoteRunnableOptions;\n\n // Wrap the default fetch call due to issues with illegal invocations\n // from the browser:\n // https://stackoverflow.com/questions/69876859/why-does-bind-fix-failed-to-execute-fetch-on-window-illegal-invocation-err\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchImplementation: (...args: any[]) => any = (...args: any[]) =>\n // @ts-expect-error Broad typing to support a range of fetch implementations\n fetch(...args);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n\n lc_namespace = [\"langchain\", \"schema\", \"runnable\", \"remote\"];\n\n constructor(fields: {\n url: string;\n options?: RemoteRunnableOptions;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetch?: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n }) {\n super(fields);\n const {\n url,\n options,\n fetch: fetchImplementation,\n fetchRequestOptions,\n } = fields;\n\n this.url = url.replace(/\\/$/, \"\"); // remove trailing slash\n this.options = options;\n this.fetchImplementation = fetchImplementation ?? this.fetchImplementation;\n this.fetchRequestOptions = fetchRequestOptions;\n }\n\n private async post<Body>(path: string, body: Body, signal?: AbortSignal) {\n return this.fetchImplementation(`${this.url}${path}`, {\n method: \"POST\",\n body: JSON.stringify(serialize(body)),\n signal: signal ?? AbortSignal.timeout(this.options?.timeout ?? 60000),\n ...this.fetchRequestOptions,\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.fetchRequestOptions?.headers,\n ...this.options?.headers,\n },\n });\n }\n\n async _invoke(\n input: RunInput,\n options?: Partial<CallOptions>,\n _?: CallbackManagerForChainRun\n ) {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n }>(\n \"/invoke\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs: kwargs ?? {},\n },\n config.signal\n );\n if (!response.ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n return revive((await response.json()).output) as RunOutput;\n }\n\n async invoke(\n input: RunInput,\n options?: Partial<CallOptions>\n ): Promise<RunOutput> {\n return this._callWithConfig(this._invoke, input, options);\n }\n\n async _batch(\n inputs: RunInput[],\n options?: Partial<CallOptions>[],\n _?: (CallbackManagerForChainRun | undefined)[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]> {\n if (batchOptions?.returnExceptions) {\n throw new Error(\"returnExceptions is not supported for remote clients\");\n }\n const configsAndKwargsArray = options?.map((opts) =>\n this._separateRunnableConfigFromCallOptions(opts)\n );\n const [configs, kwargs] = configsAndKwargsArray?.reduce(\n ([pc, pk], [c, k]) =>\n [\n [...pc, c],\n [...pk, k],\n ] as [\n RunnableConfig[],\n Omit<Partial<CallOptions>, keyof RunnableConfig>[]\n ],\n [[], []] as [\n RunnableConfig[],\n Omit<Partial<CallOptions>, keyof RunnableConfig>[]\n ]\n ) ?? [undefined, undefined];\n const response = await this.post<{\n inputs: RunInput[];\n config?: (RunnableConfig & RunnableBatchOptions)[];\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>[];\n }>(\n \"/batch\",\n {\n inputs,\n config: (configs ?? [])\n .map(removeCallbacksAndSignal)\n .map((config) => ({ ...config, ...batchOptions })),\n kwargs,\n },\n options?.[0]?.signal\n );\n if (!response.ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n const body = await response.json();\n\n if (!body.output) throw new Error(\"Invalid response from remote runnable\");\n\n return revive(body.output);\n }\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions?: false }\n ): Promise<RunOutput[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions: true }\n ): Promise<(RunOutput | Error)[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]> {\n if (batchOptions?.returnExceptions) {\n throw Error(\"returnExceptions is not supported for remote clients\");\n }\n return this._batchWithConfig(\n this._batch.bind(this),\n inputs,\n options,\n batchOptions\n );\n }\n\n async *_streamIterator(\n input: RunInput,\n options?: Partial<CallOptions>\n ): AsyncGenerator<RunOutput> {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n let finalOutput: RunOutput | undefined;\n let finalOutputSupported = true;\n try {\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n }>(\n \"/stream\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n },\n config.signal\n );\n if (!response.ok) {\n const json = await response.json();\n const error = new Error(\n `RemoteRunnable call failed with status code ${response.status}: ${json.message}`\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (error as any).response = response;\n throw error;\n }\n const { body } = response;\n if (!body) {\n throw new Error(\n \"Could not begin remote stream. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const chunk of runnableStream) {\n const deserializedChunk = deserialize(chunk) as RunOutput;\n yield deserializedChunk;\n if (finalOutputSupported) {\n if (finalOutput === undefined) {\n finalOutput = deserializedChunk;\n } else {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n finalOutput = concat(finalOutput, deserializedChunk as any);\n } catch {\n finalOutput = undefined;\n finalOutputSupported = false;\n }\n }\n }\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(finalOutput ?? {});\n }\n\n async *streamLog(\n input: RunInput,\n options?: Partial<CallOptions>,\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): AsyncGenerator<RunLogPatch> {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n // The type is in camelCase but the API only accepts snake_case.\n const camelCaseStreamOptions = {\n include_names: streamOptions?.includeNames,\n include_types: streamOptions?.includeTypes,\n include_tags: streamOptions?.includeTags,\n exclude_names: streamOptions?.excludeNames,\n exclude_types: streamOptions?.excludeTypes,\n exclude_tags: streamOptions?.excludeTags,\n };\n let runLog;\n try {\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n diff: false;\n }>(\n \"/stream_log\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n ...camelCaseStreamOptions,\n diff: false,\n },\n config.signal\n );\n const { body, ok } = response;\n if (!ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n if (!body) {\n throw new Error(\n \"Could not begin remote stream log. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const log of runnableStream) {\n const chunk = revive(JSON.parse(log));\n const logPatch = new RunLogPatch({ ops: chunk.ops });\n yield logPatch;\n if (runLog === undefined) {\n runLog = RunLog.fromRunLogPatch(logPatch);\n } else {\n runLog = runLog.concat(logPatch);\n }\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(runLog?.state.final_output);\n }\n\n _streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & { version: \"v1\" | \"v2\" },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\"> | undefined\n ): AsyncGenerator<StreamEvent> {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const outerThis = this;\n const generator = async function* () {\n const [config, kwargs] =\n outerThis._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n outerThis.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n // The type is in camelCase but the API only accepts snake_case.\n const camelCaseStreamOptions = {\n include_names: streamOptions?.includeNames,\n include_types: streamOptions?.includeTypes,\n include_tags: streamOptions?.includeTags,\n exclude_names: streamOptions?.excludeNames,\n exclude_types: streamOptions?.excludeTypes,\n exclude_tags: streamOptions?.excludeTags,\n };\n const events = [];\n try {\n const response = await outerThis.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n diff: false;\n }>(\n \"/stream_events\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n ...camelCaseStreamOptions,\n diff: false,\n },\n config.signal\n );\n const { body, ok } = response;\n if (!ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n if (!body) {\n throw new Error(\n \"Could not begin remote stream events. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const log of runnableStream) {\n const chunk = revive(JSON.parse(log));\n const event = {\n event: chunk.event,\n name: chunk.name,\n run_id: chunk.run_id,\n tags: chunk.tags,\n metadata: chunk.metadata,\n data: chunk.data,\n };\n yield event;\n events.push(event);\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(events);\n };\n return generator();\n }\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & { version: \"v1\" | \"v2\" },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<StreamEvent>;\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding: \"text/event-stream\";\n },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<Uint8Array>;\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding?: \"text/event-stream\" | undefined;\n },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<StreamEvent | Uint8Array> {\n if (options.version !== \"v1\" && options.version !== \"v2\") {\n throw new Error(\n `Only versions \"v1\" and \"v2\" of the events schema is currently supported.`\n );\n }\n if (options.encoding !== undefined) {\n throw new Error(\"Special encodings are not supported for this runnable.\");\n }\n const eventStream = this._streamEvents(input, options, streamOptions);\n return IterableReadableStream.fromAsyncGenerator(eventStream);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remote.js","names":["set: Set<string>","subset: Set<string>","obj: any","msg: any","innerRevive: (key: string) => [string, any]","key: string","str: string","options?: RunnableConfig","input: RunInput","serializedMessage: Record<string, any>","innerSerialize: (key: string) => [string, any]","fields: {\n url: string;\n options?: RemoteRunnableOptions;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetch?: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n }","path: string","body: Body","signal?: AbortSignal","options?: Partial<CallOptions>","_?: CallbackManagerForChainRun","inputs: RunInput[]","options?: Partial<CallOptions>[]","_?: (CallbackManagerForChainRun | undefined)[]","batchOptions?: RunnableBatchOptions","options?: Partial<CallOptions> | Partial<CallOptions>[]","finalOutput: RunOutput | undefined","streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">","options: Partial<CallOptions> & { version: \"v1\" | \"v2\" }","streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\"> | undefined","options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding?: \"text/event-stream\" | undefined;\n }"],"sources":["../../src/runnables/remote.ts"],"sourcesContent":["import { Runnable, RunnableBatchOptions, _coerceToDict } from \"./base.js\";\nimport { getCallbackManagerForConfig, type RunnableConfig } from \"./config.js\";\nimport { Document } from \"../documents/index.js\";\nimport { CallbackManagerForChainRun } from \"../callbacks/manager.js\";\nimport { ChatPromptValue, StringPromptValue } from \"../prompt_values.js\";\nimport {\n RunLogPatch,\n type LogStreamCallbackHandlerInput,\n type StreamEvent,\n RunLog,\n} from \"../tracers/log_stream.js\";\nimport {\n AIMessage,\n AIMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n isBaseMessage,\n} from \"../messages/index.js\";\nimport { GenerationChunk, ChatGenerationChunk, RUN_KEY } from \"../outputs.js\";\nimport { convertEventStreamToIterableReadableDataStream } from \"../utils/event_source_parse.js\";\nimport { IterableReadableStream, concat } from \"../utils/stream.js\";\n\ntype RemoteRunnableOptions = {\n timeout?: number;\n headers?: Record<string, unknown>;\n};\n\nfunction isSuperset(set: Set<string>, subset: Set<string>) {\n for (const elem of subset) {\n if (!set.has(elem)) {\n return false;\n }\n }\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction revive(obj: any): any {\n if (Array.isArray(obj)) return obj.map(revive);\n if (typeof obj === \"object\") {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!obj || obj instanceof Date) {\n return obj;\n }\n const keysArr = Object.keys(obj);\n const keys = new Set(keysArr);\n if (isSuperset(keys, new Set([\"page_content\", \"metadata\"]))) {\n return new Document({\n pageContent: obj.page_content,\n metadata: obj.metadata,\n });\n }\n\n if (isSuperset(keys, new Set([\"content\", \"type\", \"additional_kwargs\"]))) {\n if (obj.type === \"HumanMessage\" || obj.type === \"human\") {\n return new HumanMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"SystemMessage\" || obj.type === \"system\") {\n return new SystemMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"ChatMessage\" || obj.type === \"generic\") {\n return new ChatMessage({\n content: obj.content,\n role: obj.role,\n });\n }\n if (obj.type === \"FunctionMessage\" || obj.type === \"function\") {\n return new FunctionMessage({\n content: obj.content,\n name: obj.name,\n });\n }\n if (obj.type === \"ToolMessage\" || obj.type === \"tool\") {\n return new ToolMessage({\n content: obj.content,\n tool_call_id: obj.tool_call_id,\n status: obj.status,\n artifact: obj.artifact,\n });\n }\n if (obj.type === \"AIMessage\" || obj.type === \"ai\") {\n return new AIMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"HumanMessageChunk\") {\n return new HumanMessageChunk({\n content: obj.content,\n });\n }\n if (obj.type === \"SystemMessageChunk\") {\n return new SystemMessageChunk({\n content: obj.content,\n });\n }\n if (obj.type === \"ChatMessageChunk\") {\n return new ChatMessageChunk({\n content: obj.content,\n role: obj.role,\n });\n }\n if (obj.type === \"FunctionMessageChunk\") {\n return new FunctionMessageChunk({\n content: obj.content,\n name: obj.name,\n });\n }\n if (obj.type === \"ToolMessageChunk\") {\n return new ToolMessageChunk({\n content: obj.content,\n tool_call_id: obj.tool_call_id,\n status: obj.status,\n artifact: obj.artifact,\n });\n }\n if (obj.type === \"AIMessageChunk\") {\n return new AIMessageChunk({\n content: obj.content,\n });\n }\n }\n if (isSuperset(keys, new Set([\"text\", \"generation_info\", \"type\"]))) {\n if (obj.type === \"ChatGenerationChunk\") {\n return new ChatGenerationChunk({\n message: revive(obj.message),\n text: obj.text,\n generationInfo: obj.generation_info,\n });\n } else if (obj.type === \"ChatGeneration\") {\n return {\n message: revive(obj.message),\n text: obj.text,\n generationInfo: obj.generation_info,\n };\n } else if (obj.type === \"GenerationChunk\") {\n return new GenerationChunk({\n text: obj.text,\n generationInfo: obj.generation_info,\n });\n } else if (obj.type === \"Generation\") {\n return {\n text: obj.text,\n generationInfo: obj.generation_info,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"tool\", \"tool_input\", \"log\", \"type\"]))) {\n if (obj.type === \"AgentAction\") {\n return {\n tool: obj.tool,\n toolInput: obj.tool_input,\n log: obj.log,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"return_values\", \"log\", \"type\"]))) {\n if (obj.type === \"AgentFinish\") {\n return {\n returnValues: obj.return_values,\n log: obj.log,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"generations\", \"run\", \"type\"]))) {\n if (obj.type === \"LLMResult\") {\n return {\n generations: revive(obj.generations),\n llmOutput: obj.llm_output,\n [RUN_KEY]: obj.run,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"messages\"]))) {\n // TODO: Start checking for type: ChatPromptValue and ChatPromptValueConcrete\n // when LangServe bug is fixed\n return new ChatPromptValue({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n messages: obj.messages.map((msg: any) => revive(msg)),\n });\n }\n\n if (isSuperset(keys, new Set([\"text\"]))) {\n // TODO: Start checking for type: StringPromptValue\n // when LangServe bug is fixed\n return new StringPromptValue(obj.text);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const innerRevive: (key: string) => [string, any] = (key: string) => [\n key,\n revive(obj[key]),\n ];\n const rtn = Object.fromEntries(keysArr.map(innerRevive));\n return rtn;\n }\n return obj;\n}\nfunction deserialize<RunOutput>(str: string): RunOutput {\n const obj = JSON.parse(str);\n return revive(obj);\n}\n\nfunction removeCallbacksAndSignal(\n options?: RunnableConfig\n): Omit<RunnableConfig, \"callbacks\" | \"signal\"> {\n const rest = { ...options };\n delete rest.callbacks;\n delete rest.signal;\n return rest;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction serialize<RunInput>(input: RunInput): any {\n if (Array.isArray(input)) return input.map(serialize);\n if (isBaseMessage(input)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const serializedMessage: Record<string, any> = {\n content: input.content,\n type: input._getType(),\n additional_kwargs: input.additional_kwargs,\n name: input.name,\n example: false,\n };\n if (ToolMessage.isInstance(input)) {\n serializedMessage.tool_call_id = input.tool_call_id;\n } else if (ChatMessage.isInstance(input)) {\n serializedMessage.role = input.role;\n }\n return serializedMessage;\n }\n if (typeof input === \"object\") {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!input || input instanceof Date) {\n return input;\n }\n const keysArr = Object.keys(input);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const innerSerialize: (key: string) => [string, any] = (key: string) => [\n key,\n serialize((input as Record<string, unknown>)[key]),\n ];\n const rtn = Object.fromEntries(keysArr.map(innerSerialize));\n return rtn;\n }\n return input;\n}\n\n/**\n * Client for interacting with LangChain runnables\n * that are hosted as LangServe endpoints.\n *\n * Allows you to interact with hosted runnables using the standard\n * `.invoke()`, `.stream()`, `.streamEvents()`, etc. methods that\n * other runnables support.\n *\n * @deprecated LangServe is no longer actively developed - please consider using LangGraph Platform.\n *\n * @param url - The base URL of the LangServe endpoint.\n * @param options - Optional configuration for the remote runnable, including timeout and headers.\n * @param fetch - Optional custom fetch implementation.\n * @param fetchRequestOptions - Optional additional options for fetch requests.\n */\nexport class RemoteRunnable<\n RunInput,\n RunOutput,\n CallOptions extends RunnableConfig\n> extends Runnable<RunInput, RunOutput, CallOptions> {\n private url: string;\n\n private options?: RemoteRunnableOptions;\n\n // Wrap the default fetch call due to issues with illegal invocations\n // from the browser:\n // https://stackoverflow.com/questions/69876859/why-does-bind-fix-failed-to-execute-fetch-on-window-illegal-invocation-err\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchImplementation: (...args: any[]) => any = (...args: any[]) =>\n // @ts-expect-error Broad typing to support a range of fetch implementations\n fetch(...args);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n\n lc_namespace = [\"langchain\", \"schema\", \"runnable\", \"remote\"];\n\n constructor(fields: {\n url: string;\n options?: RemoteRunnableOptions;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetch?: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n }) {\n super(fields);\n const {\n url,\n options,\n fetch: fetchImplementation,\n fetchRequestOptions,\n } = fields;\n\n this.url = url.replace(/\\/$/, \"\"); // remove trailing slash\n this.options = options;\n this.fetchImplementation = fetchImplementation ?? this.fetchImplementation;\n this.fetchRequestOptions = fetchRequestOptions;\n }\n\n private async post<Body>(path: string, body: Body, signal?: AbortSignal) {\n return this.fetchImplementation(`${this.url}${path}`, {\n method: \"POST\",\n body: JSON.stringify(serialize(body)),\n signal: signal ?? AbortSignal.timeout(this.options?.timeout ?? 60000),\n ...this.fetchRequestOptions,\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.fetchRequestOptions?.headers,\n ...this.options?.headers,\n },\n });\n }\n\n async _invoke(\n input: RunInput,\n options?: Partial<CallOptions>,\n _?: CallbackManagerForChainRun\n ) {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n }>(\n \"/invoke\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs: kwargs ?? {},\n },\n config.signal\n );\n if (!response.ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n return revive((await response.json()).output) as RunOutput;\n }\n\n async invoke(\n input: RunInput,\n options?: Partial<CallOptions>\n ): Promise<RunOutput> {\n return this._callWithConfig(this._invoke, input, options);\n }\n\n async _batch(\n inputs: RunInput[],\n options?: Partial<CallOptions>[],\n _?: (CallbackManagerForChainRun | undefined)[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]> {\n if (batchOptions?.returnExceptions) {\n throw new Error(\"returnExceptions is not supported for remote clients\");\n }\n const configsAndKwargsArray = options?.map((opts) =>\n this._separateRunnableConfigFromCallOptions(opts)\n );\n const [configs, kwargs] = configsAndKwargsArray?.reduce(\n ([pc, pk], [c, k]) =>\n [\n [...pc, c],\n [...pk, k],\n ] as [\n RunnableConfig[],\n Omit<Partial<CallOptions>, keyof RunnableConfig>[]\n ],\n [[], []] as [\n RunnableConfig[],\n Omit<Partial<CallOptions>, keyof RunnableConfig>[]\n ]\n ) ?? [undefined, undefined];\n const response = await this.post<{\n inputs: RunInput[];\n config?: (RunnableConfig & RunnableBatchOptions)[];\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>[];\n }>(\n \"/batch\",\n {\n inputs,\n config: (configs ?? [])\n .map(removeCallbacksAndSignal)\n .map((config) => ({ ...config, ...batchOptions })),\n kwargs,\n },\n options?.[0]?.signal\n );\n if (!response.ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n const body = await response.json();\n\n if (!body.output) throw new Error(\"Invalid response from remote runnable\");\n\n return revive(body.output);\n }\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions?: false }\n ): Promise<RunOutput[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions: true }\n ): Promise<(RunOutput | Error)[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]> {\n if (batchOptions?.returnExceptions) {\n throw Error(\"returnExceptions is not supported for remote clients\");\n }\n return this._batchWithConfig(\n this._batch.bind(this),\n inputs,\n options,\n batchOptions\n );\n }\n\n async *_streamIterator(\n input: RunInput,\n options?: Partial<CallOptions>\n ): AsyncGenerator<RunOutput> {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n let finalOutput: RunOutput | undefined;\n let finalOutputSupported = true;\n try {\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n }>(\n \"/stream\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n },\n config.signal\n );\n if (!response.ok) {\n const json = await response.json();\n const error = new Error(\n `RemoteRunnable call failed with status code ${response.status}: ${json.message}`\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (error as any).response = response;\n throw error;\n }\n const { body } = response;\n if (!body) {\n throw new Error(\n \"Could not begin remote stream. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const chunk of runnableStream) {\n const deserializedChunk = deserialize(chunk) as RunOutput;\n yield deserializedChunk;\n if (finalOutputSupported) {\n if (finalOutput === undefined) {\n finalOutput = deserializedChunk;\n } else {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n finalOutput = concat(finalOutput, deserializedChunk as any);\n } catch {\n finalOutput = undefined;\n finalOutputSupported = false;\n }\n }\n }\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(finalOutput ?? {});\n }\n\n async *streamLog(\n input: RunInput,\n options?: Partial<CallOptions>,\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): AsyncGenerator<RunLogPatch> {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n // The type is in camelCase but the API only accepts snake_case.\n const camelCaseStreamOptions = {\n include_names: streamOptions?.includeNames,\n include_types: streamOptions?.includeTypes,\n include_tags: streamOptions?.includeTags,\n exclude_names: streamOptions?.excludeNames,\n exclude_types: streamOptions?.excludeTypes,\n exclude_tags: streamOptions?.excludeTags,\n };\n let runLog;\n try {\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n diff: false;\n }>(\n \"/stream_log\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n ...camelCaseStreamOptions,\n diff: false,\n },\n config.signal\n );\n const { body, ok } = response;\n if (!ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n if (!body) {\n throw new Error(\n \"Could not begin remote stream log. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const log of runnableStream) {\n const chunk = revive(JSON.parse(log));\n const logPatch = new RunLogPatch({ ops: chunk.ops });\n yield logPatch;\n if (runLog === undefined) {\n runLog = RunLog.fromRunLogPatch(logPatch);\n } else {\n runLog = runLog.concat(logPatch);\n }\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(runLog?.state.final_output);\n }\n\n _streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & { version: \"v1\" | \"v2\" },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\"> | undefined\n ): AsyncGenerator<StreamEvent> {\n const outerThis = this;\n const generator = async function* () {\n const [config, kwargs] =\n outerThis._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n outerThis.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n // The type is in camelCase but the API only accepts snake_case.\n const camelCaseStreamOptions = {\n include_names: streamOptions?.includeNames,\n include_types: streamOptions?.includeTypes,\n include_tags: streamOptions?.includeTags,\n exclude_names: streamOptions?.excludeNames,\n exclude_types: streamOptions?.excludeTypes,\n exclude_tags: streamOptions?.excludeTags,\n };\n const events = [];\n try {\n const response = await outerThis.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n diff: false;\n }>(\n \"/stream_events\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n ...camelCaseStreamOptions,\n diff: false,\n },\n config.signal\n );\n const { body, ok } = response;\n if (!ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n if (!body) {\n throw new Error(\n \"Could not begin remote stream events. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const log of runnableStream) {\n const chunk = revive(JSON.parse(log));\n const event = {\n event: chunk.event,\n name: chunk.name,\n run_id: chunk.run_id,\n tags: chunk.tags,\n metadata: chunk.metadata,\n data: chunk.data,\n };\n yield event;\n events.push(event);\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(events);\n };\n return generator();\n }\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & { version: \"v1\" | \"v2\" },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<StreamEvent>;\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding: \"text/event-stream\";\n },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<Uint8Array>;\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding?: \"text/event-stream\" | undefined;\n },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<StreamEvent | Uint8Array> {\n if (options.version !== \"v1\" && options.version !== \"v2\") {\n throw new Error(\n `Only versions \"v1\" and \"v2\" of the events schema is currently supported.`\n );\n }\n if (options.encoding !== undefined) {\n throw new Error(\"Special encodings are not supported for this runnable.\");\n }\n const eventStream = this._streamEvents(input, options, streamOptions);\n return IterableReadableStream.fromAsyncGenerator(eventStream);\n }\n}\n"],"mappings":"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"}
|
|
@@ -57,7 +57,6 @@ ConfigurableFieldType extends Record<string, any> = Record<string, any>> extends
|
|
|
57
57
|
* Runtime values for attributes previously made configurable on this Runnable,
|
|
58
58
|
* or sub-Runnables.
|
|
59
59
|
*/
|
|
60
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
61
60
|
configurable?: ConfigurableFieldType;
|
|
62
61
|
/**
|
|
63
62
|
* Maximum number of times a call can recurse. If not provided, defaults to 25.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.cts","names":["SerializableInterface","BaseCallbackConfig","IterableReadableStreamInterface","InteropZodType","RunnableBatchOptions","RunnableIOSchema","RunnableInterface","RunnableConfig","RunInput","CallOptions","Partial","RunOutput","Promise","Error","AsyncGenerator","Edge","Node","Record","ConfigurableFieldType","AbortSignal"],"sources":["../../src/runnables/types.d.ts"],"sourcesContent":["import type { SerializableInterface } from \"../load/serializable.js\";\nimport type { BaseCallbackConfig } from \"../callbacks/manager.js\";\nimport type { IterableReadableStreamInterface } from \"../types/_internal.js\";\nimport { InteropZodType } from \"../utils/types/zod.js\";\nexport type RunnableBatchOptions = {\n /** @deprecated Pass in via the standard runnable config object instead */\n maxConcurrency?: number;\n returnExceptions?: boolean;\n};\nexport type RunnableIOSchema = {\n name?: string;\n schema: InteropZodType;\n};\n/**\n * Base interface implemented by all runnables.\n * Used for cross-compatibility between different versions of LangChain core.\n *\n * Should not change on patch releases.\n */\nexport interface RunnableInterface<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nRunInput = any, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nRunOutput = any, CallOptions extends RunnableConfig = RunnableConfig> extends SerializableInterface {\n lc_serializable: boolean;\n invoke(input: RunInput, options?: Partial<CallOptions>): Promise<RunOutput>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions & {\n returnExceptions?: false;\n }): Promise<RunOutput[]>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions & {\n returnExceptions: true;\n }): Promise<(RunOutput | Error)[]>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions): Promise<(RunOutput | Error)[]>;\n stream(input: RunInput, options?: Partial<CallOptions>): Promise<IterableReadableStreamInterface<RunOutput>>;\n transform(generator: AsyncGenerator<RunInput>, options: Partial<CallOptions>): AsyncGenerator<RunOutput>;\n getName(suffix?: string): string;\n}\nexport interface Edge {\n source: string;\n target: string;\n data?: string;\n conditional?: boolean;\n}\nexport interface Node {\n id: string;\n name: string;\n data: RunnableIOSchema | RunnableInterface;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n metadata?: Record<string, any>;\n}\nexport interface RunnableConfig<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfigurableFieldType extends Record<string, any> = Record<string, any>> extends BaseCallbackConfig {\n /**\n * Runtime values for attributes previously made configurable on this Runnable,\n * or sub-Runnables.\n */\n
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":["SerializableInterface","BaseCallbackConfig","IterableReadableStreamInterface","InteropZodType","RunnableBatchOptions","RunnableIOSchema","RunnableInterface","RunnableConfig","RunInput","CallOptions","Partial","RunOutput","Promise","Error","AsyncGenerator","Edge","Node","Record","ConfigurableFieldType","AbortSignal"],"sources":["../../src/runnables/types.d.ts"],"sourcesContent":["import type { SerializableInterface } from \"../load/serializable.js\";\nimport type { BaseCallbackConfig } from \"../callbacks/manager.js\";\nimport type { IterableReadableStreamInterface } from \"../types/_internal.js\";\nimport { InteropZodType } from \"../utils/types/zod.js\";\nexport type RunnableBatchOptions = {\n /** @deprecated Pass in via the standard runnable config object instead */\n maxConcurrency?: number;\n returnExceptions?: boolean;\n};\nexport type RunnableIOSchema = {\n name?: string;\n schema: InteropZodType;\n};\n/**\n * Base interface implemented by all runnables.\n * Used for cross-compatibility between different versions of LangChain core.\n *\n * Should not change on patch releases.\n */\nexport interface RunnableInterface<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nRunInput = any, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nRunOutput = any, CallOptions extends RunnableConfig = RunnableConfig> extends SerializableInterface {\n lc_serializable: boolean;\n invoke(input: RunInput, options?: Partial<CallOptions>): Promise<RunOutput>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions & {\n returnExceptions?: false;\n }): Promise<RunOutput[]>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions & {\n returnExceptions: true;\n }): Promise<(RunOutput | Error)[]>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions): Promise<(RunOutput | Error)[]>;\n stream(input: RunInput, options?: Partial<CallOptions>): Promise<IterableReadableStreamInterface<RunOutput>>;\n transform(generator: AsyncGenerator<RunInput>, options: Partial<CallOptions>): AsyncGenerator<RunOutput>;\n getName(suffix?: string): string;\n}\nexport interface Edge {\n source: string;\n target: string;\n data?: string;\n conditional?: boolean;\n}\nexport interface Node {\n id: string;\n name: string;\n data: RunnableIOSchema | RunnableInterface;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n metadata?: Record<string, any>;\n}\nexport interface RunnableConfig<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfigurableFieldType extends Record<string, any> = Record<string, any>> extends BaseCallbackConfig {\n /**\n * Runtime values for attributes previously made configurable on this Runnable,\n * or sub-Runnables.\n */\n configurable?: ConfigurableFieldType;\n /**\n * Maximum number of times a call can recurse. If not provided, defaults to 25.\n */\n recursionLimit?: number;\n /** Maximum number of parallel calls to make. */\n maxConcurrency?: number;\n /**\n * Timeout for this call in milliseconds.\n */\n timeout?: number;\n /**\n * Abort signal for this call.\n * If provided, the call will be aborted when the signal is aborted.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal\n */\n signal?: AbortSignal;\n}\n"],"mappings":"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"}
|
|
@@ -57,7 +57,6 @@ ConfigurableFieldType extends Record<string, any> = Record<string, any>> extends
|
|
|
57
57
|
* Runtime values for attributes previously made configurable on this Runnable,
|
|
58
58
|
* or sub-Runnables.
|
|
59
59
|
*/
|
|
60
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
61
60
|
configurable?: ConfigurableFieldType;
|
|
62
61
|
/**
|
|
63
62
|
* Maximum number of times a call can recurse. If not provided, defaults to 25.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","names":["SerializableInterface","BaseCallbackConfig","IterableReadableStreamInterface","InteropZodType","RunnableBatchOptions","RunnableIOSchema","RunnableInterface","RunnableConfig","RunInput","CallOptions","Partial","RunOutput","Promise","Error","AsyncGenerator","Edge","Node","Record","ConfigurableFieldType","AbortSignal"],"sources":["../../src/runnables/types.d.ts"],"sourcesContent":["import type { SerializableInterface } from \"../load/serializable.js\";\nimport type { BaseCallbackConfig } from \"../callbacks/manager.js\";\nimport type { IterableReadableStreamInterface } from \"../types/_internal.js\";\nimport { InteropZodType } from \"../utils/types/zod.js\";\nexport type RunnableBatchOptions = {\n /** @deprecated Pass in via the standard runnable config object instead */\n maxConcurrency?: number;\n returnExceptions?: boolean;\n};\nexport type RunnableIOSchema = {\n name?: string;\n schema: InteropZodType;\n};\n/**\n * Base interface implemented by all runnables.\n * Used for cross-compatibility between different versions of LangChain core.\n *\n * Should not change on patch releases.\n */\nexport interface RunnableInterface<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nRunInput = any, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nRunOutput = any, CallOptions extends RunnableConfig = RunnableConfig> extends SerializableInterface {\n lc_serializable: boolean;\n invoke(input: RunInput, options?: Partial<CallOptions>): Promise<RunOutput>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions & {\n returnExceptions?: false;\n }): Promise<RunOutput[]>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions & {\n returnExceptions: true;\n }): Promise<(RunOutput | Error)[]>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions): Promise<(RunOutput | Error)[]>;\n stream(input: RunInput, options?: Partial<CallOptions>): Promise<IterableReadableStreamInterface<RunOutput>>;\n transform(generator: AsyncGenerator<RunInput>, options: Partial<CallOptions>): AsyncGenerator<RunOutput>;\n getName(suffix?: string): string;\n}\nexport interface Edge {\n source: string;\n target: string;\n data?: string;\n conditional?: boolean;\n}\nexport interface Node {\n id: string;\n name: string;\n data: RunnableIOSchema | RunnableInterface;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n metadata?: Record<string, any>;\n}\nexport interface RunnableConfig<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfigurableFieldType extends Record<string, any> = Record<string, any>> extends BaseCallbackConfig {\n /**\n * Runtime values for attributes previously made configurable on this Runnable,\n * or sub-Runnables.\n */\n
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":["SerializableInterface","BaseCallbackConfig","IterableReadableStreamInterface","InteropZodType","RunnableBatchOptions","RunnableIOSchema","RunnableInterface","RunnableConfig","RunInput","CallOptions","Partial","RunOutput","Promise","Error","AsyncGenerator","Edge","Node","Record","ConfigurableFieldType","AbortSignal"],"sources":["../../src/runnables/types.d.ts"],"sourcesContent":["import type { SerializableInterface } from \"../load/serializable.js\";\nimport type { BaseCallbackConfig } from \"../callbacks/manager.js\";\nimport type { IterableReadableStreamInterface } from \"../types/_internal.js\";\nimport { InteropZodType } from \"../utils/types/zod.js\";\nexport type RunnableBatchOptions = {\n /** @deprecated Pass in via the standard runnable config object instead */\n maxConcurrency?: number;\n returnExceptions?: boolean;\n};\nexport type RunnableIOSchema = {\n name?: string;\n schema: InteropZodType;\n};\n/**\n * Base interface implemented by all runnables.\n * Used for cross-compatibility between different versions of LangChain core.\n *\n * Should not change on patch releases.\n */\nexport interface RunnableInterface<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nRunInput = any, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nRunOutput = any, CallOptions extends RunnableConfig = RunnableConfig> extends SerializableInterface {\n lc_serializable: boolean;\n invoke(input: RunInput, options?: Partial<CallOptions>): Promise<RunOutput>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions & {\n returnExceptions?: false;\n }): Promise<RunOutput[]>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions & {\n returnExceptions: true;\n }): Promise<(RunOutput | Error)[]>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions): Promise<(RunOutput | Error)[]>;\n stream(input: RunInput, options?: Partial<CallOptions>): Promise<IterableReadableStreamInterface<RunOutput>>;\n transform(generator: AsyncGenerator<RunInput>, options: Partial<CallOptions>): AsyncGenerator<RunOutput>;\n getName(suffix?: string): string;\n}\nexport interface Edge {\n source: string;\n target: string;\n data?: string;\n conditional?: boolean;\n}\nexport interface Node {\n id: string;\n name: string;\n data: RunnableIOSchema | RunnableInterface;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n metadata?: Record<string, any>;\n}\nexport interface RunnableConfig<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfigurableFieldType extends Record<string, any> = Record<string, any>> extends BaseCallbackConfig {\n /**\n * Runtime values for attributes previously made configurable on this Runnable,\n * or sub-Runnables.\n */\n configurable?: ConfigurableFieldType;\n /**\n * Maximum number of times a call can recurse. If not provided, defaults to 25.\n */\n recursionLimit?: number;\n /** Maximum number of parallel calls to make. */\n maxConcurrency?: number;\n /**\n * Timeout for this call in milliseconds.\n */\n timeout?: number;\n /**\n * Abort signal for this call.\n * If provided, the call will be aborted when the signal is aborted.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal\n */\n signal?: AbortSignal;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.cjs","names":["name: PropertyKey","value: T","getGlobalAsyncLocalStorageInstance","_CONTEXT_VARIABLES_KEY","RunTree","config: ConfigureHook"],"sources":["../../../src/singletons/async_local_storage/context.ts"],"sourcesContent":["import { isRunTree, RunTree } from \"langsmith/run_trees\";\nimport { BaseCallbackHandler } from \"../../callbacks/base.js\";\nimport {\n _CONTEXT_VARIABLES_KEY,\n getGlobalAsyncLocalStorageInstance,\n} from \"./globals.js\";\n\n/**\n * Set a context variable. Context variables are scoped to any\n * child runnables called by the current runnable, or globally if set outside\n * of any runnable.\n *\n * @remarks\n * This function is only supported in environments that support AsyncLocalStorage,\n * including Node.js, Deno, and Cloudflare Workers.\n *\n * @example\n * ```ts\n * import { RunnableLambda } from \"@langchain/core/runnables\";\n * import {\n * getContextVariable,\n * setContextVariable\n * } from \"@langchain/core/context\";\n *\n * const nested = RunnableLambda.from(() => {\n * // \"bar\" because it was set by a parent\n * console.log(getContextVariable(\"foo\"));\n *\n * // Override to \"baz\", but only for child runnables\n * setContextVariable(\"foo\", \"baz\");\n *\n * // Now \"baz\", but only for child runnables\n * return getContextVariable(\"foo\");\n * });\n *\n * const runnable = RunnableLambda.from(async () => {\n * // Set a context variable named \"foo\"\n * setContextVariable(\"foo\", \"bar\");\n *\n * const res = await nested.invoke({});\n *\n * // Still \"bar\" since child changes do not affect parents\n * console.log(getContextVariable(\"foo\"));\n *\n * return res;\n * });\n *\n * // undefined, because context variable has not been set yet\n * console.log(getContextVariable(\"foo\"));\n *\n * // Final return value is \"baz\"\n * const result = await runnable.invoke({});\n * ```\n *\n * @param name The name of the context variable.\n * @param value The value to set.\n */\
|
|
1
|
+
{"version":3,"file":"context.cjs","names":["name: PropertyKey","value: T","getGlobalAsyncLocalStorageInstance","_CONTEXT_VARIABLES_KEY","RunTree","config: ConfigureHook"],"sources":["../../../src/singletons/async_local_storage/context.ts"],"sourcesContent":["import { isRunTree, RunTree } from \"langsmith/run_trees\";\nimport { BaseCallbackHandler } from \"../../callbacks/base.js\";\nimport {\n _CONTEXT_VARIABLES_KEY,\n getGlobalAsyncLocalStorageInstance,\n} from \"./globals.js\";\n\n/**\n * Set a context variable. Context variables are scoped to any\n * child runnables called by the current runnable, or globally if set outside\n * of any runnable.\n *\n * @remarks\n * This function is only supported in environments that support AsyncLocalStorage,\n * including Node.js, Deno, and Cloudflare Workers.\n *\n * @example\n * ```ts\n * import { RunnableLambda } from \"@langchain/core/runnables\";\n * import {\n * getContextVariable,\n * setContextVariable\n * } from \"@langchain/core/context\";\n *\n * const nested = RunnableLambda.from(() => {\n * // \"bar\" because it was set by a parent\n * console.log(getContextVariable(\"foo\"));\n *\n * // Override to \"baz\", but only for child runnables\n * setContextVariable(\"foo\", \"baz\");\n *\n * // Now \"baz\", but only for child runnables\n * return getContextVariable(\"foo\");\n * });\n *\n * const runnable = RunnableLambda.from(async () => {\n * // Set a context variable named \"foo\"\n * setContextVariable(\"foo\", \"bar\");\n *\n * const res = await nested.invoke({});\n *\n * // Still \"bar\" since child changes do not affect parents\n * console.log(getContextVariable(\"foo\"));\n *\n * return res;\n * });\n *\n * // undefined, because context variable has not been set yet\n * console.log(getContextVariable(\"foo\"));\n *\n * // Final return value is \"baz\"\n * const result = await runnable.invoke({});\n * ```\n *\n * @param name The name of the context variable.\n * @param value The value to set.\n */\nexport function setContextVariable<T>(name: PropertyKey, value: T): void {\n // Avoid using global singleton due to circuluar dependency issues\n const asyncLocalStorageInstance = getGlobalAsyncLocalStorageInstance();\n if (asyncLocalStorageInstance === undefined) {\n throw new Error(\n `Internal error: Global shared async local storage instance has not been initialized.`\n );\n }\n const runTree = asyncLocalStorageInstance.getStore();\n const contextVars = { ...runTree?.[_CONTEXT_VARIABLES_KEY] };\n contextVars[name] = value;\n let newValue = {};\n if (isRunTree(runTree)) {\n newValue = new RunTree(runTree);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (newValue as any)[_CONTEXT_VARIABLES_KEY] = contextVars;\n asyncLocalStorageInstance.enterWith(newValue);\n}\n\n/**\n * Get the value of a previously set context variable. Context variables\n * are scoped to any child runnables called by the current runnable,\n * or globally if set outside of any runnable.\n *\n * @remarks\n * This function is only supported in environments that support AsyncLocalStorage,\n * including Node.js, Deno, and Cloudflare Workers.\n *\n * @example\n * ```ts\n * import { RunnableLambda } from \"@langchain/core/runnables\";\n * import {\n * getContextVariable,\n * setContextVariable\n * } from \"@langchain/core/context\";\n *\n * const nested = RunnableLambda.from(() => {\n * // \"bar\" because it was set by a parent\n * console.log(getContextVariable(\"foo\"));\n *\n * // Override to \"baz\", but only for child runnables\n * setContextVariable(\"foo\", \"baz\");\n *\n * // Now \"baz\", but only for child runnables\n * return getContextVariable(\"foo\");\n * });\n *\n * const runnable = RunnableLambda.from(async () => {\n * // Set a context variable named \"foo\"\n * setContextVariable(\"foo\", \"bar\");\n *\n * const res = await nested.invoke({});\n *\n * // Still \"bar\" since child changes do not affect parents\n * console.log(getContextVariable(\"foo\"));\n *\n * return res;\n * });\n *\n * // undefined, because context variable has not been set yet\n * console.log(getContextVariable(\"foo\"));\n *\n * // Final return value is \"baz\"\n * const result = await runnable.invoke({});\n * ```\n *\n * @param name The name of the context variable.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getContextVariable<T = any>(name: PropertyKey): T | undefined {\n // Avoid using global singleton due to circuluar dependency issues\n const asyncLocalStorageInstance = getGlobalAsyncLocalStorageInstance();\n if (asyncLocalStorageInstance === undefined) {\n return undefined;\n }\n const runTree = asyncLocalStorageInstance.getStore();\n return runTree?.[_CONTEXT_VARIABLES_KEY]?.[name];\n}\n\nconst LC_CONFIGURE_HOOKS_KEY = Symbol(\"lc:configure_hooks\");\n\nexport const _getConfigureHooks = () =>\n getContextVariable<ConfigureHook[]>(LC_CONFIGURE_HOOKS_KEY) || [];\n\n/**\n * Register a callback configure hook to automatically add callback handlers to all runs.\n *\n * There are two ways to use this:\n *\n * 1. Using a context variable:\n * - Set `contextVar` to specify the variable name\n * - Use `setContextVariable()` to store your handler instance\n *\n * 2. Using an environment variable:\n * - Set both `envVar` and `handlerClass`\n * - The handler will be instantiated when the env var is set to \"true\".\n *\n * @example\n * ```typescript\n * // Method 1: Using context variable\n * import {\n * registerConfigureHook,\n * setContextVariable\n * } from \"@langchain/core/context\";\n *\n * const tracer = new MyCallbackHandler();\n * registerConfigureHook({\n * contextVar: \"my_tracer\",\n * });\n * setContextVariable(\"my_tracer\", tracer);\n *\n * // ...run code here\n *\n * // Method 2: Using environment variable\n * registerConfigureHook({\n * handlerClass: MyCallbackHandler,\n * envVar: \"MY_TRACER_ENABLED\",\n * });\n * process.env.MY_TRACER_ENABLED = \"true\";\n *\n * // ...run code here\n * ```\n *\n * @param config Configuration object for the hook\n * @param config.contextVar Name of the context variable containing the handler instance\n * @param config.inheritable Whether child runs should inherit this handler\n * @param config.handlerClass Optional callback handler class (required if using envVar)\n * @param config.envVar Optional environment variable name to control handler activation\n */\nexport const registerConfigureHook = (config: ConfigureHook) => {\n if (config.envVar && !config.handlerClass) {\n throw new Error(\n \"If envVar is set, handlerClass must also be set to a non-None value.\"\n );\n }\n setContextVariable(LC_CONFIGURE_HOOKS_KEY, [..._getConfigureHooks(), config]);\n};\n\nexport type ConfigureHook = {\n contextVar?: string;\n inheritable?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handlerClass?: new (...args: any[]) => BaseCallbackHandler;\n envVar?: string;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,SAAgB,mBAAsBA,MAAmBC,OAAgB;CAEvE,MAAM,4BAA4BC,oDAAoC;AACtE,KAAI,8BAA8B,OAChC,OAAM,IAAI,MACR,CAAC,oFAAoF,CAAC;CAG1F,MAAM,UAAU,0BAA0B,UAAU;CACpD,MAAM,cAAc,EAAE,GAAG,UAAUC,wCAAyB;CAC5D,YAAY,QAAQ;CACpB,IAAI,WAAW,CAAE;AACjB,wCAAc,QAAQ,EACpB,WAAW,IAAIC,4BAAQ;CAGxB,SAAiBD,0CAA0B;CAC5C,0BAA0B,UAAU,SAAS;AAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDD,SAAgB,mBAA4BH,MAAkC;CAE5E,MAAM,4BAA4BE,oDAAoC;AACtE,KAAI,8BAA8B,OAChC,QAAO;CAET,MAAM,UAAU,0BAA0B,UAAU;AACpD,QAAO,UAAUC,0CAA0B;AAC5C;AAED,MAAM,yBAAyB,OAAO,qBAAqB;AAE3D,MAAa,qBAAqB,MAChC,mBAAoC,uBAAuB,IAAI,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CnE,MAAa,wBAAwB,CAACE,WAA0B;AAC9D,KAAI,OAAO,UAAU,CAAC,OAAO,aAC3B,OAAM,IAAI,MACR;CAGJ,mBAAmB,wBAAwB,CAAC,GAAG,oBAAoB,EAAE,MAAO,EAAC;AAC9E"}
|
|
@@ -52,7 +52,6 @@ import { BaseCallbackHandler } from "../../callbacks/base.cjs";
|
|
|
52
52
|
* @param name The name of the context variable.
|
|
53
53
|
* @param value The value to set.
|
|
54
54
|
*/
|
|
55
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
55
|
declare function setContextVariable<T>(name: PropertyKey, value: T): void;
|
|
57
56
|
/**
|
|
58
57
|
* Get the value of a previously set context variable. Context variables
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.cts","names":["BaseCallbackHandler","setContextVariable","PropertyKey","T","getContextVariable","_getConfigureHooks","ConfigureHook","registerConfigureHook"],"sources":["../../../src/singletons/async_local_storage/context.d.ts"],"sourcesContent":["import { BaseCallbackHandler } from \"../../callbacks/base.js\";\n/**\n * Set a context variable. Context variables are scoped to any\n * child runnables called by the current runnable, or globally if set outside\n * of any runnable.\n *\n * @remarks\n * This function is only supported in environments that support AsyncLocalStorage,\n * including Node.js, Deno, and Cloudflare Workers.\n *\n * @example\n * ```ts\n * import { RunnableLambda } from \"@langchain/core/runnables\";\n * import {\n * getContextVariable,\n * setContextVariable\n * } from \"@langchain/core/context\";\n *\n * const nested = RunnableLambda.from(() => {\n * // \"bar\" because it was set by a parent\n * console.log(getContextVariable(\"foo\"));\n *\n * // Override to \"baz\", but only for child runnables\n * setContextVariable(\"foo\", \"baz\");\n *\n * // Now \"baz\", but only for child runnables\n * return getContextVariable(\"foo\");\n * });\n *\n * const runnable = RunnableLambda.from(async () => {\n * // Set a context variable named \"foo\"\n * setContextVariable(\"foo\", \"bar\");\n *\n * const res = await nested.invoke({});\n *\n * // Still \"bar\" since child changes do not affect parents\n * console.log(getContextVariable(\"foo\"));\n *\n * return res;\n * });\n *\n * // undefined, because context variable has not been set yet\n * console.log(getContextVariable(\"foo\"));\n *\n * // Final return value is \"baz\"\n * const result = await runnable.invoke({});\n * ```\n *\n * @param name The name of the context variable.\n * @param value The value to set.\n */\
|
|
1
|
+
{"version":3,"file":"context.d.cts","names":["BaseCallbackHandler","setContextVariable","PropertyKey","T","getContextVariable","_getConfigureHooks","ConfigureHook","registerConfigureHook"],"sources":["../../../src/singletons/async_local_storage/context.d.ts"],"sourcesContent":["import { BaseCallbackHandler } from \"../../callbacks/base.js\";\n/**\n * Set a context variable. Context variables are scoped to any\n * child runnables called by the current runnable, or globally if set outside\n * of any runnable.\n *\n * @remarks\n * This function is only supported in environments that support AsyncLocalStorage,\n * including Node.js, Deno, and Cloudflare Workers.\n *\n * @example\n * ```ts\n * import { RunnableLambda } from \"@langchain/core/runnables\";\n * import {\n * getContextVariable,\n * setContextVariable\n * } from \"@langchain/core/context\";\n *\n * const nested = RunnableLambda.from(() => {\n * // \"bar\" because it was set by a parent\n * console.log(getContextVariable(\"foo\"));\n *\n * // Override to \"baz\", but only for child runnables\n * setContextVariable(\"foo\", \"baz\");\n *\n * // Now \"baz\", but only for child runnables\n * return getContextVariable(\"foo\");\n * });\n *\n * const runnable = RunnableLambda.from(async () => {\n * // Set a context variable named \"foo\"\n * setContextVariable(\"foo\", \"bar\");\n *\n * const res = await nested.invoke({});\n *\n * // Still \"bar\" since child changes do not affect parents\n * console.log(getContextVariable(\"foo\"));\n *\n * return res;\n * });\n *\n * // undefined, because context variable has not been set yet\n * console.log(getContextVariable(\"foo\"));\n *\n * // Final return value is \"baz\"\n * const result = await runnable.invoke({});\n * ```\n *\n * @param name The name of the context variable.\n * @param value The value to set.\n */\nexport declare function setContextVariable<T>(name: PropertyKey, value: T): void;\n/**\n * Get the value of a previously set context variable. Context variables\n * are scoped to any child runnables called by the current runnable,\n * or globally if set outside of any runnable.\n *\n * @remarks\n * This function is only supported in environments that support AsyncLocalStorage,\n * including Node.js, Deno, and Cloudflare Workers.\n *\n * @example\n * ```ts\n * import { RunnableLambda } from \"@langchain/core/runnables\";\n * import {\n * getContextVariable,\n * setContextVariable\n * } from \"@langchain/core/context\";\n *\n * const nested = RunnableLambda.from(() => {\n * // \"bar\" because it was set by a parent\n * console.log(getContextVariable(\"foo\"));\n *\n * // Override to \"baz\", but only for child runnables\n * setContextVariable(\"foo\", \"baz\");\n *\n * // Now \"baz\", but only for child runnables\n * return getContextVariable(\"foo\");\n * });\n *\n * const runnable = RunnableLambda.from(async () => {\n * // Set a context variable named \"foo\"\n * setContextVariable(\"foo\", \"bar\");\n *\n * const res = await nested.invoke({});\n *\n * // Still \"bar\" since child changes do not affect parents\n * console.log(getContextVariable(\"foo\"));\n *\n * return res;\n * });\n *\n * // undefined, because context variable has not been set yet\n * console.log(getContextVariable(\"foo\"));\n *\n * // Final return value is \"baz\"\n * const result = await runnable.invoke({});\n * ```\n *\n * @param name The name of the context variable.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport declare function getContextVariable<T = any>(name: PropertyKey): T | undefined;\nexport declare const _getConfigureHooks: () => ConfigureHook[];\n/**\n * Register a callback configure hook to automatically add callback handlers to all runs.\n *\n * There are two ways to use this:\n *\n * 1. Using a context variable:\n * - Set `contextVar` to specify the variable name\n * - Use `setContextVariable()` to store your handler instance\n *\n * 2. Using an environment variable:\n * - Set both `envVar` and `handlerClass`\n * - The handler will be instantiated when the env var is set to \"true\".\n *\n * @example\n * ```typescript\n * // Method 1: Using context variable\n * import {\n * registerConfigureHook,\n * setContextVariable\n * } from \"@langchain/core/context\";\n *\n * const tracer = new MyCallbackHandler();\n * registerConfigureHook({\n * contextVar: \"my_tracer\",\n * });\n * setContextVariable(\"my_tracer\", tracer);\n *\n * // ...run code here\n *\n * // Method 2: Using environment variable\n * registerConfigureHook({\n * handlerClass: MyCallbackHandler,\n * envVar: \"MY_TRACER_ENABLED\",\n * });\n * process.env.MY_TRACER_ENABLED = \"true\";\n *\n * // ...run code here\n * ```\n *\n * @param config Configuration object for the hook\n * @param config.contextVar Name of the context variable containing the handler instance\n * @param config.inheritable Whether child runs should inherit this handler\n * @param config.handlerClass Optional callback handler class (required if using envVar)\n * @param config.envVar Optional environment variable name to control handler activation\n */\nexport declare const registerConfigureHook: (config: ConfigureHook) => void;\nexport type ConfigureHook = {\n contextVar?: string;\n inheritable?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handlerClass?: new (...args: any[]) => BaseCallbackHandler;\n envVar?: string;\n};\n"],"mappings":";;;;;;AAmDA;;;;AAAyE;AAmDzE;;;;AAAyE;AA+CzE;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAnGwBC,4BAA4BC,oBAAoBC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmDhDC,kCAAkCF,cAAcC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA+CnDI,gCAAgCD;KACzCA,aAAAA;;;;yCAI+BN"}
|
|
@@ -52,7 +52,6 @@ import { BaseCallbackHandler } from "../../callbacks/base.js";
|
|
|
52
52
|
* @param name The name of the context variable.
|
|
53
53
|
* @param value The value to set.
|
|
54
54
|
*/
|
|
55
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
55
|
declare function setContextVariable<T>(name: PropertyKey, value: T): void;
|
|
57
56
|
/**
|
|
58
57
|
* Get the value of a previously set context variable. Context variables
|