@langchain/core 1.1.32 → 1.1.33-dev-1773709997654
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.cjs +12 -22
- package/dist/_virtual/_rolldown/runtime.js +6 -11
- package/dist/agents.cjs +8 -10
- package/dist/agents.js +1 -2
- package/dist/caches/index.cjs +11 -12
- package/dist/caches/index.cjs.map +1 -1
- package/dist/caches/index.js +1 -2
- package/dist/caches/index.js.map +1 -1
- package/dist/callbacks/base.cjs +10 -11
- package/dist/callbacks/base.cjs.map +1 -1
- package/dist/callbacks/base.js +1 -2
- package/dist/callbacks/base.js.map +1 -1
- package/dist/callbacks/dispatch/index.cjs +7 -8
- package/dist/callbacks/dispatch/index.cjs.map +1 -1
- package/dist/callbacks/dispatch/index.d.ts +0 -2
- package/dist/callbacks/dispatch/index.d.ts.map +1 -1
- package/dist/callbacks/dispatch/index.js +1 -2
- package/dist/callbacks/dispatch/index.js.map +1 -1
- package/dist/callbacks/dispatch/web.cjs +3 -4
- package/dist/callbacks/dispatch/web.cjs.map +1 -1
- package/dist/callbacks/dispatch/web.d.ts +0 -2
- package/dist/callbacks/dispatch/web.d.ts.map +1 -1
- package/dist/callbacks/dispatch/web.js +1 -2
- package/dist/callbacks/dispatch/web.js.map +1 -1
- package/dist/callbacks/manager.cjs +18 -19
- package/dist/callbacks/manager.cjs.map +1 -1
- package/dist/callbacks/manager.js +1 -2
- package/dist/callbacks/manager.js.map +1 -1
- package/dist/callbacks/promises.cjs +9 -10
- package/dist/callbacks/promises.js +1 -2
- package/dist/chat_history.cjs +12 -13
- package/dist/chat_history.cjs.map +1 -1
- package/dist/chat_history.d.ts +0 -2
- package/dist/chat_history.d.ts.map +1 -1
- package/dist/chat_history.js +1 -2
- package/dist/chat_history.js.map +1 -1
- package/dist/context.cjs +6 -7
- package/dist/context.cjs.map +1 -1
- package/dist/context.js +1 -2
- package/dist/context.js.map +1 -1
- package/dist/document_loaders/base.cjs +8 -10
- package/dist/document_loaders/base.cjs.map +1 -1
- package/dist/document_loaders/base.js +1 -2
- package/dist/document_loaders/base.js.map +1 -1
- package/dist/document_loaders/langsmith.cjs +9 -10
- package/dist/document_loaders/langsmith.cjs.map +1 -1
- package/dist/document_loaders/langsmith.js +1 -2
- package/dist/document_loaders/langsmith.js.map +1 -1
- package/dist/documents/document.cjs +1 -2
- package/dist/documents/document.cjs.map +1 -1
- package/dist/documents/document.js +1 -1
- package/dist/documents/document.js.map +1 -1
- package/dist/documents/index.cjs +10 -11
- package/dist/documents/index.js +1 -2
- package/dist/documents/transformers.cjs +2 -3
- package/dist/documents/transformers.cjs.map +1 -1
- package/dist/documents/transformers.js +1 -2
- package/dist/documents/transformers.js.map +1 -1
- package/dist/embeddings.cjs +9 -10
- package/dist/embeddings.cjs.map +1 -1
- package/dist/embeddings.js +1 -2
- package/dist/embeddings.js.map +1 -1
- package/dist/errors/index.cjs +9 -10
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.js +1 -2
- package/dist/errors/index.js.map +1 -1
- package/dist/example_selectors/base.cjs +2 -3
- package/dist/example_selectors/base.cjs.map +1 -1
- package/dist/example_selectors/base.js +1 -2
- package/dist/example_selectors/base.js.map +1 -1
- package/dist/example_selectors/conditional.cjs +1 -2
- package/dist/example_selectors/conditional.cjs.map +1 -1
- package/dist/example_selectors/conditional.js +1 -1
- package/dist/example_selectors/index.cjs +12 -13
- package/dist/example_selectors/index.js +1 -2
- package/dist/example_selectors/length_based.cjs +2 -3
- package/dist/example_selectors/length_based.cjs.map +1 -1
- package/dist/example_selectors/length_based.js +1 -2
- package/dist/example_selectors/length_based.js.map +1 -1
- package/dist/example_selectors/semantic_similarity.cjs +3 -4
- package/dist/example_selectors/semantic_similarity.cjs.map +1 -1
- package/dist/example_selectors/semantic_similarity.js +1 -2
- package/dist/example_selectors/semantic_similarity.js.map +1 -1
- package/dist/index.cjs +8 -10
- package/dist/index.js +1 -2
- package/dist/indexing/base.cjs +6 -7
- package/dist/indexing/base.cjs.map +1 -1
- package/dist/indexing/base.js +1 -2
- package/dist/indexing/base.js.map +1 -1
- package/dist/indexing/index.cjs +10 -11
- package/dist/indexing/index.js +1 -2
- package/dist/indexing/record_manager.cjs +2 -3
- package/dist/indexing/record_manager.cjs.map +1 -1
- package/dist/indexing/record_manager.js +1 -2
- package/dist/indexing/record_manager.js.map +1 -1
- package/dist/language_models/base.cjs +15 -16
- package/dist/language_models/base.cjs.map +1 -1
- package/dist/language_models/base.d.ts +0 -2
- package/dist/language_models/base.d.ts.map +1 -1
- package/dist/language_models/base.js +2 -3
- package/dist/language_models/base.js.map +1 -1
- package/dist/language_models/chat_models.cjs +26 -27
- package/dist/language_models/chat_models.cjs.map +1 -1
- package/dist/language_models/chat_models.d.ts +0 -3
- package/dist/language_models/chat_models.d.ts.map +1 -1
- package/dist/language_models/chat_models.js +1 -2
- package/dist/language_models/chat_models.js.map +1 -1
- package/dist/language_models/llms.cjs +13 -14
- package/dist/language_models/llms.cjs.map +1 -1
- package/dist/language_models/llms.d.ts +0 -1
- package/dist/language_models/llms.d.ts.map +1 -1
- package/dist/language_models/llms.js +1 -2
- package/dist/language_models/llms.js.map +1 -1
- package/dist/language_models/profile.cjs +8 -10
- package/dist/language_models/profile.js +1 -2
- package/dist/language_models/structured_output.cjs +19 -20
- package/dist/language_models/structured_output.cjs.map +1 -1
- package/dist/language_models/structured_output.d.ts +0 -5
- package/dist/language_models/structured_output.d.ts.map +1 -1
- package/dist/language_models/structured_output.js +1 -2
- package/dist/language_models/structured_output.js.map +1 -1
- package/dist/language_models/utils.cjs +1 -2
- package/dist/language_models/utils.cjs.map +1 -1
- package/dist/language_models/utils.js +1 -1
- package/dist/load/import_constants.cjs +1 -2
- package/dist/load/import_constants.cjs.map +1 -1
- package/dist/load/import_constants.js +1 -1
- package/dist/load/import_map.cjs +69 -70
- package/dist/load/import_map.js +1 -2
- package/dist/load/index.cjs +8 -9
- package/dist/load/index.cjs.map +1 -1
- package/dist/load/index.js +1 -2
- package/dist/load/index.js.map +1 -1
- package/dist/load/map_keys.cjs +2 -3
- package/dist/load/map_keys.cjs.map +1 -1
- package/dist/load/map_keys.js +1 -2
- package/dist/load/map_keys.js.map +1 -1
- package/dist/load/serializable.cjs +10 -11
- package/dist/load/serializable.cjs.map +1 -1
- package/dist/load/serializable.js +1 -2
- package/dist/load/serializable.js.map +1 -1
- package/dist/load/validation.cjs +3 -4
- package/dist/load/validation.cjs.map +1 -1
- package/dist/load/validation.js +3 -3
- package/dist/load/validation.js.map +1 -1
- package/dist/memory.cjs +8 -10
- package/dist/memory.cjs.map +1 -1
- package/dist/memory.js +1 -2
- package/dist/memory.js.map +1 -1
- package/dist/messages/ai.cjs +6 -7
- package/dist/messages/ai.cjs.map +1 -1
- package/dist/messages/ai.js +1 -2
- package/dist/messages/ai.js.map +1 -1
- package/dist/messages/base.cjs +8 -9
- package/dist/messages/base.cjs.map +1 -1
- package/dist/messages/base.js +1 -2
- package/dist/messages/base.js.map +1 -1
- package/dist/messages/block_translators/anthropic.cjs +2 -3
- package/dist/messages/block_translators/anthropic.cjs.map +1 -1
- package/dist/messages/block_translators/anthropic.js +1 -2
- package/dist/messages/block_translators/anthropic.js.map +1 -1
- package/dist/messages/block_translators/bedrock_converse.cjs +2 -3
- package/dist/messages/block_translators/bedrock_converse.cjs.map +1 -1
- package/dist/messages/block_translators/bedrock_converse.js +1 -2
- package/dist/messages/block_translators/bedrock_converse.js.map +1 -1
- package/dist/messages/block_translators/data.cjs +3 -4
- package/dist/messages/block_translators/data.cjs.map +1 -1
- package/dist/messages/block_translators/data.js +1 -2
- package/dist/messages/block_translators/data.js.map +1 -1
- package/dist/messages/block_translators/deepseek.cjs +2 -3
- package/dist/messages/block_translators/deepseek.cjs.map +1 -1
- package/dist/messages/block_translators/deepseek.js +1 -2
- package/dist/messages/block_translators/deepseek.js.map +1 -1
- package/dist/messages/block_translators/google.cjs +2 -3
- package/dist/messages/block_translators/google.cjs.map +1 -1
- package/dist/messages/block_translators/google.js +1 -2
- package/dist/messages/block_translators/google.js.map +1 -1
- package/dist/messages/block_translators/google_genai.cjs +2 -3
- package/dist/messages/block_translators/google_genai.cjs.map +1 -1
- package/dist/messages/block_translators/google_genai.js +1 -2
- package/dist/messages/block_translators/google_genai.js.map +1 -1
- package/dist/messages/block_translators/google_vertexai.cjs +2 -3
- package/dist/messages/block_translators/google_vertexai.cjs.map +1 -1
- package/dist/messages/block_translators/google_vertexai.js +1 -2
- package/dist/messages/block_translators/google_vertexai.js.map +1 -1
- package/dist/messages/block_translators/groq.cjs +2 -3
- package/dist/messages/block_translators/groq.cjs.map +1 -1
- package/dist/messages/block_translators/groq.js +1 -2
- package/dist/messages/block_translators/groq.js.map +1 -1
- package/dist/messages/block_translators/index.cjs +11 -12
- package/dist/messages/block_translators/index.cjs.map +1 -1
- package/dist/messages/block_translators/index.js +1 -2
- package/dist/messages/block_translators/index.js.map +1 -1
- package/dist/messages/block_translators/ollama.cjs +2 -3
- package/dist/messages/block_translators/ollama.cjs.map +1 -1
- package/dist/messages/block_translators/ollama.js +1 -2
- package/dist/messages/block_translators/ollama.js.map +1 -1
- package/dist/messages/block_translators/openai.cjs +29 -4
- package/dist/messages/block_translators/openai.cjs.map +1 -1
- package/dist/messages/block_translators/openai.js +27 -2
- package/dist/messages/block_translators/openai.js.map +1 -1
- package/dist/messages/block_translators/utils.cjs +1 -2
- package/dist/messages/block_translators/utils.cjs.map +1 -1
- package/dist/messages/block_translators/utils.js +1 -1
- package/dist/messages/block_translators/xai.cjs +2 -3
- package/dist/messages/block_translators/xai.cjs.map +1 -1
- package/dist/messages/block_translators/xai.js +1 -2
- package/dist/messages/block_translators/xai.js.map +1 -1
- package/dist/messages/chat.cjs +2 -3
- package/dist/messages/chat.cjs.map +1 -1
- package/dist/messages/chat.js +1 -2
- package/dist/messages/chat.js.map +1 -1
- package/dist/messages/content/data.cjs +1 -2
- package/dist/messages/content/data.cjs.map +1 -1
- package/dist/messages/content/data.js +1 -1
- package/dist/messages/content/index.cjs +3 -4
- package/dist/messages/content/index.cjs.map +1 -1
- package/dist/messages/content/index.js +1 -2
- package/dist/messages/content/index.js.map +1 -1
- package/dist/messages/content/multimodal.cjs +1 -2
- package/dist/messages/content/multimodal.cjs.map +1 -1
- package/dist/messages/content/multimodal.js +1 -1
- package/dist/messages/content/tools.cjs +1 -2
- package/dist/messages/content/tools.cjs.map +1 -1
- package/dist/messages/content/tools.js +1 -1
- package/dist/messages/format.cjs +1 -2
- package/dist/messages/format.cjs.map +1 -1
- package/dist/messages/format.js +1 -1
- package/dist/messages/function.cjs +2 -3
- package/dist/messages/function.cjs.map +1 -1
- package/dist/messages/function.js +1 -2
- package/dist/messages/function.js.map +1 -1
- package/dist/messages/human.cjs +2 -3
- package/dist/messages/human.cjs.map +1 -1
- package/dist/messages/human.js +1 -2
- package/dist/messages/human.js.map +1 -1
- package/dist/messages/index.cjs +22 -23
- package/dist/messages/index.js +1 -2
- package/dist/messages/message.cjs +1 -2
- package/dist/messages/message.cjs.map +1 -1
- package/dist/messages/message.js +1 -1
- package/dist/messages/metadata.cjs +2 -3
- package/dist/messages/metadata.cjs.map +1 -1
- package/dist/messages/metadata.js +1 -2
- package/dist/messages/metadata.js.map +1 -1
- package/dist/messages/modifier.cjs +2 -3
- package/dist/messages/modifier.cjs.map +1 -1
- package/dist/messages/modifier.js +1 -2
- package/dist/messages/modifier.js.map +1 -1
- package/dist/messages/system.cjs +2 -3
- package/dist/messages/system.cjs.map +1 -1
- package/dist/messages/system.js +1 -2
- package/dist/messages/system.js.map +1 -1
- package/dist/messages/tool.cjs +9 -10
- package/dist/messages/tool.cjs.map +1 -1
- package/dist/messages/tool.js +1 -2
- package/dist/messages/tool.js.map +1 -1
- package/dist/messages/transformers.cjs +11 -12
- package/dist/messages/transformers.cjs.map +1 -1
- package/dist/messages/transformers.js +1 -2
- package/dist/messages/transformers.js.map +1 -1
- package/dist/messages/utils.cjs +12 -13
- package/dist/messages/utils.cjs.map +1 -1
- package/dist/messages/utils.js +1 -2
- package/dist/messages/utils.js.map +1 -1
- package/dist/output_parsers/base.cjs +4 -5
- package/dist/output_parsers/base.cjs.map +1 -1
- package/dist/output_parsers/base.d.ts +0 -4
- package/dist/output_parsers/base.d.ts.map +1 -1
- package/dist/output_parsers/base.js +1 -2
- package/dist/output_parsers/base.js.map +1 -1
- package/dist/output_parsers/bytes.cjs +2 -3
- package/dist/output_parsers/bytes.cjs.map +1 -1
- package/dist/output_parsers/bytes.js +1 -2
- package/dist/output_parsers/bytes.js.map +1 -1
- package/dist/output_parsers/index.cjs +18 -19
- package/dist/output_parsers/index.js +1 -2
- package/dist/output_parsers/json.cjs +5 -6
- package/dist/output_parsers/json.cjs.map +1 -1
- package/dist/output_parsers/json.d.ts +0 -1
- package/dist/output_parsers/json.d.ts.map +1 -1
- package/dist/output_parsers/json.js +2 -3
- package/dist/output_parsers/json.js.map +1 -1
- package/dist/output_parsers/list.cjs +3 -4
- package/dist/output_parsers/list.cjs.map +1 -1
- package/dist/output_parsers/list.d.ts +0 -1
- package/dist/output_parsers/list.d.ts.map +1 -1
- package/dist/output_parsers/list.js +1 -2
- package/dist/output_parsers/list.js.map +1 -1
- package/dist/output_parsers/openai_functions/index.cjs +9 -10
- package/dist/output_parsers/openai_functions/index.js +1 -2
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.cjs +7 -8
- 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.ts +0 -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 +1 -2
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.js.map +1 -1
- package/dist/output_parsers/openai_tools/index.cjs +9 -10
- package/dist/output_parsers/openai_tools/index.js +1 -2
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.cjs +7 -8
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.cjs.map +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.js +1 -2
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.js.map +1 -1
- package/dist/output_parsers/standard_schema.cjs +4 -5
- package/dist/output_parsers/standard_schema.cjs.map +1 -1
- package/dist/output_parsers/standard_schema.js +1 -2
- package/dist/output_parsers/standard_schema.js.map +1 -1
- package/dist/output_parsers/string.cjs +2 -3
- package/dist/output_parsers/string.cjs.map +1 -1
- package/dist/output_parsers/string.d.ts +0 -1
- package/dist/output_parsers/string.d.ts.map +1 -1
- package/dist/output_parsers/string.js +1 -2
- package/dist/output_parsers/string.js.map +1 -1
- package/dist/output_parsers/structured.cjs +5 -6
- package/dist/output_parsers/structured.cjs.map +1 -1
- package/dist/output_parsers/structured.js +1 -2
- package/dist/output_parsers/structured.js.map +1 -1
- package/dist/output_parsers/transform.cjs +6 -7
- package/dist/output_parsers/transform.cjs.map +1 -1
- package/dist/output_parsers/transform.js +1 -2
- package/dist/output_parsers/transform.js.map +1 -1
- package/dist/output_parsers/xml.cjs +5 -6
- package/dist/output_parsers/xml.cjs.map +1 -1
- package/dist/output_parsers/xml.js +1 -2
- package/dist/output_parsers/xml.js.map +1 -1
- package/dist/outputs.cjs +8 -10
- package/dist/outputs.cjs.map +1 -1
- package/dist/outputs.js +1 -2
- package/dist/outputs.js.map +1 -1
- package/dist/prompt_values.cjs +11 -12
- package/dist/prompt_values.cjs.map +1 -1
- package/dist/prompt_values.js +1 -2
- package/dist/prompt_values.js.map +1 -1
- package/dist/prompts/base.cjs +2 -3
- package/dist/prompts/base.cjs.map +1 -1
- package/dist/prompts/base.d.ts +0 -2
- package/dist/prompts/base.d.ts.map +1 -1
- package/dist/prompts/base.js +1 -2
- package/dist/prompts/base.js.map +1 -1
- package/dist/prompts/chat.cjs +17 -18
- package/dist/prompts/chat.cjs.map +1 -1
- package/dist/prompts/chat.d.ts +0 -1
- package/dist/prompts/chat.d.ts.map +1 -1
- package/dist/prompts/chat.js +1 -2
- package/dist/prompts/chat.js.map +1 -1
- package/dist/prompts/dict.cjs +3 -4
- package/dist/prompts/dict.cjs.map +1 -1
- package/dist/prompts/dict.js +1 -2
- package/dist/prompts/dict.js.map +1 -1
- package/dist/prompts/few_shot.cjs +5 -6
- package/dist/prompts/few_shot.cjs.map +1 -1
- package/dist/prompts/few_shot.d.ts +0 -1
- package/dist/prompts/few_shot.d.ts.map +1 -1
- package/dist/prompts/few_shot.js +1 -2
- package/dist/prompts/few_shot.js.map +1 -1
- package/dist/prompts/image.cjs +4 -5
- package/dist/prompts/image.cjs.map +1 -1
- package/dist/prompts/image.d.ts +0 -1
- package/dist/prompts/image.d.ts.map +1 -1
- package/dist/prompts/image.js +1 -2
- package/dist/prompts/image.js.map +1 -1
- package/dist/prompts/index.cjs +18 -19
- package/dist/prompts/index.js +1 -2
- package/dist/prompts/pipeline.cjs +3 -4
- package/dist/prompts/pipeline.cjs.map +1 -1
- package/dist/prompts/pipeline.js +1 -2
- package/dist/prompts/pipeline.js.map +1 -1
- package/dist/prompts/prompt.cjs +3 -4
- package/dist/prompts/prompt.cjs.map +1 -1
- package/dist/prompts/prompt.d.ts +0 -1
- package/dist/prompts/prompt.d.ts.map +1 -1
- package/dist/prompts/prompt.js +1 -2
- package/dist/prompts/prompt.js.map +1 -1
- package/dist/prompts/serde.d.ts +0 -1
- package/dist/prompts/serde.d.ts.map +1 -1
- package/dist/prompts/string.cjs +3 -4
- package/dist/prompts/string.cjs.map +1 -1
- package/dist/prompts/string.js +1 -2
- package/dist/prompts/string.js.map +1 -1
- package/dist/prompts/structured.cjs +3 -4
- package/dist/prompts/structured.cjs.map +1 -1
- package/dist/prompts/structured.d.ts +0 -1
- package/dist/prompts/structured.d.ts.map +1 -1
- package/dist/prompts/structured.js +1 -2
- package/dist/prompts/structured.js.map +1 -1
- package/dist/prompts/template.cjs +3 -4
- package/dist/prompts/template.cjs.map +1 -1
- package/dist/prompts/template.d.ts +0 -2
- package/dist/prompts/template.d.ts.map +1 -1
- package/dist/prompts/template.js +1 -2
- package/dist/prompts/template.js.map +1 -1
- package/dist/retrievers/document_compressors/index.cjs +8 -10
- package/dist/retrievers/document_compressors/index.cjs.map +1 -1
- package/dist/retrievers/document_compressors/index.js +1 -2
- package/dist/retrievers/document_compressors/index.js.map +1 -1
- package/dist/retrievers/index.cjs +11 -12
- package/dist/retrievers/index.cjs.map +1 -1
- package/dist/retrievers/index.d.ts +0 -1
- package/dist/retrievers/index.d.ts.map +1 -1
- package/dist/retrievers/index.js +1 -2
- package/dist/retrievers/index.js.map +1 -1
- package/dist/runnables/base.cjs +32 -36
- package/dist/runnables/base.cjs.map +1 -1
- package/dist/runnables/base.d.cts.map +1 -1
- package/dist/runnables/base.d.ts.map +1 -1
- package/dist/runnables/base.js +15 -19
- package/dist/runnables/base.js.map +1 -1
- package/dist/runnables/branch.cjs +4 -5
- package/dist/runnables/branch.cjs.map +1 -1
- package/dist/runnables/branch.d.ts +0 -1
- package/dist/runnables/branch.d.ts.map +1 -1
- package/dist/runnables/branch.js +1 -2
- package/dist/runnables/branch.js.map +1 -1
- package/dist/runnables/config.cjs +4 -7
- package/dist/runnables/config.cjs.map +1 -1
- package/dist/runnables/config.js +2 -4
- package/dist/runnables/config.js.map +1 -1
- package/dist/runnables/graph.cjs +11 -12
- package/dist/runnables/graph.cjs.map +1 -1
- package/dist/runnables/graph.js +1 -2
- package/dist/runnables/graph.js.map +1 -1
- package/dist/runnables/graph_mermaid.cjs +2 -3
- package/dist/runnables/graph_mermaid.cjs.map +1 -1
- package/dist/runnables/graph_mermaid.js +1 -2
- package/dist/runnables/graph_mermaid.js.map +1 -1
- package/dist/runnables/history.cjs +7 -8
- package/dist/runnables/history.cjs.map +1 -1
- package/dist/runnables/history.d.ts +0 -2
- package/dist/runnables/history.d.ts.map +1 -1
- package/dist/runnables/history.js +1 -2
- package/dist/runnables/history.js.map +1 -1
- package/dist/runnables/index.cjs +15 -16
- package/dist/runnables/index.js +1 -2
- package/dist/runnables/iter.cjs +4 -5
- package/dist/runnables/iter.cjs.map +1 -1
- package/dist/runnables/iter.js +1 -2
- package/dist/runnables/iter.js.map +1 -1
- package/dist/runnables/passthrough.cjs +4 -5
- package/dist/runnables/passthrough.cjs.map +1 -1
- package/dist/runnables/passthrough.d.ts +0 -1
- package/dist/runnables/passthrough.d.ts.map +1 -1
- package/dist/runnables/passthrough.js +1 -2
- package/dist/runnables/passthrough.js.map +1 -1
- package/dist/runnables/router.cjs +3 -4
- package/dist/runnables/router.cjs.map +1 -1
- package/dist/runnables/router.d.ts +0 -1
- package/dist/runnables/router.d.ts.map +1 -1
- package/dist/runnables/router.js +1 -2
- package/dist/runnables/router.js.map +1 -1
- package/dist/runnables/utils.cjs +1 -2
- package/dist/runnables/utils.cjs.map +1 -1
- package/dist/runnables/utils.js +1 -1
- package/dist/runnables/utils.js.map +1 -1
- package/dist/runnables/wrappers.cjs +2 -3
- package/dist/runnables/wrappers.cjs.map +1 -1
- package/dist/runnables/wrappers.js +1 -2
- package/dist/runnables/wrappers.js.map +1 -1
- package/dist/singletons/async_local_storage/context.cjs +3 -4
- package/dist/singletons/async_local_storage/context.cjs.map +1 -1
- package/dist/singletons/async_local_storage/context.js +1 -2
- package/dist/singletons/async_local_storage/context.js.map +1 -1
- package/dist/singletons/async_local_storage/globals.cjs +1 -2
- package/dist/singletons/async_local_storage/globals.cjs.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 +4 -5
- package/dist/singletons/async_local_storage/index.cjs.map +1 -1
- package/dist/singletons/async_local_storage/index.js +1 -2
- package/dist/singletons/async_local_storage/index.js.map +1 -1
- package/dist/singletons/callbacks.cjs +4 -5
- package/dist/singletons/callbacks.cjs.map +1 -1
- package/dist/singletons/callbacks.js +1 -2
- package/dist/singletons/callbacks.js.map +1 -1
- package/dist/singletons/index.cjs +10 -11
- package/dist/singletons/index.js +1 -2
- package/dist/singletons/tracer.cjs +3 -4
- package/dist/singletons/tracer.cjs.map +1 -1
- package/dist/singletons/tracer.js +1 -2
- package/dist/singletons/tracer.js.map +1 -1
- package/dist/stores.cjs +9 -10
- package/dist/stores.cjs.map +1 -1
- package/dist/stores.js +1 -2
- package/dist/stores.js.map +1 -1
- package/dist/structured_query/base.cjs +3 -4
- package/dist/structured_query/base.cjs.map +1 -1
- package/dist/structured_query/base.js +1 -2
- package/dist/structured_query/base.js.map +1 -1
- package/dist/structured_query/functional.cjs +4 -5
- package/dist/structured_query/functional.cjs.map +1 -1
- package/dist/structured_query/functional.js +1 -2
- package/dist/structured_query/functional.js.map +1 -1
- package/dist/structured_query/index.cjs +12 -13
- package/dist/structured_query/index.js +1 -2
- package/dist/structured_query/ir.cjs +1 -2
- package/dist/structured_query/ir.cjs.map +1 -1
- package/dist/structured_query/ir.js +1 -1
- package/dist/structured_query/ir.js.map +1 -1
- package/dist/structured_query/utils.cjs +1 -2
- package/dist/structured_query/utils.cjs.map +1 -1
- package/dist/structured_query/utils.js +1 -1
- package/dist/testing/fake_model_builder.cjs +6 -7
- package/dist/testing/fake_model_builder.cjs.map +1 -1
- package/dist/testing/fake_model_builder.d.ts +0 -1
- package/dist/testing/fake_model_builder.d.ts.map +1 -1
- package/dist/testing/fake_model_builder.js +1 -2
- package/dist/testing/fake_model_builder.js.map +1 -1
- package/dist/testing/index.cjs +10 -11
- package/dist/testing/index.js +1 -2
- package/dist/testing/matchers.cjs +7 -8
- package/dist/testing/matchers.cjs.map +1 -1
- package/dist/testing/matchers.js +1 -2
- package/dist/testing/matchers.js.map +1 -1
- package/dist/tools/index.cjs +20 -21
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.d.cts +1 -1
- package/dist/tools/index.d.cts.map +1 -1
- package/dist/tools/index.d.ts +1 -3
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.cjs +3 -4
- package/dist/tools/types.cjs.map +1 -1
- package/dist/tools/types.d.ts +0 -2
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +1 -2
- package/dist/tools/types.js.map +1 -1
- package/dist/tools/utils.cjs +1 -2
- package/dist/tools/utils.cjs.map +1 -1
- package/dist/tools/utils.js +1 -1
- package/dist/tracers/base.cjs +10 -11
- package/dist/tracers/base.cjs.map +1 -1
- package/dist/tracers/base.js +1 -2
- package/dist/tracers/base.js.map +1 -1
- package/dist/tracers/console.cjs +9 -10
- package/dist/tracers/console.cjs.map +1 -1
- package/dist/tracers/console.js +1 -2
- package/dist/tracers/console.js.map +1 -1
- package/dist/tracers/event_stream.cjs +5 -6
- package/dist/tracers/event_stream.cjs.map +1 -1
- package/dist/tracers/event_stream.d.ts +0 -2
- package/dist/tracers/event_stream.d.ts.map +1 -1
- package/dist/tracers/event_stream.js +1 -2
- package/dist/tracers/event_stream.js.map +1 -1
- package/dist/tracers/log_stream.cjs +13 -14
- package/dist/tracers/log_stream.cjs.map +1 -1
- package/dist/tracers/log_stream.js +1 -2
- package/dist/tracers/log_stream.js.map +1 -1
- package/dist/tracers/root_listener.cjs +2 -3
- package/dist/tracers/root_listener.cjs.map +1 -1
- package/dist/tracers/root_listener.js +1 -2
- package/dist/tracers/root_listener.js.map +1 -1
- package/dist/tracers/run_collector.cjs +9 -10
- package/dist/tracers/run_collector.cjs.map +1 -1
- package/dist/tracers/run_collector.js +1 -2
- package/dist/tracers/run_collector.js.map +1 -1
- package/dist/tracers/tracer_langchain.cjs +12 -13
- package/dist/tracers/tracer_langchain.cjs.map +1 -1
- package/dist/tracers/tracer_langchain.js +1 -2
- package/dist/tracers/tracer_langchain.js.map +1 -1
- package/dist/types/stream.cjs +8 -10
- package/dist/types/stream.js +1 -2
- package/dist/utils/async_caller.cjs +10 -11
- package/dist/utils/async_caller.cjs.map +1 -1
- package/dist/utils/async_caller.js +1 -2
- package/dist/utils/async_caller.js.map +1 -1
- package/dist/utils/callbacks.cjs +2 -3
- package/dist/utils/callbacks.cjs.map +1 -1
- package/dist/utils/callbacks.js +1 -2
- package/dist/utils/callbacks.js.map +1 -1
- package/dist/utils/chunk_array.cjs +8 -10
- package/dist/utils/chunk_array.cjs.map +1 -1
- package/dist/utils/chunk_array.js +1 -2
- package/dist/utils/chunk_array.js.map +1 -1
- package/dist/utils/context.cjs +8 -10
- package/dist/utils/context.cjs.map +1 -1
- package/dist/utils/context.js +1 -2
- package/dist/utils/context.js.map +1 -1
- package/dist/utils/env.cjs +8 -10
- package/dist/utils/env.cjs.map +1 -1
- package/dist/utils/env.js +1 -2
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/event_source_parse.cjs +9 -10
- package/dist/utils/event_source_parse.cjs.map +1 -1
- package/dist/utils/event_source_parse.js +1 -2
- package/dist/utils/event_source_parse.js.map +1 -1
- package/dist/utils/fast-json-patch/index.cjs +5 -16
- package/dist/utils/fast-json-patch/index.cjs.map +1 -1
- package/dist/utils/fast-json-patch/index.js +6 -17
- package/dist/utils/fast-json-patch/index.js.map +1 -1
- package/dist/utils/fast-json-patch/src/core.cjs +8 -9
- package/dist/utils/fast-json-patch/src/core.cjs.map +1 -1
- package/dist/utils/fast-json-patch/src/core.js +1 -2
- package/dist/utils/fast-json-patch/src/core.js.map +1 -1
- package/dist/utils/fast-json-patch/src/duplex.cjs +3 -4
- package/dist/utils/fast-json-patch/src/duplex.cjs.map +1 -1
- package/dist/utils/fast-json-patch/src/duplex.js +1 -2
- package/dist/utils/fast-json-patch/src/duplex.js.map +1 -1
- package/dist/utils/fast-json-patch/src/helpers.cjs +1 -2
- package/dist/utils/fast-json-patch/src/helpers.cjs.map +1 -1
- package/dist/utils/fast-json-patch/src/helpers.js +1 -1
- package/dist/utils/fast-json-patch/src/helpers.js.map +1 -1
- package/dist/utils/format.cjs +8 -10
- package/dist/utils/format.js +1 -2
- package/dist/utils/function_calling.cjs +10 -11
- package/dist/utils/function_calling.cjs.map +1 -1
- package/dist/utils/function_calling.js +1 -2
- package/dist/utils/function_calling.js.map +1 -1
- package/dist/utils/hash.cjs +9 -10
- package/dist/utils/hash.js +1 -2
- package/dist/utils/is-network-error/index.cjs +1 -2
- 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 +1 -3
- package/dist/utils/js-sha256/hash.cjs.map +1 -1
- package/dist/utils/js-sha256/hash.js +1 -1
- package/dist/utils/js-sha256/hash.js.map +1 -1
- package/dist/utils/json.cjs +1 -2
- package/dist/utils/json.cjs.map +1 -1
- package/dist/utils/json.js +1 -1
- package/dist/utils/json_patch.cjs +11 -12
- package/dist/utils/json_patch.js +1 -2
- package/dist/utils/json_schema.cjs +22 -23
- package/dist/utils/json_schema.cjs.map +1 -1
- package/dist/utils/json_schema.d.ts +0 -1
- package/dist/utils/json_schema.d.ts.map +1 -1
- package/dist/utils/json_schema.js +1 -2
- package/dist/utils/json_schema.js.map +1 -1
- package/dist/utils/math.cjs +11 -12
- package/dist/utils/math.cjs.map +1 -1
- package/dist/utils/math.js +1 -2
- package/dist/utils/math.js.map +1 -1
- package/dist/utils/ml-distance/distances.cjs +1 -2
- package/dist/utils/ml-distance/distances.cjs.map +1 -1
- package/dist/utils/ml-distance/distances.js +1 -1
- package/dist/utils/ml-distance/similarities.cjs +1 -2
- package/dist/utils/ml-distance/similarities.cjs.map +1 -1
- package/dist/utils/ml-distance/similarities.js +1 -1
- package/dist/utils/ml-distance-euclidean/euclidean.cjs +1 -2
- package/dist/utils/ml-distance-euclidean/euclidean.cjs.map +1 -1
- package/dist/utils/ml-distance-euclidean/euclidean.js +1 -1
- package/dist/utils/namespace.cjs +1 -2
- package/dist/utils/namespace.cjs.map +1 -1
- package/dist/utils/namespace.js +1 -1
- package/dist/utils/p-retry/index.cjs +2 -3
- package/dist/utils/p-retry/index.cjs.map +1 -1
- package/dist/utils/p-retry/index.js +1 -2
- package/dist/utils/p-retry/index.js.map +1 -1
- package/dist/utils/sax-js/sax.cjs +1 -2
- package/dist/utils/sax-js/sax.cjs.map +1 -1
- package/dist/utils/sax-js/sax.js +1 -1
- package/dist/utils/signal.cjs +1 -2
- package/dist/utils/signal.cjs.map +1 -1
- package/dist/utils/signal.js +1 -1
- package/dist/utils/signal.js.map +1 -1
- package/dist/utils/ssrf.cjs +8 -10
- package/dist/utils/ssrf.cjs.map +1 -1
- package/dist/utils/ssrf.js +1 -2
- package/dist/utils/ssrf.js.map +1 -1
- package/dist/utils/standard_schema.cjs +8 -10
- package/dist/utils/standard_schema.cjs.map +1 -1
- package/dist/utils/standard_schema.js +1 -2
- package/dist/utils/standard_schema.js.map +1 -1
- package/dist/utils/stream.cjs +13 -14
- package/dist/utils/stream.cjs.map +1 -1
- package/dist/utils/stream.d.cts.map +1 -1
- package/dist/utils/stream.d.ts.map +1 -1
- package/dist/utils/stream.js +2 -3
- package/dist/utils/stream.js.map +1 -1
- package/dist/utils/testing/chat_models.cjs +7 -8
- package/dist/utils/testing/chat_models.cjs.map +1 -1
- package/dist/utils/testing/chat_models.d.ts +0 -1
- package/dist/utils/testing/chat_models.d.ts.map +1 -1
- package/dist/utils/testing/chat_models.js +1 -2
- package/dist/utils/testing/chat_models.js.map +1 -1
- package/dist/utils/testing/embeddings.cjs +2 -3
- package/dist/utils/testing/embeddings.cjs.map +1 -1
- package/dist/utils/testing/embeddings.js +1 -2
- package/dist/utils/testing/embeddings.js.map +1 -1
- package/dist/utils/testing/index.cjs +18 -19
- package/dist/utils/testing/index.js +1 -2
- package/dist/utils/testing/llms.cjs +2 -3
- package/dist/utils/testing/llms.cjs.map +1 -1
- package/dist/utils/testing/llms.js +1 -2
- package/dist/utils/testing/llms.js.map +1 -1
- package/dist/utils/testing/message_history.cjs +6 -7
- package/dist/utils/testing/message_history.cjs.map +1 -1
- package/dist/utils/testing/message_history.d.ts +0 -1
- package/dist/utils/testing/message_history.d.ts.map +1 -1
- package/dist/utils/testing/message_history.js +1 -2
- package/dist/utils/testing/message_history.js.map +1 -1
- package/dist/utils/testing/output_parsers.cjs +2 -3
- package/dist/utils/testing/output_parsers.cjs.map +1 -1
- package/dist/utils/testing/output_parsers.js +1 -2
- package/dist/utils/testing/output_parsers.js.map +1 -1
- package/dist/utils/testing/retrievers.cjs +3 -4
- package/dist/utils/testing/retrievers.cjs.map +1 -1
- package/dist/utils/testing/retrievers.js +1 -2
- package/dist/utils/testing/retrievers.js.map +1 -1
- package/dist/utils/testing/runnables.cjs +2 -3
- package/dist/utils/testing/runnables.cjs.map +1 -1
- package/dist/utils/testing/runnables.js +1 -2
- package/dist/utils/testing/runnables.js.map +1 -1
- package/dist/utils/testing/tools.cjs +2 -3
- package/dist/utils/testing/tools.cjs.map +1 -1
- package/dist/utils/testing/tools.js +1 -2
- package/dist/utils/testing/tools.js.map +1 -1
- package/dist/utils/testing/tracers.cjs +2 -3
- package/dist/utils/testing/tracers.cjs.map +1 -1
- package/dist/utils/testing/tracers.js +1 -2
- package/dist/utils/testing/tracers.js.map +1 -1
- package/dist/utils/testing/vectorstores.cjs +4 -5
- package/dist/utils/testing/vectorstores.cjs.map +1 -1
- package/dist/utils/testing/vectorstores.js +1 -2
- package/dist/utils/testing/vectorstores.js.map +1 -1
- package/dist/utils/tiktoken.cjs +9 -10
- package/dist/utils/tiktoken.cjs.map +1 -1
- package/dist/utils/tiktoken.js +1 -2
- package/dist/utils/tiktoken.js.map +1 -1
- package/dist/utils/types/index.cjs +9 -10
- package/dist/utils/types/index.js +1 -2
- package/dist/utils/types/zod.cjs +2 -3
- package/dist/utils/types/zod.cjs.map +1 -1
- package/dist/utils/types/zod.js +1 -2
- package/dist/utils/types/zod.js.map +1 -1
- package/dist/utils/zod-to-json-schema/Options.cjs +1 -2
- package/dist/utils/zod-to-json-schema/Options.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/Options.d.ts +1 -3
- package/dist/utils/zod-to-json-schema/Options.js +1 -1
- package/dist/utils/zod-to-json-schema/Options.js.map +1 -1
- package/dist/utils/zod-to-json-schema/Refs.cjs +2 -3
- package/dist/utils/zod-to-json-schema/Refs.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/Refs.d.ts +1 -3
- package/dist/utils/zod-to-json-schema/Refs.js +1 -2
- package/dist/utils/zod-to-json-schema/Refs.js.map +1 -1
- package/dist/utils/zod-to-json-schema/errorMessages.cjs +1 -2
- package/dist/utils/zod-to-json-schema/errorMessages.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/errorMessages.d.ts +0 -2
- package/dist/utils/zod-to-json-schema/errorMessages.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/errorMessages.js +1 -1
- package/dist/utils/zod-to-json-schema/getRelativePath.cjs +1 -2
- package/dist/utils/zod-to-json-schema/getRelativePath.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/getRelativePath.js +1 -1
- package/dist/utils/zod-to-json-schema/index.cjs +37 -37
- package/dist/utils/zod-to-json-schema/index.d.ts +1 -14
- package/dist/utils/zod-to-json-schema/index.js +38 -39
- package/dist/utils/zod-to-json-schema/parseDef.cjs +5 -6
- package/dist/utils/zod-to-json-schema/parseDef.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parseDef.d.ts +1 -3
- package/dist/utils/zod-to-json-schema/parseDef.js +1 -2
- package/dist/utils/zod-to-json-schema/parseDef.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/any.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/any.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/any.d.ts +0 -2
- package/dist/utils/zod-to-json-schema/parsers/any.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/any.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/any.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/array.cjs +4 -5
- package/dist/utils/zod-to-json-schema/parsers/array.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/array.d.ts +0 -3
- package/dist/utils/zod-to-json-schema/parsers/array.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/array.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/array.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/bigint.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/bigint.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/bigint.d.ts +0 -3
- package/dist/utils/zod-to-json-schema/parsers/bigint.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/bigint.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/bigint.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/boolean.cjs +1 -2
- package/dist/utils/zod-to-json-schema/parsers/boolean.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/boolean.js +1 -1
- package/dist/utils/zod-to-json-schema/parsers/branded.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/branded.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/branded.d.ts +1 -3
- package/dist/utils/zod-to-json-schema/parsers/branded.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/branded.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/catch.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/catch.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/catch.d.ts +1 -3
- package/dist/utils/zod-to-json-schema/parsers/catch.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/catch.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/date.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/date.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/date.d.ts +0 -4
- package/dist/utils/zod-to-json-schema/parsers/date.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/date.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/date.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/default.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/default.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/default.d.ts +1 -3
- package/dist/utils/zod-to-json-schema/parsers/default.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/default.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/effects.cjs +3 -4
- package/dist/utils/zod-to-json-schema/parsers/effects.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/effects.d.ts +1 -3
- package/dist/utils/zod-to-json-schema/parsers/effects.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/effects.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/enum.cjs +1 -2
- package/dist/utils/zod-to-json-schema/parsers/enum.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/enum.d.ts +0 -2
- package/dist/utils/zod-to-json-schema/parsers/enum.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/enum.js +1 -1
- package/dist/utils/zod-to-json-schema/parsers/intersection.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/intersection.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/intersection.d.ts +0 -3
- package/dist/utils/zod-to-json-schema/parsers/intersection.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/intersection.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/intersection.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/literal.cjs +1 -2
- package/dist/utils/zod-to-json-schema/parsers/literal.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/literal.d.ts +0 -3
- package/dist/utils/zod-to-json-schema/parsers/literal.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/literal.js +1 -1
- package/dist/utils/zod-to-json-schema/parsers/map.cjs +4 -5
- package/dist/utils/zod-to-json-schema/parsers/map.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/map.d.ts +0 -4
- package/dist/utils/zod-to-json-schema/parsers/map.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/map.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/map.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.cjs +1 -2
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.ts +0 -2
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.js +1 -1
- package/dist/utils/zod-to-json-schema/parsers/never.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/never.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/never.d.ts +0 -2
- package/dist/utils/zod-to-json-schema/parsers/never.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/never.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/never.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/null.cjs +1 -2
- package/dist/utils/zod-to-json-schema/parsers/null.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/null.d.ts +0 -2
- package/dist/utils/zod-to-json-schema/parsers/null.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/null.js +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nullable.cjs +3 -4
- package/dist/utils/zod-to-json-schema/parsers/nullable.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nullable.d.ts +0 -3
- package/dist/utils/zod-to-json-schema/parsers/nullable.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nullable.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/nullable.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/number.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/number.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/number.d.ts +0 -3
- package/dist/utils/zod-to-json-schema/parsers/number.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/number.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/number.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/object.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/object.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/object.d.ts +0 -3
- package/dist/utils/zod-to-json-schema/parsers/object.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/object.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/object.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/optional.cjs +3 -4
- package/dist/utils/zod-to-json-schema/parsers/optional.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/optional.d.ts +1 -3
- package/dist/utils/zod-to-json-schema/parsers/optional.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/optional.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/pipeline.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/pipeline.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/pipeline.d.ts +1 -4
- package/dist/utils/zod-to-json-schema/parsers/pipeline.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/pipeline.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/promise.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/promise.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/promise.d.ts +1 -3
- package/dist/utils/zod-to-json-schema/parsers/promise.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/promise.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/readonly.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/readonly.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/readonly.d.ts +1 -3
- package/dist/utils/zod-to-json-schema/parsers/readonly.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/readonly.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/record.cjs +6 -7
- package/dist/utils/zod-to-json-schema/parsers/record.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/record.d.ts +0 -3
- package/dist/utils/zod-to-json-schema/parsers/record.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/record.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/record.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/set.cjs +3 -4
- package/dist/utils/zod-to-json-schema/parsers/set.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/set.d.ts +0 -3
- package/dist/utils/zod-to-json-schema/parsers/set.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/set.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/set.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/string.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/string.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/string.d.ts +0 -3
- package/dist/utils/zod-to-json-schema/parsers/string.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/string.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/string.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/tuple.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/tuple.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/tuple.d.ts +0 -3
- package/dist/utils/zod-to-json-schema/parsers/tuple.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/tuple.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/tuple.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/undefined.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/undefined.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/undefined.d.ts +0 -2
- package/dist/utils/zod-to-json-schema/parsers/undefined.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/undefined.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/undefined.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/union.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/union.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/union.d.ts +0 -3
- package/dist/utils/zod-to-json-schema/parsers/union.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/union.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/union.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/unknown.cjs +2 -3
- package/dist/utils/zod-to-json-schema/parsers/unknown.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/unknown.d.ts +0 -2
- package/dist/utils/zod-to-json-schema/parsers/unknown.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/unknown.js +1 -2
- package/dist/utils/zod-to-json-schema/parsers/unknown.js.map +1 -1
- package/dist/utils/zod-to-json-schema/selectParser.cjs +32 -33
- package/dist/utils/zod-to-json-schema/selectParser.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/selectParser.d.ts +0 -2
- package/dist/utils/zod-to-json-schema/selectParser.js +1 -2
- package/dist/utils/zod-to-json-schema/selectParser.js.map +1 -1
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.cjs +4 -5
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.d.ts +1 -3
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.js +1 -2
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.js.map +1 -1
- package/dist/vectorstores.cjs +10 -11
- package/dist/vectorstores.cjs.map +1 -1
- package/dist/vectorstores.js +1 -2
- package/dist/vectorstores.js.map +1 -1
- package/package.json +1 -1
- package/agents.cjs +0 -1
- package/agents.d.cts +0 -1
- package/agents.d.ts +0 -1
- package/agents.js +0 -1
- package/caches.cjs +0 -1
- package/caches.d.cts +0 -1
- package/caches.d.ts +0 -1
- package/caches.js +0 -1
- package/callbacks/base.cjs +0 -1
- package/callbacks/base.d.cts +0 -1
- package/callbacks/base.d.ts +0 -1
- package/callbacks/base.js +0 -1
- package/callbacks/dispatch/web.cjs +0 -1
- package/callbacks/dispatch/web.d.cts +0 -1
- package/callbacks/dispatch/web.d.ts +0 -1
- package/callbacks/dispatch/web.js +0 -1
- package/callbacks/dispatch.cjs +0 -1
- package/callbacks/dispatch.d.cts +0 -1
- package/callbacks/dispatch.d.ts +0 -1
- package/callbacks/dispatch.js +0 -1
- package/callbacks/manager.cjs +0 -1
- package/callbacks/manager.d.cts +0 -1
- package/callbacks/manager.d.ts +0 -1
- package/callbacks/manager.js +0 -1
- package/callbacks/promises.cjs +0 -1
- package/callbacks/promises.d.cts +0 -1
- package/callbacks/promises.d.ts +0 -1
- package/callbacks/promises.js +0 -1
- package/chat_history.cjs +0 -1
- package/chat_history.d.cts +0 -1
- package/chat_history.d.ts +0 -1
- package/chat_history.js +0 -1
- package/context.cjs +0 -1
- package/context.d.cts +0 -1
- package/context.d.ts +0 -1
- package/context.js +0 -1
- package/document_loaders/base.cjs +0 -1
- package/document_loaders/base.d.cts +0 -1
- package/document_loaders/base.d.ts +0 -1
- package/document_loaders/base.js +0 -1
- package/document_loaders/langsmith.cjs +0 -1
- package/document_loaders/langsmith.d.cts +0 -1
- package/document_loaders/langsmith.d.ts +0 -1
- package/document_loaders/langsmith.js +0 -1
- package/documents.cjs +0 -1
- package/documents.d.cts +0 -1
- package/documents.d.ts +0 -1
- package/documents.js +0 -1
- package/embeddings.cjs +0 -1
- package/embeddings.d.cts +0 -1
- package/embeddings.d.ts +0 -1
- package/embeddings.js +0 -1
- package/errors.cjs +0 -1
- package/errors.d.cts +0 -1
- package/errors.d.ts +0 -1
- package/errors.js +0 -1
- package/example_selectors.cjs +0 -1
- package/example_selectors.d.cts +0 -1
- package/example_selectors.d.ts +0 -1
- package/example_selectors.js +0 -1
- package/indexing.cjs +0 -1
- package/indexing.d.cts +0 -1
- package/indexing.d.ts +0 -1
- package/indexing.js +0 -1
- package/language_models/base.cjs +0 -1
- package/language_models/base.d.cts +0 -1
- package/language_models/base.d.ts +0 -1
- package/language_models/base.js +0 -1
- package/language_models/chat_models.cjs +0 -1
- package/language_models/chat_models.d.cts +0 -1
- package/language_models/chat_models.d.ts +0 -1
- package/language_models/chat_models.js +0 -1
- package/language_models/llms.cjs +0 -1
- package/language_models/llms.d.cts +0 -1
- package/language_models/llms.d.ts +0 -1
- package/language_models/llms.js +0 -1
- package/language_models/profile.cjs +0 -1
- package/language_models/profile.d.cts +0 -1
- package/language_models/profile.d.ts +0 -1
- package/language_models/profile.js +0 -1
- package/language_models/structured_output.cjs +0 -1
- package/language_models/structured_output.d.cts +0 -1
- package/language_models/structured_output.d.ts +0 -1
- package/language_models/structured_output.js +0 -1
- package/load/serializable.cjs +0 -1
- package/load/serializable.d.cts +0 -1
- package/load/serializable.d.ts +0 -1
- package/load/serializable.js +0 -1
- package/load.cjs +0 -1
- package/load.d.cts +0 -1
- package/load.d.ts +0 -1
- package/load.js +0 -1
- package/memory.cjs +0 -1
- package/memory.d.cts +0 -1
- package/memory.d.ts +0 -1
- package/memory.js +0 -1
- package/messages/tool.cjs +0 -1
- package/messages/tool.d.cts +0 -1
- package/messages/tool.d.ts +0 -1
- package/messages/tool.js +0 -1
- package/messages.cjs +0 -1
- package/messages.d.cts +0 -1
- package/messages.d.ts +0 -1
- package/messages.js +0 -1
- package/output_parsers/openai_functions.cjs +0 -1
- package/output_parsers/openai_functions.d.cts +0 -1
- package/output_parsers/openai_functions.d.ts +0 -1
- package/output_parsers/openai_functions.js +0 -1
- package/output_parsers/openai_tools.cjs +0 -1
- package/output_parsers/openai_tools.d.cts +0 -1
- package/output_parsers/openai_tools.d.ts +0 -1
- package/output_parsers/openai_tools.js +0 -1
- package/output_parsers.cjs +0 -1
- package/output_parsers.d.cts +0 -1
- package/output_parsers.d.ts +0 -1
- package/output_parsers.js +0 -1
- package/outputs.cjs +0 -1
- package/outputs.d.cts +0 -1
- package/outputs.d.ts +0 -1
- package/outputs.js +0 -1
- package/prompt_values.cjs +0 -1
- package/prompt_values.d.cts +0 -1
- package/prompt_values.d.ts +0 -1
- package/prompt_values.js +0 -1
- package/prompts.cjs +0 -1
- package/prompts.d.cts +0 -1
- package/prompts.d.ts +0 -1
- package/prompts.js +0 -1
- package/retrievers/document_compressors.cjs +0 -1
- package/retrievers/document_compressors.d.cts +0 -1
- package/retrievers/document_compressors.d.ts +0 -1
- package/retrievers/document_compressors.js +0 -1
- package/retrievers.cjs +0 -1
- package/retrievers.d.cts +0 -1
- package/retrievers.d.ts +0 -1
- package/retrievers.js +0 -1
- package/runnables/graph.cjs +0 -1
- package/runnables/graph.d.cts +0 -1
- package/runnables/graph.d.ts +0 -1
- package/runnables/graph.js +0 -1
- package/runnables.cjs +0 -1
- package/runnables.d.cts +0 -1
- package/runnables.d.ts +0 -1
- package/runnables.js +0 -1
- package/singletons.cjs +0 -1
- package/singletons.d.cts +0 -1
- package/singletons.d.ts +0 -1
- package/singletons.js +0 -1
- package/stores.cjs +0 -1
- package/stores.d.cts +0 -1
- package/stores.d.ts +0 -1
- package/stores.js +0 -1
- package/structured_query.cjs +0 -1
- package/structured_query.d.cts +0 -1
- package/structured_query.d.ts +0 -1
- package/structured_query.js +0 -1
- package/tools.cjs +0 -1
- package/tools.d.cts +0 -1
- package/tools.d.ts +0 -1
- package/tools.js +0 -1
- package/tracers/base.cjs +0 -1
- package/tracers/base.d.cts +0 -1
- package/tracers/base.d.ts +0 -1
- package/tracers/base.js +0 -1
- package/tracers/console.cjs +0 -1
- package/tracers/console.d.cts +0 -1
- package/tracers/console.d.ts +0 -1
- package/tracers/console.js +0 -1
- package/tracers/log_stream.cjs +0 -1
- package/tracers/log_stream.d.cts +0 -1
- package/tracers/log_stream.d.ts +0 -1
- package/tracers/log_stream.js +0 -1
- package/tracers/run_collector.cjs +0 -1
- package/tracers/run_collector.d.cts +0 -1
- package/tracers/run_collector.d.ts +0 -1
- package/tracers/run_collector.js +0 -1
- package/tracers/tracer_langchain.cjs +0 -1
- package/tracers/tracer_langchain.d.cts +0 -1
- package/tracers/tracer_langchain.d.ts +0 -1
- package/tracers/tracer_langchain.js +0 -1
- package/types/stream.cjs +0 -1
- package/types/stream.d.cts +0 -1
- package/types/stream.d.ts +0 -1
- package/types/stream.js +0 -1
- package/utils/async_caller.cjs +0 -1
- package/utils/async_caller.d.cts +0 -1
- package/utils/async_caller.d.ts +0 -1
- package/utils/async_caller.js +0 -1
- package/utils/chunk_array.cjs +0 -1
- package/utils/chunk_array.d.cts +0 -1
- package/utils/chunk_array.d.ts +0 -1
- package/utils/chunk_array.js +0 -1
- package/utils/context.cjs +0 -1
- package/utils/context.d.cts +0 -1
- package/utils/context.d.ts +0 -1
- package/utils/context.js +0 -1
- package/utils/env.cjs +0 -1
- package/utils/env.d.cts +0 -1
- package/utils/env.d.ts +0 -1
- package/utils/env.js +0 -1
- package/utils/event_source_parse.cjs +0 -1
- package/utils/event_source_parse.d.cts +0 -1
- package/utils/event_source_parse.d.ts +0 -1
- package/utils/event_source_parse.js +0 -1
- package/utils/format.cjs +0 -1
- package/utils/format.d.cts +0 -1
- package/utils/format.d.ts +0 -1
- package/utils/format.js +0 -1
- package/utils/function_calling.cjs +0 -1
- package/utils/function_calling.d.cts +0 -1
- package/utils/function_calling.d.ts +0 -1
- package/utils/function_calling.js +0 -1
- package/utils/hash.cjs +0 -1
- package/utils/hash.d.cts +0 -1
- package/utils/hash.d.ts +0 -1
- package/utils/hash.js +0 -1
- package/utils/json_patch.cjs +0 -1
- package/utils/json_patch.d.cts +0 -1
- package/utils/json_patch.d.ts +0 -1
- package/utils/json_patch.js +0 -1
- package/utils/json_schema.cjs +0 -1
- package/utils/json_schema.d.cts +0 -1
- package/utils/json_schema.d.ts +0 -1
- package/utils/json_schema.js +0 -1
- package/utils/math.cjs +0 -1
- package/utils/math.d.cts +0 -1
- package/utils/math.d.ts +0 -1
- package/utils/math.js +0 -1
- package/utils/ssrf.cjs +0 -1
- package/utils/ssrf.d.cts +0 -1
- package/utils/ssrf.d.ts +0 -1
- package/utils/ssrf.js +0 -1
- package/utils/standard_schema.cjs +0 -1
- package/utils/standard_schema.d.cts +0 -1
- package/utils/standard_schema.d.ts +0 -1
- package/utils/standard_schema.js +0 -1
- package/utils/stream.cjs +0 -1
- package/utils/stream.d.cts +0 -1
- package/utils/stream.d.ts +0 -1
- package/utils/stream.js +0 -1
- package/utils/testing.cjs +0 -1
- package/utils/testing.d.cts +0 -1
- package/utils/testing.d.ts +0 -1
- package/utils/testing.js +0 -1
- package/utils/tiktoken.cjs +0 -1
- package/utils/tiktoken.d.cts +0 -1
- package/utils/tiktoken.d.ts +0 -1
- package/utils/tiktoken.js +0 -1
- package/utils/types.cjs +0 -1
- package/utils/types.d.cts +0 -1
- package/utils/types.d.ts +0 -1
- package/utils/types.js +0 -1
- package/vectorstores.cjs +0 -1
- package/vectorstores.d.cts +0 -1
- package/vectorstores.d.ts +0 -1
- package/vectorstores.js +0 -1
|
@@ -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 {\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\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":";;;;;;AA6BA,IAAa,yBAAb,cAEU,iBAA2C;CACnD,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAkB;EAAa;CAE5D,SAAS;AACP,SAAO,KAAK,sBAAsB;;CAGpC,YAAY,AAAO,QAAW;AAC5B,QAAM,OAAO;EADI;;;;;;;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,MAAM,CAChC;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;;;;;;;;AASP,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,AAAQ,qBACN,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,KAAK,CACW,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,AAAQ;CAER,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 {\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\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":";;;;;AA6BA,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,MAAM,CAChC;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;;;;;;;;AASP,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,KAAK,CACW,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,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
const require_base = require(
|
|
3
|
-
const require_utils = require(
|
|
4
|
-
const require_outputs = require(
|
|
5
|
-
const require_base$1 = require(
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_base = require("../messages/base.cjs");
|
|
3
|
+
const require_utils = require("../messages/utils.cjs");
|
|
4
|
+
const require_outputs = require("../outputs.cjs");
|
|
5
|
+
const require_base$1 = require("./base.cjs");
|
|
6
6
|
let _cfworker_json_schema = require("@cfworker/json-schema");
|
|
7
|
-
|
|
8
7
|
//#region src/output_parsers/transform.ts
|
|
9
8
|
/**
|
|
10
9
|
* Class to parse the output of an LLM call that also allows streaming inputs.
|
|
@@ -75,8 +74,8 @@ var BaseCumulativeTransformOutputParser = class extends BaseTransformOutputParse
|
|
|
75
74
|
return "";
|
|
76
75
|
}
|
|
77
76
|
};
|
|
78
|
-
|
|
79
77
|
//#endregion
|
|
80
78
|
exports.BaseCumulativeTransformOutputParser = BaseCumulativeTransformOutputParser;
|
|
81
79
|
exports.BaseTransformOutputParser = BaseTransformOutputParser;
|
|
80
|
+
|
|
82
81
|
//# sourceMappingURL=transform.cjs.map
|
|
@@ -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 // eslint-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 // eslint-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;AACnB,aAAW,MAAM,SAAS,eACxB,KAAI,OAAO,UAAU,SACnB,OAAM,KAAK,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC;MAEzC,OAAM,KAAK,YAAY,CACrB;GACE,SAAS;GACT,MAAM,KAAK,qBAAqB,MAAM;GACvC,CACF,CAAC;;;;;;;;;CAYR,OAAO,UACL,gBACA,SACmB;AACnB,SAAO,KAAK,2BACV,gBACA,KAAK,WAAW,KAAK,KAAK,EAC1B;GACE,GAAG;GACH,SAAS;GACV,CACF;;;;;;;;AAWL,IAAsB,sCAAtB,cAEU,0BAA6B;CACrC,OAAiB;CAEjB,YAAY,QAAmD;AAC7D,QAAM,OAAO;AACb,OAAK,OAAO,QAAQ,QAAQ,KAAK;;CAUnC,OAAO,WACL,gBACmB;EACnB,IAAI;EACJ,IAAI;AACJ,aAAW,MAAM,SAAS,gBAAgB;AACxC,OAAI,OAAO,UAAU,YAAY,OAAO,MAAM,YAAY,SACxD,OAAM,IAAI,MAAM,mCAAmC;GAErD,IAAI;AACJ,OAAIC,aAAAA,mBAAmB,MAAM,EAAE;AAC7B,QAAI,OAAO,MAAM,YAAY,SAC3B,OAAM,IAAI,MAAM,2CAA2C;AAE7D,eAAW,IAAIC,gBAAAA,oBAAoB;KACjC,SAAS;KACT,MAAM,MAAM;KACb,CAAC;cACOC,aAAAA,cAAc,MAAM,EAAE;AAC/B,QAAI,OAAO,MAAM,YAAY,SAC3B,OAAM,IAAI,MAAM,2CAA2C;AAE7D,eAAW,IAAID,gBAAAA,oBAAoB;KACjC,SAASE,cAAAA,eAAe,MAAM;KAC9B,MAAM,MAAM;KACb,CAAC;SAEF,YAAW,IAAIC,gBAAAA,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAGjD,OAAI,WAAW,KAAA,EACb,UAAS;OAET,UAAS,OAAO,OAAO,SAAS;GAGlC,MAAM,SAAS,MAAM,KAAK,mBAAmB,CAAC,OAAO,CAAC;AACtD,OACE,WAAW,KAAA,KACX,WAAW,QACX,EAAA,GAAA,sBAAA,mBAAmB,QAAQ,WAAW,EACtC;AACA,QAAI,KAAK,KACP,OAAM,KAAK,MAAM,YAAY,OAAO;QAEpC,OAAM;AAER,iBAAa;;;;CAKnB,wBAAgC;AAC9B,SAAO"}
|
|
@@ -3,7 +3,6 @@ import { convertToChunk } from "../messages/utils.js";
|
|
|
3
3
|
import { ChatGenerationChunk, GenerationChunk } from "../outputs.js";
|
|
4
4
|
import { BaseOutputParser } from "./base.js";
|
|
5
5
|
import { deepCompareStrict } from "@cfworker/json-schema";
|
|
6
|
-
|
|
7
6
|
//#region src/output_parsers/transform.ts
|
|
8
7
|
/**
|
|
9
8
|
* Class to parse the output of an LLM call that also allows streaming inputs.
|
|
@@ -74,7 +73,7 @@ var BaseCumulativeTransformOutputParser = class extends BaseTransformOutputParse
|
|
|
74
73
|
return "";
|
|
75
74
|
}
|
|
76
75
|
};
|
|
77
|
-
|
|
78
76
|
//#endregion
|
|
79
77
|
export { BaseCumulativeTransformOutputParser, BaseTransformOutputParser };
|
|
78
|
+
|
|
80
79
|
//# sourceMappingURL=transform.js.map
|
|
@@ -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 // eslint-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.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 // eslint-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;AACnB,aAAW,MAAM,SAAS,eACxB,KAAI,OAAO,UAAU,SACnB,OAAM,KAAK,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC;MAEzC,OAAM,KAAK,YAAY,CACrB;GACE,SAAS;GACT,MAAM,KAAK,qBAAqB,MAAM;GACvC,CACF,CAAC;;;;;;;;;CAYR,OAAO,UACL,gBACA,SACmB;AACnB,SAAO,KAAK,2BACV,gBACA,KAAK,WAAW,KAAK,KAAK,EAC1B;GACE,GAAG;GACH,SAAS;GACV,CACF;;;;;;;;AAWL,IAAsB,sCAAtB,cAEU,0BAA6B;CACrC,OAAiB;CAEjB,YAAY,QAAmD;AAC7D,QAAM,OAAO;AACb,OAAK,OAAO,QAAQ,QAAQ,KAAK;;CAUnC,OAAO,WACL,gBACmB;EACnB,IAAI;EACJ,IAAI;AACJ,aAAW,MAAM,SAAS,gBAAgB;AACxC,OAAI,OAAO,UAAU,YAAY,OAAO,MAAM,YAAY,SACxD,OAAM,IAAI,MAAM,mCAAmC;GAErD,IAAI;AACJ,OAAI,mBAAmB,MAAM,EAAE;AAC7B,QAAI,OAAO,MAAM,YAAY,SAC3B,OAAM,IAAI,MAAM,2CAA2C;AAE7D,eAAW,IAAI,oBAAoB;KACjC,SAAS;KACT,MAAM,MAAM;KACb,CAAC;cACO,cAAc,MAAM,EAAE;AAC/B,QAAI,OAAO,MAAM,YAAY,SAC3B,OAAM,IAAI,MAAM,2CAA2C;AAE7D,eAAW,IAAI,oBAAoB;KACjC,SAAS,eAAe,MAAM;KAC9B,MAAM,MAAM;KACb,CAAC;SAEF,YAAW,IAAI,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAGjD,OAAI,WAAW,KAAA,EACb,UAAS;OAET,UAAS,OAAO,OAAO,SAAS;GAGlC,MAAM,SAAS,MAAM,KAAK,mBAAmB,CAAC,OAAO,CAAC;AACtD,OACE,WAAW,KAAA,KACX,WAAW,QACX,CAAC,kBAAkB,QAAQ,WAAW,EACtC;AACA,QAAI,KAAK,KACP,OAAM,KAAK,MAAM,YAAY,OAAO;QAEpC,OAAM;AAER,iBAAa;;;;CAKnB,wBAAgC;AAC9B,SAAO"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
const require_duplex = require(
|
|
2
|
-
const require_transform = require(
|
|
3
|
-
require(
|
|
4
|
-
const require_sax = require(
|
|
5
|
-
|
|
1
|
+
const require_duplex = require("../utils/fast-json-patch/src/duplex.cjs");
|
|
2
|
+
const require_transform = require("./transform.cjs");
|
|
3
|
+
require("../utils/json_patch.cjs");
|
|
4
|
+
const require_sax = require("../utils/sax-js/sax.cjs");
|
|
6
5
|
//#region src/output_parsers/xml.ts
|
|
7
6
|
const XML_FORMAT_INSTRUCTIONS = `The output should be formatted as a XML file.
|
|
8
7
|
1. Output should conform to the tags below.
|
|
@@ -101,9 +100,9 @@ function parseXMLMarkdown(s) {
|
|
|
101
100
|
if (parsedResult && parsedResult.name === "?xml") parsedResult = parsedResult.children[0];
|
|
102
101
|
return parseParsedResult(parsedResult);
|
|
103
102
|
}
|
|
104
|
-
|
|
105
103
|
//#endregion
|
|
106
104
|
exports.XMLOutputParser = XMLOutputParser;
|
|
107
105
|
exports.XML_FORMAT_INSTRUCTIONS = XML_FORMAT_INSTRUCTIONS;
|
|
108
106
|
exports.parseXMLMarkdown = parseXMLMarkdown;
|
|
107
|
+
|
|
109
108
|
//# sourceMappingURL=xml.cjs.map
|
|
@@ -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 // eslint-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 // eslint-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 // eslint-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 // eslint-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":"
|
|
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 // eslint-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 // eslint-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 // eslint-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 // eslint-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;AAC1C,QAAM,OAAO;AAEb,OAAK,OAAO,QAAQ;;CAGtB,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe,CAAC,kBAAkB,iBAAiB;CAEnD,kBAAkB;CAElB,MACE,MACA,MACyB;AACzB,MAAI,CAAC,KACH;AAEF,MAAI,CAAC,KACH,QAAO,CAAC;GAAE,IAAI;GAAW,MAAM;GAAI,OAAO;GAAM,CAAC;AAEnD,SAAOC,eAAAA,QAAQ,MAAM,KAAK;;CAG5B,MAAM,mBACJ,aACgC;AAChC,SAAO,iBAAiB,YAAY,GAAG,KAAK;;CAG9C,MAAM,MAAM,MAAkC;AAC5C,SAAO,iBAAiB,KAAK;;CAG/B,wBAAgC;AAE9B,SADiB,CAAC,EAAE,KAAK,QAAQ,KAAK,KAAK,SAAS,KAEhD,wBAAwB,QAAQ,UAAU,KAAK,MAAM,KAAK,KAAK,IAAI,GAAG,GACtE;;;AAIR,MAAM,SAAS,SACb,KACG,MAAM,KAAK,CACX,KAAK,SAAS,KAAK,QAAQ,QAAQ,GAAG,CAAC,CACvC,KAAK,KAAK,CACV,MAAM;AAWX,MAAM,qBAAqB,UAAmC;AAC5D,KAAI,OAAO,KAAK,MAAM,CAAC,WAAW,EAChC,QAAO,EAAE;CAEX,MAAM,SAAoB,EAAE;AAC5B,KAAI,MAAM,SAAS,SAAS,GAAG;AAC7B,SAAO,MAAM,QAAQ,MAAM,SAAS,IAAI,kBAAkB;AAC1D,SAAO;QACF;AACL,SAAO,MAAM,QAAQ,MAAM,QAAQ,KAAA;AACnC,SAAO;;;AAIX,SAAgB,iBAAiB,GAAsB;CACrD,MAAM,gBAAgB,MAAM,EAAE;CAC9B,MAAM,SAASC,YAAAA,IAAI,OAAO,KAAK;CAC/B,IAAI,eAA6B,EAAE;CACnC,MAAM,eAA+B,EAAE;AAGvC,QAAO,aAAa,SAAc;EAChC,MAAM,UAAU;GACd,MAAM,KAAK;GACX,YAAY,KAAK;GACjB,UAAU,EAAE;GACZ,MAAM;GACN,eAAe,KAAK;GACrB;AAED,MAAI,aAAa,SAAS,EACF,cAAa,aAAa,SAAS,GAC3C,SAAS,KAAK,QAAQ;MAEpC,gBAAe;AAGjB,MAAI,CAAC,KAAK,cACR,cAAa,KAAK,QAAQ;;AAI9B,QAAO,mBAAmB;AACxB,MAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,cAAc,aAAa,KAAK;AACtC,OAAI,aAAa,WAAW,KAAK,YAC/B,gBAAe;;;AAMrB,QAAO,UAAU,SAAc;AAC7B,MAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,iBAAiB,aAAa,aAAa,SAAS;AAC1D,kBAAe,QAAQ;;;AAK3B,QAAO,eAAe,SAAc;AAClC,MAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,iBAAiB,aAAa,aAAa,SAAS;AAC1D,kBAAe,WAAW,KAAK,QAAQ,KAAK;;;CAKhD,MAAM,QAAQ,oBAAoB,KAAK,cAAc;CACrD,MAAM,YAAY,QAAQ,MAAM,KAAK;AACrC,QAAO,MAAM,UAAU,CAAC,OAAO;AAG/B,KAAI,gBAAgB,aAAa,SAAS,OACxC,gBAAe,aAAa,SAAS;AAGvC,QAAO,kBAAkB,aAAa"}
|
|
@@ -2,7 +2,6 @@ import { compare } from "../utils/fast-json-patch/src/duplex.js";
|
|
|
2
2
|
import { BaseCumulativeTransformOutputParser } from "./transform.js";
|
|
3
3
|
import "../utils/json_patch.js";
|
|
4
4
|
import { sax } from "../utils/sax-js/sax.js";
|
|
5
|
-
|
|
6
5
|
//#region src/output_parsers/xml.ts
|
|
7
6
|
const XML_FORMAT_INSTRUCTIONS = `The output should be formatted as a XML file.
|
|
8
7
|
1. Output should conform to the tags below.
|
|
@@ -101,7 +100,7 @@ function parseXMLMarkdown(s) {
|
|
|
101
100
|
if (parsedResult && parsedResult.name === "?xml") parsedResult = parsedResult.children[0];
|
|
102
101
|
return parseParsedResult(parsedResult);
|
|
103
102
|
}
|
|
104
|
-
|
|
105
103
|
//#endregion
|
|
106
104
|
export { XMLOutputParser, XML_FORMAT_INSTRUCTIONS, parseXMLMarkdown };
|
|
105
|
+
|
|
107
106
|
//# sourceMappingURL=xml.js.map
|
|
@@ -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 // eslint-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 // eslint-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 // eslint-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 // eslint-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":"
|
|
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 // eslint-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 // eslint-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 // eslint-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 // eslint-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;AAC1C,QAAM,OAAO;AAEb,OAAK,OAAO,QAAQ;;CAGtB,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe,CAAC,kBAAkB,iBAAiB;CAEnD,kBAAkB;CAElB,MACE,MACA,MACyB;AACzB,MAAI,CAAC,KACH;AAEF,MAAI,CAAC,KACH,QAAO,CAAC;GAAE,IAAI;GAAW,MAAM;GAAI,OAAO;GAAM,CAAC;AAEnD,SAAO,QAAQ,MAAM,KAAK;;CAG5B,MAAM,mBACJ,aACgC;AAChC,SAAO,iBAAiB,YAAY,GAAG,KAAK;;CAG9C,MAAM,MAAM,MAAkC;AAC5C,SAAO,iBAAiB,KAAK;;CAG/B,wBAAgC;AAE9B,SADiB,CAAC,EAAE,KAAK,QAAQ,KAAK,KAAK,SAAS,KAEhD,wBAAwB,QAAQ,UAAU,KAAK,MAAM,KAAK,KAAK,IAAI,GAAG,GACtE;;;AAIR,MAAM,SAAS,SACb,KACG,MAAM,KAAK,CACX,KAAK,SAAS,KAAK,QAAQ,QAAQ,GAAG,CAAC,CACvC,KAAK,KAAK,CACV,MAAM;AAWX,MAAM,qBAAqB,UAAmC;AAC5D,KAAI,OAAO,KAAK,MAAM,CAAC,WAAW,EAChC,QAAO,EAAE;CAEX,MAAM,SAAoB,EAAE;AAC5B,KAAI,MAAM,SAAS,SAAS,GAAG;AAC7B,SAAO,MAAM,QAAQ,MAAM,SAAS,IAAI,kBAAkB;AAC1D,SAAO;QACF;AACL,SAAO,MAAM,QAAQ,MAAM,QAAQ,KAAA;AACnC,SAAO;;;AAIX,SAAgB,iBAAiB,GAAsB;CACrD,MAAM,gBAAgB,MAAM,EAAE;CAC9B,MAAM,SAAS,IAAI,OAAO,KAAK;CAC/B,IAAI,eAA6B,EAAE;CACnC,MAAM,eAA+B,EAAE;AAGvC,QAAO,aAAa,SAAc;EAChC,MAAM,UAAU;GACd,MAAM,KAAK;GACX,YAAY,KAAK;GACjB,UAAU,EAAE;GACZ,MAAM;GACN,eAAe,KAAK;GACrB;AAED,MAAI,aAAa,SAAS,EACF,cAAa,aAAa,SAAS,GAC3C,SAAS,KAAK,QAAQ;MAEpC,gBAAe;AAGjB,MAAI,CAAC,KAAK,cACR,cAAa,KAAK,QAAQ;;AAI9B,QAAO,mBAAmB;AACxB,MAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,cAAc,aAAa,KAAK;AACtC,OAAI,aAAa,WAAW,KAAK,YAC/B,gBAAe;;;AAMrB,QAAO,UAAU,SAAc;AAC7B,MAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,iBAAiB,aAAa,aAAa,SAAS;AAC1D,kBAAe,QAAQ;;;AAK3B,QAAO,eAAe,SAAc;AAClC,MAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,iBAAiB,aAAa,aAAa,SAAS;AAC1D,kBAAe,WAAW,KAAK,QAAQ,KAAK;;;CAKhD,MAAM,QAAQ,oBAAoB,KAAK,cAAc;CACrD,MAAM,YAAY,QAAQ,MAAM,KAAK;AACrC,QAAO,MAAM,UAAU,CAAC,OAAO;AAG/B,KAAI,gBAAgB,aAAa,SAAS,OACxC,gBAAe,aAAa,SAAS;AAGvC,QAAO,kBAAkB,aAAa"}
|
package/dist/outputs.cjs
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
3
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
2
|
//#region src/outputs.ts
|
|
5
|
-
var outputs_exports = /* @__PURE__ */
|
|
3
|
+
var outputs_exports = /* @__PURE__ */ require("./_virtual/_rolldown/runtime.cjs").__exportAll({
|
|
6
4
|
ChatGenerationChunk: () => ChatGenerationChunk,
|
|
7
5
|
GenerationChunk: () => GenerationChunk,
|
|
8
6
|
RUN_KEY: () => RUN_KEY
|
|
@@ -45,15 +43,15 @@ var ChatGenerationChunk = class ChatGenerationChunk extends GenerationChunk {
|
|
|
45
43
|
});
|
|
46
44
|
}
|
|
47
45
|
};
|
|
48
|
-
|
|
49
46
|
//#endregion
|
|
50
47
|
exports.ChatGenerationChunk = ChatGenerationChunk;
|
|
51
48
|
exports.GenerationChunk = GenerationChunk;
|
|
52
49
|
exports.RUN_KEY = RUN_KEY;
|
|
53
|
-
Object.defineProperty(exports,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
Object.defineProperty(exports, "outputs_exports", {
|
|
51
|
+
enumerable: true,
|
|
52
|
+
get: function() {
|
|
53
|
+
return outputs_exports;
|
|
54
|
+
}
|
|
58
55
|
});
|
|
56
|
+
|
|
59
57
|
//# sourceMappingURL=outputs.cjs.map
|
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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>;\n}\n\nexport type GenerationChunkFields = {\n text: string;\n // eslint-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 // eslint-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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n /**\n * Dictionary of run metadata\n */\n // eslint-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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n}\n"],"mappings":"
|
|
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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>;\n}\n\nexport type GenerationChunkFields = {\n text: string;\n // eslint-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 // eslint-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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n /**\n * Dictionary of run metadata\n */\n // eslint-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 // eslint-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;AACzC,OAAK,OAAO,OAAO;AACnB,OAAK,iBAAiB,OAAO;;CAG/B,OAAO,OAAyC;AAC9C,SAAO,IAAI,gBAAgB;GACzB,MAAM,KAAK,OAAO,MAAM;GACxB,gBAAgB;IACd,GAAG,KAAK;IACR,GAAG,MAAM;IACV;GACF,CAAC;;;AAgCN,IAAa,sBAAb,MAAa,4BACH,gBAEV;CACE;CAEA,YAAY,QAAmC;AAC7C,QAAM,OAAO;AACb,OAAK,UAAU,OAAO;;CAGxB,OAAO,OAA4B;AACjC,SAAO,IAAI,oBAAoB;GAC7B,MAAM,KAAK,OAAO,MAAM;GACxB,gBAAgB;IACd,GAAG,KAAK;IACR,GAAG,MAAM;IACV;GACD,SAAS,KAAK,QAAQ,OAAO,MAAM,QAAQ;GAC5C,CAAC"}
|
package/dist/outputs.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
-
|
|
3
2
|
//#region src/outputs.ts
|
|
4
3
|
var outputs_exports = /* @__PURE__ */ __exportAll({
|
|
5
4
|
ChatGenerationChunk: () => ChatGenerationChunk,
|
|
@@ -44,7 +43,7 @@ var ChatGenerationChunk = class ChatGenerationChunk extends GenerationChunk {
|
|
|
44
43
|
});
|
|
45
44
|
}
|
|
46
45
|
};
|
|
47
|
-
|
|
48
46
|
//#endregion
|
|
49
47
|
export { ChatGenerationChunk, GenerationChunk, RUN_KEY, outputs_exports };
|
|
48
|
+
|
|
50
49
|
//# sourceMappingURL=outputs.js.map
|
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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>;\n}\n\nexport type GenerationChunkFields = {\n text: string;\n // eslint-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 // eslint-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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n /**\n * Dictionary of run metadata\n */\n // eslint-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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n}\n"],"mappings":"
|
|
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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>;\n}\n\nexport type GenerationChunkFields = {\n text: string;\n // eslint-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 // eslint-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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n llmOutput?: Record<string, any>;\n /**\n * Dictionary of run metadata\n */\n // eslint-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 // eslint-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;AACzC,OAAK,OAAO,OAAO;AACnB,OAAK,iBAAiB,OAAO;;CAG/B,OAAO,OAAyC;AAC9C,SAAO,IAAI,gBAAgB;GACzB,MAAM,KAAK,OAAO,MAAM;GACxB,gBAAgB;IACd,GAAG,KAAK;IACR,GAAG,MAAM;IACV;GACF,CAAC;;;AAgCN,IAAa,sBAAb,MAAa,4BACH,gBAEV;CACE;CAEA,YAAY,QAAmC;AAC7C,QAAM,OAAO;AACb,OAAK,UAAU,OAAO;;CAGxB,OAAO,OAA4B;AACjC,SAAO,IAAI,oBAAoB;GAC7B,MAAM,KAAK,OAAO,MAAM;GACxB,gBAAgB;IACd,GAAG,KAAK;IACR,GAAG,MAAM;IACV;GACD,SAAS,KAAK,QAAQ,OAAO,MAAM,QAAQ;GAC5C,CAAC"}
|
package/dist/prompt_values.cjs
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
const require_runtime = require(
|
|
3
|
-
const require_load_serializable = require(
|
|
4
|
-
const require_human = require(
|
|
5
|
-
const require_utils = require(
|
|
6
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_load_serializable = require("./load/serializable.cjs");
|
|
4
|
+
const require_human = require("./messages/human.cjs");
|
|
5
|
+
const require_utils = require("./messages/utils.cjs");
|
|
7
6
|
//#region src/prompt_values.ts
|
|
8
7
|
var prompt_values_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
9
8
|
BasePromptValue: () => BasePromptValue,
|
|
@@ -91,16 +90,16 @@ var ImagePromptValue = class extends BasePromptValue {
|
|
|
91
90
|
}] })];
|
|
92
91
|
}
|
|
93
92
|
};
|
|
94
|
-
|
|
95
93
|
//#endregion
|
|
96
94
|
exports.BasePromptValue = BasePromptValue;
|
|
97
95
|
exports.ChatPromptValue = ChatPromptValue;
|
|
98
96
|
exports.ImagePromptValue = ImagePromptValue;
|
|
99
97
|
exports.StringPromptValue = StringPromptValue;
|
|
100
|
-
Object.defineProperty(exports,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
98
|
+
Object.defineProperty(exports, "prompt_values_exports", {
|
|
99
|
+
enumerable: true,
|
|
100
|
+
get: function() {
|
|
101
|
+
return prompt_values_exports;
|
|
102
|
+
}
|
|
105
103
|
});
|
|
104
|
+
|
|
106
105
|
//# sourceMappingURL=prompt_values.cjs.map
|
|
@@ -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 // eslint-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 // eslint-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":"
|
|
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 // eslint-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 // eslint-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;;;;;AAUA,IAAa,oBAAb,cACU,gBAEV;CACE,OAAO,UAAkB;AACvB,SAAO;;CAGT,eAAe,CAAC,kBAAkB,gBAAgB;CAElD,kBAAkB;CAElB;CAEA,YAAY,OAAe;AACzB,QAAM,EAAE,OAAO,CAAC;AAChB,OAAK,QAAQ;;CAGf,WAAW;AACT,SAAO,KAAK;;CAGd,iBAAiB;AACf,SAAO,CAAC,IAAIC,cAAAA,aAAa,KAAK,MAAM,CAAC;;;;;;;AAezC,IAAa,kBAAb,cACU,gBAEV;CACE,eAAe,CAAC,kBAAkB,gBAAgB;CAElD,kBAAkB;CAElB,OAAO,UAAU;AACf,SAAO;;CAGT;CAMA,YAAY,QAA+C;AACzD,MAAI,MAAM,QAAQ,OAAO,CAEvB,UAAS,EAAE,UAAU,QAAQ;AAG/B,QAAM,OAAO;AACb,OAAK,WAAW,OAAO;;CAGzB,WAAW;AACT,SAAOC,cAAAA,gBAAgB,KAAK,SAAS;;CAGvC,iBAAiB;AACf,SAAO,KAAK;;;;;;;AAoBhB,IAAa,mBAAb,cAAsC,gBAAgB;CACpD,eAAe,CAAC,kBAAkB,gBAAgB;CAElD,kBAAkB;CAElB,OAAO,UAAU;AACf,SAAO;;CAGT;;CAGA;CAMA,YAAY,QAA+C;AACzD,MAAI,EAAE,cAAc,QAElB,UAAS,EAAE,UAAU,QAAQ;AAG/B,QAAM,OAAO;AACb,OAAK,WAAW,OAAO;;CAGzB,WAAW;AACT,SAAO,KAAK,SAAS;;CAGvB,iBAAiB;AACf,SAAO,CACL,IAAID,cAAAA,aAAa,EACf,SAAS,CACP;GACE,MAAM;GACN,WAAW;IACT,QAAQ,KAAK,SAAS;IACtB,KAAK,KAAK,SAAS;IACpB;GACF,CACF,EACF,CAAC,CACH"}
|
package/dist/prompt_values.js
CHANGED
|
@@ -2,7 +2,6 @@ import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
|
2
2
|
import { Serializable } from "./load/serializable.js";
|
|
3
3
|
import { HumanMessage } from "./messages/human.js";
|
|
4
4
|
import { getBufferString } from "./messages/utils.js";
|
|
5
|
-
|
|
6
5
|
//#region src/prompt_values.ts
|
|
7
6
|
var prompt_values_exports = /* @__PURE__ */ __exportAll({
|
|
8
7
|
BasePromptValue: () => BasePromptValue,
|
|
@@ -90,7 +89,7 @@ var ImagePromptValue = class extends BasePromptValue {
|
|
|
90
89
|
}] })];
|
|
91
90
|
}
|
|
92
91
|
};
|
|
93
|
-
|
|
94
92
|
//#endregion
|
|
95
93
|
export { BasePromptValue, ChatPromptValue, ImagePromptValue, StringPromptValue, prompt_values_exports };
|
|
94
|
+
|
|
96
95
|
//# sourceMappingURL=prompt_values.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt_values.js","names":[],"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 // eslint-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 // eslint-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":"
|
|
1
|
+
{"version":3,"file":"prompt_values.js","names":[],"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 // eslint-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 // eslint-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,cACU,aAEV;;;;;AAUA,IAAa,oBAAb,cACU,gBAEV;CACE,OAAO,UAAkB;AACvB,SAAO;;CAGT,eAAe,CAAC,kBAAkB,gBAAgB;CAElD,kBAAkB;CAElB;CAEA,YAAY,OAAe;AACzB,QAAM,EAAE,OAAO,CAAC;AAChB,OAAK,QAAQ;;CAGf,WAAW;AACT,SAAO,KAAK;;CAGd,iBAAiB;AACf,SAAO,CAAC,IAAI,aAAa,KAAK,MAAM,CAAC;;;;;;;AAezC,IAAa,kBAAb,cACU,gBAEV;CACE,eAAe,CAAC,kBAAkB,gBAAgB;CAElD,kBAAkB;CAElB,OAAO,UAAU;AACf,SAAO;;CAGT;CAMA,YAAY,QAA+C;AACzD,MAAI,MAAM,QAAQ,OAAO,CAEvB,UAAS,EAAE,UAAU,QAAQ;AAG/B,QAAM,OAAO;AACb,OAAK,WAAW,OAAO;;CAGzB,WAAW;AACT,SAAO,gBAAgB,KAAK,SAAS;;CAGvC,iBAAiB;AACf,SAAO,KAAK;;;;;;;AAoBhB,IAAa,mBAAb,cAAsC,gBAAgB;CACpD,eAAe,CAAC,kBAAkB,gBAAgB;CAElD,kBAAkB;CAElB,OAAO,UAAU;AACf,SAAO;;CAGT;;CAGA;CAMA,YAAY,QAA+C;AACzD,MAAI,EAAE,cAAc,QAElB,UAAS,EAAE,UAAU,QAAQ;AAG/B,QAAM,OAAO;AACb,OAAK,WAAW,OAAO;;CAGzB,WAAW;AACT,SAAO,KAAK,SAAS;;CAGvB,iBAAiB;AACf,SAAO,CACL,IAAI,aAAa,EACf,SAAS,CACP;GACE,MAAM;GACN,WAAW;IACT,QAAQ,KAAK,SAAS;IACtB,KAAK,KAAK,SAAS;IACpB;GACF,CACF,EACF,CAAC,CACH"}
|
package/dist/prompts/base.cjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
const require_base = require(
|
|
2
|
-
|
|
1
|
+
const require_base = require("../runnables/base.cjs");
|
|
3
2
|
//#region src/prompts/base.ts
|
|
4
3
|
/**
|
|
5
4
|
* Base class for prompt templates. Exposes a format method that returns a
|
|
@@ -65,7 +64,7 @@ var BasePromptTemplate = class extends require_base.Runnable {
|
|
|
65
64
|
});
|
|
66
65
|
}
|
|
67
66
|
};
|
|
68
|
-
|
|
69
67
|
//#endregion
|
|
70
68
|
exports.BasePromptTemplate = BasePromptTemplate;
|
|
69
|
+
|
|
71
70
|
//# sourceMappingURL=base.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.cjs","names":["Runnable"],"sources":["../../src/prompts/base.ts"],"sourcesContent":["// Default generic \"any\" values are for backwards compatibility.\n// Replace with \"string\" when we are comfortable with a breaking change.\n\nimport type {\n InputValues,\n PartialValues,\n StringWithAutocomplete,\n} from \"../utils/types/index.js\";\nimport { type BasePromptValueInterface } from \"../prompt_values.js\";\nimport { BaseOutputParser } from \"../output_parsers/index.js\";\nimport type { SerializedFields } from \"../load/map_keys.js\";\nimport { Runnable } from \"../runnables/base.js\";\nimport { BaseCallbackConfig } from \"../callbacks/manager.js\";\n\nexport type TypedPromptInputValues<RunInput> = InputValues<\n StringWithAutocomplete<Extract<keyof RunInput, string>>\n>;\n\nexport type Example = Record<string, string>;\n\n/**\n * Input common to all prompt templates.\n */\nexport interface BasePromptTemplateInput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n InputVariables extends InputValues = any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PartialVariableName extends string = any,\n> {\n /**\n * A list of variable names the prompt template expects\n */\n inputVariables: Array<Extract<keyof InputVariables, string>>;\n\n /**\n * How to parse the output of calling an LLM on this formatted prompt\n */\n outputParser?: BaseOutputParser;\n\n /** Partial variables */\n partialVariables?: PartialValues<PartialVariableName>;\n}\n\n/**\n * Base class for prompt templates. Exposes a format method that returns a\n * string prompt given a set of input values.\n */\nexport abstract class BasePromptTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = any,\n RunOutput extends BasePromptValueInterface = BasePromptValueInterface,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PartialVariableName extends string = any,\n>\n extends Runnable<RunInput, RunOutput>\n implements BasePromptTemplateInput\n{\n declare PromptValueReturnType: RunOutput;\n\n lc_serializable = true;\n\n lc_namespace = [\"langchain_core\", \"prompts\", this._getPromptType()];\n\n get lc_attributes(): SerializedFields | undefined {\n return {\n partialVariables: undefined, // python doesn't support this yet\n };\n }\n\n inputVariables: Array<Extract<keyof RunInput, string>>;\n\n outputParser?: BaseOutputParser;\n\n partialVariables: PartialValues<PartialVariableName>;\n\n /**\n * Metadata to be used for tracing.\n */\n metadata?: Record<string, unknown>;\n\n /** Tags to be used for tracing. */\n tags?: string[];\n\n constructor(input: BasePromptTemplateInput) {\n super(input);\n const { inputVariables } = input;\n if (inputVariables.includes(\"stop\")) {\n throw new Error(\n \"Cannot have an input variable named 'stop', as it is used internally, please rename.\"\n );\n }\n Object.assign(this, input);\n }\n\n abstract partial(\n values: PartialValues\n ): Promise<BasePromptTemplate<RunInput, RunOutput, PartialVariableName>>;\n\n /**\n * Merges partial variables and user variables.\n * @param userVariables The user variables to merge with the partial variables.\n * @returns A Promise that resolves to an object containing the merged variables.\n */\n async mergePartialAndUserVariables(\n userVariables: TypedPromptInputValues<RunInput>\n ): Promise<\n InputValues<Extract<keyof RunInput, string> | PartialVariableName>\n > {\n const partialVariables = this.partialVariables ?? {};\n const partialValues: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(partialVariables)) {\n if (typeof value === \"string\") {\n partialValues[key] = value;\n } else {\n partialValues[key] = await (value as () => Promise<string>)();\n }\n }\n\n const allKwargs = {\n ...(partialValues as Record<PartialVariableName, string>),\n ...userVariables,\n };\n return allKwargs;\n }\n\n /**\n * Invokes the prompt template with the given input and options.\n * @param input The input to invoke the prompt template with.\n * @param options Optional configuration for the callback.\n * @returns A Promise that resolves to the output of the prompt template.\n */\n async invoke(\n input: RunInput,\n options?: BaseCallbackConfig\n ): Promise<RunOutput> {\n const metadata = {\n ...this.metadata,\n ...options?.metadata,\n };\n const tags = [...(this.tags ?? []), ...(options?.tags ?? [])];\n return this._callWithConfig(\n (input: RunInput) => this.formatPromptValue(input),\n input,\n { ...options, tags, metadata, runType: \"prompt\" }\n );\n }\n\n /**\n * Format the prompt given the input values.\n *\n * @param values - A dictionary of arguments to be passed to the prompt template.\n * @returns A formatted prompt string.\n *\n * @example\n * ```ts\n * prompt.format({ foo: \"bar\" });\n * ```\n */\n abstract format(values: TypedPromptInputValues<RunInput>): Promise<string>;\n\n /**\n * Format the prompt given the input values and return a formatted prompt value.\n * @param values\n * @returns A formatted PromptValue.\n */\n abstract formatPromptValue(\n values: TypedPromptInputValues<RunInput>\n ): Promise<RunOutput>;\n\n /**\n * Return the string type key uniquely identifying this class of prompt template.\n */\n abstract _getPromptType(): string;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.cjs","names":["Runnable"],"sources":["../../src/prompts/base.ts"],"sourcesContent":["// Default generic \"any\" values are for backwards compatibility.\n// Replace with \"string\" when we are comfortable with a breaking change.\n\nimport type {\n InputValues,\n PartialValues,\n StringWithAutocomplete,\n} from \"../utils/types/index.js\";\nimport { type BasePromptValueInterface } from \"../prompt_values.js\";\nimport { BaseOutputParser } from \"../output_parsers/index.js\";\nimport type { SerializedFields } from \"../load/map_keys.js\";\nimport { Runnable } from \"../runnables/base.js\";\nimport { BaseCallbackConfig } from \"../callbacks/manager.js\";\n\nexport type TypedPromptInputValues<RunInput> = InputValues<\n StringWithAutocomplete<Extract<keyof RunInput, string>>\n>;\n\nexport type Example = Record<string, string>;\n\n/**\n * Input common to all prompt templates.\n */\nexport interface BasePromptTemplateInput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n InputVariables extends InputValues = any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PartialVariableName extends string = any,\n> {\n /**\n * A list of variable names the prompt template expects\n */\n inputVariables: Array<Extract<keyof InputVariables, string>>;\n\n /**\n * How to parse the output of calling an LLM on this formatted prompt\n */\n outputParser?: BaseOutputParser;\n\n /** Partial variables */\n partialVariables?: PartialValues<PartialVariableName>;\n}\n\n/**\n * Base class for prompt templates. Exposes a format method that returns a\n * string prompt given a set of input values.\n */\nexport abstract class BasePromptTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = any,\n RunOutput extends BasePromptValueInterface = BasePromptValueInterface,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PartialVariableName extends string = any,\n>\n extends Runnable<RunInput, RunOutput>\n implements BasePromptTemplateInput\n{\n declare PromptValueReturnType: RunOutput;\n\n lc_serializable = true;\n\n lc_namespace = [\"langchain_core\", \"prompts\", this._getPromptType()];\n\n get lc_attributes(): SerializedFields | undefined {\n return {\n partialVariables: undefined, // python doesn't support this yet\n };\n }\n\n inputVariables: Array<Extract<keyof RunInput, string>>;\n\n outputParser?: BaseOutputParser;\n\n partialVariables: PartialValues<PartialVariableName>;\n\n /**\n * Metadata to be used for tracing.\n */\n metadata?: Record<string, unknown>;\n\n /** Tags to be used for tracing. */\n tags?: string[];\n\n constructor(input: BasePromptTemplateInput) {\n super(input);\n const { inputVariables } = input;\n if (inputVariables.includes(\"stop\")) {\n throw new Error(\n \"Cannot have an input variable named 'stop', as it is used internally, please rename.\"\n );\n }\n Object.assign(this, input);\n }\n\n abstract partial(\n values: PartialValues\n ): Promise<BasePromptTemplate<RunInput, RunOutput, PartialVariableName>>;\n\n /**\n * Merges partial variables and user variables.\n * @param userVariables The user variables to merge with the partial variables.\n * @returns A Promise that resolves to an object containing the merged variables.\n */\n async mergePartialAndUserVariables(\n userVariables: TypedPromptInputValues<RunInput>\n ): Promise<\n InputValues<Extract<keyof RunInput, string> | PartialVariableName>\n > {\n const partialVariables = this.partialVariables ?? {};\n const partialValues: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(partialVariables)) {\n if (typeof value === \"string\") {\n partialValues[key] = value;\n } else {\n partialValues[key] = await (value as () => Promise<string>)();\n }\n }\n\n const allKwargs = {\n ...(partialValues as Record<PartialVariableName, string>),\n ...userVariables,\n };\n return allKwargs;\n }\n\n /**\n * Invokes the prompt template with the given input and options.\n * @param input The input to invoke the prompt template with.\n * @param options Optional configuration for the callback.\n * @returns A Promise that resolves to the output of the prompt template.\n */\n async invoke(\n input: RunInput,\n options?: BaseCallbackConfig\n ): Promise<RunOutput> {\n const metadata = {\n ...this.metadata,\n ...options?.metadata,\n };\n const tags = [...(this.tags ?? []), ...(options?.tags ?? [])];\n return this._callWithConfig(\n (input: RunInput) => this.formatPromptValue(input),\n input,\n { ...options, tags, metadata, runType: \"prompt\" }\n );\n }\n\n /**\n * Format the prompt given the input values.\n *\n * @param values - A dictionary of arguments to be passed to the prompt template.\n * @returns A formatted prompt string.\n *\n * @example\n * ```ts\n * prompt.format({ foo: \"bar\" });\n * ```\n */\n abstract format(values: TypedPromptInputValues<RunInput>): Promise<string>;\n\n /**\n * Format the prompt given the input values and return a formatted prompt value.\n * @param values\n * @returns A formatted PromptValue.\n */\n abstract formatPromptValue(\n values: TypedPromptInputValues<RunInput>\n ): Promise<RunOutput>;\n\n /**\n * Return the string type key uniquely identifying this class of prompt template.\n */\n abstract _getPromptType(): string;\n}\n"],"mappings":";;;;;;AA+CA,IAAsB,qBAAtB,cAOUA,aAAAA,SAEV;CAGE,kBAAkB;CAElB,eAAe;EAAC;EAAkB;EAAW,KAAK,gBAAgB;EAAC;CAEnE,IAAI,gBAA8C;AAChD,SAAO,EACL,kBAAkB,KAAA,GACnB;;CAGH;CAEA;CAEA;;;;CAKA;;CAGA;CAEA,YAAY,OAAgC;AAC1C,QAAM,MAAM;EACZ,MAAM,EAAE,mBAAmB;AAC3B,MAAI,eAAe,SAAS,OAAO,CACjC,OAAM,IAAI,MACR,uFACD;AAEH,SAAO,OAAO,MAAM,MAAM;;;;;;;CAY5B,MAAM,6BACJ,eAGA;EACA,MAAM,mBAAmB,KAAK,oBAAoB,EAAE;EACpD,MAAM,gBAAwC,EAAE;AAEhD,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,iBAAiB,CACzD,KAAI,OAAO,UAAU,SACnB,eAAc,OAAO;MAErB,eAAc,OAAO,MAAO,OAAiC;AAQjE,SAJkB;GAChB,GAAI;GACJ,GAAG;GACJ;;;;;;;;CAUH,MAAM,OACJ,OACA,SACoB;EACpB,MAAM,WAAW;GACf,GAAG,KAAK;GACR,GAAG,SAAS;GACb;EACD,MAAM,OAAO,CAAC,GAAI,KAAK,QAAQ,EAAE,EAAG,GAAI,SAAS,QAAQ,EAAE,CAAE;AAC7D,SAAO,KAAK,iBACT,UAAoB,KAAK,kBAAkB,MAAM,EAClD,OACA;GAAE,GAAG;GAAS;GAAM;GAAU,SAAS;GAAU,CAClD"}
|
package/dist/prompts/base.d.ts
CHANGED
|
@@ -4,8 +4,6 @@ import { BaseCallbackConfig } from "../callbacks/manager.js";
|
|
|
4
4
|
import { Runnable } from "../runnables/base.js";
|
|
5
5
|
import { BasePromptValueInterface } from "../prompt_values.js";
|
|
6
6
|
import { BaseOutputParser } from "../output_parsers/base.js";
|
|
7
|
-
import "../output_parsers/index.js";
|
|
8
|
-
|
|
9
7
|
//#region src/prompts/base.d.ts
|
|
10
8
|
type TypedPromptInputValues<RunInput> = InputValues<StringWithAutocomplete<Extract<keyof RunInput, string>>>;
|
|
11
9
|
type Example = Record<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","names":[],"sources":["../../src/prompts/base.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.d.ts","names":[],"sources":["../../src/prompts/base.ts"],"mappings":";;;;;;;KAcY,sBAAA,aAAmC,WAAA,CAC7C,sBAAA,CAAuB,OAAA,OAAc,QAAA;AAAA,KAG3B,OAAA,GAAU,MAAA;;AAJtB;;UASiB,uBAAA,wBAEQ,WAAA;EAVc;;;EAiBrC,cAAA,EAAgB,KAAA,CAAM,OAAA,OAAc,cAAA;EAlBoB;;;EAuBxD,YAAA,GAAe,gBAAA;EAtBf;EAyBA,gBAAA,GAAmB,aAAA,CAAc,mBAAA;AAAA;;;AAtBnC;;uBA6BsB,kBAAA,kBAEH,WAAA,0BACC,wBAAA,GAA2B,wBAAA,oDAIrC,QAAA,CAAS,QAAA,EAAU,SAAA,aAChB,uBAAA;EAEH,qBAAA,EAAuB,SAAA;EAE/B,eAAA;EAEA,YAAA;EAAA,IAEI,aAAA,CAAA,GAAiB,gBAAA;EAMrB,cAAA,EAAgB,KAAA,CAAM,OAAA,OAAc,QAAA;EAEpC,YAAA,GAAe,gBAAA;EAEf,gBAAA,EAAkB,aAAA,CAAc,mBAAA;EAzCV;;;EA8CtB,QAAA,GAAW,MAAA;EAtCQ;EAyCnB,IAAA;EAEA,WAAA,CAAY,KAAA,EAAO,uBAAA;EAAA,SAWV,OAAA,CACP,MAAA,EAAQ,aAAA,GACP,OAAA,CAAQ,kBAAA,CAAmB,QAAA,EAAU,SAAA,EAAW,mBAAA;EAvE5B;;;;;EA8EjB,4BAAA,CACJ,aAAA,EAAe,sBAAA,CAAuB,QAAA,IACrC,OAAA,CACD,WAAA,CAAY,OAAA,OAAc,QAAA,YAAoB,mBAAA;EArEhD;;;;;;EA+FM,MAAA,CACJ,KAAA,EAAO,QAAA,EACP,OAAA,GAAU,kBAAA,GACT,OAAA,CAAQ,SAAA;EAxFS;;;;;;;;;;;EAAA,SAgHX,MAAA,CAAO,MAAA,EAAQ,sBAAA,CAAuB,QAAA,IAAY,OAAA;EA1F3C;;;;;EAAA,SAiGP,iBAAA,CACP,MAAA,EAAQ,sBAAA,CAAuB,QAAA,IAC9B,OAAA,CAAQ,SAAA;EAzED;;;EAAA,SA8ED,cAAA,CAAA;AAAA"}
|
package/dist/prompts/base.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Runnable } from "../runnables/base.js";
|
|
2
|
-
|
|
3
2
|
//#region src/prompts/base.ts
|
|
4
3
|
/**
|
|
5
4
|
* Base class for prompt templates. Exposes a format method that returns a
|
|
@@ -65,7 +64,7 @@ var BasePromptTemplate = class extends Runnable {
|
|
|
65
64
|
});
|
|
66
65
|
}
|
|
67
66
|
};
|
|
68
|
-
|
|
69
67
|
//#endregion
|
|
70
68
|
export { BasePromptTemplate };
|
|
69
|
+
|
|
71
70
|
//# sourceMappingURL=base.js.map
|