@langchain/core 1.2.3 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/agents.d.cts.map +1 -1
- package/dist/agents.d.ts.map +1 -1
- package/dist/caches/index.cjs.map +1 -1
- package/dist/caches/index.d.cts +0 -1
- package/dist/caches/index.d.cts.map +1 -1
- package/dist/caches/index.d.ts +0 -1
- package/dist/caches/index.d.ts.map +1 -1
- package/dist/caches/index.js.map +1 -1
- package/dist/callbacks/base.cjs.map +1 -1
- package/dist/callbacks/base.d.cts +68 -36
- package/dist/callbacks/base.d.cts.map +1 -1
- package/dist/callbacks/base.d.ts +68 -36
- package/dist/callbacks/base.d.ts.map +1 -1
- package/dist/callbacks/base.js.map +1 -1
- package/dist/callbacks/dispatch/index.cjs +0 -1
- package/dist/callbacks/dispatch/index.cjs.map +1 -1
- package/dist/callbacks/dispatch/index.d.cts +1 -0
- package/dist/callbacks/dispatch/index.d.cts.map +1 -1
- package/dist/callbacks/dispatch/index.d.ts +1 -0
- package/dist/callbacks/dispatch/index.d.ts.map +1 -1
- package/dist/callbacks/dispatch/index.js.map +1 -1
- package/dist/callbacks/dispatch/web.cjs.map +1 -1
- package/dist/callbacks/dispatch/web.d.cts +1 -0
- package/dist/callbacks/dispatch/web.d.cts.map +1 -1
- package/dist/callbacks/dispatch/web.d.ts +1 -0
- package/dist/callbacks/dispatch/web.d.ts.map +1 -1
- package/dist/callbacks/dispatch/web.js.map +1 -1
- package/dist/callbacks/manager.cjs +75 -8
- package/dist/callbacks/manager.cjs.map +1 -1
- package/dist/callbacks/manager.d.cts +1 -2
- package/dist/callbacks/manager.d.cts.map +1 -1
- package/dist/callbacks/manager.d.ts +1 -2
- package/dist/callbacks/manager.d.ts.map +1 -1
- package/dist/callbacks/manager.js +75 -8
- package/dist/callbacks/manager.js.map +1 -1
- package/dist/chat_history.cjs.map +1 -1
- package/dist/chat_history.d.cts +1 -0
- package/dist/chat_history.d.cts.map +1 -1
- package/dist/chat_history.d.ts +1 -0
- package/dist/chat_history.d.ts.map +1 -1
- package/dist/chat_history.js.map +1 -1
- package/dist/context.cjs +0 -1
- package/dist/context.cjs.map +1 -1
- package/dist/context.d.cts +0 -1
- package/dist/context.d.cts.map +1 -1
- package/dist/context.d.ts +0 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js.map +1 -1
- package/dist/document_loaders/base.cjs.map +1 -1
- package/dist/document_loaders/base.d.cts +0 -1
- package/dist/document_loaders/base.d.cts.map +1 -1
- package/dist/document_loaders/base.d.ts +0 -1
- package/dist/document_loaders/base.d.ts.map +1 -1
- package/dist/document_loaders/base.js.map +1 -1
- package/dist/document_loaders/langsmith.cjs.map +1 -1
- package/dist/document_loaders/langsmith.d.cts +0 -1
- package/dist/document_loaders/langsmith.d.cts.map +1 -1
- package/dist/document_loaders/langsmith.d.ts +0 -1
- package/dist/document_loaders/langsmith.d.ts.map +1 -1
- package/dist/document_loaders/langsmith.js.map +1 -1
- package/dist/documents/document.cjs.map +1 -1
- package/dist/documents/document.d.cts.map +1 -1
- package/dist/documents/document.d.ts.map +1 -1
- package/dist/documents/document.js.map +1 -1
- package/dist/documents/transformers.cjs.map +1 -1
- package/dist/documents/transformers.d.cts +0 -1
- package/dist/documents/transformers.d.cts.map +1 -1
- package/dist/documents/transformers.d.ts +0 -1
- package/dist/documents/transformers.d.ts.map +1 -1
- package/dist/documents/transformers.js.map +1 -1
- package/dist/embeddings.cjs.map +1 -1
- package/dist/embeddings.d.cts +0 -1
- package/dist/embeddings.d.cts.map +1 -1
- package/dist/embeddings.d.ts +0 -1
- 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.d.cts +0 -1
- package/dist/errors/index.d.cts.map +1 -1
- package/dist/errors/index.d.ts +0 -1
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/example_selectors/base.cjs.map +1 -1
- package/dist/example_selectors/base.d.cts +0 -1
- package/dist/example_selectors/base.d.cts.map +1 -1
- package/dist/example_selectors/base.d.ts +0 -1
- package/dist/example_selectors/base.d.ts.map +1 -1
- package/dist/example_selectors/base.js.map +1 -1
- package/dist/example_selectors/conditional.cjs.map +1 -1
- package/dist/example_selectors/conditional.d.cts +0 -1
- package/dist/example_selectors/conditional.d.cts.map +1 -1
- package/dist/example_selectors/conditional.d.ts +0 -1
- package/dist/example_selectors/conditional.d.ts.map +1 -1
- package/dist/example_selectors/conditional.js.map +1 -1
- package/dist/example_selectors/length_based.cjs.map +1 -1
- package/dist/example_selectors/length_based.d.cts +0 -1
- package/dist/example_selectors/length_based.d.cts.map +1 -1
- package/dist/example_selectors/length_based.d.ts +0 -1
- package/dist/example_selectors/length_based.d.ts.map +1 -1
- package/dist/example_selectors/length_based.js.map +1 -1
- package/dist/example_selectors/semantic_similarity.cjs +2 -1
- package/dist/example_selectors/semantic_similarity.cjs.map +1 -1
- package/dist/example_selectors/semantic_similarity.d.cts +0 -1
- package/dist/example_selectors/semantic_similarity.d.cts.map +1 -1
- package/dist/example_selectors/semantic_similarity.d.ts +0 -1
- package/dist/example_selectors/semantic_similarity.d.ts.map +1 -1
- package/dist/example_selectors/semantic_similarity.js +2 -1
- package/dist/example_selectors/semantic_similarity.js.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/indexing/base.cjs.map +1 -1
- package/dist/indexing/base.d.cts +0 -1
- package/dist/indexing/base.d.cts.map +1 -1
- package/dist/indexing/base.d.ts +0 -1
- package/dist/indexing/base.d.ts.map +1 -1
- package/dist/indexing/base.js.map +1 -1
- package/dist/indexing/record_manager.cjs.map +1 -1
- package/dist/indexing/record_manager.d.cts +0 -1
- package/dist/indexing/record_manager.d.cts.map +1 -1
- package/dist/indexing/record_manager.d.ts +0 -1
- package/dist/indexing/record_manager.d.ts.map +1 -1
- package/dist/indexing/record_manager.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 +10 -17
- package/dist/language_models/base.d.cts.map +1 -1
- package/dist/language_models/base.d.ts +10 -17
- 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 +12 -6
- package/dist/language_models/chat_models.cjs.map +1 -1
- package/dist/language_models/chat_models.d.cts +7 -9
- package/dist/language_models/chat_models.d.cts.map +1 -1
- package/dist/language_models/chat_models.d.ts +7 -9
- package/dist/language_models/chat_models.d.ts.map +1 -1
- package/dist/language_models/chat_models.js +12 -6
- package/dist/language_models/chat_models.js.map +1 -1
- package/dist/language_models/compat.cjs.map +1 -1
- package/dist/language_models/compat.d.cts +0 -1
- package/dist/language_models/compat.d.cts.map +1 -1
- package/dist/language_models/compat.d.ts +0 -1
- package/dist/language_models/compat.d.ts.map +1 -1
- package/dist/language_models/compat.js.map +1 -1
- package/dist/language_models/event.d.cts +0 -1
- package/dist/language_models/event.d.cts.map +1 -1
- package/dist/language_models/event.d.ts +0 -1
- package/dist/language_models/event.d.ts.map +1 -1
- package/dist/language_models/llms.cjs.map +1 -1
- package/dist/language_models/llms.d.cts +2 -9
- package/dist/language_models/llms.d.cts.map +1 -1
- package/dist/language_models/llms.d.ts +2 -9
- package/dist/language_models/llms.d.ts.map +1 -1
- package/dist/language_models/llms.js.map +1 -1
- package/dist/language_models/openai_completions_stream.cjs.map +1 -1
- package/dist/language_models/openai_completions_stream.d.cts +0 -1
- package/dist/language_models/openai_completions_stream.d.cts.map +1 -1
- package/dist/language_models/openai_completions_stream.d.ts +0 -1
- package/dist/language_models/openai_completions_stream.d.ts.map +1 -1
- package/dist/language_models/openai_completions_stream.js.map +1 -1
- package/dist/language_models/profile.d.cts.map +1 -1
- package/dist/language_models/profile.d.ts.map +1 -1
- package/dist/language_models/stream.cjs.map +1 -1
- package/dist/language_models/stream.d.cts +2 -1
- package/dist/language_models/stream.d.cts.map +1 -1
- package/dist/language_models/stream.d.ts +2 -1
- package/dist/language_models/stream.d.ts.map +1 -1
- package/dist/language_models/stream.js.map +1 -1
- package/dist/language_models/structured_output.cjs.map +1 -1
- package/dist/language_models/structured_output.d.cts +4 -0
- package/dist/language_models/structured_output.d.cts.map +1 -1
- package/dist/language_models/structured_output.d.ts +4 -0
- package/dist/language_models/structured_output.d.ts.map +1 -1
- package/dist/language_models/structured_output.js.map +1 -1
- package/dist/language_models/utils.cjs.map +1 -1
- package/dist/language_models/utils.js.map +1 -1
- package/dist/load/import_constants.cjs.map +1 -1
- package/dist/load/import_constants.js.map +1 -1
- package/dist/load/import_map.cjs +410 -0
- package/dist/load/import_map.cjs.map +1 -1
- package/dist/load/import_map.js +3 -1
- package/dist/load/import_map.js.map +1 -1
- package/dist/load/import_type.d.cts.map +1 -1
- package/dist/load/import_type.d.ts.map +1 -1
- package/dist/load/index.cjs.map +1 -1
- package/dist/load/index.d.cts +0 -1
- package/dist/load/index.d.cts.map +1 -1
- package/dist/load/index.d.ts +0 -1
- package/dist/load/index.d.ts.map +1 -1
- package/dist/load/index.js.map +1 -1
- package/dist/load/map_keys.cjs.map +1 -1
- package/dist/load/map_keys.d.cts.map +1 -1
- package/dist/load/map_keys.d.ts.map +1 -1
- package/dist/load/map_keys.js.map +1 -1
- package/dist/load/serializable.cjs.map +1 -1
- package/dist/load/serializable.d.cts +0 -1
- package/dist/load/serializable.d.cts.map +1 -1
- package/dist/load/serializable.d.ts +0 -1
- package/dist/load/serializable.d.ts.map +1 -1
- package/dist/load/serializable.js.map +1 -1
- package/dist/load/validation.cjs +3 -0
- package/dist/load/validation.cjs.map +1 -1
- package/dist/load/validation.js +1 -1
- package/dist/load/validation.js.map +1 -1
- package/dist/memory.cjs +8 -2
- package/dist/memory.cjs.map +1 -1
- package/dist/memory.d.cts.map +1 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +8 -2
- package/dist/memory.js.map +1 -1
- package/dist/messages/ai.cjs.map +1 -1
- package/dist/messages/ai.d.cts +0 -1
- package/dist/messages/ai.d.cts.map +1 -1
- package/dist/messages/ai.d.ts +0 -1
- package/dist/messages/ai.d.ts.map +1 -1
- package/dist/messages/ai.js.map +1 -1
- package/dist/messages/base.cjs.map +1 -1
- package/dist/messages/base.d.cts +6 -9
- package/dist/messages/base.d.cts.map +1 -1
- package/dist/messages/base.d.ts +6 -9
- package/dist/messages/base.d.ts.map +1 -1
- package/dist/messages/base.js.map +1 -1
- package/dist/messages/block_translators/anthropic.cjs +2 -0
- package/dist/messages/block_translators/anthropic.cjs.map +1 -1
- package/dist/messages/block_translators/anthropic.js +1 -1
- package/dist/messages/block_translators/anthropic.js.map +1 -1
- package/dist/messages/block_translators/bedrock_converse.cjs.map +1 -1
- package/dist/messages/block_translators/bedrock_converse.js.map +1 -1
- package/dist/messages/block_translators/data.cjs +1 -0
- package/dist/messages/block_translators/data.cjs.map +1 -1
- package/dist/messages/block_translators/data.js +1 -1
- package/dist/messages/block_translators/data.js.map +1 -1
- package/dist/messages/block_translators/deepseek.cjs +1 -0
- package/dist/messages/block_translators/deepseek.cjs.map +1 -1
- package/dist/messages/block_translators/deepseek.js +1 -1
- package/dist/messages/block_translators/deepseek.js.map +1 -1
- package/dist/messages/block_translators/google.cjs.map +1 -1
- package/dist/messages/block_translators/google.js.map +1 -1
- package/dist/messages/block_translators/google_genai.cjs.map +1 -1
- package/dist/messages/block_translators/google_genai.js.map +1 -1
- package/dist/messages/block_translators/google_vertexai.cjs.map +1 -1
- package/dist/messages/block_translators/google_vertexai.js.map +1 -1
- package/dist/messages/block_translators/groq.cjs +1 -0
- package/dist/messages/block_translators/groq.cjs.map +1 -1
- package/dist/messages/block_translators/groq.js +1 -1
- package/dist/messages/block_translators/groq.js.map +1 -1
- package/dist/messages/block_translators/index.cjs +1 -1
- package/dist/messages/block_translators/index.cjs.map +1 -1
- package/dist/messages/block_translators/index.js +1 -1
- package/dist/messages/block_translators/index.js.map +1 -1
- package/dist/messages/block_translators/ollama.cjs +1 -0
- package/dist/messages/block_translators/ollama.cjs.map +1 -1
- package/dist/messages/block_translators/ollama.js +1 -1
- package/dist/messages/block_translators/ollama.js.map +1 -1
- package/dist/messages/block_translators/openai.cjs +4 -0
- package/dist/messages/block_translators/openai.cjs.map +1 -1
- package/dist/messages/block_translators/openai.js +1 -1
- package/dist/messages/block_translators/openai.js.map +1 -1
- package/dist/messages/block_translators/openrouter.cjs +1 -0
- package/dist/messages/block_translators/openrouter.cjs.map +1 -1
- package/dist/messages/block_translators/openrouter.js +1 -1
- package/dist/messages/block_translators/openrouter.js.map +1 -1
- package/dist/messages/block_translators/utils.cjs.map +1 -1
- package/dist/messages/block_translators/utils.js.map +1 -1
- package/dist/messages/block_translators/xai.cjs +1 -0
- package/dist/messages/block_translators/xai.cjs.map +1 -1
- package/dist/messages/block_translators/xai.js +1 -1
- package/dist/messages/block_translators/xai.js.map +1 -1
- package/dist/messages/chat.cjs.map +1 -1
- package/dist/messages/chat.d.cts +0 -1
- package/dist/messages/chat.d.cts.map +1 -1
- package/dist/messages/chat.d.ts +0 -1
- package/dist/messages/chat.d.ts.map +1 -1
- package/dist/messages/chat.js.map +1 -1
- package/dist/messages/content/base.d.cts.map +1 -1
- package/dist/messages/content/base.d.ts.map +1 -1
- package/dist/messages/content/data.cjs.map +1 -1
- package/dist/messages/content/data.d.cts +2 -9
- package/dist/messages/content/data.d.cts.map +1 -1
- package/dist/messages/content/data.d.ts +2 -9
- package/dist/messages/content/data.d.ts.map +1 -1
- package/dist/messages/content/data.js.map +1 -1
- package/dist/messages/content/index.cjs.map +1 -1
- package/dist/messages/content/index.d.cts +0 -1
- package/dist/messages/content/index.d.cts.map +1 -1
- package/dist/messages/content/index.d.ts +0 -1
- package/dist/messages/content/index.d.ts.map +1 -1
- package/dist/messages/content/index.js.map +1 -1
- package/dist/messages/content/multimodal.cjs.map +1 -1
- package/dist/messages/content/multimodal.d.cts +8 -5
- package/dist/messages/content/multimodal.d.cts.map +1 -1
- package/dist/messages/content/multimodal.d.ts +8 -5
- package/dist/messages/content/multimodal.d.ts.map +1 -1
- package/dist/messages/content/multimodal.js.map +1 -1
- package/dist/messages/content/tools.cjs.map +1 -1
- package/dist/messages/content/tools.d.cts +0 -1
- package/dist/messages/content/tools.d.cts.map +1 -1
- package/dist/messages/content/tools.d.ts +0 -1
- package/dist/messages/content/tools.d.ts.map +1 -1
- package/dist/messages/content/tools.js.map +1 -1
- package/dist/messages/format.cjs.map +1 -1
- package/dist/messages/format.d.cts.map +1 -1
- package/dist/messages/format.d.ts.map +1 -1
- package/dist/messages/format.js.map +1 -1
- package/dist/messages/function.cjs.map +1 -1
- package/dist/messages/function.d.cts +0 -1
- package/dist/messages/function.d.cts.map +1 -1
- package/dist/messages/function.d.ts +0 -1
- package/dist/messages/function.d.ts.map +1 -1
- package/dist/messages/function.js.map +1 -1
- package/dist/messages/human.cjs.map +1 -1
- package/dist/messages/human.d.cts +0 -1
- package/dist/messages/human.d.cts.map +1 -1
- package/dist/messages/human.d.ts +0 -1
- package/dist/messages/human.d.ts.map +1 -1
- package/dist/messages/human.js.map +1 -1
- package/dist/messages/message.cjs.map +1 -1
- package/dist/messages/message.d.cts +31 -22
- package/dist/messages/message.d.cts.map +1 -1
- package/dist/messages/message.d.ts +31 -22
- package/dist/messages/message.d.ts.map +1 -1
- package/dist/messages/message.js.map +1 -1
- package/dist/messages/metadata.cjs.map +1 -1
- package/dist/messages/metadata.d.cts +0 -1
- package/dist/messages/metadata.d.cts.map +1 -1
- package/dist/messages/metadata.d.ts +0 -1
- package/dist/messages/metadata.d.ts.map +1 -1
- package/dist/messages/metadata.js.map +1 -1
- package/dist/messages/modifier.cjs.map +1 -1
- package/dist/messages/modifier.d.cts +0 -1
- package/dist/messages/modifier.d.cts.map +1 -1
- package/dist/messages/modifier.d.ts +0 -1
- package/dist/messages/modifier.d.ts.map +1 -1
- package/dist/messages/modifier.js.map +1 -1
- package/dist/messages/system.cjs.map +1 -1
- package/dist/messages/system.d.cts +0 -1
- package/dist/messages/system.d.cts.map +1 -1
- package/dist/messages/system.d.ts +0 -1
- package/dist/messages/system.d.ts.map +1 -1
- package/dist/messages/system.js.map +1 -1
- package/dist/messages/tool.cjs.map +1 -1
- package/dist/messages/tool.d.cts +3 -4
- package/dist/messages/tool.d.cts.map +1 -1
- package/dist/messages/tool.d.ts +3 -4
- package/dist/messages/tool.d.ts.map +1 -1
- package/dist/messages/tool.js.map +1 -1
- package/dist/messages/transformers.cjs +1 -1
- package/dist/messages/transformers.cjs.map +1 -1
- package/dist/messages/transformers.d.cts +1 -3
- package/dist/messages/transformers.d.cts.map +1 -1
- package/dist/messages/transformers.d.ts +1 -3
- package/dist/messages/transformers.d.ts.map +1 -1
- package/dist/messages/transformers.js +1 -1
- package/dist/messages/transformers.js.map +1 -1
- package/dist/messages/utils.cjs.map +1 -1
- package/dist/messages/utils.d.cts +4 -5
- package/dist/messages/utils.d.cts.map +1 -1
- package/dist/messages/utils.d.ts +4 -5
- package/dist/messages/utils.d.ts.map +1 -1
- package/dist/messages/utils.js.map +1 -1
- package/dist/output_parsers/base.cjs.map +1 -1
- package/dist/output_parsers/base.d.cts +4 -1
- package/dist/output_parsers/base.d.cts.map +1 -1
- package/dist/output_parsers/base.d.ts +4 -1
- package/dist/output_parsers/base.d.ts.map +1 -1
- package/dist/output_parsers/base.js.map +1 -1
- package/dist/output_parsers/bytes.cjs.map +1 -1
- package/dist/output_parsers/bytes.d.cts +0 -1
- package/dist/output_parsers/bytes.d.cts.map +1 -1
- package/dist/output_parsers/bytes.d.ts +0 -1
- package/dist/output_parsers/bytes.d.ts.map +1 -1
- package/dist/output_parsers/bytes.js.map +1 -1
- package/dist/output_parsers/json.cjs +2 -0
- package/dist/output_parsers/json.cjs.map +1 -1
- package/dist/output_parsers/json.d.cts +2 -2
- package/dist/output_parsers/json.d.cts.map +1 -1
- package/dist/output_parsers/json.d.ts +2 -2
- package/dist/output_parsers/json.d.ts.map +1 -1
- package/dist/output_parsers/json.js +2 -2
- package/dist/output_parsers/json.js.map +1 -1
- package/dist/output_parsers/list.cjs.map +1 -1
- package/dist/output_parsers/list.d.cts +2 -5
- package/dist/output_parsers/list.d.cts.map +1 -1
- package/dist/output_parsers/list.d.ts +2 -5
- package/dist/output_parsers/list.d.ts.map +1 -1
- package/dist/output_parsers/list.js.map +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.cjs.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.cts.map +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.ts +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.ts.map +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.js.map +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.d.cts +2 -2
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.cts.map +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.ts +2 -2
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.ts.map +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.js.map +1 -1
- package/dist/output_parsers/standard_schema.cjs.map +1 -1
- package/dist/output_parsers/standard_schema.d.cts +1 -1
- package/dist/output_parsers/standard_schema.d.cts.map +1 -1
- package/dist/output_parsers/standard_schema.d.ts +1 -1
- package/dist/output_parsers/standard_schema.d.ts.map +1 -1
- package/dist/output_parsers/standard_schema.js.map +1 -1
- package/dist/output_parsers/string.cjs.map +1 -1
- package/dist/output_parsers/string.d.cts +1 -1
- package/dist/output_parsers/string.d.cts.map +1 -1
- package/dist/output_parsers/string.d.ts +1 -1
- package/dist/output_parsers/string.d.ts.map +1 -1
- package/dist/output_parsers/string.js.map +1 -1
- package/dist/output_parsers/structured.cjs +1 -1
- package/dist/output_parsers/structured.cjs.map +1 -1
- package/dist/output_parsers/structured.d.cts +2 -4
- package/dist/output_parsers/structured.d.cts.map +1 -1
- package/dist/output_parsers/structured.d.ts +2 -4
- package/dist/output_parsers/structured.d.ts.map +1 -1
- package/dist/output_parsers/structured.js +1 -0
- package/dist/output_parsers/structured.js.map +1 -1
- package/dist/output_parsers/transform.cjs +0 -1
- package/dist/output_parsers/transform.cjs.map +1 -1
- package/dist/output_parsers/transform.d.cts +0 -1
- package/dist/output_parsers/transform.d.cts.map +1 -1
- package/dist/output_parsers/transform.d.ts +0 -1
- package/dist/output_parsers/transform.d.ts.map +1 -1
- package/dist/output_parsers/transform.js.map +1 -1
- package/dist/output_parsers/xml.cjs.map +1 -1
- package/dist/output_parsers/xml.d.cts +0 -1
- package/dist/output_parsers/xml.d.cts.map +1 -1
- package/dist/output_parsers/xml.d.ts +0 -1
- package/dist/output_parsers/xml.d.ts.map +1 -1
- package/dist/output_parsers/xml.js.map +1 -1
- package/dist/outputs.cjs.map +1 -1
- package/dist/outputs.d.cts +0 -1
- package/dist/outputs.d.cts.map +1 -1
- package/dist/outputs.d.ts +0 -1
- package/dist/outputs.d.ts.map +1 -1
- package/dist/outputs.js.map +1 -1
- package/dist/prompt_values.cjs.map +1 -1
- package/dist/prompt_values.d.cts +3 -2
- package/dist/prompt_values.d.cts.map +1 -1
- package/dist/prompt_values.d.ts +3 -2
- package/dist/prompt_values.d.ts.map +1 -1
- package/dist/prompt_values.js.map +1 -1
- package/dist/prompts/base.cjs.map +1 -1
- package/dist/prompts/base.d.cts +2 -1
- package/dist/prompts/base.d.cts.map +1 -1
- package/dist/prompts/base.d.ts +2 -1
- package/dist/prompts/base.d.ts.map +1 -1
- package/dist/prompts/base.js.map +1 -1
- package/dist/prompts/chat.cjs +3 -2
- package/dist/prompts/chat.cjs.map +1 -1
- package/dist/prompts/chat.d.cts +4 -4
- package/dist/prompts/chat.d.cts.map +1 -1
- package/dist/prompts/chat.d.ts +4 -4
- package/dist/prompts/chat.d.ts.map +1 -1
- package/dist/prompts/chat.js +3 -2
- package/dist/prompts/chat.js.map +1 -1
- package/dist/prompts/dict.cjs.map +1 -1
- package/dist/prompts/dict.d.cts +0 -1
- package/dist/prompts/dict.d.cts.map +1 -1
- package/dist/prompts/dict.d.ts +0 -1
- package/dist/prompts/dict.d.ts.map +1 -1
- package/dist/prompts/dict.js.map +1 -1
- package/dist/prompts/few_shot.cjs +6 -4
- package/dist/prompts/few_shot.cjs.map +1 -1
- package/dist/prompts/few_shot.d.cts +1 -1
- package/dist/prompts/few_shot.d.cts.map +1 -1
- package/dist/prompts/few_shot.d.ts +1 -1
- package/dist/prompts/few_shot.d.ts.map +1 -1
- package/dist/prompts/few_shot.js +6 -4
- package/dist/prompts/few_shot.js.map +1 -1
- package/dist/prompts/image.cjs +3 -2
- package/dist/prompts/image.cjs.map +1 -1
- package/dist/prompts/image.d.cts +1 -1
- package/dist/prompts/image.d.cts.map +1 -1
- package/dist/prompts/image.d.ts +1 -1
- package/dist/prompts/image.d.ts.map +1 -1
- package/dist/prompts/image.js +3 -2
- package/dist/prompts/image.js.map +1 -1
- package/dist/prompts/pipeline.cjs.map +1 -1
- package/dist/prompts/pipeline.d.cts +0 -1
- package/dist/prompts/pipeline.d.cts.map +1 -1
- package/dist/prompts/pipeline.d.ts +0 -1
- package/dist/prompts/pipeline.d.ts.map +1 -1
- package/dist/prompts/pipeline.js.map +1 -1
- package/dist/prompts/prompt.cjs +9 -7
- package/dist/prompts/prompt.cjs.map +1 -1
- package/dist/prompts/prompt.d.cts +2 -2
- package/dist/prompts/prompt.d.cts.map +1 -1
- package/dist/prompts/prompt.d.ts +2 -2
- package/dist/prompts/prompt.d.ts.map +1 -1
- package/dist/prompts/prompt.js +9 -7
- package/dist/prompts/prompt.js.map +1 -1
- package/dist/prompts/serde.d.cts +1 -1
- package/dist/prompts/serde.d.cts.map +1 -1
- package/dist/prompts/serde.d.ts +1 -1
- package/dist/prompts/serde.d.ts.map +1 -1
- package/dist/prompts/string.cjs.map +1 -1
- package/dist/prompts/string.d.cts +0 -1
- package/dist/prompts/string.d.cts.map +1 -1
- package/dist/prompts/string.d.ts +0 -1
- package/dist/prompts/string.d.ts.map +1 -1
- package/dist/prompts/string.js.map +1 -1
- package/dist/prompts/structured.cjs.map +1 -1
- package/dist/prompts/structured.d.cts +2 -2
- package/dist/prompts/structured.d.cts.map +1 -1
- package/dist/prompts/structured.d.ts +2 -2
- package/dist/prompts/structured.d.ts.map +1 -1
- package/dist/prompts/structured.js.map +1 -1
- package/dist/prompts/template.cjs +9 -9
- package/dist/prompts/template.cjs.map +1 -1
- package/dist/prompts/template.d.cts +1 -0
- package/dist/prompts/template.d.cts.map +1 -1
- package/dist/prompts/template.d.ts +1 -0
- package/dist/prompts/template.d.ts.map +1 -1
- package/dist/prompts/template.js +9 -9
- package/dist/prompts/template.js.map +1 -1
- package/dist/retrievers/document_compressors/index.cjs.map +1 -1
- package/dist/retrievers/document_compressors/index.d.cts +0 -1
- package/dist/retrievers/document_compressors/index.d.cts.map +1 -1
- package/dist/retrievers/document_compressors/index.d.ts +0 -1
- package/dist/retrievers/document_compressors/index.d.ts.map +1 -1
- package/dist/retrievers/document_compressors/index.js.map +1 -1
- package/dist/retrievers/index.cjs.map +1 -1
- package/dist/retrievers/index.d.cts +1 -1
- package/dist/retrievers/index.d.cts.map +1 -1
- package/dist/retrievers/index.d.ts +1 -1
- package/dist/retrievers/index.d.ts.map +1 -1
- package/dist/retrievers/index.js.map +1 -1
- package/dist/runnables/base.cjs +2 -1
- package/dist/runnables/base.cjs.map +1 -1
- package/dist/runnables/base.d.cts +7 -19
- package/dist/runnables/base.d.cts.map +1 -1
- package/dist/runnables/base.d.ts +7 -19
- package/dist/runnables/base.d.ts.map +1 -1
- package/dist/runnables/base.js +1 -1
- package/dist/runnables/base.js.map +1 -1
- package/dist/runnables/branch.cjs.map +1 -1
- package/dist/runnables/branch.d.cts +1 -1
- package/dist/runnables/branch.d.cts.map +1 -1
- package/dist/runnables/branch.d.ts +1 -1
- package/dist/runnables/branch.d.ts.map +1 -1
- package/dist/runnables/branch.js.map +1 -1
- package/dist/runnables/config.cjs +3 -2
- package/dist/runnables/config.cjs.map +1 -1
- package/dist/runnables/config.d.cts +2 -10
- package/dist/runnables/config.d.cts.map +1 -1
- package/dist/runnables/config.d.ts +2 -10
- package/dist/runnables/config.d.ts.map +1 -1
- package/dist/runnables/config.js +3 -3
- package/dist/runnables/config.js.map +1 -1
- package/dist/runnables/graph.cjs.map +1 -1
- package/dist/runnables/graph.d.cts +1 -2
- package/dist/runnables/graph.d.cts.map +1 -1
- package/dist/runnables/graph.d.ts +1 -2
- package/dist/runnables/graph.d.ts.map +1 -1
- package/dist/runnables/graph.js.map +1 -1
- package/dist/runnables/graph_mermaid.cjs.map +1 -1
- package/dist/runnables/graph_mermaid.js.map +1 -1
- package/dist/runnables/history.cjs.map +1 -1
- package/dist/runnables/history.d.cts +2 -1
- package/dist/runnables/history.d.cts.map +1 -1
- package/dist/runnables/history.d.ts +2 -1
- package/dist/runnables/history.d.ts.map +1 -1
- package/dist/runnables/history.js.map +1 -1
- package/dist/runnables/iter.cjs.map +1 -1
- package/dist/runnables/iter.js.map +1 -1
- package/dist/runnables/passthrough.cjs.map +1 -1
- package/dist/runnables/passthrough.d.cts +1 -1
- package/dist/runnables/passthrough.d.cts.map +1 -1
- package/dist/runnables/passthrough.d.ts +1 -1
- package/dist/runnables/passthrough.d.ts.map +1 -1
- package/dist/runnables/passthrough.js.map +1 -1
- package/dist/runnables/router.cjs.map +1 -1
- package/dist/runnables/router.d.cts +1 -1
- package/dist/runnables/router.d.cts.map +1 -1
- package/dist/runnables/router.d.ts +1 -1
- package/dist/runnables/router.d.ts.map +1 -1
- package/dist/runnables/router.js.map +1 -1
- package/dist/runnables/types.d.cts +2 -2
- package/dist/runnables/types.d.cts.map +1 -1
- package/dist/runnables/types.d.ts +2 -2
- package/dist/runnables/types.d.ts.map +1 -1
- package/dist/runnables/utils.cjs.map +1 -1
- package/dist/runnables/utils.js.map +1 -1
- package/dist/runnables/wrappers.cjs.map +1 -1
- package/dist/runnables/wrappers.js.map +1 -1
- package/dist/singletons/async_local_storage/context.cjs +0 -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/async_local_storage/globals.cjs +1 -0
- package/dist/singletons/async_local_storage/globals.cjs.map +1 -1
- package/dist/singletons/async_local_storage/globals.d.cts.map +1 -1
- package/dist/singletons/async_local_storage/globals.d.ts.map +1 -1
- package/dist/singletons/async_local_storage/globals.js +1 -1
- package/dist/singletons/async_local_storage/globals.js.map +1 -1
- package/dist/singletons/async_local_storage/index.cjs +0 -1
- package/dist/singletons/async_local_storage/index.cjs.map +1 -1
- package/dist/singletons/async_local_storage/index.d.cts +1 -2
- package/dist/singletons/async_local_storage/index.d.cts.map +1 -1
- package/dist/singletons/async_local_storage/index.d.ts +1 -2
- package/dist/singletons/async_local_storage/index.d.ts.map +1 -1
- package/dist/singletons/async_local_storage/index.js.map +1 -1
- package/dist/singletons/callbacks.cjs +1 -0
- package/dist/singletons/callbacks.cjs.map +1 -1
- package/dist/singletons/callbacks.d.cts +1 -0
- package/dist/singletons/callbacks.d.cts.map +1 -1
- package/dist/singletons/callbacks.d.ts +0 -1
- package/dist/singletons/callbacks.d.ts.map +1 -1
- package/dist/singletons/callbacks.js +1 -1
- package/dist/singletons/callbacks.js.map +1 -1
- package/dist/singletons/tracer.cjs +0 -1
- package/dist/singletons/tracer.cjs.map +1 -1
- package/dist/singletons/tracer.js.map +1 -1
- package/dist/stores.cjs.map +1 -1
- package/dist/stores.d.cts +0 -1
- package/dist/stores.d.cts.map +1 -1
- package/dist/stores.d.ts +0 -1
- package/dist/stores.d.ts.map +1 -1
- package/dist/stores.js.map +1 -1
- package/dist/structured_query/base.cjs.map +1 -1
- package/dist/structured_query/base.d.cts +0 -1
- package/dist/structured_query/base.d.cts.map +1 -1
- package/dist/structured_query/base.d.ts +0 -1
- package/dist/structured_query/base.d.ts.map +1 -1
- package/dist/structured_query/base.js.map +1 -1
- package/dist/structured_query/functional.cjs.map +1 -1
- package/dist/structured_query/functional.d.cts +0 -1
- package/dist/structured_query/functional.d.cts.map +1 -1
- package/dist/structured_query/functional.d.ts +0 -1
- package/dist/structured_query/functional.d.ts.map +1 -1
- package/dist/structured_query/functional.js.map +1 -1
- package/dist/structured_query/ir.cjs +7 -0
- package/dist/structured_query/ir.cjs.map +1 -1
- package/dist/structured_query/ir.d.cts +0 -1
- package/dist/structured_query/ir.d.cts.map +1 -1
- package/dist/structured_query/ir.d.ts +0 -1
- package/dist/structured_query/ir.d.ts.map +1 -1
- package/dist/structured_query/ir.js +7 -0
- package/dist/structured_query/ir.js.map +1 -1
- package/dist/structured_query/utils.cjs.map +1 -1
- package/dist/structured_query/utils.d.cts.map +1 -1
- package/dist/structured_query/utils.d.ts.map +1 -1
- package/dist/structured_query/utils.js.map +1 -1
- package/dist/testing/fake_model_builder.cjs.map +1 -1
- package/dist/testing/fake_model_builder.d.cts +1 -1
- package/dist/testing/fake_model_builder.d.cts.map +1 -1
- package/dist/testing/fake_model_builder.d.ts +1 -1
- package/dist/testing/fake_model_builder.d.ts.map +1 -1
- package/dist/testing/fake_model_builder.js.map +1 -1
- package/dist/testing/matchers.cjs.map +1 -1
- package/dist/testing/matchers.d.cts +0 -1
- package/dist/testing/matchers.d.cts.map +1 -1
- package/dist/testing/matchers.d.ts +0 -1
- package/dist/testing/matchers.d.ts.map +1 -1
- package/dist/testing/matchers.js.map +1 -1
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.d.cts +8 -7
- package/dist/tools/index.d.cts.map +1 -1
- package/dist/tools/index.d.ts +8 -7
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.cjs.map +1 -1
- package/dist/tools/types.d.cts +4 -3
- package/dist/tools/types.d.cts.map +1 -1
- package/dist/tools/types.d.ts +4 -3
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/tools/utils.cjs.map +1 -1
- package/dist/tools/utils.d.cts.map +1 -1
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js.map +1 -1
- package/dist/tracers/base.cjs.map +1 -1
- package/dist/tracers/base.d.cts +18 -14
- package/dist/tracers/base.d.cts.map +1 -1
- package/dist/tracers/base.d.ts +18 -14
- package/dist/tracers/base.d.ts.map +1 -1
- package/dist/tracers/base.js.map +1 -1
- package/dist/tracers/console.cjs.map +1 -1
- package/dist/tracers/console.d.cts +0 -1
- package/dist/tracers/console.d.cts.map +1 -1
- package/dist/tracers/console.d.ts +0 -1
- package/dist/tracers/console.d.ts.map +1 -1
- package/dist/tracers/console.js.map +1 -1
- package/dist/tracers/event_stream.cjs.map +1 -1
- package/dist/tracers/event_stream.d.cts +5 -2
- package/dist/tracers/event_stream.d.cts.map +1 -1
- package/dist/tracers/event_stream.d.ts +5 -2
- package/dist/tracers/event_stream.d.ts.map +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.d.cts +30 -15
- package/dist/tracers/log_stream.d.cts.map +1 -1
- package/dist/tracers/log_stream.d.ts +30 -15
- package/dist/tracers/log_stream.d.ts.map +1 -1
- package/dist/tracers/log_stream.js.map +1 -1
- package/dist/tracers/root_listener.cjs.map +1 -1
- package/dist/tracers/root_listener.js.map +1 -1
- package/dist/tracers/run_collector.cjs.map +1 -1
- package/dist/tracers/run_collector.d.cts +1 -4
- package/dist/tracers/run_collector.d.cts.map +1 -1
- package/dist/tracers/run_collector.d.ts +1 -4
- package/dist/tracers/run_collector.d.ts.map +1 -1
- package/dist/tracers/run_collector.js.map +1 -1
- package/dist/tracers/tracer_langchain.cjs +8 -3
- package/dist/tracers/tracer_langchain.cjs.map +1 -1
- package/dist/tracers/tracer_langchain.d.cts +3 -5
- package/dist/tracers/tracer_langchain.d.cts.map +1 -1
- package/dist/tracers/tracer_langchain.d.ts +3 -5
- package/dist/tracers/tracer_langchain.d.ts.map +1 -1
- package/dist/tracers/tracer_langchain.js +8 -3
- package/dist/tracers/tracer_langchain.js.map +1 -1
- package/dist/types/_internal.d.cts.map +1 -1
- package/dist/types/_internal.d.ts.map +1 -1
- package/dist/types/stream.d.cts +1 -1
- package/dist/types/stream.d.ts +1 -1
- package/dist/types/type-utils.d.cts +1 -1
- package/dist/types/type-utils.d.cts.map +1 -1
- package/dist/types/type-utils.d.ts +1 -1
- package/dist/types/type-utils.d.ts.map +1 -1
- package/dist/utils/async_caller.cjs.map +1 -1
- package/dist/utils/async_caller.d.cts.map +1 -1
- package/dist/utils/async_caller.d.ts.map +1 -1
- package/dist/utils/async_caller.js.map +1 -1
- package/dist/utils/callbacks.cjs.map +1 -1
- package/dist/utils/callbacks.js.map +1 -1
- package/dist/utils/chunk_array.cjs.map +1 -1
- package/dist/utils/chunk_array.d.cts.map +1 -1
- package/dist/utils/chunk_array.d.ts.map +1 -1
- package/dist/utils/chunk_array.js.map +1 -1
- package/dist/utils/context.cjs.map +1 -1
- package/dist/utils/context.d.cts.map +1 -1
- package/dist/utils/context.d.ts.map +1 -1
- package/dist/utils/context.js.map +1 -1
- package/dist/utils/env.cjs.map +1 -1
- package/dist/utils/env.d.cts.map +1 -1
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/event_source_parse.cjs +2 -2
- package/dist/utils/event_source_parse.cjs.map +1 -1
- package/dist/utils/event_source_parse.d.cts +0 -1
- package/dist/utils/event_source_parse.d.cts.map +1 -1
- package/dist/utils/event_source_parse.d.ts +0 -1
- package/dist/utils/event_source_parse.d.ts.map +1 -1
- package/dist/utils/event_source_parse.js +2 -2
- package/dist/utils/event_source_parse.js.map +1 -1
- package/dist/utils/fast-json-patch/index.cjs +9 -1
- package/dist/utils/fast-json-patch/index.cjs.map +1 -1
- package/dist/utils/fast-json-patch/index.js +3 -3
- package/dist/utils/fast-json-patch/index.js.map +1 -1
- package/dist/utils/fast-json-patch/src/core.cjs +7 -0
- package/dist/utils/fast-json-patch/src/core.cjs.map +1 -1
- package/dist/utils/fast-json-patch/src/core.d.cts +1 -1
- package/dist/utils/fast-json-patch/src/core.d.cts.map +1 -1
- package/dist/utils/fast-json-patch/src/core.d.ts +1 -1
- package/dist/utils/fast-json-patch/src/core.d.ts.map +1 -1
- package/dist/utils/fast-json-patch/src/core.js +6 -1
- package/dist/utils/fast-json-patch/src/core.js.map +1 -1
- package/dist/utils/fast-json-patch/src/duplex.cjs.map +1 -1
- package/dist/utils/fast-json-patch/src/duplex.d.cts +0 -1
- package/dist/utils/fast-json-patch/src/duplex.d.cts.map +1 -1
- package/dist/utils/fast-json-patch/src/duplex.d.ts +0 -1
- package/dist/utils/fast-json-patch/src/duplex.d.ts.map +1 -1
- package/dist/utils/fast-json-patch/src/duplex.js.map +1 -1
- package/dist/utils/fast-json-patch/src/helpers.cjs +4 -0
- package/dist/utils/fast-json-patch/src/helpers.cjs.map +1 -1
- package/dist/utils/fast-json-patch/src/helpers.js +4 -0
- package/dist/utils/fast-json-patch/src/helpers.js.map +1 -1
- package/dist/utils/format.d.cts.map +1 -1
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/function_calling.cjs.map +1 -1
- package/dist/utils/function_calling.d.cts +0 -1
- package/dist/utils/function_calling.d.cts.map +1 -1
- package/dist/utils/function_calling.d.ts +0 -1
- package/dist/utils/function_calling.d.ts.map +1 -1
- package/dist/utils/function_calling.js.map +1 -1
- package/dist/utils/gateway.cjs +43 -0
- package/dist/utils/gateway.cjs.map +1 -0
- package/dist/utils/gateway.d.cts +13 -0
- package/dist/utils/gateway.d.cts.map +1 -0
- package/dist/utils/gateway.d.ts +13 -0
- package/dist/utils/gateway.d.ts.map +1 -0
- package/dist/utils/gateway.js +36 -0
- package/dist/utils/gateway.js.map +1 -0
- package/dist/utils/hash.d.cts +0 -1
- package/dist/utils/hash.d.cts.map +1 -1
- package/dist/utils/hash.d.ts +0 -1
- package/dist/utils/hash.d.ts.map +1 -1
- package/dist/utils/is-network-error/index.cjs +1 -1
- package/dist/utils/is-network-error/index.cjs.map +1 -1
- package/dist/utils/is-network-error/index.js +1 -1
- package/dist/utils/is-network-error/index.js.map +1 -1
- package/dist/utils/js-sha256/hash.cjs.map +1 -1
- package/dist/utils/js-sha256/hash.d.cts.map +1 -1
- package/dist/utils/js-sha256/hash.d.ts.map +1 -1
- package/dist/utils/js-sha256/hash.js.map +1 -1
- package/dist/utils/json.cjs +1 -0
- package/dist/utils/json.cjs.map +1 -1
- package/dist/utils/json.d.cts.map +1 -1
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js +1 -1
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/json_schema.cjs.map +1 -1
- package/dist/utils/json_schema.d.cts +1 -1
- package/dist/utils/json_schema.d.cts.map +1 -1
- package/dist/utils/json_schema.d.ts +1 -1
- package/dist/utils/json_schema.d.ts.map +1 -1
- package/dist/utils/json_schema.js.map +1 -1
- package/dist/utils/math.cjs.map +1 -1
- package/dist/utils/math.d.cts.map +1 -1
- package/dist/utils/math.d.ts.map +1 -1
- package/dist/utils/math.js.map +1 -1
- package/dist/utils/ml-distance/distances.cjs.map +1 -1
- package/dist/utils/ml-distance/distances.js.map +1 -1
- package/dist/utils/ml-distance/similarities.cjs.map +1 -1
- package/dist/utils/ml-distance/similarities.d.cts.map +1 -1
- package/dist/utils/ml-distance/similarities.d.ts.map +1 -1
- package/dist/utils/ml-distance/similarities.js.map +1 -1
- package/dist/utils/ml-distance-euclidean/euclidean.cjs +1 -0
- package/dist/utils/ml-distance-euclidean/euclidean.cjs.map +1 -1
- package/dist/utils/ml-distance-euclidean/euclidean.js +1 -1
- package/dist/utils/ml-distance-euclidean/euclidean.js.map +1 -1
- package/dist/utils/namespace.cjs +1 -0
- package/dist/utils/namespace.cjs.map +1 -1
- package/dist/utils/namespace.d.cts.map +1 -1
- package/dist/utils/namespace.d.ts.map +1 -1
- package/dist/utils/namespace.js +1 -1
- package/dist/utils/namespace.js.map +1 -1
- package/dist/utils/p-retry/index.cjs +1 -0
- package/dist/utils/p-retry/index.cjs.map +1 -1
- package/dist/utils/p-retry/index.js +1 -1
- package/dist/utils/p-retry/index.js.map +1 -1
- package/dist/utils/sax-js/sax.cjs.map +1 -1
- package/dist/utils/sax-js/sax.js.map +1 -1
- package/dist/utils/signal.cjs.map +1 -1
- package/dist/utils/signal.d.cts.map +1 -1
- package/dist/utils/signal.d.ts.map +1 -1
- package/dist/utils/signal.js.map +1 -1
- package/dist/utils/ssrf.cjs.map +1 -1
- package/dist/utils/ssrf.d.cts.map +1 -1
- package/dist/utils/ssrf.d.ts.map +1 -1
- package/dist/utils/ssrf.js.map +1 -1
- package/dist/utils/standard_schema.cjs.map +1 -1
- package/dist/utils/standard_schema.d.cts +0 -1
- package/dist/utils/standard_schema.d.cts.map +1 -1
- package/dist/utils/standard_schema.d.ts +0 -1
- package/dist/utils/standard_schema.d.ts.map +1 -1
- package/dist/utils/standard_schema.js.map +1 -1
- package/dist/utils/stream.cjs.map +1 -1
- package/dist/utils/stream.d.cts +0 -1
- package/dist/utils/stream.d.cts.map +1 -1
- package/dist/utils/stream.d.ts +0 -1
- package/dist/utils/stream.d.ts.map +1 -1
- package/dist/utils/stream.js.map +1 -1
- package/dist/utils/testing/chat_models.cjs.map +1 -1
- package/dist/utils/testing/chat_models.d.cts +2 -9
- package/dist/utils/testing/chat_models.d.cts.map +1 -1
- package/dist/utils/testing/chat_models.d.ts +2 -9
- package/dist/utils/testing/chat_models.d.ts.map +1 -1
- package/dist/utils/testing/chat_models.js.map +1 -1
- package/dist/utils/testing/embeddings.cjs.map +1 -1
- package/dist/utils/testing/embeddings.d.cts +0 -1
- package/dist/utils/testing/embeddings.d.cts.map +1 -1
- package/dist/utils/testing/embeddings.d.ts +0 -1
- package/dist/utils/testing/embeddings.d.ts.map +1 -1
- package/dist/utils/testing/embeddings.js.map +1 -1
- package/dist/utils/testing/llms.cjs.map +1 -1
- package/dist/utils/testing/llms.d.cts +0 -1
- package/dist/utils/testing/llms.d.cts.map +1 -1
- package/dist/utils/testing/llms.d.ts +0 -1
- package/dist/utils/testing/llms.d.ts.map +1 -1
- package/dist/utils/testing/llms.js.map +1 -1
- package/dist/utils/testing/message_history.cjs.map +1 -1
- package/dist/utils/testing/message_history.d.cts +1 -1
- package/dist/utils/testing/message_history.d.cts.map +1 -1
- package/dist/utils/testing/message_history.d.ts +1 -1
- package/dist/utils/testing/message_history.d.ts.map +1 -1
- package/dist/utils/testing/message_history.js.map +1 -1
- package/dist/utils/testing/openai_stream_fixtures.cjs.map +1 -1
- package/dist/utils/testing/openai_stream_fixtures.d.cts +0 -1
- package/dist/utils/testing/openai_stream_fixtures.d.cts.map +1 -1
- package/dist/utils/testing/openai_stream_fixtures.d.ts +0 -1
- package/dist/utils/testing/openai_stream_fixtures.d.ts.map +1 -1
- package/dist/utils/testing/openai_stream_fixtures.js.map +1 -1
- package/dist/utils/testing/output_parsers.cjs.map +1 -1
- package/dist/utils/testing/output_parsers.d.cts +0 -1
- package/dist/utils/testing/output_parsers.d.cts.map +1 -1
- package/dist/utils/testing/output_parsers.d.ts +0 -1
- package/dist/utils/testing/output_parsers.d.ts.map +1 -1
- package/dist/utils/testing/output_parsers.js.map +1 -1
- package/dist/utils/testing/retrievers.cjs.map +1 -1
- package/dist/utils/testing/retrievers.d.cts +0 -1
- package/dist/utils/testing/retrievers.d.cts.map +1 -1
- package/dist/utils/testing/retrievers.d.ts +0 -1
- package/dist/utils/testing/retrievers.d.ts.map +1 -1
- package/dist/utils/testing/retrievers.js.map +1 -1
- package/dist/utils/testing/runnables.cjs.map +1 -1
- package/dist/utils/testing/runnables.d.cts +0 -1
- package/dist/utils/testing/runnables.d.cts.map +1 -1
- package/dist/utils/testing/runnables.d.ts +0 -1
- package/dist/utils/testing/runnables.d.ts.map +1 -1
- package/dist/utils/testing/runnables.js.map +1 -1
- package/dist/utils/testing/stream.cjs +5 -0
- package/dist/utils/testing/stream.cjs.map +1 -1
- package/dist/utils/testing/stream.d.cts.map +1 -1
- package/dist/utils/testing/stream.d.ts.map +1 -1
- package/dist/utils/testing/stream.js +1 -1
- package/dist/utils/testing/stream.js.map +1 -1
- package/dist/utils/testing/tools.cjs.map +1 -1
- package/dist/utils/testing/tools.d.cts +0 -1
- package/dist/utils/testing/tools.d.cts.map +1 -1
- package/dist/utils/testing/tools.d.ts +0 -1
- package/dist/utils/testing/tools.d.ts.map +1 -1
- package/dist/utils/testing/tools.js.map +1 -1
- package/dist/utils/testing/tracers.cjs.map +1 -1
- package/dist/utils/testing/tracers.d.cts +0 -1
- package/dist/utils/testing/tracers.d.cts.map +1 -1
- package/dist/utils/testing/tracers.d.ts +0 -1
- package/dist/utils/testing/tracers.d.ts.map +1 -1
- package/dist/utils/testing/tracers.js.map +1 -1
- package/dist/utils/testing/vectorstores.cjs.map +1 -1
- package/dist/utils/testing/vectorstores.d.cts +1 -5
- package/dist/utils/testing/vectorstores.d.cts.map +1 -1
- package/dist/utils/testing/vectorstores.d.ts +1 -5
- package/dist/utils/testing/vectorstores.d.ts.map +1 -1
- package/dist/utils/testing/vectorstores.js.map +1 -1
- package/dist/utils/tiktoken.cjs +1 -1
- package/dist/utils/tiktoken.cjs.map +1 -1
- package/dist/utils/tiktoken.d.cts +0 -1
- package/dist/utils/tiktoken.d.cts.map +1 -1
- package/dist/utils/tiktoken.d.ts +0 -1
- package/dist/utils/tiktoken.d.ts.map +1 -1
- package/dist/utils/tiktoken.js +1 -1
- package/dist/utils/tiktoken.js.map +1 -1
- package/dist/utils/types/index.d.cts +0 -1
- package/dist/utils/types/index.d.cts.map +1 -1
- package/dist/utils/types/index.d.ts +0 -1
- package/dist/utils/types/index.d.ts.map +1 -1
- package/dist/utils/types/zod.cjs +0 -1
- package/dist/utils/types/zod.cjs.map +1 -1
- package/dist/utils/types/zod.d.cts +2 -3
- package/dist/utils/types/zod.d.cts.map +1 -1
- package/dist/utils/types/zod.d.ts +2 -3
- package/dist/utils/types/zod.d.ts.map +1 -1
- package/dist/utils/types/zod.js.map +1 -1
- package/dist/utils/uuid/index.d.cts +10 -11
- package/dist/utils/uuid/index.d.cts.map +1 -1
- package/dist/utils/uuid/index.d.ts +10 -11
- package/dist/utils/uuid/index.d.ts.map +1 -1
- package/dist/utils/uuid/parse.cjs.map +1 -1
- package/dist/utils/uuid/parse.d.cts +1 -3
- package/dist/utils/uuid/parse.d.cts.map +1 -1
- package/dist/utils/uuid/parse.d.ts +1 -2
- package/dist/utils/uuid/parse.d.ts.map +1 -1
- package/dist/utils/uuid/parse.js.map +1 -1
- package/dist/utils/uuid/rng.cjs +1 -1
- package/dist/utils/uuid/rng.cjs.map +1 -1
- package/dist/utils/uuid/rng.js +1 -1
- package/dist/utils/uuid/rng.js.map +1 -1
- package/dist/utils/uuid/sha1.cjs +2 -2
- package/dist/utils/uuid/sha1.cjs.map +1 -1
- package/dist/utils/uuid/sha1.js +2 -2
- package/dist/utils/uuid/sha1.js.map +1 -1
- package/dist/utils/uuid/stringify.cjs.map +1 -1
- package/dist/utils/uuid/stringify.d.cts +1 -2
- package/dist/utils/uuid/stringify.d.cts.map +1 -1
- package/dist/utils/uuid/stringify.d.ts +1 -1
- package/dist/utils/uuid/stringify.d.ts.map +1 -1
- package/dist/utils/uuid/stringify.js.map +1 -1
- package/dist/utils/uuid/types.d.cts.map +1 -1
- package/dist/utils/uuid/types.d.ts.map +1 -1
- package/dist/utils/uuid/v1.cjs +2 -1
- package/dist/utils/uuid/v1.cjs.map +1 -1
- package/dist/utils/uuid/v1.d.cts +1 -3
- package/dist/utils/uuid/v1.d.cts.map +1 -1
- package/dist/utils/uuid/v1.d.ts +1 -2
- package/dist/utils/uuid/v1.d.ts.map +1 -1
- package/dist/utils/uuid/v1.js +2 -2
- package/dist/utils/uuid/v1.js.map +1 -1
- package/dist/utils/uuid/v1ToV6.cjs.map +1 -1
- package/dist/utils/uuid/v1ToV6.js.map +1 -1
- package/dist/utils/uuid/v35.cjs +1 -0
- package/dist/utils/uuid/v35.cjs.map +1 -1
- package/dist/utils/uuid/v35.d.cts +6 -0
- package/dist/utils/uuid/v35.d.cts.map +1 -0
- package/dist/utils/uuid/v35.d.ts +6 -0
- package/dist/utils/uuid/v35.d.ts.map +1 -0
- package/dist/utils/uuid/v35.js +1 -1
- package/dist/utils/uuid/v35.js.map +1 -1
- package/dist/utils/uuid/v4.cjs.map +1 -1
- package/dist/utils/uuid/v4.d.cts +1 -3
- package/dist/utils/uuid/v4.d.cts.map +1 -1
- package/dist/utils/uuid/v4.d.ts +1 -2
- package/dist/utils/uuid/v4.d.ts.map +1 -1
- package/dist/utils/uuid/v4.js.map +1 -1
- package/dist/utils/uuid/v5.cjs.map +1 -1
- package/dist/utils/uuid/v5.d.cts +5 -8
- package/dist/utils/uuid/v5.d.cts.map +1 -1
- package/dist/utils/uuid/v5.d.ts +5 -7
- package/dist/utils/uuid/v5.d.ts.map +1 -1
- package/dist/utils/uuid/v5.js.map +1 -1
- package/dist/utils/uuid/v6.cjs +1 -1
- package/dist/utils/uuid/v6.cjs.map +1 -1
- package/dist/utils/uuid/v6.d.cts +1 -3
- package/dist/utils/uuid/v6.d.cts.map +1 -1
- package/dist/utils/uuid/v6.d.ts +1 -2
- package/dist/utils/uuid/v6.d.ts.map +1 -1
- package/dist/utils/uuid/v6.js +1 -1
- package/dist/utils/uuid/v6.js.map +1 -1
- package/dist/utils/uuid/v7.cjs +2 -1
- package/dist/utils/uuid/v7.cjs.map +1 -1
- package/dist/utils/uuid/v7.d.cts +1 -3
- package/dist/utils/uuid/v7.d.cts.map +1 -1
- package/dist/utils/uuid/v7.d.ts +1 -2
- package/dist/utils/uuid/v7.d.ts.map +1 -1
- package/dist/utils/uuid/v7.js +2 -2
- package/dist/utils/uuid/v7.js.map +1 -1
- package/dist/utils/uuid/validate.cjs.map +1 -1
- package/dist/utils/uuid/validate.d.cts +1 -2
- package/dist/utils/uuid/validate.d.cts.map +1 -1
- package/dist/utils/uuid/validate.d.ts +1 -1
- package/dist/utils/uuid/validate.d.ts.map +1 -1
- package/dist/utils/uuid/validate.js.map +1 -1
- package/dist/utils/uuid/version.cjs.map +1 -1
- package/dist/utils/uuid/version.d.cts +1 -2
- package/dist/utils/uuid/version.d.cts.map +1 -1
- package/dist/utils/uuid/version.d.ts +1 -1
- package/dist/utils/uuid/version.d.ts.map +1 -1
- package/dist/utils/uuid/version.js.map +1 -1
- package/dist/utils/zod-to-json-schema/Options.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/Options.d.cts +3 -1
- package/dist/utils/zod-to-json-schema/Options.d.ts +3 -1
- package/dist/utils/zod-to-json-schema/Options.js.map +1 -1
- package/dist/utils/zod-to-json-schema/Refs.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/Refs.d.cts +3 -1
- package/dist/utils/zod-to-json-schema/Refs.d.ts +3 -1
- package/dist/utils/zod-to-json-schema/Refs.js.map +1 -1
- package/dist/utils/zod-to-json-schema/errorMessages.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/errorMessages.d.cts +2 -1
- package/dist/utils/zod-to-json-schema/errorMessages.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/errorMessages.d.ts +2 -1
- package/dist/utils/zod-to-json-schema/errorMessages.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/errorMessages.js.map +1 -1
- package/dist/utils/zod-to-json-schema/getRelativePath.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/getRelativePath.js.map +1 -1
- package/dist/utils/zod-to-json-schema/index.cjs +79 -37
- package/dist/utils/zod-to-json-schema/index.d.cts +15 -1
- package/dist/utils/zod-to-json-schema/index.d.ts +15 -1
- package/dist/utils/zod-to-json-schema/index.js +38 -38
- package/dist/utils/zod-to-json-schema/parseDef.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parseDef.d.cts +3 -1
- package/dist/utils/zod-to-json-schema/parseDef.d.ts +3 -1
- package/dist/utils/zod-to-json-schema/parseDef.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parseTypes.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parseTypes.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parseTypes.d.ts +0 -1
- package/dist/utils/zod-to-json-schema/parseTypes.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/any.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/any.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/any.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/any.d.ts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/any.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/any.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/array.cjs +0 -1
- package/dist/utils/zod-to-json-schema/parsers/array.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/array.d.cts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/array.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/array.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/array.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/array.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/bigint.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/bigint.d.cts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/bigint.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/bigint.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/bigint.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/bigint.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/boolean.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/boolean.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/boolean.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/boolean.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/branded.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/branded.d.cts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/branded.d.ts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/branded.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/catch.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/catch.d.cts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/catch.d.ts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/catch.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/date.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/date.d.cts +3 -0
- package/dist/utils/zod-to-json-schema/parsers/date.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/date.d.ts +3 -0
- package/dist/utils/zod-to-json-schema/parsers/date.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/date.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/default.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/default.d.cts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/default.d.ts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/default.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/effects.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/effects.d.cts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/effects.d.ts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/effects.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/enum.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/enum.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/enum.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/enum.d.ts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/enum.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/enum.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/intersection.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/intersection.d.cts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/intersection.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/intersection.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/intersection.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/intersection.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/literal.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/literal.d.cts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/literal.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/literal.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/literal.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/literal.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/map.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/map.d.cts +3 -0
- package/dist/utils/zod-to-json-schema/parsers/map.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/map.d.ts +3 -0
- package/dist/utils/zod-to-json-schema/parsers/map.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/map.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.ts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/never.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/never.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/never.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/never.d.ts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/never.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/never.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/null.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/null.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/null.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/null.d.ts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/null.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/null.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nullable.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nullable.d.cts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/nullable.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nullable.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/nullable.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nullable.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/number.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/number.d.cts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/number.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/number.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/number.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/number.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/object.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/object.d.cts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/object.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/object.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/object.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/object.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/optional.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/optional.d.cts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/optional.d.ts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/optional.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/pipeline.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/pipeline.d.cts +4 -1
- package/dist/utils/zod-to-json-schema/parsers/pipeline.d.ts +4 -1
- package/dist/utils/zod-to-json-schema/parsers/pipeline.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/promise.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/promise.d.cts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/promise.d.ts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/promise.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/readonly.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/readonly.d.cts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/readonly.d.ts +3 -1
- package/dist/utils/zod-to-json-schema/parsers/readonly.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/record.cjs +0 -1
- package/dist/utils/zod-to-json-schema/parsers/record.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/record.d.cts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/record.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/record.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/record.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/record.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/set.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/set.d.cts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/set.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/set.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/set.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/set.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/string.cjs +0 -2
- package/dist/utils/zod-to-json-schema/parsers/string.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/string.d.cts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/string.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/string.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/string.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/string.js +0 -2
- package/dist/utils/zod-to-json-schema/parsers/string.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/tuple.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/tuple.d.cts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/tuple.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/tuple.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/tuple.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/tuple.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/undefined.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/undefined.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/undefined.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/undefined.d.ts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/undefined.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/undefined.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/union.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/union.d.cts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/union.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/union.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/parsers/union.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/union.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/unknown.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/unknown.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/unknown.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/unknown.d.ts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/unknown.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/unknown.js.map +1 -1
- package/dist/utils/zod-to-json-schema/selectParser.cjs +0 -1
- package/dist/utils/zod-to-json-schema/selectParser.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/selectParser.d.cts +3 -1
- package/dist/utils/zod-to-json-schema/selectParser.d.ts +2 -0
- package/dist/utils/zod-to-json-schema/selectParser.js.map +1 -1
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.d.cts +3 -1
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.d.ts +3 -1
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.js.map +1 -1
- package/dist/vectorstores.cjs.map +1 -1
- package/dist/vectorstores.d.cts +0 -1
- package/dist/vectorstores.d.cts.map +1 -1
- package/dist/vectorstores.d.ts +0 -1
- package/dist/vectorstores.d.ts.map +1 -1
- package/dist/vectorstores.js.map +1 -1
- package/package.json +15 -4
- package/utils/gateway.cjs +1 -0
- package/utils/gateway.d.cts +1 -0
- package/utils/gateway.d.ts +1 -0
- package/utils/gateway.js +1 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");
|
|
2
1
|
const require_zod = require("../utils/types/zod.cjs");
|
|
3
2
|
const require_utils_json_schema = require("../utils/json_schema.cjs");
|
|
4
3
|
const require_base = require("./base.cjs");
|
|
5
4
|
let zod_v3 = require("zod/v3");
|
|
6
5
|
//#region src/output_parsers/structured.ts
|
|
7
6
|
var StructuredOutputParser = class extends require_base.BaseOutputParser {
|
|
7
|
+
schema;
|
|
8
8
|
static lc_name() {
|
|
9
9
|
return "StructuredOutputParser";
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured.cjs","names":["BaseOutputParser","z","toJsonSchema","interopParseAsync","OutputParserException"],"sources":["../../src/output_parsers/structured.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport {\n BaseOutputParser,\n FormatInstructionsOptions,\n OutputParserException,\n} from \"./base.js\";\nimport { BaseMessage } from \"../messages/index.js\";\nimport {\n type InteropZodType,\n type InferInteropZodOutput,\n interopParseAsync,\n} from \"../utils/types/zod.js\";\nimport {\n toJsonSchema,\n type JsonSchema7Type,\n type JsonSchema7ArrayType,\n type JsonSchema7ObjectType,\n type JsonSchema7StringType,\n type JsonSchema7NumberType,\n type JsonSchema7NullableType,\n} from \"../utils/json_schema.js\";\n\nexport type JsonMarkdownStructuredOutputParserInput = {\n interpolationDepth?: number;\n};\n\nexport interface JsonMarkdownFormatInstructionsOptions extends FormatInstructionsOptions {\n interpolationDepth?: number;\n}\n\nexport class StructuredOutputParser<\n T extends InteropZodType,\n> extends BaseOutputParser<InferInteropZodOutput<T>> {\n static lc_name() {\n return \"StructuredOutputParser\";\n }\n\n lc_namespace = [\"langchain\", \"output_parsers\", \"structured\"];\n\n toJSON() {\n return this.toJSONNotImplemented();\n }\n\n constructor(public schema: T) {\n super(schema);\n }\n\n /**\n * Creates a new StructuredOutputParser from a Zod schema.\n * @param schema The Zod schema which the output should match\n * @returns A new instance of StructuredOutputParser.\n */\n static fromZodSchema<T extends InteropZodType>(schema: T) {\n return new this(schema);\n }\n\n /**\n * Creates a new StructuredOutputParser from a set of names and\n * descriptions.\n * @param schemas An object where each key is a name and each value is a description\n * @returns A new instance of StructuredOutputParser.\n */\n static fromNamesAndDescriptions<S extends { [key: string]: string }>(\n schemas: S\n ) {\n const zodSchema = z.object(\n Object.fromEntries(\n Object.entries(schemas).map(\n ([name, description]) =>\n [name, z.string().describe(description)] as const\n )\n )\n );\n\n return new this(zodSchema);\n }\n\n /**\n * Returns a markdown code snippet with a JSON object formatted according\n * to the schema.\n * @param options Optional. The options for formatting the instructions\n * @returns A markdown code snippet with a JSON object formatted according to the schema.\n */\n getFormatInstructions(): string {\n return `You must format your output as a JSON value that adheres to a given \"JSON Schema\" instance.\n\n\"JSON Schema\" is a declarative language that allows you to annotate and validate JSON documents.\n\nFor example, the example \"JSON Schema\" instance {{\"properties\": {{\"foo\": {{\"description\": \"a list of test words\", \"type\": \"array\", \"items\": {{\"type\": \"string\"}}}}}}, \"required\": [\"foo\"]}}\nwould match an object with one required property, \"foo\". The \"type\" property specifies \"foo\" must be an \"array\", and the \"description\" property semantically describes it as \"a list of test words\". The items within \"foo\" must be strings.\nThus, the object {{\"foo\": [\"bar\", \"baz\"]}} is a well-formatted instance of this example \"JSON Schema\". The object {{\"properties\": {{\"foo\": [\"bar\", \"baz\"]}}}} is not well-formatted.\n\nYour output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas!\n\nHere is the JSON Schema instance your output must adhere to. Include the enclosing markdown codeblock:\n\\`\\`\\`json\n${JSON.stringify(toJsonSchema(this.schema))}\n\\`\\`\\`\n`;\n }\n\n /**\n * Parses the given text according to the schema.\n * @param text The text to parse\n * @returns The parsed output.\n */\n async parse(text: string): Promise<InferInteropZodOutput<T>> {\n try {\n const trimmedText = text.trim();\n\n const json =\n // first case: if back ticks appear at the start of the text\n trimmedText.match(/^```(?:json)?\\s*([\\s\\S]*?)```/)?.[1] ||\n // second case: if back ticks with `json` appear anywhere in the text\n trimmedText.match(/```json\\s*([\\s\\S]*?)```/)?.[1] ||\n // otherwise, return the trimmed text\n trimmedText;\n\n const escapedJson = json\n .replace(/\"([^\"\\\\]*(\\\\.[^\"\\\\]*)*)\"/g, (_match, capturedGroup) => {\n const escapedInsideQuotes = capturedGroup.replace(/\\n/g, \"\\\\n\");\n return `\"${escapedInsideQuotes}\"`;\n })\n .replace(/\\n/g, \"\");\n\n return await interopParseAsync(this.schema, JSON.parse(escapedJson));\n } catch (e) {\n throw new OutputParserException(\n `Failed to parse. Text: \"${text}\". Error: ${e}`,\n text\n );\n }\n }\n\n protected override _baseMessageToString(message: BaseMessage): string {\n return message.text;\n }\n}\n\n/**\n * A specific type of `StructuredOutputParser` that parses JSON data\n * formatted as a markdown code snippet.\n */\nexport class JsonMarkdownStructuredOutputParser<\n T extends InteropZodType,\n> extends StructuredOutputParser<T> {\n static lc_name() {\n return \"JsonMarkdownStructuredOutputParser\";\n }\n\n getFormatInstructions(\n options?: JsonMarkdownFormatInstructionsOptions\n ): string {\n const interpolationDepth = options?.interpolationDepth ?? 1;\n if (interpolationDepth < 1) {\n throw new Error(\"f string interpolation depth must be at least 1\");\n }\n\n return `Return a markdown code snippet with a JSON object formatted to look like:\\n\\`\\`\\`json\\n${this._schemaToInstruction(\n toJsonSchema(this.schema)\n )\n .replaceAll(\"{\", \"{\".repeat(interpolationDepth))\n .replaceAll(\"}\", \"}\".repeat(interpolationDepth))}\\n\\`\\`\\``;\n }\n\n private _schemaToInstruction(\n schemaInput: JsonSchema7Type,\n indent = 2\n ): string {\n const schema = schemaInput as Extract<\n JsonSchema7Type,\n | JsonSchema7ObjectType\n | JsonSchema7ArrayType\n | JsonSchema7StringType\n | JsonSchema7NumberType\n | JsonSchema7NullableType\n >;\n\n if (\"type\" in schema) {\n let nullable = false;\n let type: string;\n if (Array.isArray(schema.type)) {\n const nullIdx = schema.type.findIndex((type) => type === \"null\");\n if (nullIdx !== -1) {\n nullable = true;\n schema.type.splice(nullIdx, 1);\n }\n type = schema.type.join(\" | \") as string;\n } else {\n type = schema.type;\n }\n\n if (schema.type === \"object\" && schema.properties) {\n const description = schema.description\n ? ` // ${schema.description}`\n : \"\";\n const properties = Object.entries(schema.properties)\n .map(([key, value]) => {\n const isOptional = schema.required?.includes(key)\n ? \"\"\n : \" (optional)\";\n return `${\" \".repeat(indent)}\"${key}\": ${this._schemaToInstruction(\n value,\n indent + 2\n )}${isOptional}`;\n })\n .join(\"\\n\");\n return `{\\n${properties}\\n${\" \".repeat(indent - 2)}}${description}`;\n }\n if (schema.type === \"array\" && schema.items) {\n const description = schema.description\n ? ` // ${schema.description}`\n : \"\";\n return `array[\\n${\" \".repeat(indent)}${this._schemaToInstruction(\n schema.items,\n indent + 2\n )}\\n${\" \".repeat(indent - 2)}] ${description}`;\n }\n const isNullable = nullable ? \" (nullable)\" : \"\";\n const description = schema.description ? ` // ${schema.description}` : \"\";\n return `${type}${description}${isNullable}`;\n }\n\n if (\"anyOf\" in schema) {\n return schema.anyOf\n .map((s) => this._schemaToInstruction(s, indent))\n .join(`\\n${\" \".repeat(indent - 2)}`);\n }\n\n throw new Error(\"unsupported schema type\");\n }\n\n static fromZodSchema<T extends InteropZodType>(schema: T) {\n return new this<T>(schema);\n }\n\n static fromNamesAndDescriptions<S extends { [key: string]: string }>(\n schemas: S\n ) {\n const zodSchema = z.object(\n Object.fromEntries(\n Object.entries(schemas).map(\n ([name, description]) =>\n [name, z.string().describe(description)] as const\n )\n )\n );\n\n return new this<typeof zodSchema>(zodSchema);\n }\n}\n\nexport interface AsymmetricStructuredOutputParserFields<\n T extends InteropZodType,\n> {\n inputSchema: T;\n}\n\n/**\n * A type of `StructuredOutputParser` that handles asymmetric input and\n * output schemas.\n */\nexport abstract class AsymmetricStructuredOutputParser<\n T extends InteropZodType,\n Y = unknown,\n> extends BaseOutputParser<Y> {\n private structuredInputParser: JsonMarkdownStructuredOutputParser<T>;\n\n constructor({ inputSchema }: AsymmetricStructuredOutputParserFields<T>) {\n super(...arguments);\n this.structuredInputParser = new JsonMarkdownStructuredOutputParser(\n inputSchema\n );\n }\n\n /**\n * Processes the parsed input into the desired output format. Must be\n * implemented by subclasses.\n * @param input The parsed input\n * @returns The processed output.\n */\n abstract outputProcessor(input: InferInteropZodOutput<T>): Promise<Y>;\n\n async parse(text: string): Promise<Y> {\n let parsedInput;\n try {\n parsedInput = await this.structuredInputParser.parse(text);\n } catch (e) {\n throw new OutputParserException(\n `Failed to parse. Text: \"${text}\". Error: ${e}`,\n text\n );\n }\n\n return this.outputProcessor(parsedInput);\n }\n\n getFormatInstructions(): string {\n return this.structuredInputParser.getFormatInstructions();\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"structured.cjs","names":["BaseOutputParser","z","toJsonSchema","interopParseAsync","OutputParserException"],"sources":["../../src/output_parsers/structured.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport {\n BaseOutputParser,\n FormatInstructionsOptions,\n OutputParserException,\n} from \"./base.js\";\nimport { BaseMessage } from \"../messages/index.js\";\nimport {\n type InteropZodType,\n type InferInteropZodOutput,\n interopParseAsync,\n} from \"../utils/types/zod.js\";\nimport {\n toJsonSchema,\n type JsonSchema7Type,\n type JsonSchema7ArrayType,\n type JsonSchema7ObjectType,\n type JsonSchema7StringType,\n type JsonSchema7NumberType,\n type JsonSchema7NullableType,\n} from \"../utils/json_schema.js\";\n\nexport type JsonMarkdownStructuredOutputParserInput = {\n interpolationDepth?: number;\n};\n\nexport interface JsonMarkdownFormatInstructionsOptions extends FormatInstructionsOptions {\n interpolationDepth?: number;\n}\n\nexport class StructuredOutputParser<\n T extends InteropZodType,\n> extends BaseOutputParser<InferInteropZodOutput<T>> {\n static lc_name() {\n return \"StructuredOutputParser\";\n }\n\n lc_namespace = [\"langchain\", \"output_parsers\", \"structured\"];\n\n toJSON() {\n return this.toJSONNotImplemented();\n }\n\n constructor(public schema: T) {\n super(schema);\n }\n\n /**\n * Creates a new StructuredOutputParser from a Zod schema.\n * @param schema The Zod schema which the output should match\n * @returns A new instance of StructuredOutputParser.\n */\n static fromZodSchema<T extends InteropZodType>(schema: T) {\n return new this(schema);\n }\n\n /**\n * Creates a new StructuredOutputParser from a set of names and\n * descriptions.\n * @param schemas An object where each key is a name and each value is a description\n * @returns A new instance of StructuredOutputParser.\n */\n static fromNamesAndDescriptions<S extends { [key: string]: string }>(\n schemas: S\n ) {\n const zodSchema = z.object(\n Object.fromEntries(\n Object.entries(schemas).map(\n ([name, description]) =>\n [name, z.string().describe(description)] as const\n )\n )\n );\n\n return new this(zodSchema);\n }\n\n /**\n * Returns a markdown code snippet with a JSON object formatted according\n * to the schema.\n * @param options Optional. The options for formatting the instructions\n * @returns A markdown code snippet with a JSON object formatted according to the schema.\n */\n getFormatInstructions(): string {\n return `You must format your output as a JSON value that adheres to a given \"JSON Schema\" instance.\n\n\"JSON Schema\" is a declarative language that allows you to annotate and validate JSON documents.\n\nFor example, the example \"JSON Schema\" instance {{\"properties\": {{\"foo\": {{\"description\": \"a list of test words\", \"type\": \"array\", \"items\": {{\"type\": \"string\"}}}}}}, \"required\": [\"foo\"]}}\nwould match an object with one required property, \"foo\". The \"type\" property specifies \"foo\" must be an \"array\", and the \"description\" property semantically describes it as \"a list of test words\". The items within \"foo\" must be strings.\nThus, the object {{\"foo\": [\"bar\", \"baz\"]}} is a well-formatted instance of this example \"JSON Schema\". The object {{\"properties\": {{\"foo\": [\"bar\", \"baz\"]}}}} is not well-formatted.\n\nYour output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas!\n\nHere is the JSON Schema instance your output must adhere to. Include the enclosing markdown codeblock:\n\\`\\`\\`json\n${JSON.stringify(toJsonSchema(this.schema))}\n\\`\\`\\`\n`;\n }\n\n /**\n * Parses the given text according to the schema.\n * @param text The text to parse\n * @returns The parsed output.\n */\n async parse(text: string): Promise<InferInteropZodOutput<T>> {\n try {\n const trimmedText = text.trim();\n\n const json =\n // first case: if back ticks appear at the start of the text\n trimmedText.match(/^```(?:json)?\\s*([\\s\\S]*?)```/)?.[1] ||\n // second case: if back ticks with `json` appear anywhere in the text\n trimmedText.match(/```json\\s*([\\s\\S]*?)```/)?.[1] ||\n // otherwise, return the trimmed text\n trimmedText;\n\n const escapedJson = json\n .replace(/\"([^\"\\\\]*(\\\\.[^\"\\\\]*)*)\"/g, (_match, capturedGroup) => {\n const escapedInsideQuotes = capturedGroup.replace(/\\n/g, \"\\\\n\");\n return `\"${escapedInsideQuotes}\"`;\n })\n .replace(/\\n/g, \"\");\n\n return await interopParseAsync(this.schema, JSON.parse(escapedJson));\n } catch (e) {\n throw new OutputParserException(\n `Failed to parse. Text: \"${text}\". Error: ${e}`,\n text\n );\n }\n }\n\n protected override _baseMessageToString(message: BaseMessage): string {\n return message.text;\n }\n}\n\n/**\n * A specific type of `StructuredOutputParser` that parses JSON data\n * formatted as a markdown code snippet.\n */\nexport class JsonMarkdownStructuredOutputParser<\n T extends InteropZodType,\n> extends StructuredOutputParser<T> {\n static lc_name() {\n return \"JsonMarkdownStructuredOutputParser\";\n }\n\n getFormatInstructions(\n options?: JsonMarkdownFormatInstructionsOptions\n ): string {\n const interpolationDepth = options?.interpolationDepth ?? 1;\n if (interpolationDepth < 1) {\n throw new Error(\"f string interpolation depth must be at least 1\");\n }\n\n return `Return a markdown code snippet with a JSON object formatted to look like:\\n\\`\\`\\`json\\n${this._schemaToInstruction(\n toJsonSchema(this.schema)\n )\n .replaceAll(\"{\", \"{\".repeat(interpolationDepth))\n .replaceAll(\"}\", \"}\".repeat(interpolationDepth))}\\n\\`\\`\\``;\n }\n\n private _schemaToInstruction(\n schemaInput: JsonSchema7Type,\n indent = 2\n ): string {\n const schema = schemaInput as Extract<\n JsonSchema7Type,\n | JsonSchema7ObjectType\n | JsonSchema7ArrayType\n | JsonSchema7StringType\n | JsonSchema7NumberType\n | JsonSchema7NullableType\n >;\n\n if (\"type\" in schema) {\n let nullable = false;\n let type: string;\n if (Array.isArray(schema.type)) {\n const nullIdx = schema.type.findIndex((type) => type === \"null\");\n if (nullIdx !== -1) {\n nullable = true;\n schema.type.splice(nullIdx, 1);\n }\n type = schema.type.join(\" | \") as string;\n } else {\n type = schema.type;\n }\n\n if (schema.type === \"object\" && schema.properties) {\n const description = schema.description\n ? ` // ${schema.description}`\n : \"\";\n const properties = Object.entries(schema.properties)\n .map(([key, value]) => {\n const isOptional = schema.required?.includes(key)\n ? \"\"\n : \" (optional)\";\n return `${\" \".repeat(indent)}\"${key}\": ${this._schemaToInstruction(\n value,\n indent + 2\n )}${isOptional}`;\n })\n .join(\"\\n\");\n return `{\\n${properties}\\n${\" \".repeat(indent - 2)}}${description}`;\n }\n if (schema.type === \"array\" && schema.items) {\n const description = schema.description\n ? ` // ${schema.description}`\n : \"\";\n return `array[\\n${\" \".repeat(indent)}${this._schemaToInstruction(\n schema.items,\n indent + 2\n )}\\n${\" \".repeat(indent - 2)}] ${description}`;\n }\n const isNullable = nullable ? \" (nullable)\" : \"\";\n const description = schema.description ? ` // ${schema.description}` : \"\";\n return `${type}${description}${isNullable}`;\n }\n\n if (\"anyOf\" in schema) {\n return schema.anyOf\n .map((s) => this._schemaToInstruction(s, indent))\n .join(`\\n${\" \".repeat(indent - 2)}`);\n }\n\n throw new Error(\"unsupported schema type\");\n }\n\n static fromZodSchema<T extends InteropZodType>(schema: T) {\n return new this<T>(schema);\n }\n\n static fromNamesAndDescriptions<S extends { [key: string]: string }>(\n schemas: S\n ) {\n const zodSchema = z.object(\n Object.fromEntries(\n Object.entries(schemas).map(\n ([name, description]) =>\n [name, z.string().describe(description)] as const\n )\n )\n );\n\n return new this<typeof zodSchema>(zodSchema);\n }\n}\n\nexport interface AsymmetricStructuredOutputParserFields<\n T extends InteropZodType,\n> {\n inputSchema: T;\n}\n\n/**\n * A type of `StructuredOutputParser` that handles asymmetric input and\n * output schemas.\n */\nexport abstract class AsymmetricStructuredOutputParser<\n T extends InteropZodType,\n Y = unknown,\n> extends BaseOutputParser<Y> {\n private structuredInputParser: JsonMarkdownStructuredOutputParser<T>;\n\n constructor({ inputSchema }: AsymmetricStructuredOutputParserFields<T>) {\n super(...arguments);\n this.structuredInputParser = new JsonMarkdownStructuredOutputParser(\n inputSchema\n );\n }\n\n /**\n * Processes the parsed input into the desired output format. Must be\n * implemented by subclasses.\n * @param input The parsed input\n * @returns The processed output.\n */\n abstract outputProcessor(input: InferInteropZodOutput<T>): Promise<Y>;\n\n async parse(text: string): Promise<Y> {\n let parsedInput;\n try {\n parsedInput = await this.structuredInputParser.parse(text);\n } catch (e) {\n throw new OutputParserException(\n `Failed to parse. Text: \"${text}\". Error: ${e}`,\n text\n );\n }\n\n return this.outputProcessor(parsedInput);\n }\n\n getFormatInstructions(): string {\n return this.structuredInputParser.getFormatInstructions();\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SerializedNotImplemented } from "../load/serializable.cjs";
|
|
2
2
|
import { BaseMessage } from "../messages/base.cjs";
|
|
3
3
|
import { InferInteropZodOutput, InteropZodType } from "../utils/types/zod.cjs";
|
|
4
|
+
import "../messages/index.cjs";
|
|
4
5
|
import { BaseOutputParser, FormatInstructionsOptions } from "./base.cjs";
|
|
5
6
|
import { z } from "zod/v3";
|
|
6
|
-
|
|
7
7
|
//#region src/output_parsers/structured.d.ts
|
|
8
8
|
type JsonMarkdownStructuredOutputParserInput = {
|
|
9
9
|
interpolationDepth?: number;
|
|
@@ -81,9 +81,7 @@ interface AsymmetricStructuredOutputParserFields<T extends InteropZodType> {
|
|
|
81
81
|
*/
|
|
82
82
|
declare abstract class AsymmetricStructuredOutputParser<T extends InteropZodType, Y = unknown> extends BaseOutputParser<Y> {
|
|
83
83
|
private structuredInputParser;
|
|
84
|
-
constructor({
|
|
85
|
-
inputSchema
|
|
86
|
-
}: AsymmetricStructuredOutputParserFields<T>);
|
|
84
|
+
constructor({ inputSchema }: AsymmetricStructuredOutputParserFields<T>);
|
|
87
85
|
/**
|
|
88
86
|
* Processes the parsed input into the desired output format. Must be
|
|
89
87
|
* implemented by subclasses.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured.d.cts","names":[],"sources":["../../src/output_parsers/structured.ts"],"mappings":";;;;;;;KAsBY
|
|
1
|
+
{"version":3,"file":"structured.d.cts","names":[],"sources":["../../src/output_parsers/structured.ts"],"mappings":";;;;;;;KAsBY;EACV;;UAGe,8CAA8C;EAC7D;;cAGW,uBACX,UAAU,wBACF,iBAAiB,sBAAsB;EAW5B,QAAQ;SAVpB;EAIP;EAEA,UAI2B;EAA3B,YAAmB,QAAQ;;;;;;SASpB,cAAc,UAAU,gBAAgB,QAAQ,IAAC,uBAAA;;;;;;;SAUjD,yBAAyB;KAAa;KAC3C,SAAS,IAAC,uBAAA,EAAA;;;;;;;;;;;;;EAoBZ;;;;;;EAuBM,MAAM,eAAe,QAAQ,sBAAsB;YA4BtC,qBAAqB,SAAS;;;;;;cAStC,mCACX,UAAU,wBACF,uBAAuB;SACxB;EAIP,sBACE,UAAU;UAcJ;SAmED,cAAc,UAAU,gBAAgB,QAAQ,IAAC,mCAAA;SAIjD,yBAAyB;KAAa;KAC3C,SAAS,IAAC,mCAAA,EAAA;;;;;;;;UAeG,uCACf,UAAU;EAEV,aAAa;;;;;;uBAOO,iCACpB,UAAU,gBACV,qBACQ,iBAAiB;UACjB;EAER,cAAc,eAAe,uCAAuC;;;;;;;WAa3D,gBAAgB,OAAO,sBAAsB,KAAK,QAAQ;EAE7D,MAAM,eAAe,QAAQ;EAcnC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SerializedNotImplemented } from "../load/serializable.js";
|
|
2
2
|
import { BaseMessage } from "../messages/base.js";
|
|
3
3
|
import { InferInteropZodOutput, InteropZodType } from "../utils/types/zod.js";
|
|
4
|
+
import "../messages/index.js";
|
|
4
5
|
import { BaseOutputParser, FormatInstructionsOptions } from "./base.js";
|
|
5
6
|
import { z } from "zod/v3";
|
|
6
|
-
|
|
7
7
|
//#region src/output_parsers/structured.d.ts
|
|
8
8
|
type JsonMarkdownStructuredOutputParserInput = {
|
|
9
9
|
interpolationDepth?: number;
|
|
@@ -81,9 +81,7 @@ interface AsymmetricStructuredOutputParserFields<T extends InteropZodType> {
|
|
|
81
81
|
*/
|
|
82
82
|
declare abstract class AsymmetricStructuredOutputParser<T extends InteropZodType, Y = unknown> extends BaseOutputParser<Y> {
|
|
83
83
|
private structuredInputParser;
|
|
84
|
-
constructor({
|
|
85
|
-
inputSchema
|
|
86
|
-
}: AsymmetricStructuredOutputParserFields<T>);
|
|
84
|
+
constructor({ inputSchema }: AsymmetricStructuredOutputParserFields<T>);
|
|
87
85
|
/**
|
|
88
86
|
* Processes the parsed input into the desired output format. Must be
|
|
89
87
|
* implemented by subclasses.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured.d.ts","names":[],"sources":["../../src/output_parsers/structured.ts"],"mappings":";;;;;;;KAsBY
|
|
1
|
+
{"version":3,"file":"structured.d.ts","names":[],"sources":["../../src/output_parsers/structured.ts"],"mappings":";;;;;;;KAsBY;EACV;;UAGe,8CAA8C;EAC7D;;cAGW,uBACX,UAAU,wBACF,iBAAiB,sBAAsB;EAW5B,QAAQ;SAVpB;EAIP;EAEA,UAI2B;EAA3B,YAAmB,QAAQ;;;;;;SASpB,cAAc,UAAU,gBAAgB,QAAQ,IAAC,uBAAA;;;;;;;SAUjD,yBAAyB;KAAa;KAC3C,SAAS,IAAC,uBAAA,EAAA;;;;;;;;;;;;;EAoBZ;;;;;;EAuBM,MAAM,eAAe,QAAQ,sBAAsB;YA4BtC,qBAAqB,SAAS;;;;;;cAStC,mCACX,UAAU,wBACF,uBAAuB;SACxB;EAIP,sBACE,UAAU;UAcJ;SAmED,cAAc,UAAU,gBAAgB,QAAQ,IAAC,mCAAA;SAIjD,yBAAyB;KAAa;KAC3C,SAAS,IAAC,mCAAA,EAAA;;;;;;;;UAeG,uCACf,UAAU;EAEV,aAAa;;;;;;uBAOO,iCACpB,UAAU,gBACV,qBACQ,iBAAiB;UACjB;EAER,cAAc,eAAe,uCAAuC;;;;;;;WAa3D,gBAAgB,OAAO,sBAAsB,KAAK,QAAQ;EAE7D,MAAM,eAAe,QAAQ;EAcnC"}
|
|
@@ -4,6 +4,7 @@ import { BaseOutputParser, OutputParserException } from "./base.js";
|
|
|
4
4
|
import { z } from "zod/v3";
|
|
5
5
|
//#region src/output_parsers/structured.ts
|
|
6
6
|
var StructuredOutputParser = class extends BaseOutputParser {
|
|
7
|
+
schema;
|
|
7
8
|
static lc_name() {
|
|
8
9
|
return "StructuredOutputParser";
|
|
9
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured.js","names":[],"sources":["../../src/output_parsers/structured.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport {\n BaseOutputParser,\n FormatInstructionsOptions,\n OutputParserException,\n} from \"./base.js\";\nimport { BaseMessage } from \"../messages/index.js\";\nimport {\n type InteropZodType,\n type InferInteropZodOutput,\n interopParseAsync,\n} from \"../utils/types/zod.js\";\nimport {\n toJsonSchema,\n type JsonSchema7Type,\n type JsonSchema7ArrayType,\n type JsonSchema7ObjectType,\n type JsonSchema7StringType,\n type JsonSchema7NumberType,\n type JsonSchema7NullableType,\n} from \"../utils/json_schema.js\";\n\nexport type JsonMarkdownStructuredOutputParserInput = {\n interpolationDepth?: number;\n};\n\nexport interface JsonMarkdownFormatInstructionsOptions extends FormatInstructionsOptions {\n interpolationDepth?: number;\n}\n\nexport class StructuredOutputParser<\n T extends InteropZodType,\n> extends BaseOutputParser<InferInteropZodOutput<T>> {\n static lc_name() {\n return \"StructuredOutputParser\";\n }\n\n lc_namespace = [\"langchain\", \"output_parsers\", \"structured\"];\n\n toJSON() {\n return this.toJSONNotImplemented();\n }\n\n constructor(public schema: T) {\n super(schema);\n }\n\n /**\n * Creates a new StructuredOutputParser from a Zod schema.\n * @param schema The Zod schema which the output should match\n * @returns A new instance of StructuredOutputParser.\n */\n static fromZodSchema<T extends InteropZodType>(schema: T) {\n return new this(schema);\n }\n\n /**\n * Creates a new StructuredOutputParser from a set of names and\n * descriptions.\n * @param schemas An object where each key is a name and each value is a description\n * @returns A new instance of StructuredOutputParser.\n */\n static fromNamesAndDescriptions<S extends { [key: string]: string }>(\n schemas: S\n ) {\n const zodSchema = z.object(\n Object.fromEntries(\n Object.entries(schemas).map(\n ([name, description]) =>\n [name, z.string().describe(description)] as const\n )\n )\n );\n\n return new this(zodSchema);\n }\n\n /**\n * Returns a markdown code snippet with a JSON object formatted according\n * to the schema.\n * @param options Optional. The options for formatting the instructions\n * @returns A markdown code snippet with a JSON object formatted according to the schema.\n */\n getFormatInstructions(): string {\n return `You must format your output as a JSON value that adheres to a given \"JSON Schema\" instance.\n\n\"JSON Schema\" is a declarative language that allows you to annotate and validate JSON documents.\n\nFor example, the example \"JSON Schema\" instance {{\"properties\": {{\"foo\": {{\"description\": \"a list of test words\", \"type\": \"array\", \"items\": {{\"type\": \"string\"}}}}}}, \"required\": [\"foo\"]}}\nwould match an object with one required property, \"foo\". The \"type\" property specifies \"foo\" must be an \"array\", and the \"description\" property semantically describes it as \"a list of test words\". The items within \"foo\" must be strings.\nThus, the object {{\"foo\": [\"bar\", \"baz\"]}} is a well-formatted instance of this example \"JSON Schema\". The object {{\"properties\": {{\"foo\": [\"bar\", \"baz\"]}}}} is not well-formatted.\n\nYour output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas!\n\nHere is the JSON Schema instance your output must adhere to. Include the enclosing markdown codeblock:\n\\`\\`\\`json\n${JSON.stringify(toJsonSchema(this.schema))}\n\\`\\`\\`\n`;\n }\n\n /**\n * Parses the given text according to the schema.\n * @param text The text to parse\n * @returns The parsed output.\n */\n async parse(text: string): Promise<InferInteropZodOutput<T>> {\n try {\n const trimmedText = text.trim();\n\n const json =\n // first case: if back ticks appear at the start of the text\n trimmedText.match(/^```(?:json)?\\s*([\\s\\S]*?)```/)?.[1] ||\n // second case: if back ticks with `json` appear anywhere in the text\n trimmedText.match(/```json\\s*([\\s\\S]*?)```/)?.[1] ||\n // otherwise, return the trimmed text\n trimmedText;\n\n const escapedJson = json\n .replace(/\"([^\"\\\\]*(\\\\.[^\"\\\\]*)*)\"/g, (_match, capturedGroup) => {\n const escapedInsideQuotes = capturedGroup.replace(/\\n/g, \"\\\\n\");\n return `\"${escapedInsideQuotes}\"`;\n })\n .replace(/\\n/g, \"\");\n\n return await interopParseAsync(this.schema, JSON.parse(escapedJson));\n } catch (e) {\n throw new OutputParserException(\n `Failed to parse. Text: \"${text}\". Error: ${e}`,\n text\n );\n }\n }\n\n protected override _baseMessageToString(message: BaseMessage): string {\n return message.text;\n }\n}\n\n/**\n * A specific type of `StructuredOutputParser` that parses JSON data\n * formatted as a markdown code snippet.\n */\nexport class JsonMarkdownStructuredOutputParser<\n T extends InteropZodType,\n> extends StructuredOutputParser<T> {\n static lc_name() {\n return \"JsonMarkdownStructuredOutputParser\";\n }\n\n getFormatInstructions(\n options?: JsonMarkdownFormatInstructionsOptions\n ): string {\n const interpolationDepth = options?.interpolationDepth ?? 1;\n if (interpolationDepth < 1) {\n throw new Error(\"f string interpolation depth must be at least 1\");\n }\n\n return `Return a markdown code snippet with a JSON object formatted to look like:\\n\\`\\`\\`json\\n${this._schemaToInstruction(\n toJsonSchema(this.schema)\n )\n .replaceAll(\"{\", \"{\".repeat(interpolationDepth))\n .replaceAll(\"}\", \"}\".repeat(interpolationDepth))}\\n\\`\\`\\``;\n }\n\n private _schemaToInstruction(\n schemaInput: JsonSchema7Type,\n indent = 2\n ): string {\n const schema = schemaInput as Extract<\n JsonSchema7Type,\n | JsonSchema7ObjectType\n | JsonSchema7ArrayType\n | JsonSchema7StringType\n | JsonSchema7NumberType\n | JsonSchema7NullableType\n >;\n\n if (\"type\" in schema) {\n let nullable = false;\n let type: string;\n if (Array.isArray(schema.type)) {\n const nullIdx = schema.type.findIndex((type) => type === \"null\");\n if (nullIdx !== -1) {\n nullable = true;\n schema.type.splice(nullIdx, 1);\n }\n type = schema.type.join(\" | \") as string;\n } else {\n type = schema.type;\n }\n\n if (schema.type === \"object\" && schema.properties) {\n const description = schema.description\n ? ` // ${schema.description}`\n : \"\";\n const properties = Object.entries(schema.properties)\n .map(([key, value]) => {\n const isOptional = schema.required?.includes(key)\n ? \"\"\n : \" (optional)\";\n return `${\" \".repeat(indent)}\"${key}\": ${this._schemaToInstruction(\n value,\n indent + 2\n )}${isOptional}`;\n })\n .join(\"\\n\");\n return `{\\n${properties}\\n${\" \".repeat(indent - 2)}}${description}`;\n }\n if (schema.type === \"array\" && schema.items) {\n const description = schema.description\n ? ` // ${schema.description}`\n : \"\";\n return `array[\\n${\" \".repeat(indent)}${this._schemaToInstruction(\n schema.items,\n indent + 2\n )}\\n${\" \".repeat(indent - 2)}] ${description}`;\n }\n const isNullable = nullable ? \" (nullable)\" : \"\";\n const description = schema.description ? ` // ${schema.description}` : \"\";\n return `${type}${description}${isNullable}`;\n }\n\n if (\"anyOf\" in schema) {\n return schema.anyOf\n .map((s) => this._schemaToInstruction(s, indent))\n .join(`\\n${\" \".repeat(indent - 2)}`);\n }\n\n throw new Error(\"unsupported schema type\");\n }\n\n static fromZodSchema<T extends InteropZodType>(schema: T) {\n return new this<T>(schema);\n }\n\n static fromNamesAndDescriptions<S extends { [key: string]: string }>(\n schemas: S\n ) {\n const zodSchema = z.object(\n Object.fromEntries(\n Object.entries(schemas).map(\n ([name, description]) =>\n [name, z.string().describe(description)] as const\n )\n )\n );\n\n return new this<typeof zodSchema>(zodSchema);\n }\n}\n\nexport interface AsymmetricStructuredOutputParserFields<\n T extends InteropZodType,\n> {\n inputSchema: T;\n}\n\n/**\n * A type of `StructuredOutputParser` that handles asymmetric input and\n * output schemas.\n */\nexport abstract class AsymmetricStructuredOutputParser<\n T extends InteropZodType,\n Y = unknown,\n> extends BaseOutputParser<Y> {\n private structuredInputParser: JsonMarkdownStructuredOutputParser<T>;\n\n constructor({ inputSchema }: AsymmetricStructuredOutputParserFields<T>) {\n super(...arguments);\n this.structuredInputParser = new JsonMarkdownStructuredOutputParser(\n inputSchema\n );\n }\n\n /**\n * Processes the parsed input into the desired output format. Must be\n * implemented by subclasses.\n * @param input The parsed input\n * @returns The processed output.\n */\n abstract outputProcessor(input: InferInteropZodOutput<T>): Promise<Y>;\n\n async parse(text: string): Promise<Y> {\n let parsedInput;\n try {\n parsedInput = await this.structuredInputParser.parse(text);\n } catch (e) {\n throw new OutputParserException(\n `Failed to parse. Text: \"${text}\". Error: ${e}`,\n text\n );\n }\n\n return this.outputProcessor(parsedInput);\n }\n\n getFormatInstructions(): string {\n return this.structuredInputParser.getFormatInstructions();\n }\n}\n"],"mappings":";;;;;AA8BA,IAAa,yBAAb,cAEU,iBAA2C;CACnD,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAkB;EAAa;CAE5D,SAAS;AACP,SAAO,KAAK,sBAAsB;;CAGpC,YAAY,QAAkB;AAC5B,QAAM,OAAO;AADI,OAAA,SAAA;;;;;;;CASnB,OAAO,cAAwC,QAAW;AACxD,SAAO,IAAI,KAAK,OAAO;;;;;;;;CASzB,OAAO,yBACL,SACA;EACA,MAAM,YAAY,EAAE,OAClB,OAAO,YACL,OAAO,QAAQ,QAAQ,CAAC,KACrB,CAAC,MAAM,iBACN,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,YAAY,CAAC,CAC3C,CACF,CACF;AAED,SAAO,IAAI,KAAK,UAAU;;;;;;;;CAS5B,wBAAgC;AAC9B,SAAO;;;;;;;;;;;;EAYT,KAAK,UAAU,aAAa,KAAK,OAAO,CAAC,CAAC;;;;;;;;;CAU1C,MAAM,MAAM,MAAiD;AAC3D,MAAI;GACF,MAAM,cAAc,KAAK,MAAM;GAU/B,MAAM,eANJ,YAAY,MAAM,gCAAgC,GAAG,MAErD,YAAY,MAAM,0BAA0B,GAAG,MAE/C,aAGC,QAAQ,8BAA8B,QAAQ,kBAAkB;AAE/D,WAAO,IADqB,cAAc,QAAQ,OAAO,MAC3B,CAAC;KAC/B,CACD,QAAQ,OAAO,GAAG;AAErB,UAAO,MAAM,kBAAkB,KAAK,QAAQ,KAAK,MAAM,YAAY,CAAC;WAC7D,GAAG;AACV,SAAM,IAAI,sBACR,2BAA2B,KAAK,YAAY,KAC5C,KACD;;;CAIL,qBAAwC,SAA8B;AACpE,SAAO,QAAQ;;;;;;;AAQnB,IAAa,qCAAb,cAEU,uBAA0B;CAClC,OAAO,UAAU;AACf,SAAO;;CAGT,sBACE,SACQ;EACR,MAAM,qBAAqB,SAAS,sBAAsB;AAC1D,MAAI,qBAAqB,EACvB,OAAM,IAAI,MAAM,kDAAkD;AAGpE,SAAO,0FAA0F,KAAK,qBACpG,aAAa,KAAK,OAAO,CAC1B,CACE,WAAW,KAAK,IAAI,OAAO,mBAAmB,CAAC,CAC/C,WAAW,KAAK,IAAI,OAAO,mBAAmB,CAAC,CAAC;;CAGrD,qBACE,aACA,SAAS,GACD;EACR,MAAM,SAAS;AASf,MAAI,UAAU,QAAQ;GACpB,IAAI,WAAW;GACf,IAAI;AACJ,OAAI,MAAM,QAAQ,OAAO,KAAK,EAAE;IAC9B,MAAM,UAAU,OAAO,KAAK,WAAW,SAAS,SAAS,OAAO;AAChE,QAAI,YAAY,IAAI;AAClB,gBAAW;AACX,YAAO,KAAK,OAAO,SAAS,EAAE;;AAEhC,WAAO,OAAO,KAAK,KAAK,MAAM;SAE9B,QAAO,OAAO;AAGhB,OAAI,OAAO,SAAS,YAAY,OAAO,YAAY;IACjD,MAAM,cAAc,OAAO,cACvB,OAAO,OAAO,gBACd;AAYJ,WAAO,MAXY,OAAO,QAAQ,OAAO,WAAW,CACjD,KAAK,CAAC,KAAK,WAAW;KACrB,MAAM,aAAa,OAAO,UAAU,SAAS,IAAI,GAC7C,KACA;AACJ,YAAO,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,IAAI,KAAK,KAAK,qBAC5C,OACA,SAAS,EACV,GAAG;MACJ,CACD,KAAK,KACe,CAAC,IAAI,IAAI,OAAO,SAAS,EAAE,CAAC,GAAG;;AAExD,OAAI,OAAO,SAAS,WAAW,OAAO,OAAO;IAC3C,MAAM,cAAc,OAAO,cACvB,OAAO,OAAO,gBACd;AACJ,WAAO,WAAW,IAAI,OAAO,OAAO,GAAG,KAAK,qBAC1C,OAAO,OACP,SAAS,EACV,CAAC,IAAI,IAAI,OAAO,SAAS,EAAE,CAAC,IAAI;;GAEnC,MAAM,aAAa,WAAW,gBAAgB;GAC9C,MAAM,cAAc,OAAO,cAAc,OAAO,OAAO,gBAAgB;AACvE,UAAO,GAAG,OAAO,cAAc;;AAGjC,MAAI,WAAW,OACb,QAAO,OAAO,MACX,KAAK,MAAM,KAAK,qBAAqB,GAAG,OAAO,CAAC,CAChD,KAAK,KAAK,IAAI,OAAO,SAAS,EAAE,GAAG;AAGxC,QAAM,IAAI,MAAM,0BAA0B;;CAG5C,OAAO,cAAwC,QAAW;AACxD,SAAO,IAAI,KAAQ,OAAO;;CAG5B,OAAO,yBACL,SACA;EACA,MAAM,YAAY,EAAE,OAClB,OAAO,YACL,OAAO,QAAQ,QAAQ,CAAC,KACrB,CAAC,MAAM,iBACN,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,YAAY,CAAC,CAC3C,CACF,CACF;AAED,SAAO,IAAI,KAAuB,UAAU;;;;;;;AAchD,IAAsB,mCAAtB,cAGU,iBAAoB;CAC5B;CAEA,YAAY,EAAE,eAA0D;AACtE,QAAM,GAAG,UAAU;AACnB,OAAK,wBAAwB,IAAI,mCAC/B,YACD;;CAWH,MAAM,MAAM,MAA0B;EACpC,IAAI;AACJ,MAAI;AACF,iBAAc,MAAM,KAAK,sBAAsB,MAAM,KAAK;WACnD,GAAG;AACV,SAAM,IAAI,sBACR,2BAA2B,KAAK,YAAY,KAC5C,KACD;;AAGH,SAAO,KAAK,gBAAgB,YAAY;;CAG1C,wBAAgC;AAC9B,SAAO,KAAK,sBAAsB,uBAAuB"}
|
|
1
|
+
{"version":3,"file":"structured.js","names":[],"sources":["../../src/output_parsers/structured.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport {\n BaseOutputParser,\n FormatInstructionsOptions,\n OutputParserException,\n} from \"./base.js\";\nimport { BaseMessage } from \"../messages/index.js\";\nimport {\n type InteropZodType,\n type InferInteropZodOutput,\n interopParseAsync,\n} from \"../utils/types/zod.js\";\nimport {\n toJsonSchema,\n type JsonSchema7Type,\n type JsonSchema7ArrayType,\n type JsonSchema7ObjectType,\n type JsonSchema7StringType,\n type JsonSchema7NumberType,\n type JsonSchema7NullableType,\n} from \"../utils/json_schema.js\";\n\nexport type JsonMarkdownStructuredOutputParserInput = {\n interpolationDepth?: number;\n};\n\nexport interface JsonMarkdownFormatInstructionsOptions extends FormatInstructionsOptions {\n interpolationDepth?: number;\n}\n\nexport class StructuredOutputParser<\n T extends InteropZodType,\n> extends BaseOutputParser<InferInteropZodOutput<T>> {\n static lc_name() {\n return \"StructuredOutputParser\";\n }\n\n lc_namespace = [\"langchain\", \"output_parsers\", \"structured\"];\n\n toJSON() {\n return this.toJSONNotImplemented();\n }\n\n constructor(public schema: T) {\n super(schema);\n }\n\n /**\n * Creates a new StructuredOutputParser from a Zod schema.\n * @param schema The Zod schema which the output should match\n * @returns A new instance of StructuredOutputParser.\n */\n static fromZodSchema<T extends InteropZodType>(schema: T) {\n return new this(schema);\n }\n\n /**\n * Creates a new StructuredOutputParser from a set of names and\n * descriptions.\n * @param schemas An object where each key is a name and each value is a description\n * @returns A new instance of StructuredOutputParser.\n */\n static fromNamesAndDescriptions<S extends { [key: string]: string }>(\n schemas: S\n ) {\n const zodSchema = z.object(\n Object.fromEntries(\n Object.entries(schemas).map(\n ([name, description]) =>\n [name, z.string().describe(description)] as const\n )\n )\n );\n\n return new this(zodSchema);\n }\n\n /**\n * Returns a markdown code snippet with a JSON object formatted according\n * to the schema.\n * @param options Optional. The options for formatting the instructions\n * @returns A markdown code snippet with a JSON object formatted according to the schema.\n */\n getFormatInstructions(): string {\n return `You must format your output as a JSON value that adheres to a given \"JSON Schema\" instance.\n\n\"JSON Schema\" is a declarative language that allows you to annotate and validate JSON documents.\n\nFor example, the example \"JSON Schema\" instance {{\"properties\": {{\"foo\": {{\"description\": \"a list of test words\", \"type\": \"array\", \"items\": {{\"type\": \"string\"}}}}}}, \"required\": [\"foo\"]}}\nwould match an object with one required property, \"foo\". The \"type\" property specifies \"foo\" must be an \"array\", and the \"description\" property semantically describes it as \"a list of test words\". The items within \"foo\" must be strings.\nThus, the object {{\"foo\": [\"bar\", \"baz\"]}} is a well-formatted instance of this example \"JSON Schema\". The object {{\"properties\": {{\"foo\": [\"bar\", \"baz\"]}}}} is not well-formatted.\n\nYour output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas!\n\nHere is the JSON Schema instance your output must adhere to. Include the enclosing markdown codeblock:\n\\`\\`\\`json\n${JSON.stringify(toJsonSchema(this.schema))}\n\\`\\`\\`\n`;\n }\n\n /**\n * Parses the given text according to the schema.\n * @param text The text to parse\n * @returns The parsed output.\n */\n async parse(text: string): Promise<InferInteropZodOutput<T>> {\n try {\n const trimmedText = text.trim();\n\n const json =\n // first case: if back ticks appear at the start of the text\n trimmedText.match(/^```(?:json)?\\s*([\\s\\S]*?)```/)?.[1] ||\n // second case: if back ticks with `json` appear anywhere in the text\n trimmedText.match(/```json\\s*([\\s\\S]*?)```/)?.[1] ||\n // otherwise, return the trimmed text\n trimmedText;\n\n const escapedJson = json\n .replace(/\"([^\"\\\\]*(\\\\.[^\"\\\\]*)*)\"/g, (_match, capturedGroup) => {\n const escapedInsideQuotes = capturedGroup.replace(/\\n/g, \"\\\\n\");\n return `\"${escapedInsideQuotes}\"`;\n })\n .replace(/\\n/g, \"\");\n\n return await interopParseAsync(this.schema, JSON.parse(escapedJson));\n } catch (e) {\n throw new OutputParserException(\n `Failed to parse. Text: \"${text}\". Error: ${e}`,\n text\n );\n }\n }\n\n protected override _baseMessageToString(message: BaseMessage): string {\n return message.text;\n }\n}\n\n/**\n * A specific type of `StructuredOutputParser` that parses JSON data\n * formatted as a markdown code snippet.\n */\nexport class JsonMarkdownStructuredOutputParser<\n T extends InteropZodType,\n> extends StructuredOutputParser<T> {\n static lc_name() {\n return \"JsonMarkdownStructuredOutputParser\";\n }\n\n getFormatInstructions(\n options?: JsonMarkdownFormatInstructionsOptions\n ): string {\n const interpolationDepth = options?.interpolationDepth ?? 1;\n if (interpolationDepth < 1) {\n throw new Error(\"f string interpolation depth must be at least 1\");\n }\n\n return `Return a markdown code snippet with a JSON object formatted to look like:\\n\\`\\`\\`json\\n${this._schemaToInstruction(\n toJsonSchema(this.schema)\n )\n .replaceAll(\"{\", \"{\".repeat(interpolationDepth))\n .replaceAll(\"}\", \"}\".repeat(interpolationDepth))}\\n\\`\\`\\``;\n }\n\n private _schemaToInstruction(\n schemaInput: JsonSchema7Type,\n indent = 2\n ): string {\n const schema = schemaInput as Extract<\n JsonSchema7Type,\n | JsonSchema7ObjectType\n | JsonSchema7ArrayType\n | JsonSchema7StringType\n | JsonSchema7NumberType\n | JsonSchema7NullableType\n >;\n\n if (\"type\" in schema) {\n let nullable = false;\n let type: string;\n if (Array.isArray(schema.type)) {\n const nullIdx = schema.type.findIndex((type) => type === \"null\");\n if (nullIdx !== -1) {\n nullable = true;\n schema.type.splice(nullIdx, 1);\n }\n type = schema.type.join(\" | \") as string;\n } else {\n type = schema.type;\n }\n\n if (schema.type === \"object\" && schema.properties) {\n const description = schema.description\n ? ` // ${schema.description}`\n : \"\";\n const properties = Object.entries(schema.properties)\n .map(([key, value]) => {\n const isOptional = schema.required?.includes(key)\n ? \"\"\n : \" (optional)\";\n return `${\" \".repeat(indent)}\"${key}\": ${this._schemaToInstruction(\n value,\n indent + 2\n )}${isOptional}`;\n })\n .join(\"\\n\");\n return `{\\n${properties}\\n${\" \".repeat(indent - 2)}}${description}`;\n }\n if (schema.type === \"array\" && schema.items) {\n const description = schema.description\n ? ` // ${schema.description}`\n : \"\";\n return `array[\\n${\" \".repeat(indent)}${this._schemaToInstruction(\n schema.items,\n indent + 2\n )}\\n${\" \".repeat(indent - 2)}] ${description}`;\n }\n const isNullable = nullable ? \" (nullable)\" : \"\";\n const description = schema.description ? ` // ${schema.description}` : \"\";\n return `${type}${description}${isNullable}`;\n }\n\n if (\"anyOf\" in schema) {\n return schema.anyOf\n .map((s) => this._schemaToInstruction(s, indent))\n .join(`\\n${\" \".repeat(indent - 2)}`);\n }\n\n throw new Error(\"unsupported schema type\");\n }\n\n static fromZodSchema<T extends InteropZodType>(schema: T) {\n return new this<T>(schema);\n }\n\n static fromNamesAndDescriptions<S extends { [key: string]: string }>(\n schemas: S\n ) {\n const zodSchema = z.object(\n Object.fromEntries(\n Object.entries(schemas).map(\n ([name, description]) =>\n [name, z.string().describe(description)] as const\n )\n )\n );\n\n return new this<typeof zodSchema>(zodSchema);\n }\n}\n\nexport interface AsymmetricStructuredOutputParserFields<\n T extends InteropZodType,\n> {\n inputSchema: T;\n}\n\n/**\n * A type of `StructuredOutputParser` that handles asymmetric input and\n * output schemas.\n */\nexport abstract class AsymmetricStructuredOutputParser<\n T extends InteropZodType,\n Y = unknown,\n> extends BaseOutputParser<Y> {\n private structuredInputParser: JsonMarkdownStructuredOutputParser<T>;\n\n constructor({ inputSchema }: AsymmetricStructuredOutputParserFields<T>) {\n super(...arguments);\n this.structuredInputParser = new JsonMarkdownStructuredOutputParser(\n inputSchema\n );\n }\n\n /**\n * Processes the parsed input into the desired output format. Must be\n * implemented by subclasses.\n * @param input The parsed input\n * @returns The processed output.\n */\n abstract outputProcessor(input: InferInteropZodOutput<T>): Promise<Y>;\n\n async parse(text: string): Promise<Y> {\n let parsedInput;\n try {\n parsedInput = await this.structuredInputParser.parse(text);\n } catch (e) {\n throw new OutputParserException(\n `Failed to parse. Text: \"${text}\". Error: ${e}`,\n text\n );\n }\n\n return this.outputProcessor(parsedInput);\n }\n\n getFormatInstructions(): string {\n return this.structuredInputParser.getFormatInstructions();\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.cjs","names":["BaseOutputParser","isBaseMessageChunk","ChatGenerationChunk","isBaseMessage","convertToChunk","GenerationChunk"],"sources":["../../src/output_parsers/transform.ts"],"sourcesContent":["import { deepCompareStrict } from \"@cfworker/json-schema\";\nimport { BaseOutputParser } from \"./base.js\";\nimport {\n type BaseMessage,\n isBaseMessage,\n isBaseMessageChunk,\n} from \"../messages/base.js\";\nimport { convertToChunk } from \"../messages/utils.js\";\nimport type { BaseCallbackConfig } from \"../callbacks/manager.js\";\nimport {\n type Generation,\n type ChatGeneration,\n GenerationChunk,\n ChatGenerationChunk,\n} from \"../outputs.js\";\n\n/**\n * Class to parse the output of an LLM call that also allows streaming inputs.\n */\nexport abstract class BaseTransformOutputParser<\n T = unknown,\n> extends BaseOutputParser<T> {\n async *_transform(\n inputGenerator: AsyncGenerator<string | BaseMessage>\n ): AsyncGenerator<T> {\n for await (const chunk of inputGenerator) {\n if (typeof chunk === \"string\") {\n yield this.parseResult([{ text: chunk }]);\n } else {\n yield this.parseResult([\n {\n message: chunk,\n text: this._baseMessageToString(chunk),\n },\n ]);\n }\n }\n }\n\n /**\n * Transforms an asynchronous generator of input into an asynchronous\n * generator of parsed output.\n * @param inputGenerator An asynchronous generator of input.\n * @param options A configuration object.\n * @returns An asynchronous generator of parsed output.\n */\n async *transform(\n inputGenerator: AsyncGenerator<string | BaseMessage>,\n options: BaseCallbackConfig\n ): AsyncGenerator<T> {\n yield* this._transformStreamWithConfig(\n inputGenerator,\n this._transform.bind(this),\n {\n ...options,\n runType: \"parser\",\n }\n );\n }\n}\n\nexport type BaseCumulativeTransformOutputParserInput = { diff?: boolean };\n\n/**\n * A base class for output parsers that can handle streaming input. It\n * extends the `BaseTransformOutputParser` class and provides a method for\n * converting parsed outputs into a diff format.\n */\nexport abstract class BaseCumulativeTransformOutputParser<\n T = unknown,\n> extends BaseTransformOutputParser<T> {\n protected diff = false;\n\n constructor(fields?: BaseCumulativeTransformOutputParserInput) {\n super(fields);\n this.diff = fields?.diff ?? this.diff;\n }\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n protected abstract _diff(prev: any | undefined, next: any): any;\n\n abstract parsePartialResult(\n generations: Generation[] | ChatGeneration[]\n ): Promise<T | undefined>;\n\n async *_transform(\n inputGenerator: AsyncGenerator<string | BaseMessage>\n ): AsyncGenerator<T> {\n let prevParsed: T | undefined;\n let accGen: GenerationChunk | undefined;\n for await (const chunk of inputGenerator) {\n if (typeof chunk !== \"string\" && typeof chunk.content !== \"string\") {\n throw new Error(\"Cannot handle non-string output.\");\n }\n let chunkGen: GenerationChunk;\n if (isBaseMessageChunk(chunk)) {\n if (typeof chunk.content !== \"string\") {\n throw new Error(\"Cannot handle non-string message output.\");\n }\n chunkGen = new ChatGenerationChunk({\n message: chunk,\n text: chunk.content,\n });\n } else if (isBaseMessage(chunk)) {\n if (typeof chunk.content !== \"string\") {\n throw new Error(\"Cannot handle non-string message output.\");\n }\n chunkGen = new ChatGenerationChunk({\n message: convertToChunk(chunk),\n text: chunk.content,\n });\n } else {\n chunkGen = new GenerationChunk({ text: chunk });\n }\n\n if (accGen === undefined) {\n accGen = chunkGen;\n } else {\n accGen = accGen.concat(chunkGen);\n }\n\n const parsed = await this.parsePartialResult([accGen]);\n if (\n parsed !== undefined &&\n parsed !== null &&\n !deepCompareStrict(parsed, prevParsed)\n ) {\n if (this.diff) {\n yield this._diff(prevParsed, parsed);\n } else {\n yield parsed;\n }\n prevParsed = parsed;\n }\n }\n }\n\n getFormatInstructions(): string {\n return \"\";\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform.cjs","names":["BaseOutputParser","isBaseMessageChunk","ChatGenerationChunk","isBaseMessage","convertToChunk","GenerationChunk"],"sources":["../../src/output_parsers/transform.ts"],"sourcesContent":["import { deepCompareStrict } from \"@cfworker/json-schema\";\nimport { BaseOutputParser } from \"./base.js\";\nimport {\n type BaseMessage,\n isBaseMessage,\n isBaseMessageChunk,\n} from \"../messages/base.js\";\nimport { convertToChunk } from \"../messages/utils.js\";\nimport type { BaseCallbackConfig } from \"../callbacks/manager.js\";\nimport {\n type Generation,\n type ChatGeneration,\n GenerationChunk,\n ChatGenerationChunk,\n} from \"../outputs.js\";\n\n/**\n * Class to parse the output of an LLM call that also allows streaming inputs.\n */\nexport abstract class BaseTransformOutputParser<\n T = unknown,\n> extends BaseOutputParser<T> {\n async *_transform(\n inputGenerator: AsyncGenerator<string | BaseMessage>\n ): AsyncGenerator<T> {\n for await (const chunk of inputGenerator) {\n if (typeof chunk === \"string\") {\n yield this.parseResult([{ text: chunk }]);\n } else {\n yield this.parseResult([\n {\n message: chunk,\n text: this._baseMessageToString(chunk),\n },\n ]);\n }\n }\n }\n\n /**\n * Transforms an asynchronous generator of input into an asynchronous\n * generator of parsed output.\n * @param inputGenerator An asynchronous generator of input.\n * @param options A configuration object.\n * @returns An asynchronous generator of parsed output.\n */\n async *transform(\n inputGenerator: AsyncGenerator<string | BaseMessage>,\n options: BaseCallbackConfig\n ): AsyncGenerator<T> {\n yield* this._transformStreamWithConfig(\n inputGenerator,\n this._transform.bind(this),\n {\n ...options,\n runType: \"parser\",\n }\n );\n }\n}\n\nexport type BaseCumulativeTransformOutputParserInput = { diff?: boolean };\n\n/**\n * A base class for output parsers that can handle streaming input. It\n * extends the `BaseTransformOutputParser` class and provides a method for\n * converting parsed outputs into a diff format.\n */\nexport abstract class BaseCumulativeTransformOutputParser<\n T = unknown,\n> extends BaseTransformOutputParser<T> {\n protected diff = false;\n\n constructor(fields?: BaseCumulativeTransformOutputParserInput) {\n super(fields);\n this.diff = fields?.diff ?? this.diff;\n }\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n protected abstract _diff(prev: any | undefined, next: any): any;\n\n abstract parsePartialResult(\n generations: Generation[] | ChatGeneration[]\n ): Promise<T | undefined>;\n\n async *_transform(\n inputGenerator: AsyncGenerator<string | BaseMessage>\n ): AsyncGenerator<T> {\n let prevParsed: T | undefined;\n let accGen: GenerationChunk | undefined;\n for await (const chunk of inputGenerator) {\n if (typeof chunk !== \"string\" && typeof chunk.content !== \"string\") {\n throw new Error(\"Cannot handle non-string output.\");\n }\n let chunkGen: GenerationChunk;\n if (isBaseMessageChunk(chunk)) {\n if (typeof chunk.content !== \"string\") {\n throw new Error(\"Cannot handle non-string message output.\");\n }\n chunkGen = new ChatGenerationChunk({\n message: chunk,\n text: chunk.content,\n });\n } else if (isBaseMessage(chunk)) {\n if (typeof chunk.content !== \"string\") {\n throw new Error(\"Cannot handle non-string message output.\");\n }\n chunkGen = new ChatGenerationChunk({\n message: convertToChunk(chunk),\n text: chunk.content,\n });\n } else {\n chunkGen = new GenerationChunk({ text: chunk });\n }\n\n if (accGen === undefined) {\n accGen = chunkGen;\n } else {\n accGen = accGen.concat(chunkGen);\n }\n\n const parsed = await this.parsePartialResult([accGen]);\n if (\n parsed !== undefined &&\n parsed !== null &&\n !deepCompareStrict(parsed, prevParsed)\n ) {\n if (this.diff) {\n yield this._diff(prevParsed, parsed);\n } else {\n yield parsed;\n }\n prevParsed = parsed;\n }\n }\n }\n\n getFormatInstructions(): string {\n return \"\";\n }\n}\n"],"mappings":";;;;;;;;;AAmBA,IAAsB,4BAAtB,cAEUA,eAAAA,iBAAoB;CAC5B,OAAO,WACL,gBACmB;EACnB,WAAW,MAAM,SAAS,gBACxB,IAAI,OAAO,UAAU,UACnB,MAAM,KAAK,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC;OAExC,MAAM,KAAK,YAAY,CACrB;GACE,SAAS;GACT,MAAM,KAAK,qBAAqB,KAAK;EACvC,CACF,CAAC;CAGP;;;;;;;;CASA,OAAO,UACL,gBACA,SACmB;EACnB,OAAO,KAAK,2BACV,gBACA,KAAK,WAAW,KAAK,IAAI,GACzB;GACE,GAAG;GACH,SAAS;EACX,CACF;CACF;AACF;;;;;;AASA,IAAsB,sCAAtB,cAEU,0BAA6B;CACrC,OAAiB;CAEjB,YAAY,QAAmD;EAC7D,MAAM,MAAM;EACZ,KAAK,OAAO,QAAQ,QAAQ,KAAK;CACnC;CASA,OAAO,WACL,gBACmB;EACnB,IAAI;EACJ,IAAI;EACJ,WAAW,MAAM,SAAS,gBAAgB;GACxC,IAAI,OAAO,UAAU,YAAY,OAAO,MAAM,YAAY,UACxD,MAAM,IAAI,MAAM,kCAAkC;GAEpD,IAAI;GACJ,IAAIC,aAAAA,mBAAmB,KAAK,GAAG;IAC7B,IAAI,OAAO,MAAM,YAAY,UAC3B,MAAM,IAAI,MAAM,0CAA0C;IAE5D,WAAW,IAAIC,gBAAAA,oBAAoB;KACjC,SAAS;KACT,MAAM,MAAM;IACd,CAAC;GACH,OAAO,IAAIC,aAAAA,cAAc,KAAK,GAAG;IAC/B,IAAI,OAAO,MAAM,YAAY,UAC3B,MAAM,IAAI,MAAM,0CAA0C;IAE5D,WAAW,IAAID,gBAAAA,oBAAoB;KACjC,SAASE,cAAAA,eAAe,KAAK;KAC7B,MAAM,MAAM;IACd,CAAC;GACH,OACE,WAAW,IAAIC,gBAAAA,gBAAgB,EAAE,MAAM,MAAM,CAAC;GAGhD,IAAI,WAAW,KAAA,GACb,SAAS;QAET,SAAS,OAAO,OAAO,QAAQ;GAGjC,MAAM,SAAS,MAAM,KAAK,mBAAmB,CAAC,MAAM,CAAC;GACrD,IACE,WAAW,KAAA,KACX,WAAW,QACX,EAAA,GAAA,sBAAA,kBAAA,CAAmB,QAAQ,UAAU,GACrC;IACA,IAAI,KAAK,MACP,MAAM,KAAK,MAAM,YAAY,MAAM;SAEnC,MAAM;IAER,aAAa;GACf;EACF;CACF;CAEA,wBAAgC;EAC9B,OAAO;CACT;AACF"}
|
|
@@ -2,7 +2,6 @@ import { BaseMessage } from "../messages/base.cjs";
|
|
|
2
2
|
import { ChatGeneration, Generation } from "../outputs.cjs";
|
|
3
3
|
import { BaseCallbackConfig } from "../callbacks/manager.cjs";
|
|
4
4
|
import { BaseOutputParser } from "./base.cjs";
|
|
5
|
-
|
|
6
5
|
//#region src/output_parsers/transform.d.ts
|
|
7
6
|
/**
|
|
8
7
|
* Class to parse the output of an LLM call that also allows streaming inputs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.cts","names":[],"sources":["../../src/output_parsers/transform.ts"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"transform.d.cts","names":[],"sources":["../../src/output_parsers/transform.ts"],"mappings":";;;;;;;;uBAmBsB,0BACpB,qBACQ,iBAAiB;EAClB,WACL,gBAAgB,wBAAwB,eACvC,eAAe;;;;;;;;EAsBX,UACL,gBAAgB,wBAAwB,cACxC,SAAS,qBACR,eAAe;;KAYR;EAA6C;;;;;;;uBAOnC,oCACpB,qBACQ,0BAA0B;YACxB;EAEV,YAAY,SAAS;qBAMF,MAAM,uBAAuB;WAEvC,mBACP,aAAa,eAAe,mBAC3B,QAAQ;EAEJ,WACL,gBAAgB,wBAAwB,eACvC,eAAe;EAkDlB"}
|
|
@@ -2,7 +2,6 @@ import { BaseMessage } from "../messages/base.js";
|
|
|
2
2
|
import { ChatGeneration, Generation } from "../outputs.js";
|
|
3
3
|
import { BaseCallbackConfig } from "../callbacks/manager.js";
|
|
4
4
|
import { BaseOutputParser } from "./base.js";
|
|
5
|
-
|
|
6
5
|
//#region src/output_parsers/transform.d.ts
|
|
7
6
|
/**
|
|
8
7
|
* Class to parse the output of an LLM call that also allows streaming inputs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","names":[],"sources":["../../src/output_parsers/transform.ts"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"transform.d.ts","names":[],"sources":["../../src/output_parsers/transform.ts"],"mappings":";;;;;;;;uBAmBsB,0BACpB,qBACQ,iBAAiB;EAClB,WACL,gBAAgB,wBAAwB,eACvC,eAAe;;;;;;;;EAsBX,UACL,gBAAgB,wBAAwB,cACxC,SAAS,qBACR,eAAe;;KAYR;EAA6C;;;;;;;uBAOnC,oCACpB,qBACQ,0BAA0B;YACxB;EAEV,YAAY,SAAS;qBAMF,MAAM,uBAAuB;WAEvC,mBACP,aAAa,eAAe,mBAC3B,QAAQ;EAEJ,WACL,gBAAgB,wBAAwB,eACvC,eAAe;EAkDlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","names":[],"sources":["../../src/output_parsers/transform.ts"],"sourcesContent":["import { deepCompareStrict } from \"@cfworker/json-schema\";\nimport { BaseOutputParser } from \"./base.js\";\nimport {\n type BaseMessage,\n isBaseMessage,\n isBaseMessageChunk,\n} from \"../messages/base.js\";\nimport { convertToChunk } from \"../messages/utils.js\";\nimport type { BaseCallbackConfig } from \"../callbacks/manager.js\";\nimport {\n type Generation,\n type ChatGeneration,\n GenerationChunk,\n ChatGenerationChunk,\n} from \"../outputs.js\";\n\n/**\n * Class to parse the output of an LLM call that also allows streaming inputs.\n */\nexport abstract class BaseTransformOutputParser<\n T = unknown,\n> extends BaseOutputParser<T> {\n async *_transform(\n inputGenerator: AsyncGenerator<string | BaseMessage>\n ): AsyncGenerator<T> {\n for await (const chunk of inputGenerator) {\n if (typeof chunk === \"string\") {\n yield this.parseResult([{ text: chunk }]);\n } else {\n yield this.parseResult([\n {\n message: chunk,\n text: this._baseMessageToString(chunk),\n },\n ]);\n }\n }\n }\n\n /**\n * Transforms an asynchronous generator of input into an asynchronous\n * generator of parsed output.\n * @param inputGenerator An asynchronous generator of input.\n * @param options A configuration object.\n * @returns An asynchronous generator of parsed output.\n */\n async *transform(\n inputGenerator: AsyncGenerator<string | BaseMessage>,\n options: BaseCallbackConfig\n ): AsyncGenerator<T> {\n yield* this._transformStreamWithConfig(\n inputGenerator,\n this._transform.bind(this),\n {\n ...options,\n runType: \"parser\",\n }\n );\n }\n}\n\nexport type BaseCumulativeTransformOutputParserInput = { diff?: boolean };\n\n/**\n * A base class for output parsers that can handle streaming input. It\n * extends the `BaseTransformOutputParser` class and provides a method for\n * converting parsed outputs into a diff format.\n */\nexport abstract class BaseCumulativeTransformOutputParser<\n T = unknown,\n> extends BaseTransformOutputParser<T> {\n protected diff = false;\n\n constructor(fields?: BaseCumulativeTransformOutputParserInput) {\n super(fields);\n this.diff = fields?.diff ?? this.diff;\n }\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n protected abstract _diff(prev: any | undefined, next: any): any;\n\n abstract parsePartialResult(\n generations: Generation[] | ChatGeneration[]\n ): Promise<T | undefined>;\n\n async *_transform(\n inputGenerator: AsyncGenerator<string | BaseMessage>\n ): AsyncGenerator<T> {\n let prevParsed: T | undefined;\n let accGen: GenerationChunk | undefined;\n for await (const chunk of inputGenerator) {\n if (typeof chunk !== \"string\" && typeof chunk.content !== \"string\") {\n throw new Error(\"Cannot handle non-string output.\");\n }\n let chunkGen: GenerationChunk;\n if (isBaseMessageChunk(chunk)) {\n if (typeof chunk.content !== \"string\") {\n throw new Error(\"Cannot handle non-string message output.\");\n }\n chunkGen = new ChatGenerationChunk({\n message: chunk,\n text: chunk.content,\n });\n } else if (isBaseMessage(chunk)) {\n if (typeof chunk.content !== \"string\") {\n throw new Error(\"Cannot handle non-string message output.\");\n }\n chunkGen = new ChatGenerationChunk({\n message: convertToChunk(chunk),\n text: chunk.content,\n });\n } else {\n chunkGen = new GenerationChunk({ text: chunk });\n }\n\n if (accGen === undefined) {\n accGen = chunkGen;\n } else {\n accGen = accGen.concat(chunkGen);\n }\n\n const parsed = await this.parsePartialResult([accGen]);\n if (\n parsed !== undefined &&\n parsed !== null &&\n !deepCompareStrict(parsed, prevParsed)\n ) {\n if (this.diff) {\n yield this._diff(prevParsed, parsed);\n } else {\n yield parsed;\n }\n prevParsed = parsed;\n }\n }\n }\n\n getFormatInstructions(): string {\n return \"\";\n }\n}\n"],"mappings":";;;;;;;;;AAmBA,IAAsB,4BAAtB,cAEU,iBAAoB;CAC5B,OAAO,WACL,gBACmB;
|
|
1
|
+
{"version":3,"file":"transform.js","names":[],"sources":["../../src/output_parsers/transform.ts"],"sourcesContent":["import { deepCompareStrict } from \"@cfworker/json-schema\";\nimport { BaseOutputParser } from \"./base.js\";\nimport {\n type BaseMessage,\n isBaseMessage,\n isBaseMessageChunk,\n} from \"../messages/base.js\";\nimport { convertToChunk } from \"../messages/utils.js\";\nimport type { BaseCallbackConfig } from \"../callbacks/manager.js\";\nimport {\n type Generation,\n type ChatGeneration,\n GenerationChunk,\n ChatGenerationChunk,\n} from \"../outputs.js\";\n\n/**\n * Class to parse the output of an LLM call that also allows streaming inputs.\n */\nexport abstract class BaseTransformOutputParser<\n T = unknown,\n> extends BaseOutputParser<T> {\n async *_transform(\n inputGenerator: AsyncGenerator<string | BaseMessage>\n ): AsyncGenerator<T> {\n for await (const chunk of inputGenerator) {\n if (typeof chunk === \"string\") {\n yield this.parseResult([{ text: chunk }]);\n } else {\n yield this.parseResult([\n {\n message: chunk,\n text: this._baseMessageToString(chunk),\n },\n ]);\n }\n }\n }\n\n /**\n * Transforms an asynchronous generator of input into an asynchronous\n * generator of parsed output.\n * @param inputGenerator An asynchronous generator of input.\n * @param options A configuration object.\n * @returns An asynchronous generator of parsed output.\n */\n async *transform(\n inputGenerator: AsyncGenerator<string | BaseMessage>,\n options: BaseCallbackConfig\n ): AsyncGenerator<T> {\n yield* this._transformStreamWithConfig(\n inputGenerator,\n this._transform.bind(this),\n {\n ...options,\n runType: \"parser\",\n }\n );\n }\n}\n\nexport type BaseCumulativeTransformOutputParserInput = { diff?: boolean };\n\n/**\n * A base class for output parsers that can handle streaming input. It\n * extends the `BaseTransformOutputParser` class and provides a method for\n * converting parsed outputs into a diff format.\n */\nexport abstract class BaseCumulativeTransformOutputParser<\n T = unknown,\n> extends BaseTransformOutputParser<T> {\n protected diff = false;\n\n constructor(fields?: BaseCumulativeTransformOutputParserInput) {\n super(fields);\n this.diff = fields?.diff ?? this.diff;\n }\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n protected abstract _diff(prev: any | undefined, next: any): any;\n\n abstract parsePartialResult(\n generations: Generation[] | ChatGeneration[]\n ): Promise<T | undefined>;\n\n async *_transform(\n inputGenerator: AsyncGenerator<string | BaseMessage>\n ): AsyncGenerator<T> {\n let prevParsed: T | undefined;\n let accGen: GenerationChunk | undefined;\n for await (const chunk of inputGenerator) {\n if (typeof chunk !== \"string\" && typeof chunk.content !== \"string\") {\n throw new Error(\"Cannot handle non-string output.\");\n }\n let chunkGen: GenerationChunk;\n if (isBaseMessageChunk(chunk)) {\n if (typeof chunk.content !== \"string\") {\n throw new Error(\"Cannot handle non-string message output.\");\n }\n chunkGen = new ChatGenerationChunk({\n message: chunk,\n text: chunk.content,\n });\n } else if (isBaseMessage(chunk)) {\n if (typeof chunk.content !== \"string\") {\n throw new Error(\"Cannot handle non-string message output.\");\n }\n chunkGen = new ChatGenerationChunk({\n message: convertToChunk(chunk),\n text: chunk.content,\n });\n } else {\n chunkGen = new GenerationChunk({ text: chunk });\n }\n\n if (accGen === undefined) {\n accGen = chunkGen;\n } else {\n accGen = accGen.concat(chunkGen);\n }\n\n const parsed = await this.parsePartialResult([accGen]);\n if (\n parsed !== undefined &&\n parsed !== null &&\n !deepCompareStrict(parsed, prevParsed)\n ) {\n if (this.diff) {\n yield this._diff(prevParsed, parsed);\n } else {\n yield parsed;\n }\n prevParsed = parsed;\n }\n }\n }\n\n getFormatInstructions(): string {\n return \"\";\n }\n}\n"],"mappings":";;;;;;;;;AAmBA,IAAsB,4BAAtB,cAEU,iBAAoB;CAC5B,OAAO,WACL,gBACmB;EACnB,WAAW,MAAM,SAAS,gBACxB,IAAI,OAAO,UAAU,UACnB,MAAM,KAAK,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC;OAExC,MAAM,KAAK,YAAY,CACrB;GACE,SAAS;GACT,MAAM,KAAK,qBAAqB,KAAK;EACvC,CACF,CAAC;CAGP;;;;;;;;CASA,OAAO,UACL,gBACA,SACmB;EACnB,OAAO,KAAK,2BACV,gBACA,KAAK,WAAW,KAAK,IAAI,GACzB;GACE,GAAG;GACH,SAAS;EACX,CACF;CACF;AACF;;;;;;AASA,IAAsB,sCAAtB,cAEU,0BAA6B;CACrC,OAAiB;CAEjB,YAAY,QAAmD;EAC7D,MAAM,MAAM;EACZ,KAAK,OAAO,QAAQ,QAAQ,KAAK;CACnC;CASA,OAAO,WACL,gBACmB;EACnB,IAAI;EACJ,IAAI;EACJ,WAAW,MAAM,SAAS,gBAAgB;GACxC,IAAI,OAAO,UAAU,YAAY,OAAO,MAAM,YAAY,UACxD,MAAM,IAAI,MAAM,kCAAkC;GAEpD,IAAI;GACJ,IAAI,mBAAmB,KAAK,GAAG;IAC7B,IAAI,OAAO,MAAM,YAAY,UAC3B,MAAM,IAAI,MAAM,0CAA0C;IAE5D,WAAW,IAAI,oBAAoB;KACjC,SAAS;KACT,MAAM,MAAM;IACd,CAAC;GACH,OAAO,IAAI,cAAc,KAAK,GAAG;IAC/B,IAAI,OAAO,MAAM,YAAY,UAC3B,MAAM,IAAI,MAAM,0CAA0C;IAE5D,WAAW,IAAI,oBAAoB;KACjC,SAAS,eAAe,KAAK;KAC7B,MAAM,MAAM;IACd,CAAC;GACH,OACE,WAAW,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAC;GAGhD,IAAI,WAAW,KAAA,GACb,SAAS;QAET,SAAS,OAAO,OAAO,QAAQ;GAGjC,MAAM,SAAS,MAAM,KAAK,mBAAmB,CAAC,MAAM,CAAC;GACrD,IACE,WAAW,KAAA,KACX,WAAW,QACX,CAAC,kBAAkB,QAAQ,UAAU,GACrC;IACA,IAAI,KAAK,MACP,MAAM,KAAK,MAAM,YAAY,MAAM;SAEnC,MAAM;IAER,aAAa;GACf;EACF;CACF;CAEA,wBAAgC;EAC9B,OAAO;CACT;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml.cjs","names":["BaseCumulativeTransformOutputParser","compare","sax"],"sources":["../../src/output_parsers/xml.ts"],"sourcesContent":["import {\n BaseCumulativeTransformOutputParser,\n BaseCumulativeTransformOutputParserInput,\n} from \"./transform.js\";\nimport { Operation, compare } from \"../utils/json_patch.js\";\nimport { sax } from \"../utils/sax-js/sax.js\";\nimport { ChatGeneration, Generation } from \"../outputs.js\";\n\nexport const XML_FORMAT_INSTRUCTIONS = `The output should be formatted as a XML file.\n1. Output should conform to the tags below.\n2. If tags are not given, make them on your own.\n3. Remember to always open and close all the tags.\n\nAs an example, for the tags [\"foo\", \"bar\", \"baz\"]:\n1. String \"<foo>\\n <bar>\\n <baz></baz>\\n </bar>\\n</foo>\" is a well-formatted instance of the schema.\n2. String \"<foo>\\n <bar>\\n </foo>\" is a badly-formatted instance.\n3. String \"<foo>\\n <tag>\\n </tag>\\n</foo>\" is a badly-formatted instance.\n\nHere are the output tags:\n\\`\\`\\`\n{tags}\n\\`\\`\\``;\n\nexport interface XMLOutputParserFields extends BaseCumulativeTransformOutputParserInput {\n /**\n * Optional list of tags that the output should conform to.\n * Only used in formatting of the prompt.\n */\n tags?: string[];\n}\n\nexport type Content = string | undefined | Array<{ [key: string]: Content }>;\n\nexport type XMLResult = {\n [key: string]: Content;\n};\n\nexport class XMLOutputParser extends BaseCumulativeTransformOutputParser<XMLResult> {\n tags?: string[];\n\n constructor(fields?: XMLOutputParserFields) {\n super(fields);\n\n this.tags = fields?.tags;\n }\n\n static lc_name() {\n return \"XMLOutputParser\";\n }\n\n lc_namespace = [\"langchain_core\", \"output_parsers\"];\n\n lc_serializable = true;\n\n protected _diff(\n prev: unknown | undefined,\n next: unknown\n ): Operation[] | undefined {\n if (!next) {\n return undefined;\n }\n if (!prev) {\n return [{ op: \"replace\", path: \"\", value: next }];\n }\n return compare(prev, next);\n }\n\n async parsePartialResult(\n generations: ChatGeneration[] | Generation[]\n ): Promise<XMLResult | undefined> {\n return parseXMLMarkdown(generations[0].text);\n }\n\n async parse(text: string): Promise<XMLResult> {\n return parseXMLMarkdown(text);\n }\n\n getFormatInstructions(): string {\n const withTags = !!(this.tags && this.tags.length > 0);\n return withTags\n ? XML_FORMAT_INSTRUCTIONS.replace(\"{tags}\", this.tags?.join(\", \") ?? \"\")\n : XML_FORMAT_INSTRUCTIONS;\n }\n}\n\nconst strip = (text: string) =>\n text\n .split(\"\\n\")\n .map((line) => line.replace(/^\\s+/, \"\"))\n .join(\"\\n\")\n .trim();\n\ntype ParsedResult = {\n name: string;\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n attributes: Record<string, any>;\n children: Array<ParsedResult>;\n text?: string;\n isSelfClosing: boolean;\n};\n\nconst parseParsedResult = (input: ParsedResult): XMLResult => {\n if (Object.keys(input).length === 0) {\n return {};\n }\n const result: XMLResult = {};\n if (input.children.length > 0) {\n result[input.name] = input.children.map(parseParsedResult);\n return result;\n } else {\n result[input.name] = input.text ?? undefined;\n return result;\n }\n};\n\nexport function parseXMLMarkdown(s: string): XMLResult {\n const cleanedString = strip(s);\n const parser = sax.parser(true);\n let parsedResult: ParsedResult = {} as ParsedResult;\n const elementStack: ParsedResult[] = [];\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n parser.onopentag = (node: any) => {\n const element = {\n name: node.name,\n attributes: node.attributes,\n children: [],\n text: \"\",\n isSelfClosing: node.isSelfClosing,\n };\n\n if (elementStack.length > 0) {\n const parentElement = elementStack[elementStack.length - 1];\n parentElement.children.push(element);\n } else {\n parsedResult = element as ParsedResult;\n }\n\n if (!node.isSelfClosing) {\n elementStack.push(element);\n }\n };\n\n parser.onclosetag = () => {\n if (elementStack.length > 0) {\n const lastElement = elementStack.pop();\n if (elementStack.length === 0 && lastElement) {\n parsedResult = lastElement as ParsedResult;\n }\n }\n };\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n parser.ontext = (text: any) => {\n if (elementStack.length > 0) {\n const currentElement = elementStack[elementStack.length - 1];\n currentElement.text += text;\n }\n };\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n parser.onattribute = (attr: any) => {\n if (elementStack.length > 0) {\n const currentElement = elementStack[elementStack.length - 1];\n currentElement.attributes[attr.name] = attr.value;\n }\n };\n\n // Try to find XML string within triple backticks.\n const match = /```(xml)?(.*)```/s.exec(cleanedString);\n const xmlString = match ? match[2] : cleanedString;\n parser.write(xmlString).close();\n\n // Remove the XML declaration if present\n if (parsedResult && parsedResult.name === \"?xml\") {\n parsedResult = parsedResult.children[0] as ParsedResult;\n }\n\n return parseParsedResult(parsedResult);\n}\n"],"mappings":";;;;;AAQA,MAAa,0BAA0B;;;;;;;;;;;;;;AA6BvC,IAAa,kBAAb,cAAqCA,kBAAAA,oCAA+C;CAClF;CAEA,YAAY,QAAgC;
|
|
1
|
+
{"version":3,"file":"xml.cjs","names":["BaseCumulativeTransformOutputParser","compare","sax"],"sources":["../../src/output_parsers/xml.ts"],"sourcesContent":["import {\n BaseCumulativeTransformOutputParser,\n BaseCumulativeTransformOutputParserInput,\n} from \"./transform.js\";\nimport { Operation, compare } from \"../utils/json_patch.js\";\nimport { sax } from \"../utils/sax-js/sax.js\";\nimport { ChatGeneration, Generation } from \"../outputs.js\";\n\nexport const XML_FORMAT_INSTRUCTIONS = `The output should be formatted as a XML file.\n1. Output should conform to the tags below.\n2. If tags are not given, make them on your own.\n3. Remember to always open and close all the tags.\n\nAs an example, for the tags [\"foo\", \"bar\", \"baz\"]:\n1. String \"<foo>\\n <bar>\\n <baz></baz>\\n </bar>\\n</foo>\" is a well-formatted instance of the schema.\n2. String \"<foo>\\n <bar>\\n </foo>\" is a badly-formatted instance.\n3. String \"<foo>\\n <tag>\\n </tag>\\n</foo>\" is a badly-formatted instance.\n\nHere are the output tags:\n\\`\\`\\`\n{tags}\n\\`\\`\\``;\n\nexport interface XMLOutputParserFields extends BaseCumulativeTransformOutputParserInput {\n /**\n * Optional list of tags that the output should conform to.\n * Only used in formatting of the prompt.\n */\n tags?: string[];\n}\n\nexport type Content = string | undefined | Array<{ [key: string]: Content }>;\n\nexport type XMLResult = {\n [key: string]: Content;\n};\n\nexport class XMLOutputParser extends BaseCumulativeTransformOutputParser<XMLResult> {\n tags?: string[];\n\n constructor(fields?: XMLOutputParserFields) {\n super(fields);\n\n this.tags = fields?.tags;\n }\n\n static lc_name() {\n return \"XMLOutputParser\";\n }\n\n lc_namespace = [\"langchain_core\", \"output_parsers\"];\n\n lc_serializable = true;\n\n protected _diff(\n prev: unknown | undefined,\n next: unknown\n ): Operation[] | undefined {\n if (!next) {\n return undefined;\n }\n if (!prev) {\n return [{ op: \"replace\", path: \"\", value: next }];\n }\n return compare(prev, next);\n }\n\n async parsePartialResult(\n generations: ChatGeneration[] | Generation[]\n ): Promise<XMLResult | undefined> {\n return parseXMLMarkdown(generations[0].text);\n }\n\n async parse(text: string): Promise<XMLResult> {\n return parseXMLMarkdown(text);\n }\n\n getFormatInstructions(): string {\n const withTags = !!(this.tags && this.tags.length > 0);\n return withTags\n ? XML_FORMAT_INSTRUCTIONS.replace(\"{tags}\", this.tags?.join(\", \") ?? \"\")\n : XML_FORMAT_INSTRUCTIONS;\n }\n}\n\nconst strip = (text: string) =>\n text\n .split(\"\\n\")\n .map((line) => line.replace(/^\\s+/, \"\"))\n .join(\"\\n\")\n .trim();\n\ntype ParsedResult = {\n name: string;\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n attributes: Record<string, any>;\n children: Array<ParsedResult>;\n text?: string;\n isSelfClosing: boolean;\n};\n\nconst parseParsedResult = (input: ParsedResult): XMLResult => {\n if (Object.keys(input).length === 0) {\n return {};\n }\n const result: XMLResult = {};\n if (input.children.length > 0) {\n result[input.name] = input.children.map(parseParsedResult);\n return result;\n } else {\n result[input.name] = input.text ?? undefined;\n return result;\n }\n};\n\nexport function parseXMLMarkdown(s: string): XMLResult {\n const cleanedString = strip(s);\n const parser = sax.parser(true);\n let parsedResult: ParsedResult = {} as ParsedResult;\n const elementStack: ParsedResult[] = [];\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n parser.onopentag = (node: any) => {\n const element = {\n name: node.name,\n attributes: node.attributes,\n children: [],\n text: \"\",\n isSelfClosing: node.isSelfClosing,\n };\n\n if (elementStack.length > 0) {\n const parentElement = elementStack[elementStack.length - 1];\n parentElement.children.push(element);\n } else {\n parsedResult = element as ParsedResult;\n }\n\n if (!node.isSelfClosing) {\n elementStack.push(element);\n }\n };\n\n parser.onclosetag = () => {\n if (elementStack.length > 0) {\n const lastElement = elementStack.pop();\n if (elementStack.length === 0 && lastElement) {\n parsedResult = lastElement as ParsedResult;\n }\n }\n };\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n parser.ontext = (text: any) => {\n if (elementStack.length > 0) {\n const currentElement = elementStack[elementStack.length - 1];\n currentElement.text += text;\n }\n };\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n parser.onattribute = (attr: any) => {\n if (elementStack.length > 0) {\n const currentElement = elementStack[elementStack.length - 1];\n currentElement.attributes[attr.name] = attr.value;\n }\n };\n\n // Try to find XML string within triple backticks.\n const match = /```(xml)?(.*)```/s.exec(cleanedString);\n const xmlString = match ? match[2] : cleanedString;\n parser.write(xmlString).close();\n\n // Remove the XML declaration if present\n if (parsedResult && parsedResult.name === \"?xml\") {\n parsedResult = parsedResult.children[0] as ParsedResult;\n }\n\n return parseParsedResult(parsedResult);\n}\n"],"mappings":";;;;;AAQA,MAAa,0BAA0B;;;;;;;;;;;;;;AA6BvC,IAAa,kBAAb,cAAqCA,kBAAAA,oCAA+C;CAClF;CAEA,YAAY,QAAgC;EAC1C,MAAM,MAAM;EAEZ,KAAK,OAAO,QAAQ;CACtB;CAEA,OAAO,UAAU;EACf,OAAO;CACT;CAEA,eAAe,CAAC,kBAAkB,gBAAgB;CAElD,kBAAkB;CAElB,MACE,MACA,MACyB;EACzB,IAAI,CAAC,MACH;EAEF,IAAI,CAAC,MACH,OAAO,CAAC;GAAE,IAAI;GAAW,MAAM;GAAI,OAAO;EAAK,CAAC;EAElD,OAAOC,eAAAA,QAAQ,MAAM,IAAI;CAC3B;CAEA,MAAM,mBACJ,aACgC;EAChC,OAAO,iBAAiB,YAAY,EAAE,CAAC,IAAI;CAC7C;CAEA,MAAM,MAAM,MAAkC;EAC5C,OAAO,iBAAiB,IAAI;CAC9B;CAEA,wBAAgC;EAE9B,OAAO,CADW,EAAE,KAAK,QAAQ,KAAK,KAAK,SAAS,KAEhD,wBAAwB,QAAQ,UAAU,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,IACrE;CACN;AACF;AAEA,MAAM,SAAS,SACb,KACG,MAAM,IAAI,CAAC,CACX,KAAK,SAAS,KAAK,QAAQ,QAAQ,EAAE,CAAC,CAAC,CACvC,KAAK,IAAI,CAAC,CACV,KAAK;AAWV,MAAM,qBAAqB,UAAmC;CAC5D,IAAI,OAAO,KAAK,KAAK,CAAC,CAAC,WAAW,GAChC,OAAO,CAAC;CAEV,MAAM,SAAoB,CAAC;CAC3B,IAAI,MAAM,SAAS,SAAS,GAAG;EAC7B,OAAO,MAAM,QAAQ,MAAM,SAAS,IAAI,iBAAiB;EACzD,OAAO;CACT,OAAO;EACL,OAAO,MAAM,QAAQ,MAAM,QAAQ,KAAA;EACnC,OAAO;CACT;AACF;AAEA,SAAgB,iBAAiB,GAAsB;CACrD,MAAM,gBAAgB,MAAM,CAAC;CAC7B,MAAM,SAASC,YAAAA,IAAI,OAAO,IAAI;CAC9B,IAAI,eAA6B,CAAC;CAClC,MAAM,eAA+B,CAAC;CAGtC,OAAO,aAAa,SAAc;EAChC,MAAM,UAAU;GACd,MAAM,KAAK;GACX,YAAY,KAAK;GACjB,UAAU,CAAC;GACX,MAAM;GACN,eAAe,KAAK;EACtB;EAEA,IAAI,aAAa,SAAS,GAExB,aADmC,aAAa,SAAS,EAC5C,CAAC,SAAS,KAAK,OAAO;OAEnC,eAAe;EAGjB,IAAI,CAAC,KAAK,eACR,aAAa,KAAK,OAAO;CAE7B;CAEA,OAAO,mBAAmB;EACxB,IAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,cAAc,aAAa,IAAI;GACrC,IAAI,aAAa,WAAW,KAAK,aAC/B,eAAe;EAEnB;CACF;CAGA,OAAO,UAAU,SAAc;EAC7B,IAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,iBAAiB,aAAa,aAAa,SAAS;GAC1D,eAAe,QAAQ;EACzB;CACF;CAGA,OAAO,eAAe,SAAc;EAClC,IAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,iBAAiB,aAAa,aAAa,SAAS;GAC1D,eAAe,WAAW,KAAK,QAAQ,KAAK;EAC9C;CACF;CAGA,MAAM,QAAQ,oBAAoB,KAAK,aAAa;CACpD,MAAM,YAAY,QAAQ,MAAM,KAAK;CACrC,OAAO,MAAM,SAAS,CAAC,CAAC,MAAM;CAG9B,IAAI,gBAAgB,aAAa,SAAS,QACxC,eAAe,aAAa,SAAS;CAGvC,OAAO,kBAAkB,YAAY;AACvC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ChatGeneration, Generation } from "../outputs.cjs";
|
|
2
2
|
import { Operation } from "../utils/fast-json-patch/src/core.cjs";
|
|
3
3
|
import { BaseCumulativeTransformOutputParser, BaseCumulativeTransformOutputParserInput } from "./transform.cjs";
|
|
4
|
-
|
|
5
4
|
//#region src/output_parsers/xml.d.ts
|
|
6
5
|
declare const XML_FORMAT_INSTRUCTIONS = "The output should be formatted as a XML file.\n1. Output should conform to the tags below.\n2. If tags are not given, make them on your own.\n3. Remember to always open and close all the tags.\n\nAs an example, for the tags [\"foo\", \"bar\", \"baz\"]:\n1. String \"<foo>\n <bar>\n <baz></baz>\n </bar>\n</foo>\" is a well-formatted instance of the schema.\n2. String \"<foo>\n <bar>\n </foo>\" is a badly-formatted instance.\n3. String \"<foo>\n <tag>\n </tag>\n</foo>\" is a badly-formatted instance.\n\nHere are the output tags:\n```\n{tags}\n```";
|
|
7
6
|
interface XMLOutputParserFields extends BaseCumulativeTransformOutputParserInput {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml.d.cts","names":[],"sources":["../../src/output_parsers/xml.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"xml.d.cts","names":[],"sources":["../../src/output_parsers/xml.ts"],"mappings":";;;;cAQa;UAeI,8BAA8B;;;;;EAK7C;;KAGU,+BAA+B;GAAS,cAAc;;KAEtD;GACT,cAAc;;cAGJ,wBAAwB,oCAAoC;EACvE;EAEA,YAAY,SAAS;SAMd;EAIP;EAEA;YAEU,MACR,2BACA,gBACC;EAUG,mBACJ,aAAa,mBAAmB,eAC/B,QAAQ;EAIL,MAAM,eAAe,QAAQ;EAInC;;iBAsCc,iBAAiB,YAAY"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ChatGeneration, Generation } from "../outputs.js";
|
|
2
2
|
import { Operation } from "../utils/fast-json-patch/src/core.js";
|
|
3
3
|
import { BaseCumulativeTransformOutputParser, BaseCumulativeTransformOutputParserInput } from "./transform.js";
|
|
4
|
-
|
|
5
4
|
//#region src/output_parsers/xml.d.ts
|
|
6
5
|
declare const XML_FORMAT_INSTRUCTIONS = "The output should be formatted as a XML file.\n1. Output should conform to the tags below.\n2. If tags are not given, make them on your own.\n3. Remember to always open and close all the tags.\n\nAs an example, for the tags [\"foo\", \"bar\", \"baz\"]:\n1. String \"<foo>\n <bar>\n <baz></baz>\n </bar>\n</foo>\" is a well-formatted instance of the schema.\n2. String \"<foo>\n <bar>\n </foo>\" is a badly-formatted instance.\n3. String \"<foo>\n <tag>\n </tag>\n</foo>\" is a badly-formatted instance.\n\nHere are the output tags:\n```\n{tags}\n```";
|
|
7
6
|
interface XMLOutputParserFields extends BaseCumulativeTransformOutputParserInput {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml.d.ts","names":[],"sources":["../../src/output_parsers/xml.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"xml.d.ts","names":[],"sources":["../../src/output_parsers/xml.ts"],"mappings":";;;;cAQa;UAeI,8BAA8B;;;;;EAK7C;;KAGU,+BAA+B;GAAS,cAAc;;KAEtD;GACT,cAAc;;cAGJ,wBAAwB,oCAAoC;EACvE;EAEA,YAAY,SAAS;SAMd;EAIP;EAEA;YAEU,MACR,2BACA,gBACC;EAUG,mBACJ,aAAa,mBAAmB,eAC/B,QAAQ;EAIL,MAAM,eAAe,QAAQ;EAInC;;iBAsCc,iBAAiB,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml.js","names":[],"sources":["../../src/output_parsers/xml.ts"],"sourcesContent":["import {\n BaseCumulativeTransformOutputParser,\n BaseCumulativeTransformOutputParserInput,\n} from \"./transform.js\";\nimport { Operation, compare } from \"../utils/json_patch.js\";\nimport { sax } from \"../utils/sax-js/sax.js\";\nimport { ChatGeneration, Generation } from \"../outputs.js\";\n\nexport const XML_FORMAT_INSTRUCTIONS = `The output should be formatted as a XML file.\n1. Output should conform to the tags below.\n2. If tags are not given, make them on your own.\n3. Remember to always open and close all the tags.\n\nAs an example, for the tags [\"foo\", \"bar\", \"baz\"]:\n1. String \"<foo>\\n <bar>\\n <baz></baz>\\n </bar>\\n</foo>\" is a well-formatted instance of the schema.\n2. String \"<foo>\\n <bar>\\n </foo>\" is a badly-formatted instance.\n3. String \"<foo>\\n <tag>\\n </tag>\\n</foo>\" is a badly-formatted instance.\n\nHere are the output tags:\n\\`\\`\\`\n{tags}\n\\`\\`\\``;\n\nexport interface XMLOutputParserFields extends BaseCumulativeTransformOutputParserInput {\n /**\n * Optional list of tags that the output should conform to.\n * Only used in formatting of the prompt.\n */\n tags?: string[];\n}\n\nexport type Content = string | undefined | Array<{ [key: string]: Content }>;\n\nexport type XMLResult = {\n [key: string]: Content;\n};\n\nexport class XMLOutputParser extends BaseCumulativeTransformOutputParser<XMLResult> {\n tags?: string[];\n\n constructor(fields?: XMLOutputParserFields) {\n super(fields);\n\n this.tags = fields?.tags;\n }\n\n static lc_name() {\n return \"XMLOutputParser\";\n }\n\n lc_namespace = [\"langchain_core\", \"output_parsers\"];\n\n lc_serializable = true;\n\n protected _diff(\n prev: unknown | undefined,\n next: unknown\n ): Operation[] | undefined {\n if (!next) {\n return undefined;\n }\n if (!prev) {\n return [{ op: \"replace\", path: \"\", value: next }];\n }\n return compare(prev, next);\n }\n\n async parsePartialResult(\n generations: ChatGeneration[] | Generation[]\n ): Promise<XMLResult | undefined> {\n return parseXMLMarkdown(generations[0].text);\n }\n\n async parse(text: string): Promise<XMLResult> {\n return parseXMLMarkdown(text);\n }\n\n getFormatInstructions(): string {\n const withTags = !!(this.tags && this.tags.length > 0);\n return withTags\n ? XML_FORMAT_INSTRUCTIONS.replace(\"{tags}\", this.tags?.join(\", \") ?? \"\")\n : XML_FORMAT_INSTRUCTIONS;\n }\n}\n\nconst strip = (text: string) =>\n text\n .split(\"\\n\")\n .map((line) => line.replace(/^\\s+/, \"\"))\n .join(\"\\n\")\n .trim();\n\ntype ParsedResult = {\n name: string;\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n attributes: Record<string, any>;\n children: Array<ParsedResult>;\n text?: string;\n isSelfClosing: boolean;\n};\n\nconst parseParsedResult = (input: ParsedResult): XMLResult => {\n if (Object.keys(input).length === 0) {\n return {};\n }\n const result: XMLResult = {};\n if (input.children.length > 0) {\n result[input.name] = input.children.map(parseParsedResult);\n return result;\n } else {\n result[input.name] = input.text ?? undefined;\n return result;\n }\n};\n\nexport function parseXMLMarkdown(s: string): XMLResult {\n const cleanedString = strip(s);\n const parser = sax.parser(true);\n let parsedResult: ParsedResult = {} as ParsedResult;\n const elementStack: ParsedResult[] = [];\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n parser.onopentag = (node: any) => {\n const element = {\n name: node.name,\n attributes: node.attributes,\n children: [],\n text: \"\",\n isSelfClosing: node.isSelfClosing,\n };\n\n if (elementStack.length > 0) {\n const parentElement = elementStack[elementStack.length - 1];\n parentElement.children.push(element);\n } else {\n parsedResult = element as ParsedResult;\n }\n\n if (!node.isSelfClosing) {\n elementStack.push(element);\n }\n };\n\n parser.onclosetag = () => {\n if (elementStack.length > 0) {\n const lastElement = elementStack.pop();\n if (elementStack.length === 0 && lastElement) {\n parsedResult = lastElement as ParsedResult;\n }\n }\n };\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n parser.ontext = (text: any) => {\n if (elementStack.length > 0) {\n const currentElement = elementStack[elementStack.length - 1];\n currentElement.text += text;\n }\n };\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n parser.onattribute = (attr: any) => {\n if (elementStack.length > 0) {\n const currentElement = elementStack[elementStack.length - 1];\n currentElement.attributes[attr.name] = attr.value;\n }\n };\n\n // Try to find XML string within triple backticks.\n const match = /```(xml)?(.*)```/s.exec(cleanedString);\n const xmlString = match ? match[2] : cleanedString;\n parser.write(xmlString).close();\n\n // Remove the XML declaration if present\n if (parsedResult && parsedResult.name === \"?xml\") {\n parsedResult = parsedResult.children[0] as ParsedResult;\n }\n\n return parseParsedResult(parsedResult);\n}\n"],"mappings":";;;;;AAQA,MAAa,0BAA0B;;;;;;;;;;;;;;AA6BvC,IAAa,kBAAb,cAAqC,oCAA+C;CAClF;CAEA,YAAY,QAAgC;
|
|
1
|
+
{"version":3,"file":"xml.js","names":[],"sources":["../../src/output_parsers/xml.ts"],"sourcesContent":["import {\n BaseCumulativeTransformOutputParser,\n BaseCumulativeTransformOutputParserInput,\n} from \"./transform.js\";\nimport { Operation, compare } from \"../utils/json_patch.js\";\nimport { sax } from \"../utils/sax-js/sax.js\";\nimport { ChatGeneration, Generation } from \"../outputs.js\";\n\nexport const XML_FORMAT_INSTRUCTIONS = `The output should be formatted as a XML file.\n1. Output should conform to the tags below.\n2. If tags are not given, make them on your own.\n3. Remember to always open and close all the tags.\n\nAs an example, for the tags [\"foo\", \"bar\", \"baz\"]:\n1. String \"<foo>\\n <bar>\\n <baz></baz>\\n </bar>\\n</foo>\" is a well-formatted instance of the schema.\n2. String \"<foo>\\n <bar>\\n </foo>\" is a badly-formatted instance.\n3. String \"<foo>\\n <tag>\\n </tag>\\n</foo>\" is a badly-formatted instance.\n\nHere are the output tags:\n\\`\\`\\`\n{tags}\n\\`\\`\\``;\n\nexport interface XMLOutputParserFields extends BaseCumulativeTransformOutputParserInput {\n /**\n * Optional list of tags that the output should conform to.\n * Only used in formatting of the prompt.\n */\n tags?: string[];\n}\n\nexport type Content = string | undefined | Array<{ [key: string]: Content }>;\n\nexport type XMLResult = {\n [key: string]: Content;\n};\n\nexport class XMLOutputParser extends BaseCumulativeTransformOutputParser<XMLResult> {\n tags?: string[];\n\n constructor(fields?: XMLOutputParserFields) {\n super(fields);\n\n this.tags = fields?.tags;\n }\n\n static lc_name() {\n return \"XMLOutputParser\";\n }\n\n lc_namespace = [\"langchain_core\", \"output_parsers\"];\n\n lc_serializable = true;\n\n protected _diff(\n prev: unknown | undefined,\n next: unknown\n ): Operation[] | undefined {\n if (!next) {\n return undefined;\n }\n if (!prev) {\n return [{ op: \"replace\", path: \"\", value: next }];\n }\n return compare(prev, next);\n }\n\n async parsePartialResult(\n generations: ChatGeneration[] | Generation[]\n ): Promise<XMLResult | undefined> {\n return parseXMLMarkdown(generations[0].text);\n }\n\n async parse(text: string): Promise<XMLResult> {\n return parseXMLMarkdown(text);\n }\n\n getFormatInstructions(): string {\n const withTags = !!(this.tags && this.tags.length > 0);\n return withTags\n ? XML_FORMAT_INSTRUCTIONS.replace(\"{tags}\", this.tags?.join(\", \") ?? \"\")\n : XML_FORMAT_INSTRUCTIONS;\n }\n}\n\nconst strip = (text: string) =>\n text\n .split(\"\\n\")\n .map((line) => line.replace(/^\\s+/, \"\"))\n .join(\"\\n\")\n .trim();\n\ntype ParsedResult = {\n name: string;\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n attributes: Record<string, any>;\n children: Array<ParsedResult>;\n text?: string;\n isSelfClosing: boolean;\n};\n\nconst parseParsedResult = (input: ParsedResult): XMLResult => {\n if (Object.keys(input).length === 0) {\n return {};\n }\n const result: XMLResult = {};\n if (input.children.length > 0) {\n result[input.name] = input.children.map(parseParsedResult);\n return result;\n } else {\n result[input.name] = input.text ?? undefined;\n return result;\n }\n};\n\nexport function parseXMLMarkdown(s: string): XMLResult {\n const cleanedString = strip(s);\n const parser = sax.parser(true);\n let parsedResult: ParsedResult = {} as ParsedResult;\n const elementStack: ParsedResult[] = [];\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n parser.onopentag = (node: any) => {\n const element = {\n name: node.name,\n attributes: node.attributes,\n children: [],\n text: \"\",\n isSelfClosing: node.isSelfClosing,\n };\n\n if (elementStack.length > 0) {\n const parentElement = elementStack[elementStack.length - 1];\n parentElement.children.push(element);\n } else {\n parsedResult = element as ParsedResult;\n }\n\n if (!node.isSelfClosing) {\n elementStack.push(element);\n }\n };\n\n parser.onclosetag = () => {\n if (elementStack.length > 0) {\n const lastElement = elementStack.pop();\n if (elementStack.length === 0 && lastElement) {\n parsedResult = lastElement as ParsedResult;\n }\n }\n };\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n parser.ontext = (text: any) => {\n if (elementStack.length > 0) {\n const currentElement = elementStack[elementStack.length - 1];\n currentElement.text += text;\n }\n };\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n parser.onattribute = (attr: any) => {\n if (elementStack.length > 0) {\n const currentElement = elementStack[elementStack.length - 1];\n currentElement.attributes[attr.name] = attr.value;\n }\n };\n\n // Try to find XML string within triple backticks.\n const match = /```(xml)?(.*)```/s.exec(cleanedString);\n const xmlString = match ? match[2] : cleanedString;\n parser.write(xmlString).close();\n\n // Remove the XML declaration if present\n if (parsedResult && parsedResult.name === \"?xml\") {\n parsedResult = parsedResult.children[0] as ParsedResult;\n }\n\n return parseParsedResult(parsedResult);\n}\n"],"mappings":";;;;;AAQA,MAAa,0BAA0B;;;;;;;;;;;;;;AA6BvC,IAAa,kBAAb,cAAqC,oCAA+C;CAClF;CAEA,YAAY,QAAgC;EAC1C,MAAM,MAAM;EAEZ,KAAK,OAAO,QAAQ;CACtB;CAEA,OAAO,UAAU;EACf,OAAO;CACT;CAEA,eAAe,CAAC,kBAAkB,gBAAgB;CAElD,kBAAkB;CAElB,MACE,MACA,MACyB;EACzB,IAAI,CAAC,MACH;EAEF,IAAI,CAAC,MACH,OAAO,CAAC;GAAE,IAAI;GAAW,MAAM;GAAI,OAAO;EAAK,CAAC;EAElD,OAAO,QAAQ,MAAM,IAAI;CAC3B;CAEA,MAAM,mBACJ,aACgC;EAChC,OAAO,iBAAiB,YAAY,EAAE,CAAC,IAAI;CAC7C;CAEA,MAAM,MAAM,MAAkC;EAC5C,OAAO,iBAAiB,IAAI;CAC9B;CAEA,wBAAgC;EAE9B,OAAO,CADW,EAAE,KAAK,QAAQ,KAAK,KAAK,SAAS,KAEhD,wBAAwB,QAAQ,UAAU,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,IACrE;CACN;AACF;AAEA,MAAM,SAAS,SACb,KACG,MAAM,IAAI,CAAC,CACX,KAAK,SAAS,KAAK,QAAQ,QAAQ,EAAE,CAAC,CAAC,CACvC,KAAK,IAAI,CAAC,CACV,KAAK;AAWV,MAAM,qBAAqB,UAAmC;CAC5D,IAAI,OAAO,KAAK,KAAK,CAAC,CAAC,WAAW,GAChC,OAAO,CAAC;CAEV,MAAM,SAAoB,CAAC;CAC3B,IAAI,MAAM,SAAS,SAAS,GAAG;EAC7B,OAAO,MAAM,QAAQ,MAAM,SAAS,IAAI,iBAAiB;EACzD,OAAO;CACT,OAAO;EACL,OAAO,MAAM,QAAQ,MAAM,QAAQ,KAAA;EACnC,OAAO;CACT;AACF;AAEA,SAAgB,iBAAiB,GAAsB;CACrD,MAAM,gBAAgB,MAAM,CAAC;CAC7B,MAAM,SAAS,IAAI,OAAO,IAAI;CAC9B,IAAI,eAA6B,CAAC;CAClC,MAAM,eAA+B,CAAC;CAGtC,OAAO,aAAa,SAAc;EAChC,MAAM,UAAU;GACd,MAAM,KAAK;GACX,YAAY,KAAK;GACjB,UAAU,CAAC;GACX,MAAM;GACN,eAAe,KAAK;EACtB;EAEA,IAAI,aAAa,SAAS,GAExB,aADmC,aAAa,SAAS,EAC5C,CAAC,SAAS,KAAK,OAAO;OAEnC,eAAe;EAGjB,IAAI,CAAC,KAAK,eACR,aAAa,KAAK,OAAO;CAE7B;CAEA,OAAO,mBAAmB;EACxB,IAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,cAAc,aAAa,IAAI;GACrC,IAAI,aAAa,WAAW,KAAK,aAC/B,eAAe;EAEnB;CACF;CAGA,OAAO,UAAU,SAAc;EAC7B,IAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,iBAAiB,aAAa,aAAa,SAAS;GAC1D,eAAe,QAAQ;EACzB;CACF;CAGA,OAAO,eAAe,SAAc;EAClC,IAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,iBAAiB,aAAa,aAAa,SAAS;GAC1D,eAAe,WAAW,KAAK,QAAQ,KAAK;EAC9C;CACF;CAGA,MAAM,QAAQ,oBAAoB,KAAK,aAAa;CACpD,MAAM,YAAY,QAAQ,MAAM,KAAK;CACrC,OAAO,MAAM,SAAS,CAAC,CAAC,MAAM;CAG9B,IAAI,gBAAgB,aAAa,SAAS,QACxC,eAAe,aAAa,SAAS;CAGvC,OAAO,kBAAkB,YAAY;AACvC"}
|
package/dist/outputs.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputs.cjs","names":[],"sources":["../src/outputs.ts"],"sourcesContent":["import { type BaseMessage, type BaseMessageChunk } from \"./messages/base.js\";\n\nexport const RUN_KEY = \"__run\";\n\n/**\n * Output of a single generation.\n */\nexport interface Generation {\n /**\n * Generated text output\n */\n text: string;\n /**\n * Raw generation info response from the provider.\n * May include things like reason for finishing (e.g. in {@link OpenAI})\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>;\n}\n\nexport type GenerationChunkFields = {\n text: string;\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>;\n};\n\n/**\n * Chunk of a single generation. Used for streaming.\n */\nexport class GenerationChunk implements Generation {\n public text: string;\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n public generationInfo?: Record<string, any>;\n\n constructor(fields: GenerationChunkFields) {\n this.text = fields.text;\n this.generationInfo = fields.generationInfo;\n }\n\n concat(chunk: GenerationChunk): GenerationChunk {\n return new GenerationChunk({\n text: this.text + chunk.text,\n generationInfo: {\n ...this.generationInfo,\n ...chunk.generationInfo,\n },\n });\n }\n}\n\n/**\n * Contains all relevant information returned by an LLM.\n */\nexport type LLMResult = {\n /**\n * List of the things generated. Each input could have multiple {@link Generation | generations}, hence this is a list of lists.\n */\n generations: Generation[][];\n /**\n * Dictionary of arbitrary LLM-provider specific output.\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n /**\n * Dictionary of run metadata\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n [RUN_KEY]?: Record<string, any>;\n};\n\nexport interface ChatGeneration extends Generation {\n message: BaseMessage;\n}\n\nexport type ChatGenerationChunkFields = GenerationChunkFields & {\n message: BaseMessageChunk;\n};\n\nexport class ChatGenerationChunk\n extends GenerationChunk\n implements ChatGeneration\n{\n public message: BaseMessageChunk;\n\n constructor(fields: ChatGenerationChunkFields) {\n super(fields);\n this.message = fields.message;\n }\n\n concat(chunk: ChatGenerationChunk) {\n return new ChatGenerationChunk({\n text: this.text + chunk.text,\n generationInfo: {\n ...this.generationInfo,\n ...chunk.generationInfo,\n },\n message: this.message.concat(chunk.message),\n });\n }\n}\n\nexport interface ChatResult {\n generations: ChatGeneration[];\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n}\n"],"mappings":";;;;;;;AAEA,MAAa,UAAU;;;;AA2BvB,IAAa,kBAAb,MAAa,gBAAsC;CACjD;CAGA;CAEA,YAAY,QAA+B;
|
|
1
|
+
{"version":3,"file":"outputs.cjs","names":[],"sources":["../src/outputs.ts"],"sourcesContent":["import { type BaseMessage, type BaseMessageChunk } from \"./messages/base.js\";\n\nexport const RUN_KEY = \"__run\";\n\n/**\n * Output of a single generation.\n */\nexport interface Generation {\n /**\n * Generated text output\n */\n text: string;\n /**\n * Raw generation info response from the provider.\n * May include things like reason for finishing (e.g. in {@link OpenAI})\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>;\n}\n\nexport type GenerationChunkFields = {\n text: string;\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>;\n};\n\n/**\n * Chunk of a single generation. Used for streaming.\n */\nexport class GenerationChunk implements Generation {\n public text: string;\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n public generationInfo?: Record<string, any>;\n\n constructor(fields: GenerationChunkFields) {\n this.text = fields.text;\n this.generationInfo = fields.generationInfo;\n }\n\n concat(chunk: GenerationChunk): GenerationChunk {\n return new GenerationChunk({\n text: this.text + chunk.text,\n generationInfo: {\n ...this.generationInfo,\n ...chunk.generationInfo,\n },\n });\n }\n}\n\n/**\n * Contains all relevant information returned by an LLM.\n */\nexport type LLMResult = {\n /**\n * List of the things generated. Each input could have multiple {@link Generation | generations}, hence this is a list of lists.\n */\n generations: Generation[][];\n /**\n * Dictionary of arbitrary LLM-provider specific output.\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n /**\n * Dictionary of run metadata\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n [RUN_KEY]?: Record<string, any>;\n};\n\nexport interface ChatGeneration extends Generation {\n message: BaseMessage;\n}\n\nexport type ChatGenerationChunkFields = GenerationChunkFields & {\n message: BaseMessageChunk;\n};\n\nexport class ChatGenerationChunk\n extends GenerationChunk\n implements ChatGeneration\n{\n public message: BaseMessageChunk;\n\n constructor(fields: ChatGenerationChunkFields) {\n super(fields);\n this.message = fields.message;\n }\n\n concat(chunk: ChatGenerationChunk) {\n return new ChatGenerationChunk({\n text: this.text + chunk.text,\n generationInfo: {\n ...this.generationInfo,\n ...chunk.generationInfo,\n },\n message: this.message.concat(chunk.message),\n });\n }\n}\n\nexport interface ChatResult {\n generations: ChatGeneration[];\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n}\n"],"mappings":";;;;;;;AAEA,MAAa,UAAU;;;;AA2BvB,IAAa,kBAAb,MAAa,gBAAsC;CACjD;CAGA;CAEA,YAAY,QAA+B;EACzC,KAAK,OAAO,OAAO;EACnB,KAAK,iBAAiB,OAAO;CAC/B;CAEA,OAAO,OAAyC;EAC9C,OAAO,IAAI,gBAAgB;GACzB,MAAM,KAAK,OAAO,MAAM;GACxB,gBAAgB;IACd,GAAG,KAAK;IACR,GAAG,MAAM;GACX;EACF,CAAC;CACH;AACF;AA8BA,IAAa,sBAAb,MAAa,4BACH,gBAEV;CACE;CAEA,YAAY,QAAmC;EAC7C,MAAM,MAAM;EACZ,KAAK,UAAU,OAAO;CACxB;CAEA,OAAO,OAA4B;EACjC,OAAO,IAAI,oBAAoB;GAC7B,MAAM,KAAK,OAAO,MAAM;GACxB,gBAAgB;IACd,GAAG,KAAK;IACR,GAAG,MAAM;GACX;GACA,SAAS,KAAK,QAAQ,OAAO,MAAM,OAAO;EAC5C,CAAC;CACH;AACF"}
|
package/dist/outputs.d.cts
CHANGED
package/dist/outputs.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputs.d.cts","names":[],"sources":["../src/outputs.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"outputs.d.cts","names":[],"sources":["../src/outputs.ts"],"mappings":";;cAEa;;;;UAKI;;;;EAIf;;;;;EAMA,iBAAiB;;KAGP;EACV;EAEA,iBAAiB;;;;;cAMN,2BAA2B;EAC/B;EAGA,iBAAiB;EAExB,YAAY,QAAQ;EAKpB,OAAO,OAAO,kBAAkB;;;;;KActB;;;;EAIV,aAAa;;;;EAKb,YAAY;;;;GAKX,WAAW;;UAGG,uBAAuB;EACtC,SAAS;;KAGC,4BAA4B;EACtC,SAAS;;cAGE,4BACH,2BACG;EAEJ,SAAS;EAEhB,YAAY,QAAQ;EAKpB,OAAO,OAAO,sBAAmB;;UAYlB;EACf,aAAa;EAGb,YAAY"}
|
package/dist/outputs.d.ts
CHANGED
package/dist/outputs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputs.d.ts","names":[],"sources":["../src/outputs.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"outputs.d.ts","names":[],"sources":["../src/outputs.ts"],"mappings":";;cAEa;;;;UAKI;;;;EAIf;;;;;EAMA,iBAAiB;;KAGP;EACV;EAEA,iBAAiB;;;;;cAMN,2BAA2B;EAC/B;EAGA,iBAAiB;EAExB,YAAY,QAAQ;EAKpB,OAAO,OAAO,kBAAkB;;;;;KActB;;;;EAIV,aAAa;;;;EAKb,YAAY;;;;GAKX,WAAW;;UAGG,uBAAuB;EACtC,SAAS;;KAGC,4BAA4B;EACtC,SAAS;;cAGE,4BACH,2BACG;EAEJ,SAAS;EAEhB,YAAY,QAAQ;EAKpB,OAAO,OAAO,sBAAmB;;UAYlB;EACf,aAAa;EAGb,YAAY"}
|
package/dist/outputs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputs.js","names":[],"sources":["../src/outputs.ts"],"sourcesContent":["import { type BaseMessage, type BaseMessageChunk } from \"./messages/base.js\";\n\nexport const RUN_KEY = \"__run\";\n\n/**\n * Output of a single generation.\n */\nexport interface Generation {\n /**\n * Generated text output\n */\n text: string;\n /**\n * Raw generation info response from the provider.\n * May include things like reason for finishing (e.g. in {@link OpenAI})\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>;\n}\n\nexport type GenerationChunkFields = {\n text: string;\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>;\n};\n\n/**\n * Chunk of a single generation. Used for streaming.\n */\nexport class GenerationChunk implements Generation {\n public text: string;\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n public generationInfo?: Record<string, any>;\n\n constructor(fields: GenerationChunkFields) {\n this.text = fields.text;\n this.generationInfo = fields.generationInfo;\n }\n\n concat(chunk: GenerationChunk): GenerationChunk {\n return new GenerationChunk({\n text: this.text + chunk.text,\n generationInfo: {\n ...this.generationInfo,\n ...chunk.generationInfo,\n },\n });\n }\n}\n\n/**\n * Contains all relevant information returned by an LLM.\n */\nexport type LLMResult = {\n /**\n * List of the things generated. Each input could have multiple {@link Generation | generations}, hence this is a list of lists.\n */\n generations: Generation[][];\n /**\n * Dictionary of arbitrary LLM-provider specific output.\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n /**\n * Dictionary of run metadata\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n [RUN_KEY]?: Record<string, any>;\n};\n\nexport interface ChatGeneration extends Generation {\n message: BaseMessage;\n}\n\nexport type ChatGenerationChunkFields = GenerationChunkFields & {\n message: BaseMessageChunk;\n};\n\nexport class ChatGenerationChunk\n extends GenerationChunk\n implements ChatGeneration\n{\n public message: BaseMessageChunk;\n\n constructor(fields: ChatGenerationChunkFields) {\n super(fields);\n this.message = fields.message;\n }\n\n concat(chunk: ChatGenerationChunk) {\n return new ChatGenerationChunk({\n text: this.text + chunk.text,\n generationInfo: {\n ...this.generationInfo,\n ...chunk.generationInfo,\n },\n message: this.message.concat(chunk.message),\n });\n }\n}\n\nexport interface ChatResult {\n generations: ChatGeneration[];\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n}\n"],"mappings":";;;;;;;AAEA,MAAa,UAAU;;;;AA2BvB,IAAa,kBAAb,MAAa,gBAAsC;CACjD;CAGA;CAEA,YAAY,QAA+B;
|
|
1
|
+
{"version":3,"file":"outputs.js","names":[],"sources":["../src/outputs.ts"],"sourcesContent":["import { type BaseMessage, type BaseMessageChunk } from \"./messages/base.js\";\n\nexport const RUN_KEY = \"__run\";\n\n/**\n * Output of a single generation.\n */\nexport interface Generation {\n /**\n * Generated text output\n */\n text: string;\n /**\n * Raw generation info response from the provider.\n * May include things like reason for finishing (e.g. in {@link OpenAI})\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>;\n}\n\nexport type GenerationChunkFields = {\n text: string;\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>;\n};\n\n/**\n * Chunk of a single generation. Used for streaming.\n */\nexport class GenerationChunk implements Generation {\n public text: string;\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n public generationInfo?: Record<string, any>;\n\n constructor(fields: GenerationChunkFields) {\n this.text = fields.text;\n this.generationInfo = fields.generationInfo;\n }\n\n concat(chunk: GenerationChunk): GenerationChunk {\n return new GenerationChunk({\n text: this.text + chunk.text,\n generationInfo: {\n ...this.generationInfo,\n ...chunk.generationInfo,\n },\n });\n }\n}\n\n/**\n * Contains all relevant information returned by an LLM.\n */\nexport type LLMResult = {\n /**\n * List of the things generated. Each input could have multiple {@link Generation | generations}, hence this is a list of lists.\n */\n generations: Generation[][];\n /**\n * Dictionary of arbitrary LLM-provider specific output.\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n /**\n * Dictionary of run metadata\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n [RUN_KEY]?: Record<string, any>;\n};\n\nexport interface ChatGeneration extends Generation {\n message: BaseMessage;\n}\n\nexport type ChatGenerationChunkFields = GenerationChunkFields & {\n message: BaseMessageChunk;\n};\n\nexport class ChatGenerationChunk\n extends GenerationChunk\n implements ChatGeneration\n{\n public message: BaseMessageChunk;\n\n constructor(fields: ChatGenerationChunkFields) {\n super(fields);\n this.message = fields.message;\n }\n\n concat(chunk: ChatGenerationChunk) {\n return new ChatGenerationChunk({\n text: this.text + chunk.text,\n generationInfo: {\n ...this.generationInfo,\n ...chunk.generationInfo,\n },\n message: this.message.concat(chunk.message),\n });\n }\n}\n\nexport interface ChatResult {\n generations: ChatGeneration[];\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n}\n"],"mappings":";;;;;;;AAEA,MAAa,UAAU;;;;AA2BvB,IAAa,kBAAb,MAAa,gBAAsC;CACjD;CAGA;CAEA,YAAY,QAA+B;EACzC,KAAK,OAAO,OAAO;EACnB,KAAK,iBAAiB,OAAO;CAC/B;CAEA,OAAO,OAAyC;EAC9C,OAAO,IAAI,gBAAgB;GACzB,MAAM,KAAK,OAAO,MAAM;GACxB,gBAAgB;IACd,GAAG,KAAK;IACR,GAAG,MAAM;GACX;EACF,CAAC;CACH;AACF;AA8BA,IAAa,sBAAb,MAAa,4BACH,gBAEV;CACE;CAEA,YAAY,QAAmC;EAC7C,MAAM,MAAM;EACZ,KAAK,UAAU,OAAO;CACxB;CAEA,OAAO,OAA4B;EACjC,OAAO,IAAI,oBAAoB;GAC7B,MAAM,KAAK,OAAO,MAAM;GACxB,gBAAgB;IACd,GAAG,KAAK;IACR,GAAG,MAAM;GACX;GACA,SAAS,KAAK,QAAQ,OAAO,MAAM,OAAO;EAC5C,CAAC;CACH;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt_values.cjs","names":["Serializable","HumanMessage","getBufferString"],"sources":["../src/prompt_values.ts"],"sourcesContent":["import { Serializable } from \"./load/serializable.js\";\nimport { type BaseMessage } from \"./messages/base.js\";\nimport { HumanMessage } from \"./messages/human.js\";\nimport { getBufferString } from \"./messages/utils.js\";\n\nexport interface BasePromptValueInterface extends Serializable {\n toString(): string;\n\n toChatMessages(): BaseMessage[];\n}\n\nexport interface StringPromptValueInterface extends BasePromptValueInterface {\n value: string;\n}\n\nexport interface ChatPromptValueInterface extends BasePromptValueInterface {\n messages: BaseMessage[];\n}\n\n/**\n * Base PromptValue class. All prompt values should extend this class.\n */\nexport abstract class BasePromptValue\n extends Serializable\n implements BasePromptValueInterface\n{\n abstract toString(): string;\n\n abstract toChatMessages(): BaseMessage[];\n}\n\n/**\n * Represents a prompt value as a string. It extends the BasePromptValue\n * class and overrides the toString and toChatMessages methods.\n */\nexport class StringPromptValue\n extends BasePromptValue\n implements StringPromptValueInterface\n{\n static lc_name(): string {\n return \"StringPromptValue\";\n }\n\n lc_namespace = [\"langchain_core\", \"prompt_values\"];\n\n lc_serializable = true;\n\n value: string;\n\n constructor(value: string) {\n super({ value });\n this.value = value;\n }\n\n toString() {\n return this.value;\n }\n\n toChatMessages() {\n return [new HumanMessage(this.value)];\n }\n}\n\n/**\n * Interface for the fields of a ChatPromptValue.\n */\nexport interface ChatPromptValueFields {\n messages: BaseMessage[];\n}\n\n/**\n * Class that represents a chat prompt value. It extends the\n * BasePromptValue and includes an array of BaseMessage instances.\n */\nexport class ChatPromptValue\n extends BasePromptValue\n implements ChatPromptValueInterface\n{\n lc_namespace = [\"langchain_core\", \"prompt_values\"];\n\n lc_serializable = true;\n\n static lc_name() {\n return \"ChatPromptValue\";\n }\n\n messages: BaseMessage[];\n\n constructor(messages: BaseMessage[]);\n\n constructor(fields: ChatPromptValueFields);\n\n constructor(fields: BaseMessage[] | ChatPromptValueFields) {\n if (Array.isArray(fields)) {\n // oxlint-disable-next-line no-param-reassign\n fields = { messages: fields };\n }\n\n super(fields);\n this.messages = fields.messages;\n }\n\n toString() {\n return getBufferString(this.messages);\n }\n\n toChatMessages() {\n return this.messages;\n }\n}\n\nexport type ImageContent = {\n /** Specifies the detail level of the image. */\n detail?: \"auto\" | \"low\" | \"high\";\n\n /** Either a URL of the image or the base64 encoded image data. */\n url: string;\n};\n\nexport interface ImagePromptValueFields {\n imageUrl: ImageContent;\n}\n\n/**\n * Class that represents an image prompt value. It extends the\n * BasePromptValue and includes an ImageURL instance.\n */\nexport class ImagePromptValue extends BasePromptValue {\n lc_namespace = [\"langchain_core\", \"prompt_values\"];\n\n lc_serializable = true;\n\n static lc_name() {\n return \"ImagePromptValue\";\n }\n\n imageUrl: ImageContent;\n\n /** @ignore */\n value: string;\n\n constructor(fields: ImagePromptValueFields);\n\n constructor(fields: ImageContent);\n\n constructor(fields: ImageContent | ImagePromptValueFields) {\n if (!(\"imageUrl\" in fields)) {\n // oxlint-disable-next-line no-param-reassign\n fields = { imageUrl: fields };\n }\n\n super(fields);\n this.imageUrl = fields.imageUrl;\n }\n\n toString() {\n return this.imageUrl.url;\n }\n\n toChatMessages() {\n return [\n new HumanMessage({\n content: [\n {\n type: \"image_url\",\n image_url: {\n detail: this.imageUrl.detail,\n url: this.imageUrl.url,\n },\n },\n ],\n }),\n ];\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,IAAsB,kBAAtB,cACUA,0BAAAA,aAEV;;;;;
|
|
1
|
+
{"version":3,"file":"prompt_values.cjs","names":["Serializable","HumanMessage","getBufferString"],"sources":["../src/prompt_values.ts"],"sourcesContent":["import { Serializable } from \"./load/serializable.js\";\nimport { type BaseMessage } from \"./messages/base.js\";\nimport { HumanMessage } from \"./messages/human.js\";\nimport { getBufferString } from \"./messages/utils.js\";\n\nexport interface BasePromptValueInterface extends Serializable {\n toString(): string;\n\n toChatMessages(): BaseMessage[];\n}\n\nexport interface StringPromptValueInterface extends BasePromptValueInterface {\n value: string;\n}\n\nexport interface ChatPromptValueInterface extends BasePromptValueInterface {\n messages: BaseMessage[];\n}\n\n/**\n * Base PromptValue class. All prompt values should extend this class.\n */\nexport abstract class BasePromptValue\n extends Serializable\n implements BasePromptValueInterface\n{\n abstract toString(): string;\n\n abstract toChatMessages(): BaseMessage[];\n}\n\n/**\n * Represents a prompt value as a string. It extends the BasePromptValue\n * class and overrides the toString and toChatMessages methods.\n */\nexport class StringPromptValue\n extends BasePromptValue\n implements StringPromptValueInterface\n{\n static lc_name(): string {\n return \"StringPromptValue\";\n }\n\n lc_namespace = [\"langchain_core\", \"prompt_values\"];\n\n lc_serializable = true;\n\n value: string;\n\n constructor(value: string) {\n super({ value });\n this.value = value;\n }\n\n toString() {\n return this.value;\n }\n\n toChatMessages() {\n return [new HumanMessage(this.value)];\n }\n}\n\n/**\n * Interface for the fields of a ChatPromptValue.\n */\nexport interface ChatPromptValueFields {\n messages: BaseMessage[];\n}\n\n/**\n * Class that represents a chat prompt value. It extends the\n * BasePromptValue and includes an array of BaseMessage instances.\n */\nexport class ChatPromptValue\n extends BasePromptValue\n implements ChatPromptValueInterface\n{\n lc_namespace = [\"langchain_core\", \"prompt_values\"];\n\n lc_serializable = true;\n\n static lc_name() {\n return \"ChatPromptValue\";\n }\n\n messages: BaseMessage[];\n\n constructor(messages: BaseMessage[]);\n\n constructor(fields: ChatPromptValueFields);\n\n constructor(fields: BaseMessage[] | ChatPromptValueFields) {\n if (Array.isArray(fields)) {\n // oxlint-disable-next-line no-param-reassign\n fields = { messages: fields };\n }\n\n super(fields);\n this.messages = fields.messages;\n }\n\n toString() {\n return getBufferString(this.messages);\n }\n\n toChatMessages() {\n return this.messages;\n }\n}\n\nexport type ImageContent = {\n /** Specifies the detail level of the image. */\n detail?: \"auto\" | \"low\" | \"high\";\n\n /** Either a URL of the image or the base64 encoded image data. */\n url: string;\n};\n\nexport interface ImagePromptValueFields {\n imageUrl: ImageContent;\n}\n\n/**\n * Class that represents an image prompt value. It extends the\n * BasePromptValue and includes an ImageURL instance.\n */\nexport class ImagePromptValue extends BasePromptValue {\n lc_namespace = [\"langchain_core\", \"prompt_values\"];\n\n lc_serializable = true;\n\n static lc_name() {\n return \"ImagePromptValue\";\n }\n\n imageUrl: ImageContent;\n\n /** @ignore */\n value: string;\n\n constructor(fields: ImagePromptValueFields);\n\n constructor(fields: ImageContent);\n\n constructor(fields: ImageContent | ImagePromptValueFields) {\n if (!(\"imageUrl\" in fields)) {\n // oxlint-disable-next-line no-param-reassign\n fields = { imageUrl: fields };\n }\n\n super(fields);\n this.imageUrl = fields.imageUrl;\n }\n\n toString() {\n return this.imageUrl.url;\n }\n\n toChatMessages() {\n return [\n new HumanMessage({\n content: [\n {\n type: \"image_url\",\n image_url: {\n detail: this.imageUrl.detail,\n url: this.imageUrl.url,\n },\n },\n ],\n }),\n ];\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,IAAsB,kBAAtB,cACUA,0BAAAA,aAEV,CAIA;;;;;AAMA,IAAa,oBAAb,cACU,gBAEV;CACE,OAAO,UAAkB;EACvB,OAAO;CACT;CAEA,eAAe,CAAC,kBAAkB,eAAe;CAEjD,kBAAkB;CAElB;CAEA,YAAY,OAAe;EACzB,MAAM,EAAE,MAAM,CAAC;EACf,KAAK,QAAQ;CACf;CAEA,WAAW;EACT,OAAO,KAAK;CACd;CAEA,iBAAiB;EACf,OAAO,CAAC,IAAIC,cAAAA,aAAa,KAAK,KAAK,CAAC;CACtC;AACF;;;;;AAaA,IAAa,kBAAb,cACU,gBAEV;CACE,eAAe,CAAC,kBAAkB,eAAe;CAEjD,kBAAkB;CAElB,OAAO,UAAU;EACf,OAAO;CACT;CAEA;CAMA,YAAY,QAA+C;EACzD,IAAI,MAAM,QAAQ,MAAM,GAEtB,SAAS,EAAE,UAAU,OAAO;EAG9B,MAAM,MAAM;EACZ,KAAK,WAAW,OAAO;CACzB;CAEA,WAAW;EACT,OAAOC,cAAAA,gBAAgB,KAAK,QAAQ;CACtC;CAEA,iBAAiB;EACf,OAAO,KAAK;CACd;AACF;;;;;AAkBA,IAAa,mBAAb,cAAsC,gBAAgB;CACpD,eAAe,CAAC,kBAAkB,eAAe;CAEjD,kBAAkB;CAElB,OAAO,UAAU;EACf,OAAO;CACT;CAEA;;CAGA;CAMA,YAAY,QAA+C;EACzD,IAAI,EAAE,cAAc,SAElB,SAAS,EAAE,UAAU,OAAO;EAG9B,MAAM,MAAM;EACZ,KAAK,WAAW,OAAO;CACzB;CAEA,WAAW;EACT,OAAO,KAAK,SAAS;CACvB;CAEA,iBAAiB;EACf,OAAO,CACL,IAAID,cAAAA,aAAa,EACf,SAAS,CACP;GACE,MAAM;GACN,WAAW;IACT,QAAQ,KAAK,SAAS;IACtB,KAAK,KAAK,SAAS;GACrB;EACF,CACF,EACF,CAAC,CACH;CACF;AACF"}
|