@langchain/core 1.1.38 → 1.1.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/agents.cjs.map +1 -1
- package/dist/agents.js.map +1 -1
- package/dist/callbacks/base.cjs.map +1 -1
- package/dist/callbacks/base.d.cts +71 -40
- package/dist/callbacks/base.d.cts.map +1 -1
- package/dist/callbacks/base.d.ts +71 -40
- package/dist/callbacks/base.d.ts.map +1 -1
- package/dist/callbacks/base.js.map +1 -1
- package/dist/callbacks/dispatch/index.cjs.map +1 -1
- package/dist/callbacks/dispatch/index.d.cts +0 -1
- package/dist/callbacks/dispatch/index.d.cts.map +1 -1
- package/dist/callbacks/dispatch/index.d.ts +0 -1
- package/dist/callbacks/dispatch/index.d.ts.map +1 -1
- package/dist/callbacks/dispatch/index.js.map +1 -1
- package/dist/callbacks/dispatch/web.cjs.map +1 -1
- package/dist/callbacks/dispatch/web.d.cts +0 -1
- package/dist/callbacks/dispatch/web.d.cts.map +1 -1
- package/dist/callbacks/dispatch/web.d.ts +0 -1
- package/dist/callbacks/dispatch/web.d.ts.map +1 -1
- package/dist/callbacks/dispatch/web.js.map +1 -1
- package/dist/callbacks/manager.cjs.map +1 -1
- package/dist/callbacks/manager.js.map +1 -1
- package/dist/chat_history.d.cts +0 -1
- package/dist/chat_history.d.cts.map +1 -1
- package/dist/document_loaders/langsmith.cjs.map +1 -1
- package/dist/document_loaders/langsmith.js.map +1 -1
- package/dist/documents/document.cjs.map +1 -1
- package/dist/documents/document.js.map +1 -1
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/indexing/base.cjs.map +1 -1
- package/dist/indexing/base.d.cts.map +1 -1
- package/dist/indexing/base.d.ts.map +1 -1
- package/dist/indexing/base.js.map +1 -1
- package/dist/language_models/base.cjs +1 -1
- package/dist/language_models/base.cjs.map +1 -1
- package/dist/language_models/base.d.cts +1 -1
- package/dist/language_models/base.d.cts.map +1 -1
- package/dist/language_models/base.d.ts +1 -1
- package/dist/language_models/base.d.ts.map +1 -1
- package/dist/language_models/base.js +1 -1
- package/dist/language_models/base.js.map +1 -1
- package/dist/language_models/chat_models.cjs.map +1 -1
- package/dist/language_models/chat_models.d.cts +0 -1
- package/dist/language_models/chat_models.d.cts.map +1 -1
- package/dist/language_models/chat_models.d.ts.map +1 -1
- package/dist/language_models/chat_models.js.map +1 -1
- package/dist/language_models/llms.cjs.map +1 -1
- package/dist/language_models/llms.d.cts.map +1 -1
- package/dist/language_models/llms.d.ts.map +1 -1
- package/dist/language_models/llms.js.map +1 -1
- package/dist/language_models/structured_output.cjs.map +1 -1
- package/dist/language_models/structured_output.d.cts +0 -1
- package/dist/language_models/structured_output.d.cts.map +1 -1
- package/dist/language_models/structured_output.d.ts.map +1 -1
- package/dist/language_models/structured_output.js.map +1 -1
- package/dist/load/index.cjs +1 -2
- 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.map +1 -1
- package/dist/load/map_keys.js.map +1 -1
- package/dist/load/serializable.cjs.map +1 -1
- package/dist/load/serializable.js.map +1 -1
- package/dist/memory.cjs +2 -8
- package/dist/memory.cjs.map +1 -1
- package/dist/memory.d.cts +2 -2
- package/dist/memory.d.cts.map +1 -1
- package/dist/memory.d.ts +2 -2
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +2 -8
- package/dist/memory.js.map +1 -1
- package/dist/messages/base.cjs.map +1 -1
- package/dist/messages/base.js.map +1 -1
- package/dist/messages/block_translators/utils.cjs.map +1 -1
- package/dist/messages/block_translators/utils.js.map +1 -1
- package/dist/messages/chat.cjs.map +1 -1
- package/dist/messages/chat.js.map +1 -1
- package/dist/messages/content/data.cjs.map +1 -1
- package/dist/messages/content/data.d.cts.map +1 -1
- package/dist/messages/content/data.d.ts.map +1 -1
- package/dist/messages/content/data.js.map +1 -1
- package/dist/messages/content/index.cjs.map +1 -1
- package/dist/messages/content/index.js.map +1 -1
- package/dist/messages/content/multimodal.cjs.map +1 -1
- package/dist/messages/content/multimodal.js.map +1 -1
- package/dist/messages/content/tools.cjs.map +1 -1
- package/dist/messages/content/tools.js.map +1 -1
- package/dist/messages/message.cjs.map +1 -1
- package/dist/messages/message.d.cts +3 -2
- package/dist/messages/message.d.cts.map +1 -1
- package/dist/messages/message.d.ts +3 -2
- package/dist/messages/message.d.ts.map +1 -1
- package/dist/messages/message.js.map +1 -1
- package/dist/messages/tool.cjs.map +1 -1
- package/dist/messages/tool.js.map +1 -1
- package/dist/messages/transformers.cjs.map +1 -1
- package/dist/messages/transformers.js.map +1 -1
- package/dist/messages/utils.d.cts.map +1 -1
- package/dist/messages/utils.d.ts.map +1 -1
- package/dist/output_parsers/base.d.cts +0 -1
- package/dist/output_parsers/base.d.cts.map +1 -1
- package/dist/output_parsers/base.d.ts.map +1 -1
- package/dist/output_parsers/json.cjs.map +1 -1
- package/dist/output_parsers/json.d.cts.map +1 -1
- package/dist/output_parsers/json.js.map +1 -1
- package/dist/output_parsers/list.d.cts.map +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.cjs.map +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.cts.map +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.ts.map +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.js.map +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.cjs.map +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.cts.map +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.ts.map +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.js.map +1 -1
- package/dist/output_parsers/standard_schema.cjs.map +1 -1
- package/dist/output_parsers/standard_schema.js.map +1 -1
- package/dist/output_parsers/string.d.cts.map +1 -1
- package/dist/output_parsers/transform.cjs.map +1 -1
- package/dist/output_parsers/transform.js.map +1 -1
- package/dist/output_parsers/xml.cjs +2 -2
- package/dist/output_parsers/xml.cjs.map +1 -1
- package/dist/output_parsers/xml.d.cts +1 -1
- package/dist/output_parsers/xml.d.ts +1 -1
- package/dist/output_parsers/xml.js +2 -2
- package/dist/output_parsers/xml.js.map +1 -1
- package/dist/outputs.cjs.map +1 -1
- package/dist/outputs.js.map +1 -1
- package/dist/prompt_values.cjs.map +1 -1
- package/dist/prompt_values.js.map +1 -1
- package/dist/prompts/base.cjs.map +1 -1
- package/dist/prompts/base.d.cts +0 -1
- package/dist/prompts/base.d.cts.map +1 -1
- package/dist/prompts/base.js.map +1 -1
- package/dist/prompts/chat.cjs.map +1 -1
- package/dist/prompts/chat.d.cts.map +1 -1
- package/dist/prompts/chat.js.map +1 -1
- package/dist/prompts/few_shot.cjs.map +1 -1
- package/dist/prompts/few_shot.d.cts.map +1 -1
- package/dist/prompts/few_shot.js.map +1 -1
- package/dist/prompts/image.cjs.map +1 -1
- package/dist/prompts/image.d.cts.map +1 -1
- package/dist/prompts/image.js.map +1 -1
- package/dist/prompts/pipeline.cjs.map +1 -1
- package/dist/prompts/pipeline.js.map +1 -1
- package/dist/prompts/prompt.cjs.map +1 -1
- package/dist/prompts/prompt.d.cts.map +1 -1
- package/dist/prompts/prompt.js.map +1 -1
- package/dist/prompts/serde.d.cts.map +1 -1
- package/dist/prompts/string.cjs.map +1 -1
- package/dist/prompts/string.js.map +1 -1
- package/dist/prompts/structured.cjs.map +1 -1
- package/dist/prompts/structured.d.cts.map +1 -1
- package/dist/prompts/structured.d.ts.map +1 -1
- package/dist/prompts/structured.js.map +1 -1
- package/dist/prompts/template.cjs +2 -5
- package/dist/prompts/template.cjs.map +1 -1
- package/dist/prompts/template.d.cts +0 -1
- package/dist/prompts/template.d.cts.map +1 -1
- package/dist/prompts/template.d.ts.map +1 -1
- package/dist/prompts/template.js +2 -5
- package/dist/prompts/template.js.map +1 -1
- package/dist/retrievers/document_compressors/index.cjs.map +1 -1
- package/dist/retrievers/document_compressors/index.js.map +1 -1
- package/dist/retrievers/index.cjs.map +1 -1
- package/dist/retrievers/index.d.cts.map +1 -1
- package/dist/retrievers/index.d.ts.map +1 -1
- package/dist/retrievers/index.js.map +1 -1
- package/dist/runnables/base.cjs.map +1 -1
- package/dist/runnables/base.js.map +1 -1
- package/dist/runnables/branch.cjs.map +1 -1
- package/dist/runnables/branch.d.cts.map +1 -1
- package/dist/runnables/branch.d.ts.map +1 -1
- package/dist/runnables/branch.js.map +1 -1
- package/dist/runnables/config.cjs.map +1 -1
- package/dist/runnables/config.js.map +1 -1
- package/dist/runnables/graph.cjs.map +1 -1
- package/dist/runnables/graph.js.map +1 -1
- package/dist/runnables/history.cjs +2 -4
- package/dist/runnables/history.cjs.map +1 -1
- package/dist/runnables/history.d.cts +2 -4
- package/dist/runnables/history.d.cts.map +1 -1
- package/dist/runnables/history.d.ts +2 -4
- package/dist/runnables/history.d.ts.map +1 -1
- package/dist/runnables/history.js +2 -4
- package/dist/runnables/history.js.map +1 -1
- package/dist/runnables/passthrough.cjs.map +1 -1
- package/dist/runnables/passthrough.d.cts.map +1 -1
- package/dist/runnables/passthrough.d.ts.map +1 -1
- package/dist/runnables/passthrough.js.map +1 -1
- package/dist/runnables/router.cjs.map +1 -1
- package/dist/runnables/router.d.cts.map +1 -1
- package/dist/runnables/router.d.ts.map +1 -1
- package/dist/runnables/router.js.map +1 -1
- package/dist/runnables/utils.cjs.map +1 -1
- package/dist/runnables/utils.js.map +1 -1
- package/dist/singletons/async_local_storage/context.cjs.map +1 -1
- package/dist/singletons/async_local_storage/context.d.cts.map +1 -1
- package/dist/singletons/async_local_storage/context.d.ts.map +1 -1
- package/dist/singletons/async_local_storage/context.js.map +1 -1
- package/dist/singletons/async_local_storage/globals.cjs.map +1 -1
- package/dist/singletons/async_local_storage/globals.js.map +1 -1
- package/dist/singletons/async_local_storage/index.cjs.map +1 -1
- package/dist/singletons/async_local_storage/index.js.map +1 -1
- package/dist/singletons/callbacks.cjs.map +1 -1
- package/dist/singletons/callbacks.d.cts.map +1 -1
- package/dist/singletons/callbacks.js.map +1 -1
- package/dist/stores.cjs.map +1 -1
- package/dist/stores.js.map +1 -1
- package/dist/structured_query/ir.d.cts.map +1 -1
- package/dist/structured_query/ir.d.ts.map +1 -1
- package/dist/structured_query/utils.cjs.map +1 -1
- package/dist/structured_query/utils.js.map +1 -1
- package/dist/testing/fake_model_builder.cjs.map +1 -1
- package/dist/testing/fake_model_builder.d.cts.map +1 -1
- package/dist/testing/fake_model_builder.js.map +1 -1
- package/dist/testing/matchers.cjs.map +1 -1
- package/dist/testing/matchers.d.cts +8 -8
- package/dist/testing/matchers.d.cts.map +1 -1
- package/dist/testing/matchers.d.ts +8 -8
- package/dist/testing/matchers.d.ts.map +1 -1
- package/dist/testing/matchers.js.map +1 -1
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.d.cts +3 -2
- package/dist/tools/index.d.cts.map +1 -1
- package/dist/tools/index.d.ts +3 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.cjs.map +1 -1
- package/dist/tools/types.d.cts +1 -1
- package/dist/tools/types.d.cts.map +1 -1
- package/dist/tools/types.d.ts +1 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/tracers/base.cjs.map +1 -1
- package/dist/tracers/base.d.cts +91 -91
- package/dist/tracers/base.d.cts.map +1 -1
- package/dist/tracers/base.d.ts +91 -91
- package/dist/tracers/base.d.ts.map +1 -1
- package/dist/tracers/base.js.map +1 -1
- package/dist/tracers/event_stream.cjs.map +1 -1
- package/dist/tracers/event_stream.d.cts +0 -1
- package/dist/tracers/event_stream.d.cts.map +1 -1
- package/dist/tracers/event_stream.js.map +1 -1
- package/dist/tracers/log_stream.cjs.map +1 -1
- package/dist/tracers/log_stream.d.cts.map +1 -1
- package/dist/tracers/log_stream.d.ts.map +1 -1
- package/dist/tracers/log_stream.js.map +1 -1
- package/dist/utils/async_caller.cjs.map +1 -1
- package/dist/utils/async_caller.js.map +1 -1
- package/dist/utils/chunk_array.d.cts.map +1 -1
- package/dist/utils/chunk_array.d.ts.map +1 -1
- package/dist/utils/env.cjs.map +1 -1
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/event_source_parse.cjs.map +1 -1
- package/dist/utils/event_source_parse.d.cts +2 -2
- package/dist/utils/event_source_parse.d.cts.map +1 -1
- package/dist/utils/event_source_parse.d.ts +2 -2
- package/dist/utils/event_source_parse.d.ts.map +1 -1
- package/dist/utils/event_source_parse.js.map +1 -1
- package/dist/utils/function_calling.cjs.map +1 -1
- package/dist/utils/function_calling.js.map +1 -1
- package/dist/utils/is-network-error/index.cjs.map +1 -1
- package/dist/utils/is-network-error/index.js.map +1 -1
- package/dist/utils/json.cjs.map +1 -1
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/json_schema.d.cts.map +1 -1
- package/dist/utils/namespace.cjs.map +1 -1
- package/dist/utils/namespace.js.map +1 -1
- package/dist/utils/p-retry/index.cjs.map +1 -1
- package/dist/utils/p-retry/index.js.map +1 -1
- package/dist/utils/signal.cjs.map +1 -1
- package/dist/utils/signal.js.map +1 -1
- package/dist/utils/standard_schema.cjs.map +1 -1
- package/dist/utils/standard_schema.js.map +1 -1
- package/dist/utils/stream.cjs.map +1 -1
- package/dist/utils/stream.d.cts +2 -2
- package/dist/utils/stream.d.cts.map +1 -1
- package/dist/utils/stream.d.ts +2 -2
- package/dist/utils/stream.d.ts.map +1 -1
- package/dist/utils/stream.js.map +1 -1
- package/dist/utils/testing/chat_models.cjs.map +1 -1
- package/dist/utils/testing/chat_models.d.cts.map +1 -1
- package/dist/utils/testing/chat_models.js.map +1 -1
- package/dist/utils/testing/retrievers.cjs.map +1 -1
- package/dist/utils/testing/retrievers.js.map +1 -1
- package/dist/utils/testing/vectorstores.cjs.map +1 -1
- package/dist/utils/testing/vectorstores.js.map +1 -1
- package/dist/utils/types/index.cjs.map +1 -1
- package/dist/utils/types/index.js.map +1 -1
- package/dist/utils/types/zod.cjs.map +1 -1
- package/dist/utils/types/zod.js.map +1 -1
- package/dist/utils/zod-to-json-schema/Options.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/Refs.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/errorMessages.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/errorMessages.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/index.d.cts +24 -0
- package/dist/utils/zod-to-json-schema/parseDef.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/array.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/array.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/bigint.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/bigint.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/branded.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/catch.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/date.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/date.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/default.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/effects.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/intersection.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/intersection.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/map.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/map.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/never.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/never.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nullable.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/nullable.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/number.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/number.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/object.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/object.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/optional.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/pipeline.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/promise.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/readonly.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/parsers/record.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/record.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/set.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/set.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/string.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/string.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/tuple.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/tuple.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/undefined.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/undefined.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/union.d.cts +1 -2
- package/dist/utils/zod-to-json-schema/parsers/union.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/union.d.ts.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/unknown.d.cts +0 -1
- package/dist/utils/zod-to-json-schema/parsers/unknown.d.cts.map +1 -1
- package/dist/utils/zod-to-json-schema/selectParser.d.cts +1 -0
- package/dist/utils/zod-to-json-schema/zodToJsonSchema.d.cts +1 -0
- package/dist/vectorstores.cjs.map +1 -1
- package/dist/vectorstores.js.map +1 -1
- package/package.json +5 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","names":[],"sources":["../../../src/messages/block_translators/utils.ts"],"sourcesContent":["import type { ContentBlock } from \"../content/index.js\";\n\nexport function _isContentBlock<T extends string>(\n block: unknown,\n type: T\n): block is ContentBlock & { type: T } {\n return _isObject(block) && block.type === type;\n}\n\nexport function _isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nexport function _isArray<T>(value: unknown): value is T[] {\n return Array.isArray(value);\n}\n\nexport function _isString(value: unknown): value is string {\n return typeof value === \"string\";\n}\n\nexport function _isNumber(value: unknown): value is number {\n return typeof value === \"number\";\n}\n\nexport function _isBytesArray(value: unknown): value is Uint8Array {\n //
|
|
1
|
+
{"version":3,"file":"utils.cjs","names":[],"sources":["../../../src/messages/block_translators/utils.ts"],"sourcesContent":["import type { ContentBlock } from \"../content/index.js\";\n\nexport function _isContentBlock<T extends string>(\n block: unknown,\n type: T\n): block is ContentBlock & { type: T } {\n return _isObject(block) && block.type === type;\n}\n\nexport function _isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nexport function _isArray<T>(value: unknown): value is T[] {\n return Array.isArray(value);\n}\n\nexport function _isString(value: unknown): value is string {\n return typeof value === \"string\";\n}\n\nexport function _isNumber(value: unknown): value is number {\n return typeof value === \"number\";\n}\n\nexport function _isBytesArray(value: unknown): value is Uint8Array {\n // oxlint-disable-next-line no-instanceof/no-instanceof\n return value instanceof Uint8Array;\n}\n\nexport function safeParseJson<T = unknown>(value: string): T | undefined {\n try {\n return JSON.parse(value);\n } catch {\n return undefined;\n }\n}\n\nexport const iife = <T>(fn: () => T): T => fn();\n"],"mappings":";AAEA,SAAgB,gBACd,OACA,MACqC;AACrC,QAAO,UAAU,MAAM,IAAI,MAAM,SAAS;;AAG5C,SAAgB,UAAU,OAAkD;AAC1E,QAAO,OAAO,UAAU,YAAY,UAAU;;AAGhD,SAAgB,SAAY,OAA8B;AACxD,QAAO,MAAM,QAAQ,MAAM;;AAG7B,SAAgB,UAAU,OAAiC;AACzD,QAAO,OAAO,UAAU;;AAG1B,SAAgB,UAAU,OAAiC;AACzD,QAAO,OAAO,UAAU;;AAG1B,SAAgB,cAAc,OAAqC;AAEjE,QAAO,iBAAiB;;AAG1B,SAAgB,cAA2B,OAA8B;AACvE,KAAI;AACF,SAAO,KAAK,MAAM,MAAM;SAClB;AACN;;;AAIJ,MAAa,QAAW,OAAmB,IAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[],"sources":["../../../src/messages/block_translators/utils.ts"],"sourcesContent":["import type { ContentBlock } from \"../content/index.js\";\n\nexport function _isContentBlock<T extends string>(\n block: unknown,\n type: T\n): block is ContentBlock & { type: T } {\n return _isObject(block) && block.type === type;\n}\n\nexport function _isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nexport function _isArray<T>(value: unknown): value is T[] {\n return Array.isArray(value);\n}\n\nexport function _isString(value: unknown): value is string {\n return typeof value === \"string\";\n}\n\nexport function _isNumber(value: unknown): value is number {\n return typeof value === \"number\";\n}\n\nexport function _isBytesArray(value: unknown): value is Uint8Array {\n //
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../../../src/messages/block_translators/utils.ts"],"sourcesContent":["import type { ContentBlock } from \"../content/index.js\";\n\nexport function _isContentBlock<T extends string>(\n block: unknown,\n type: T\n): block is ContentBlock & { type: T } {\n return _isObject(block) && block.type === type;\n}\n\nexport function _isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nexport function _isArray<T>(value: unknown): value is T[] {\n return Array.isArray(value);\n}\n\nexport function _isString(value: unknown): value is string {\n return typeof value === \"string\";\n}\n\nexport function _isNumber(value: unknown): value is number {\n return typeof value === \"number\";\n}\n\nexport function _isBytesArray(value: unknown): value is Uint8Array {\n // oxlint-disable-next-line no-instanceof/no-instanceof\n return value instanceof Uint8Array;\n}\n\nexport function safeParseJson<T = unknown>(value: string): T | undefined {\n try {\n return JSON.parse(value);\n } catch {\n return undefined;\n }\n}\n\nexport const iife = <T>(fn: () => T): T => fn();\n"],"mappings":";AAEA,SAAgB,gBACd,OACA,MACqC;AACrC,QAAO,UAAU,MAAM,IAAI,MAAM,SAAS;;AAG5C,SAAgB,UAAU,OAAkD;AAC1E,QAAO,OAAO,UAAU,YAAY,UAAU;;AAGhD,SAAgB,SAAY,OAA8B;AACxD,QAAO,MAAM,QAAQ,MAAM;;AAG7B,SAAgB,UAAU,OAAiC;AACzD,QAAO,OAAO,UAAU;;AAG1B,SAAgB,UAAU,OAAiC;AACzD,QAAO,OAAO,UAAU;;AAG1B,SAAgB,cAAc,OAAqC;AAEjE,QAAO,iBAAiB;;AAG1B,SAAgB,cAA2B,OAA8B;AACvE,KAAI;AACF,SAAO,KAAK,MAAM,MAAM;SAClB;AACN;;;AAIJ,MAAa,QAAW,OAAmB,IAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.cjs","names":["BaseMessage","BaseMessageChunk","mergeContent","_mergeDicts"],"sources":["../../src/messages/chat.ts"],"sourcesContent":["import {\n BaseMessage,\n BaseMessageChunk,\n type BaseMessageFields,\n mergeContent,\n _mergeDicts,\n} from \"./base.js\";\nimport { $InferMessageContent, MessageStructure } from \"./message.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface ChatMessageFields<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageFields<TStructure, \"generic\"> {\n role: string;\n}\n\n/**\n * Represents a chat message in a conversation.\n */\nexport class ChatMessage<TStructure extends MessageStructure = MessageStructure>\n extends BaseMessage<TStructure, \"generic\">\n implements ChatMessageFields<TStructure>\n{\n static lc_name() {\n return \"ChatMessage\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n static _chatMessageClass(): typeof ChatMessage {\n return ChatMessage;\n }\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n //
|
|
1
|
+
{"version":3,"file":"chat.cjs","names":["BaseMessage","BaseMessageChunk","mergeContent","_mergeDicts"],"sources":["../../src/messages/chat.ts"],"sourcesContent":["import {\n BaseMessage,\n BaseMessageChunk,\n type BaseMessageFields,\n mergeContent,\n _mergeDicts,\n} from \"./base.js\";\nimport { $InferMessageContent, MessageStructure } from \"./message.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface ChatMessageFields<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageFields<TStructure, \"generic\"> {\n role: string;\n}\n\n/**\n * Represents a chat message in a conversation.\n */\nexport class ChatMessage<TStructure extends MessageStructure = MessageStructure>\n extends BaseMessage<TStructure, \"generic\">\n implements ChatMessageFields<TStructure>\n{\n static lc_name() {\n return \"ChatMessage\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n static _chatMessageClass(): typeof ChatMessage {\n return ChatMessage;\n }\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // oxlint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n static isInstance(obj: unknown): obj is ChatMessage {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * Represents a chunk of a chat message, which can be concatenated with\n * other chat message chunks.\n */\nexport class ChatMessageChunk<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageChunk<TStructure, \"generic\"> {\n static lc_name() {\n return \"ChatMessageChunk\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // oxlint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n concat(chunk: ChatMessageChunk<TStructure>) {\n const Cls = this.constructor as Constructor<this>;\n return new Cls({\n content: mergeContent(this.content, chunk.content),\n additional_kwargs: _mergeDicts(\n this.additional_kwargs,\n chunk.additional_kwargs\n ),\n response_metadata: _mergeDicts(\n this.response_metadata,\n chunk.response_metadata\n ),\n role: this.role,\n id: this.id ?? chunk.id,\n });\n }\n\n static isInstance(obj: unknown): obj is ChatMessageChunk {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * @deprecated Use {@link ChatMessage.isInstance} instead\n */\nexport function isChatMessage(x: BaseMessage): x is ChatMessage {\n return x._getType() === \"generic\";\n}\n\n/**\n * @deprecated Use {@link ChatMessageChunk.isInstance} instead\n */\nexport function isChatMessageChunk(x: BaseMessageChunk): x is ChatMessageChunk {\n return x._getType() === \"generic\";\n}\n"],"mappings":";;;;;AAmBA,IAAa,cAAb,MAAa,oBACHA,aAAAA,YAEV;CACE,OAAO,UAAU;AACf,SAAO;;CAGT,OAAgB;CAEhB;CAEA,OAAO,oBAAwC;AAC7C,SAAO;;CAUT,YACE,QAGA,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,CAErD,UAAS;GAAE,SAAS;GAAc;GAAO;AAE3C,QAAM,OAAO;AACb,OAAK,OAAO,OAAO;;CAGrB,OAAO,WAAW,KAAkC;AAClD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;;CAG/C,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;GACZ;;;;;;;AAQL,IAAa,mBAAb,cAEUC,aAAAA,iBAAwC;CAChD,OAAO,UAAU;AACf,SAAO;;CAGT,OAAgB;CAEhB;CASA,YACE,QAGA,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,CAErD,UAAS;GAAE,SAAS;GAAc;GAAO;AAE3C,QAAM,OAAO;AACb,OAAK,OAAO,OAAO;;CAGrB,OAAO,OAAqC;EAC1C,MAAM,MAAM,KAAK;AACjB,SAAO,IAAI,IAAI;GACb,SAASC,aAAAA,aAAa,KAAK,SAAS,MAAM,QAAQ;GAClD,mBAAmBC,aAAAA,YACjB,KAAK,mBACL,MAAM,kBACP;GACD,mBAAmBA,aAAAA,YACjB,KAAK,mBACL,MAAM,kBACP;GACD,MAAM,KAAK;GACX,IAAI,KAAK,MAAM,MAAM;GACtB,CAAC;;CAGJ,OAAO,WAAW,KAAuC;AACvD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;;CAG/C,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;GACZ;;;;;;AAOL,SAAgB,cAAc,GAAkC;AAC9D,QAAO,EAAE,UAAU,KAAK;;;;;AAM1B,SAAgB,mBAAmB,GAA4C;AAC7E,QAAO,EAAE,UAAU,KAAK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","names":[],"sources":["../../src/messages/chat.ts"],"sourcesContent":["import {\n BaseMessage,\n BaseMessageChunk,\n type BaseMessageFields,\n mergeContent,\n _mergeDicts,\n} from \"./base.js\";\nimport { $InferMessageContent, MessageStructure } from \"./message.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface ChatMessageFields<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageFields<TStructure, \"generic\"> {\n role: string;\n}\n\n/**\n * Represents a chat message in a conversation.\n */\nexport class ChatMessage<TStructure extends MessageStructure = MessageStructure>\n extends BaseMessage<TStructure, \"generic\">\n implements ChatMessageFields<TStructure>\n{\n static lc_name() {\n return \"ChatMessage\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n static _chatMessageClass(): typeof ChatMessage {\n return ChatMessage;\n }\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n //
|
|
1
|
+
{"version":3,"file":"chat.js","names":[],"sources":["../../src/messages/chat.ts"],"sourcesContent":["import {\n BaseMessage,\n BaseMessageChunk,\n type BaseMessageFields,\n mergeContent,\n _mergeDicts,\n} from \"./base.js\";\nimport { $InferMessageContent, MessageStructure } from \"./message.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface ChatMessageFields<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageFields<TStructure, \"generic\"> {\n role: string;\n}\n\n/**\n * Represents a chat message in a conversation.\n */\nexport class ChatMessage<TStructure extends MessageStructure = MessageStructure>\n extends BaseMessage<TStructure, \"generic\">\n implements ChatMessageFields<TStructure>\n{\n static lc_name() {\n return \"ChatMessage\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n static _chatMessageClass(): typeof ChatMessage {\n return ChatMessage;\n }\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // oxlint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n static isInstance(obj: unknown): obj is ChatMessage {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * Represents a chunk of a chat message, which can be concatenated with\n * other chat message chunks.\n */\nexport class ChatMessageChunk<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageChunk<TStructure, \"generic\"> {\n static lc_name() {\n return \"ChatMessageChunk\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // oxlint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n concat(chunk: ChatMessageChunk<TStructure>) {\n const Cls = this.constructor as Constructor<this>;\n return new Cls({\n content: mergeContent(this.content, chunk.content),\n additional_kwargs: _mergeDicts(\n this.additional_kwargs,\n chunk.additional_kwargs\n ),\n response_metadata: _mergeDicts(\n this.response_metadata,\n chunk.response_metadata\n ),\n role: this.role,\n id: this.id ?? chunk.id,\n });\n }\n\n static isInstance(obj: unknown): obj is ChatMessageChunk {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * @deprecated Use {@link ChatMessage.isInstance} instead\n */\nexport function isChatMessage(x: BaseMessage): x is ChatMessage {\n return x._getType() === \"generic\";\n}\n\n/**\n * @deprecated Use {@link ChatMessageChunk.isInstance} instead\n */\nexport function isChatMessageChunk(x: BaseMessageChunk): x is ChatMessageChunk {\n return x._getType() === \"generic\";\n}\n"],"mappings":";;;;;AAmBA,IAAa,cAAb,MAAa,oBACH,YAEV;CACE,OAAO,UAAU;AACf,SAAO;;CAGT,OAAgB;CAEhB;CAEA,OAAO,oBAAwC;AAC7C,SAAO;;CAUT,YACE,QAGA,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,CAErD,UAAS;GAAE,SAAS;GAAc;GAAO;AAE3C,QAAM,OAAO;AACb,OAAK,OAAO,OAAO;;CAGrB,OAAO,WAAW,KAAkC;AAClD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;;CAG/C,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;GACZ;;;;;;;AAQL,IAAa,mBAAb,cAEU,iBAAwC;CAChD,OAAO,UAAU;AACf,SAAO;;CAGT,OAAgB;CAEhB;CASA,YACE,QAGA,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,CAErD,UAAS;GAAE,SAAS;GAAc;GAAO;AAE3C,QAAM,OAAO;AACb,OAAK,OAAO,OAAO;;CAGrB,OAAO,OAAqC;EAC1C,MAAM,MAAM,KAAK;AACjB,SAAO,IAAI,IAAI;GACb,SAAS,aAAa,KAAK,SAAS,MAAM,QAAQ;GAClD,mBAAmB,YACjB,KAAK,mBACL,MAAM,kBACP;GACD,mBAAmB,YACjB,KAAK,mBACL,MAAM,kBACP;GACD,MAAM,KAAK;GACX,IAAI,KAAK,MAAM,MAAM;GACtB,CAAC;;CAGJ,OAAO,WAAW,KAAuC;AACvD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;;CAG/C,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;GACZ;;;;;;AAOL,SAAgB,cAAc,GAAkC;AAC9D,QAAO,EAAE,UAAU,KAAK;;;;;AAM1B,SAAgB,mBAAmB,GAA4C;AAC7E,QAAO,EAAE,UAAU,KAAK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.cjs","names":[],"sources":["../../../src/messages/content/data.ts"],"sourcesContent":["import { BaseContentBlock } from \"./base.js\";\n\n/**\n * @deprecated\n * Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type ImageDetail = \"auto\" | \"low\" | \"high\";\n\n/**\n * @deprecated\n * Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type MessageContentText = {\n type: \"text\";\n text: string;\n};\n\n/**\n * @deprecated\n * Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type MessageContentImageUrl = {\n type: \"image_url\";\n image_url: string | { url: string; detail?: ImageDetail };\n};\n\n/**\n * @deprecated\n * Use {@link ContentBlock} instead.\n */\nexport type MessageContentComplex =\n | MessageContentText\n | MessageContentImageUrl\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | (Record<string, any> & { type?: \"text\" | \"image_url\" | string })\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | (Record<string, any> & { type?: never });\n\nexport type Data = never;\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport declare namespace Data {\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface BaseDataContentBlock extends BaseContentBlock {\n mime_type?: string;\n metadata?: Record<string, unknown>;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface URLContentBlock extends BaseDataContentBlock {\n type: \"image\" | \"audio\" | \"file\";\n source_type: \"url\";\n url: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface Base64ContentBlock extends BaseDataContentBlock {\n type: \"image\" | \"audio\" | \"file\";\n source_type: \"base64\";\n data: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface PlainTextContentBlock extends BaseDataContentBlock {\n type: \"file\" | \"text\";\n source_type: \"text\";\n text: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface IDContentBlock extends BaseDataContentBlock {\n type: \"image\" | \"audio\" | \"file\";\n source_type: \"id\";\n id: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type DataContentBlock =\n | URLContentBlock\n | Base64ContentBlock\n | PlainTextContentBlock\n | IDContentBlock;\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardImageBlock = (\n | URLContentBlock\n | Base64ContentBlock\n | IDContentBlock\n ) & {\n type: \"image\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardAudioBlock = (\n | URLContentBlock\n | Base64ContentBlock\n | IDContentBlock\n ) & {\n type: \"audio\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardFileBlock = (\n | URLContentBlock\n | Base64ContentBlock\n | IDContentBlock\n | PlainTextContentBlock\n ) & {\n type: \"file\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardTextBlock = PlainTextContentBlock & {\n type: \"text\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export type DataContentBlockType = DataContentBlock[\"type\"];\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isDataContentBlock(\n content_block: object\n): content_block is Data.DataContentBlock {\n return (\n typeof content_block === \"object\" &&\n content_block !== null &&\n \"type\" in content_block &&\n typeof content_block.type === \"string\" &&\n \"source_type\" in content_block &&\n (content_block.source_type === \"url\" ||\n content_block.source_type === \"base64\" ||\n content_block.source_type === \"text\" ||\n content_block.source_type === \"id\")\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isURLContentBlock(\n content_block: object\n): content_block is Data.URLContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"url\" &&\n \"url\" in content_block &&\n typeof content_block.url === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isBase64ContentBlock(\n content_block: object\n): content_block is Data.Base64ContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"base64\" &&\n \"data\" in content_block &&\n typeof content_block.data === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isPlainTextContentBlock(\n content_block: object\n): content_block is Data.PlainTextContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"text\" &&\n \"text\" in content_block &&\n typeof content_block.text === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isIDContentBlock(\n content_block: object\n): content_block is Data.IDContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"id\" &&\n \"id\" in content_block &&\n typeof content_block.id === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function convertToOpenAIImageBlock(\n content_block: Data.URLContentBlock | Data.Base64ContentBlock\n) {\n if (isDataContentBlock(content_block)) {\n if (content_block.source_type === \"url\") {\n return {\n type: \"image_url\",\n image_url: {\n url: content_block.url,\n },\n };\n }\n if (content_block.source_type === \"base64\") {\n if (!content_block.mime_type) {\n throw new Error(\"mime_type key is required for base64 data.\");\n }\n const mime_type = content_block.mime_type;\n return {\n type: \"image_url\",\n image_url: {\n url: `data:${mime_type};base64,${content_block.data}`,\n },\n };\n }\n }\n throw new Error(\n \"Unsupported source type. Only 'url' and 'base64' are supported.\"\n );\n}\n\n/**\n * Utility function for ChatModelProviders. Parses a mime type into a type, subtype, and parameters.\n *\n * @param mime_type - The mime type to parse.\n * @returns An object containing the type, subtype, and parameters.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseMimeType(mime_type: string): {\n type: string;\n subtype: string;\n parameters: Record<string, string>;\n} {\n const parts = mime_type.split(\";\")[0].split(\"/\");\n if (parts.length !== 2) {\n throw new Error(\n `Invalid mime type: \"${mime_type}\" - does not match type/subtype format.`\n );\n }\n\n const type = parts[0].trim();\n const subtype = parts[1].trim();\n\n if (type === \"\" || subtype === \"\") {\n throw new Error(\n `Invalid mime type: \"${mime_type}\" - type or subtype is empty.`\n );\n }\n\n const parameters: Record<string, string> = {};\n\n for (const parameterKvp of mime_type.split(\";\").slice(1)) {\n const parameterParts = parameterKvp.split(\"=\");\n if (parameterParts.length !== 2) {\n throw new Error(`Invalid parameter syntax in mime type: \"${mime_type}\".`);\n }\n const key = parameterParts[0].trim();\n const value = parameterParts[1].trim();\n if (key === \"\") {\n throw new Error(`Invalid parameter syntax in mime type: \"${mime_type}\".`);\n }\n\n parameters[key] = value;\n }\n\n return {\n type,\n subtype,\n parameters,\n };\n}\n\n/**\n * Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.\n *\n * @param dataUrl - The base64 data URL to parse.\n * @param asTypedArray - Whether to return the data as a typed array.\n * @returns An object containing the parsed data and mime type, or undefined if the data URL is invalid.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseBase64DataUrl({\n dataUrl,\n asTypedArray,\n}: {\n dataUrl: string;\n asTypedArray: true;\n}): { data: Uint8Array; mime_type: string } | undefined;\n\n/**\n * Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.\n *\n * @param dataUrl - The base64 data URL to parse.\n * @param asTypedArray - Whether to return the data as a typed array.\n * @returns The parsed data and mime type, or undefined if the data URL is invalid.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseBase64DataUrl({\n dataUrl,\n asTypedArray,\n}: {\n dataUrl: string;\n asTypedArray?: false;\n}): { data: string; mime_type: string } | undefined;\n\n/**\n * Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.\n *\n * @param dataUrl - The base64 data URL to parse.\n * @param asTypedArray - Whether to return the data as a typed array.\n * @returns The parsed data and mime type, or undefined if the data URL is invalid.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseBase64DataUrl({\n dataUrl: data_url,\n asTypedArray = false,\n}: {\n dataUrl: string;\n asTypedArray?: boolean;\n}): { data: string | Uint8Array; mime_type: string } | undefined {\n const formatMatch = data_url.match(\n /^data:(\\w+\\/\\w+);base64,([A-Za-z0-9+/]+=*)$/\n );\n let mime_type: string | undefined;\n\n if (formatMatch) {\n mime_type = formatMatch[1].toLowerCase();\n const data = asTypedArray\n ? Uint8Array.from(atob(formatMatch[2]), (c) => c.charCodeAt(0))\n : formatMatch[2];\n return {\n mime_type,\n data,\n };\n }\n\n return undefined;\n}\n\n/**\n * A bag of provider-specific content block types.\n *\n * Allows implementations of {@link StandardContentBlockConverter} and related to be defined only in\n * terms of the types they support. Also allows for forward compatibility as the set of known\n * standard types grows, as the set of types can be extended without breaking existing\n * implementations of the aforementioned interfaces.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type ProviderFormatTypes<\n TextFormat = unknown,\n ImageFormat = unknown,\n AudioFormat = unknown,\n FileFormat = unknown,\n VideoFormat = unknown,\n> = {\n text: TextFormat;\n image: ImageFormat;\n audio: AudioFormat;\n file: FileFormat;\n video: VideoFormat;\n};\n\n/**\n * Utility interface for converting between standard and provider-specific data content blocks, to be\n * used when implementing chat model providers.\n *\n * Meant to be used with {@link convertToProviderContentBlock} and\n * {@link convertToStandardContentBlock} rather than being consumed directly.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport interface StandardContentBlockConverter<\n Formats extends Partial<ProviderFormatTypes>,\n> {\n /**\n * The name of the provider type that corresponds to the provider-specific content block types\n * that this converter supports.\n */\n providerName: string;\n\n /**\n * Convert from a standard image block to a provider's proprietary image block format.\n * @param block - The standard image block to convert.\n * @returns The provider image block.\n */\n fromStandardImageBlock?(block: Data.StandardImageBlock): Formats[\"image\"];\n\n /**\n * Convert from a standard audio block to a provider's proprietary audio block format.\n * @param block - The standard audio block to convert.\n * @returns The provider audio block.\n */\n fromStandardAudioBlock?(block: Data.StandardAudioBlock): Formats[\"audio\"];\n\n /**\n * Convert from a standard file block to a provider's proprietary file block format.\n * @param block - The standard file block to convert.\n * @returns The provider file block.\n */\n fromStandardFileBlock?(block: Data.StandardFileBlock): Formats[\"file\"];\n\n /**\n * Convert from a standard text block to a provider's proprietary text block format.\n * @param block - The standard text block to convert.\n * @returns The provider text block.\n */\n fromStandardTextBlock?(block: Data.StandardTextBlock): Formats[\"text\"];\n}\n\n/**\n * Convert from a standard data content block to a provider's proprietary data content block format.\n *\n * Don't override this method. Instead, override the more specific conversion methods and use this\n * method unmodified.\n *\n * @param block - The standard data content block to convert.\n * @returns The provider data content block.\n * @throws An error if the standard data content block type is not supported.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function convertToProviderContentBlock<\n Formats extends Partial<ProviderFormatTypes>,\n>(\n block: Data.DataContentBlock,\n converter: StandardContentBlockConverter<Formats>\n): Formats[keyof Formats] {\n if (block.type === \"text\") {\n if (!converter.fromStandardTextBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardTextBlock\\` method.`\n );\n }\n return converter.fromStandardTextBlock(block as Data.StandardTextBlock);\n }\n if (block.type === \"image\") {\n if (!converter.fromStandardImageBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardImageBlock\\` method.`\n );\n }\n return converter.fromStandardImageBlock(block as Data.StandardImageBlock);\n }\n if (block.type === \"audio\") {\n if (!converter.fromStandardAudioBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardAudioBlock\\` method.`\n );\n }\n return converter.fromStandardAudioBlock(block as Data.StandardAudioBlock);\n }\n if (block.type === \"file\") {\n if (!converter.fromStandardFileBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardFileBlock\\` method.`\n );\n }\n return converter.fromStandardFileBlock(block as Data.StandardFileBlock);\n }\n throw new Error(\n `Unable to convert content block type '${block.type}' to provider-specific format: not recognized.`\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data.cjs","names":[],"sources":["../../../src/messages/content/data.ts"],"sourcesContent":["import { BaseContentBlock } from \"./base.js\";\n\n/**\n * @deprecated\n * Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type ImageDetail = \"auto\" | \"low\" | \"high\";\n\n/**\n * @deprecated\n * Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type MessageContentText = {\n type: \"text\";\n text: string;\n};\n\n/**\n * @deprecated\n * Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type MessageContentImageUrl = {\n type: \"image_url\";\n image_url: string | { url: string; detail?: ImageDetail };\n};\n\n/**\n * @deprecated\n * Use {@link ContentBlock} instead.\n */\nexport type MessageContentComplex =\n | MessageContentText\n | MessageContentImageUrl\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n | (Record<string, any> & { type?: \"text\" | \"image_url\" | string })\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n | (Record<string, any> & { type?: never });\n\nexport type Data = never;\n\n// oxlint-disable-next-line @typescript-eslint/no-namespace\nexport declare namespace Data {\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface BaseDataContentBlock extends BaseContentBlock {\n mime_type?: string;\n metadata?: Record<string, unknown>;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface URLContentBlock extends BaseDataContentBlock {\n type: \"image\" | \"audio\" | \"file\";\n source_type: \"url\";\n url: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface Base64ContentBlock extends BaseDataContentBlock {\n type: \"image\" | \"audio\" | \"file\";\n source_type: \"base64\";\n data: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface PlainTextContentBlock extends BaseDataContentBlock {\n type: \"file\" | \"text\";\n source_type: \"text\";\n text: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface IDContentBlock extends BaseDataContentBlock {\n type: \"image\" | \"audio\" | \"file\";\n source_type: \"id\";\n id: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type DataContentBlock =\n | URLContentBlock\n | Base64ContentBlock\n | PlainTextContentBlock\n | IDContentBlock;\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardImageBlock = (\n | URLContentBlock\n | Base64ContentBlock\n | IDContentBlock\n ) & {\n type: \"image\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardAudioBlock = (\n | URLContentBlock\n | Base64ContentBlock\n | IDContentBlock\n ) & {\n type: \"audio\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardFileBlock = (\n | URLContentBlock\n | Base64ContentBlock\n | IDContentBlock\n | PlainTextContentBlock\n ) & {\n type: \"file\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardTextBlock = PlainTextContentBlock & {\n type: \"text\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export type DataContentBlockType = DataContentBlock[\"type\"];\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isDataContentBlock(\n content_block: object\n): content_block is Data.DataContentBlock {\n return (\n typeof content_block === \"object\" &&\n content_block !== null &&\n \"type\" in content_block &&\n typeof content_block.type === \"string\" &&\n \"source_type\" in content_block &&\n (content_block.source_type === \"url\" ||\n content_block.source_type === \"base64\" ||\n content_block.source_type === \"text\" ||\n content_block.source_type === \"id\")\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isURLContentBlock(\n content_block: object\n): content_block is Data.URLContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"url\" &&\n \"url\" in content_block &&\n typeof content_block.url === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isBase64ContentBlock(\n content_block: object\n): content_block is Data.Base64ContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"base64\" &&\n \"data\" in content_block &&\n typeof content_block.data === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isPlainTextContentBlock(\n content_block: object\n): content_block is Data.PlainTextContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"text\" &&\n \"text\" in content_block &&\n typeof content_block.text === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isIDContentBlock(\n content_block: object\n): content_block is Data.IDContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"id\" &&\n \"id\" in content_block &&\n typeof content_block.id === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function convertToOpenAIImageBlock(\n content_block: Data.URLContentBlock | Data.Base64ContentBlock\n) {\n if (isDataContentBlock(content_block)) {\n if (content_block.source_type === \"url\") {\n return {\n type: \"image_url\",\n image_url: {\n url: content_block.url,\n },\n };\n }\n if (content_block.source_type === \"base64\") {\n if (!content_block.mime_type) {\n throw new Error(\"mime_type key is required for base64 data.\");\n }\n const mime_type = content_block.mime_type;\n return {\n type: \"image_url\",\n image_url: {\n url: `data:${mime_type};base64,${content_block.data}`,\n },\n };\n }\n }\n throw new Error(\n \"Unsupported source type. Only 'url' and 'base64' are supported.\"\n );\n}\n\n/**\n * Utility function for ChatModelProviders. Parses a mime type into a type, subtype, and parameters.\n *\n * @param mime_type - The mime type to parse.\n * @returns An object containing the type, subtype, and parameters.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseMimeType(mime_type: string): {\n type: string;\n subtype: string;\n parameters: Record<string, string>;\n} {\n const parts = mime_type.split(\";\")[0].split(\"/\");\n if (parts.length !== 2) {\n throw new Error(\n `Invalid mime type: \"${mime_type}\" - does not match type/subtype format.`\n );\n }\n\n const type = parts[0].trim();\n const subtype = parts[1].trim();\n\n if (type === \"\" || subtype === \"\") {\n throw new Error(\n `Invalid mime type: \"${mime_type}\" - type or subtype is empty.`\n );\n }\n\n const parameters: Record<string, string> = {};\n\n for (const parameterKvp of mime_type.split(\";\").slice(1)) {\n const parameterParts = parameterKvp.split(\"=\");\n if (parameterParts.length !== 2) {\n throw new Error(`Invalid parameter syntax in mime type: \"${mime_type}\".`);\n }\n const key = parameterParts[0].trim();\n const value = parameterParts[1].trim();\n if (key === \"\") {\n throw new Error(`Invalid parameter syntax in mime type: \"${mime_type}\".`);\n }\n\n parameters[key] = value;\n }\n\n return {\n type,\n subtype,\n parameters,\n };\n}\n\n/**\n * Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.\n *\n * @param dataUrl - The base64 data URL to parse.\n * @param asTypedArray - Whether to return the data as a typed array.\n * @returns An object containing the parsed data and mime type, or undefined if the data URL is invalid.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseBase64DataUrl({\n dataUrl,\n asTypedArray,\n}: {\n dataUrl: string;\n asTypedArray: true;\n}): { data: Uint8Array; mime_type: string } | undefined;\n\n/**\n * Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.\n *\n * @param dataUrl - The base64 data URL to parse.\n * @param asTypedArray - Whether to return the data as a typed array.\n * @returns The parsed data and mime type, or undefined if the data URL is invalid.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseBase64DataUrl({\n dataUrl,\n asTypedArray,\n}: {\n dataUrl: string;\n asTypedArray?: false;\n}): { data: string; mime_type: string } | undefined;\n\n/**\n * Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.\n *\n * @param dataUrl - The base64 data URL to parse.\n * @param asTypedArray - Whether to return the data as a typed array.\n * @returns The parsed data and mime type, or undefined if the data URL is invalid.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseBase64DataUrl({\n dataUrl: data_url,\n asTypedArray = false,\n}: {\n dataUrl: string;\n asTypedArray?: boolean;\n}): { data: string | Uint8Array; mime_type: string } | undefined {\n const formatMatch = data_url.match(\n /^data:(\\w+\\/\\w+);base64,([A-Za-z0-9+/]+=*)$/\n );\n let mime_type: string | undefined;\n\n if (formatMatch) {\n mime_type = formatMatch[1].toLowerCase();\n const data = asTypedArray\n ? Uint8Array.from(atob(formatMatch[2]), (c) => c.charCodeAt(0))\n : formatMatch[2];\n return {\n mime_type,\n data,\n };\n }\n\n return undefined;\n}\n\n/**\n * A bag of provider-specific content block types.\n *\n * Allows implementations of {@link StandardContentBlockConverter} and related to be defined only in\n * terms of the types they support. Also allows for forward compatibility as the set of known\n * standard types grows, as the set of types can be extended without breaking existing\n * implementations of the aforementioned interfaces.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type ProviderFormatTypes<\n TextFormat = unknown,\n ImageFormat = unknown,\n AudioFormat = unknown,\n FileFormat = unknown,\n VideoFormat = unknown,\n> = {\n text: TextFormat;\n image: ImageFormat;\n audio: AudioFormat;\n file: FileFormat;\n video: VideoFormat;\n};\n\n/**\n * Utility interface for converting between standard and provider-specific data content blocks, to be\n * used when implementing chat model providers.\n *\n * Meant to be used with {@link convertToProviderContentBlock} and\n * {@link convertToStandardContentBlock} rather than being consumed directly.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport interface StandardContentBlockConverter<\n Formats extends Partial<ProviderFormatTypes>,\n> {\n /**\n * The name of the provider type that corresponds to the provider-specific content block types\n * that this converter supports.\n */\n providerName: string;\n\n /**\n * Convert from a standard image block to a provider's proprietary image block format.\n * @param block - The standard image block to convert.\n * @returns The provider image block.\n */\n fromStandardImageBlock?(block: Data.StandardImageBlock): Formats[\"image\"];\n\n /**\n * Convert from a standard audio block to a provider's proprietary audio block format.\n * @param block - The standard audio block to convert.\n * @returns The provider audio block.\n */\n fromStandardAudioBlock?(block: Data.StandardAudioBlock): Formats[\"audio\"];\n\n /**\n * Convert from a standard file block to a provider's proprietary file block format.\n * @param block - The standard file block to convert.\n * @returns The provider file block.\n */\n fromStandardFileBlock?(block: Data.StandardFileBlock): Formats[\"file\"];\n\n /**\n * Convert from a standard text block to a provider's proprietary text block format.\n * @param block - The standard text block to convert.\n * @returns The provider text block.\n */\n fromStandardTextBlock?(block: Data.StandardTextBlock): Formats[\"text\"];\n}\n\n/**\n * Convert from a standard data content block to a provider's proprietary data content block format.\n *\n * Don't override this method. Instead, override the more specific conversion methods and use this\n * method unmodified.\n *\n * @param block - The standard data content block to convert.\n * @returns The provider data content block.\n * @throws An error if the standard data content block type is not supported.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function convertToProviderContentBlock<\n Formats extends Partial<ProviderFormatTypes>,\n>(\n block: Data.DataContentBlock,\n converter: StandardContentBlockConverter<Formats>\n): Formats[keyof Formats] {\n if (block.type === \"text\") {\n if (!converter.fromStandardTextBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardTextBlock\\` method.`\n );\n }\n return converter.fromStandardTextBlock(block as Data.StandardTextBlock);\n }\n if (block.type === \"image\") {\n if (!converter.fromStandardImageBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardImageBlock\\` method.`\n );\n }\n return converter.fromStandardImageBlock(block as Data.StandardImageBlock);\n }\n if (block.type === \"audio\") {\n if (!converter.fromStandardAudioBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardAudioBlock\\` method.`\n );\n }\n return converter.fromStandardAudioBlock(block as Data.StandardAudioBlock);\n }\n if (block.type === \"file\") {\n if (!converter.fromStandardFileBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardFileBlock\\` method.`\n );\n }\n return converter.fromStandardFileBlock(block as Data.StandardFileBlock);\n }\n throw new Error(\n `Unable to convert content block type '${block.type}' to provider-specific format: not recognized.`\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.cts","names":[],"sources":["../../../src/messages/content/data.ts"],"mappings":";;;;;AAMA;;KAAY,WAAA;;;AAMZ;;KAAY,kBAAA;EACV,IAAA;EACA,IAAA;AAAA;;;;;KAOU,sBAAA;EACV,IAAA;EACA,SAAA;IAAsB,GAAA;IAAa,MAAA,GAAS,WAAA;EAAA;AAAA;;;;;KAOlC,qBAAA,GACR,kBAAA,GACA,sBAAA,IAEC,MAAA;EAAwB,IAAA;AAAA,MAExB,MAAA;EAAwB,IAAA;AAAA;AAAA,KAEjB,IAAA;AAAA,kBAGa,IAAA;EAPI;;;;EAAA,UAYV,oBAAA,SAA6B,gBAAA;IAC5C,SAAA;IACA,QAAA,GAAW,MAAA;EAAA;EAVC;;AAGhB;;EAHgB,UAiBG,eAAA,SAAwB,oBAAA;IACvC,IAAA;IACA,WAAA;IACA,GAAA;EAAA;EAiB6C;;;;EAAA,UAV9B,kBAAA,SAA2B,oBAAA;IAC1C,IAAA;IACA,WAAA;IACA,IAAA;EAAA;EAkDE;;;;EAAA,UA3Ca,qBAAA,SAA8B,oBAAA;IAC7C,IAAA;IACA,WAAA;IACA,IAAA;EAAA;EAwEiD;;;;EAAA,UAjElC,cAAA,SAAuB,oBAAA;IACtC,IAAA;IACA,WAAA;IACA,EAAA;EAAA;EAhCA;;;;EAAA,KAuCU,gBAAA,GACR,eAAA,GACA,kBAAA,GACA,qBAAA,GACA,cAAA;EAjCF;;;;EAAA,KAuCU,kBAAA,IACR,eAAA,GACA,kBAAA,GACA,cAAA;IAEF,IAAA;EAAA;EAhCA;;;;EAAA,KAuCU,kBAAA,IACR,eAAA,GACA,kBAAA,GACA,cAAA;IAEF,IAAA;EAAA;EA1BE;;;;EAAA,KAiCQ,iBAAA,IACR,eAAA,GACA,kBAAA,GACA,cAAA,GACA,qBAAA;IAEF,IAAA;EAAA;EA3BE;;;;EAAA,KAkCQ,iBAAA,GAAoB,qBAAA;IAC9B,IAAA;EAAA;EAdU;;;;EAAA,KAqBA,oBAAA,GAAuB,gBAAA;AAAA;;;;iBAMrB,kBAAA,CACd,aAAA,WACC,aAAA,IAAiB,IAAA,CAAK,gBAAA;;;;iBAiBT,iBAAA,CACd,aAAA,WACC,aAAA,IAAiB,IAAA,CAAK,eAAA;;;;iBAYT,oBAAA,CACd,aAAA,WACC,aAAA,IAAiB,IAAA,CAAK,kBAAA;;;;iBAYT,uBAAA,CACd,aAAA,WACC,aAAA,IAAiB,IAAA,CAAK,qBAAA;;AA9BzB;;iBA0CgB,gBAAA,CACd,aAAA,WACC,aAAA,IAAiB,IAAA,CAAK,cAAA;;;;iBAYT,yBAAA,CACd,aAAA,EAAe,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,kBAAA
|
|
1
|
+
{"version":3,"file":"data.d.cts","names":[],"sources":["../../../src/messages/content/data.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","names":[],"sources":["../../../src/messages/content/data.ts"],"mappings":";;;;;AAMA;;KAAY,WAAA;;;AAMZ;;KAAY,kBAAA;EACV,IAAA;EACA,IAAA;AAAA;;;;;KAOU,sBAAA;EACV,IAAA;EACA,SAAA;IAAsB,GAAA;IAAa,MAAA,GAAS,WAAA;EAAA;AAAA;;;;;KAOlC,qBAAA,GACR,kBAAA,GACA,sBAAA,IAEC,MAAA;EAAwB,IAAA;AAAA,MAExB,MAAA;EAAwB,IAAA;AAAA;AAAA,KAEjB,IAAA;AAAA,kBAGa,IAAA;EAPI;;;;EAAA,UAYV,oBAAA,SAA6B,gBAAA;IAC5C,SAAA;IACA,QAAA,GAAW,MAAA;EAAA;EAVC;;AAGhB;;EAHgB,UAiBG,eAAA,SAAwB,oBAAA;IACvC,IAAA;IACA,WAAA;IACA,GAAA;EAAA;EAiB6C;;;;EAAA,UAV9B,kBAAA,SAA2B,oBAAA;IAC1C,IAAA;IACA,WAAA;IACA,IAAA;EAAA;EAkDE;;;;EAAA,UA3Ca,qBAAA,SAA8B,oBAAA;IAC7C,IAAA;IACA,WAAA;IACA,IAAA;EAAA;EAwEiD;;;;EAAA,UAjElC,cAAA,SAAuB,oBAAA;IACtC,IAAA;IACA,WAAA;IACA,EAAA;EAAA;EAhCA;;;;EAAA,KAuCU,gBAAA,GACR,eAAA,GACA,kBAAA,GACA,qBAAA,GACA,cAAA;EAjCF;;;;EAAA,KAuCU,kBAAA,IACR,eAAA,GACA,kBAAA,GACA,cAAA;IAEF,IAAA;EAAA;EAhCA;;;;EAAA,KAuCU,kBAAA,IACR,eAAA,GACA,kBAAA,GACA,cAAA;IAEF,IAAA;EAAA;EA1BE;;;;EAAA,KAiCQ,iBAAA,IACR,eAAA,GACA,kBAAA,GACA,cAAA,GACA,qBAAA;IAEF,IAAA;EAAA;EA3BE;;;;EAAA,KAkCQ,iBAAA,GAAoB,qBAAA;IAC9B,IAAA;EAAA;EAdU;;;;EAAA,KAqBA,oBAAA,GAAuB,gBAAA;AAAA;;;;iBAMrB,kBAAA,CACd,aAAA,WACC,aAAA,IAAiB,IAAA,CAAK,gBAAA;;;;iBAiBT,iBAAA,CACd,aAAA,WACC,aAAA,IAAiB,IAAA,CAAK,eAAA;;;;iBAYT,oBAAA,CACd,aAAA,WACC,aAAA,IAAiB,IAAA,CAAK,kBAAA;;;;iBAYT,uBAAA,CACd,aAAA,WACC,aAAA,IAAiB,IAAA,CAAK,qBAAA;;AA9BzB;;iBA0CgB,gBAAA,CACd,aAAA,WACC,aAAA,IAAiB,IAAA,CAAK,cAAA;;;;iBAYT,yBAAA,CACd,aAAA,EAAe,IAAA,CAAK,eAAA,GAAkB,IAAA,CAAK,kBAAA
|
|
1
|
+
{"version":3,"file":"data.d.ts","names":[],"sources":["../../../src/messages/content/data.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","names":[],"sources":["../../../src/messages/content/data.ts"],"sourcesContent":["import { BaseContentBlock } from \"./base.js\";\n\n/**\n * @deprecated\n * Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type ImageDetail = \"auto\" | \"low\" | \"high\";\n\n/**\n * @deprecated\n * Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type MessageContentText = {\n type: \"text\";\n text: string;\n};\n\n/**\n * @deprecated\n * Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type MessageContentImageUrl = {\n type: \"image_url\";\n image_url: string | { url: string; detail?: ImageDetail };\n};\n\n/**\n * @deprecated\n * Use {@link ContentBlock} instead.\n */\nexport type MessageContentComplex =\n | MessageContentText\n | MessageContentImageUrl\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | (Record<string, any> & { type?: \"text\" | \"image_url\" | string })\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | (Record<string, any> & { type?: never });\n\nexport type Data = never;\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport declare namespace Data {\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface BaseDataContentBlock extends BaseContentBlock {\n mime_type?: string;\n metadata?: Record<string, unknown>;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface URLContentBlock extends BaseDataContentBlock {\n type: \"image\" | \"audio\" | \"file\";\n source_type: \"url\";\n url: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface Base64ContentBlock extends BaseDataContentBlock {\n type: \"image\" | \"audio\" | \"file\";\n source_type: \"base64\";\n data: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface PlainTextContentBlock extends BaseDataContentBlock {\n type: \"file\" | \"text\";\n source_type: \"text\";\n text: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface IDContentBlock extends BaseDataContentBlock {\n type: \"image\" | \"audio\" | \"file\";\n source_type: \"id\";\n id: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type DataContentBlock =\n | URLContentBlock\n | Base64ContentBlock\n | PlainTextContentBlock\n | IDContentBlock;\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardImageBlock = (\n | URLContentBlock\n | Base64ContentBlock\n | IDContentBlock\n ) & {\n type: \"image\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardAudioBlock = (\n | URLContentBlock\n | Base64ContentBlock\n | IDContentBlock\n ) & {\n type: \"audio\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardFileBlock = (\n | URLContentBlock\n | Base64ContentBlock\n | IDContentBlock\n | PlainTextContentBlock\n ) & {\n type: \"file\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardTextBlock = PlainTextContentBlock & {\n type: \"text\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export type DataContentBlockType = DataContentBlock[\"type\"];\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isDataContentBlock(\n content_block: object\n): content_block is Data.DataContentBlock {\n return (\n typeof content_block === \"object\" &&\n content_block !== null &&\n \"type\" in content_block &&\n typeof content_block.type === \"string\" &&\n \"source_type\" in content_block &&\n (content_block.source_type === \"url\" ||\n content_block.source_type === \"base64\" ||\n content_block.source_type === \"text\" ||\n content_block.source_type === \"id\")\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isURLContentBlock(\n content_block: object\n): content_block is Data.URLContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"url\" &&\n \"url\" in content_block &&\n typeof content_block.url === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isBase64ContentBlock(\n content_block: object\n): content_block is Data.Base64ContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"base64\" &&\n \"data\" in content_block &&\n typeof content_block.data === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isPlainTextContentBlock(\n content_block: object\n): content_block is Data.PlainTextContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"text\" &&\n \"text\" in content_block &&\n typeof content_block.text === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isIDContentBlock(\n content_block: object\n): content_block is Data.IDContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"id\" &&\n \"id\" in content_block &&\n typeof content_block.id === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function convertToOpenAIImageBlock(\n content_block: Data.URLContentBlock | Data.Base64ContentBlock\n) {\n if (isDataContentBlock(content_block)) {\n if (content_block.source_type === \"url\") {\n return {\n type: \"image_url\",\n image_url: {\n url: content_block.url,\n },\n };\n }\n if (content_block.source_type === \"base64\") {\n if (!content_block.mime_type) {\n throw new Error(\"mime_type key is required for base64 data.\");\n }\n const mime_type = content_block.mime_type;\n return {\n type: \"image_url\",\n image_url: {\n url: `data:${mime_type};base64,${content_block.data}`,\n },\n };\n }\n }\n throw new Error(\n \"Unsupported source type. Only 'url' and 'base64' are supported.\"\n );\n}\n\n/**\n * Utility function for ChatModelProviders. Parses a mime type into a type, subtype, and parameters.\n *\n * @param mime_type - The mime type to parse.\n * @returns An object containing the type, subtype, and parameters.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseMimeType(mime_type: string): {\n type: string;\n subtype: string;\n parameters: Record<string, string>;\n} {\n const parts = mime_type.split(\";\")[0].split(\"/\");\n if (parts.length !== 2) {\n throw new Error(\n `Invalid mime type: \"${mime_type}\" - does not match type/subtype format.`\n );\n }\n\n const type = parts[0].trim();\n const subtype = parts[1].trim();\n\n if (type === \"\" || subtype === \"\") {\n throw new Error(\n `Invalid mime type: \"${mime_type}\" - type or subtype is empty.`\n );\n }\n\n const parameters: Record<string, string> = {};\n\n for (const parameterKvp of mime_type.split(\";\").slice(1)) {\n const parameterParts = parameterKvp.split(\"=\");\n if (parameterParts.length !== 2) {\n throw new Error(`Invalid parameter syntax in mime type: \"${mime_type}\".`);\n }\n const key = parameterParts[0].trim();\n const value = parameterParts[1].trim();\n if (key === \"\") {\n throw new Error(`Invalid parameter syntax in mime type: \"${mime_type}\".`);\n }\n\n parameters[key] = value;\n }\n\n return {\n type,\n subtype,\n parameters,\n };\n}\n\n/**\n * Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.\n *\n * @param dataUrl - The base64 data URL to parse.\n * @param asTypedArray - Whether to return the data as a typed array.\n * @returns An object containing the parsed data and mime type, or undefined if the data URL is invalid.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseBase64DataUrl({\n dataUrl,\n asTypedArray,\n}: {\n dataUrl: string;\n asTypedArray: true;\n}): { data: Uint8Array; mime_type: string } | undefined;\n\n/**\n * Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.\n *\n * @param dataUrl - The base64 data URL to parse.\n * @param asTypedArray - Whether to return the data as a typed array.\n * @returns The parsed data and mime type, or undefined if the data URL is invalid.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseBase64DataUrl({\n dataUrl,\n asTypedArray,\n}: {\n dataUrl: string;\n asTypedArray?: false;\n}): { data: string; mime_type: string } | undefined;\n\n/**\n * Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.\n *\n * @param dataUrl - The base64 data URL to parse.\n * @param asTypedArray - Whether to return the data as a typed array.\n * @returns The parsed data and mime type, or undefined if the data URL is invalid.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseBase64DataUrl({\n dataUrl: data_url,\n asTypedArray = false,\n}: {\n dataUrl: string;\n asTypedArray?: boolean;\n}): { data: string | Uint8Array; mime_type: string } | undefined {\n const formatMatch = data_url.match(\n /^data:(\\w+\\/\\w+);base64,([A-Za-z0-9+/]+=*)$/\n );\n let mime_type: string | undefined;\n\n if (formatMatch) {\n mime_type = formatMatch[1].toLowerCase();\n const data = asTypedArray\n ? Uint8Array.from(atob(formatMatch[2]), (c) => c.charCodeAt(0))\n : formatMatch[2];\n return {\n mime_type,\n data,\n };\n }\n\n return undefined;\n}\n\n/**\n * A bag of provider-specific content block types.\n *\n * Allows implementations of {@link StandardContentBlockConverter} and related to be defined only in\n * terms of the types they support. Also allows for forward compatibility as the set of known\n * standard types grows, as the set of types can be extended without breaking existing\n * implementations of the aforementioned interfaces.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type ProviderFormatTypes<\n TextFormat = unknown,\n ImageFormat = unknown,\n AudioFormat = unknown,\n FileFormat = unknown,\n VideoFormat = unknown,\n> = {\n text: TextFormat;\n image: ImageFormat;\n audio: AudioFormat;\n file: FileFormat;\n video: VideoFormat;\n};\n\n/**\n * Utility interface for converting between standard and provider-specific data content blocks, to be\n * used when implementing chat model providers.\n *\n * Meant to be used with {@link convertToProviderContentBlock} and\n * {@link convertToStandardContentBlock} rather than being consumed directly.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport interface StandardContentBlockConverter<\n Formats extends Partial<ProviderFormatTypes>,\n> {\n /**\n * The name of the provider type that corresponds to the provider-specific content block types\n * that this converter supports.\n */\n providerName: string;\n\n /**\n * Convert from a standard image block to a provider's proprietary image block format.\n * @param block - The standard image block to convert.\n * @returns The provider image block.\n */\n fromStandardImageBlock?(block: Data.StandardImageBlock): Formats[\"image\"];\n\n /**\n * Convert from a standard audio block to a provider's proprietary audio block format.\n * @param block - The standard audio block to convert.\n * @returns The provider audio block.\n */\n fromStandardAudioBlock?(block: Data.StandardAudioBlock): Formats[\"audio\"];\n\n /**\n * Convert from a standard file block to a provider's proprietary file block format.\n * @param block - The standard file block to convert.\n * @returns The provider file block.\n */\n fromStandardFileBlock?(block: Data.StandardFileBlock): Formats[\"file\"];\n\n /**\n * Convert from a standard text block to a provider's proprietary text block format.\n * @param block - The standard text block to convert.\n * @returns The provider text block.\n */\n fromStandardTextBlock?(block: Data.StandardTextBlock): Formats[\"text\"];\n}\n\n/**\n * Convert from a standard data content block to a provider's proprietary data content block format.\n *\n * Don't override this method. Instead, override the more specific conversion methods and use this\n * method unmodified.\n *\n * @param block - The standard data content block to convert.\n * @returns The provider data content block.\n * @throws An error if the standard data content block type is not supported.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function convertToProviderContentBlock<\n Formats extends Partial<ProviderFormatTypes>,\n>(\n block: Data.DataContentBlock,\n converter: StandardContentBlockConverter<Formats>\n): Formats[keyof Formats] {\n if (block.type === \"text\") {\n if (!converter.fromStandardTextBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardTextBlock\\` method.`\n );\n }\n return converter.fromStandardTextBlock(block as Data.StandardTextBlock);\n }\n if (block.type === \"image\") {\n if (!converter.fromStandardImageBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardImageBlock\\` method.`\n );\n }\n return converter.fromStandardImageBlock(block as Data.StandardImageBlock);\n }\n if (block.type === \"audio\") {\n if (!converter.fromStandardAudioBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardAudioBlock\\` method.`\n );\n }\n return converter.fromStandardAudioBlock(block as Data.StandardAudioBlock);\n }\n if (block.type === \"file\") {\n if (!converter.fromStandardFileBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardFileBlock\\` method.`\n );\n }\n return converter.fromStandardFileBlock(block as Data.StandardFileBlock);\n }\n throw new Error(\n `Unable to convert content block type '${block.type}' to provider-specific format: not recognized.`\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data.js","names":[],"sources":["../../../src/messages/content/data.ts"],"sourcesContent":["import { BaseContentBlock } from \"./base.js\";\n\n/**\n * @deprecated\n * Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type ImageDetail = \"auto\" | \"low\" | \"high\";\n\n/**\n * @deprecated\n * Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type MessageContentText = {\n type: \"text\";\n text: string;\n};\n\n/**\n * @deprecated\n * Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type MessageContentImageUrl = {\n type: \"image_url\";\n image_url: string | { url: string; detail?: ImageDetail };\n};\n\n/**\n * @deprecated\n * Use {@link ContentBlock} instead.\n */\nexport type MessageContentComplex =\n | MessageContentText\n | MessageContentImageUrl\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n | (Record<string, any> & { type?: \"text\" | \"image_url\" | string })\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n | (Record<string, any> & { type?: never });\n\nexport type Data = never;\n\n// oxlint-disable-next-line @typescript-eslint/no-namespace\nexport declare namespace Data {\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface BaseDataContentBlock extends BaseContentBlock {\n mime_type?: string;\n metadata?: Record<string, unknown>;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface URLContentBlock extends BaseDataContentBlock {\n type: \"image\" | \"audio\" | \"file\";\n source_type: \"url\";\n url: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface Base64ContentBlock extends BaseDataContentBlock {\n type: \"image\" | \"audio\" | \"file\";\n source_type: \"base64\";\n data: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface PlainTextContentBlock extends BaseDataContentBlock {\n type: \"file\" | \"text\";\n source_type: \"text\";\n text: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export interface IDContentBlock extends BaseDataContentBlock {\n type: \"image\" | \"audio\" | \"file\";\n source_type: \"id\";\n id: string;\n }\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type DataContentBlock =\n | URLContentBlock\n | Base64ContentBlock\n | PlainTextContentBlock\n | IDContentBlock;\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardImageBlock = (\n | URLContentBlock\n | Base64ContentBlock\n | IDContentBlock\n ) & {\n type: \"image\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardAudioBlock = (\n | URLContentBlock\n | Base64ContentBlock\n | IDContentBlock\n ) & {\n type: \"audio\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardFileBlock = (\n | URLContentBlock\n | Base64ContentBlock\n | IDContentBlock\n | PlainTextContentBlock\n ) & {\n type: \"file\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Standard} instead\n */\n export type StandardTextBlock = PlainTextContentBlock & {\n type: \"text\";\n };\n\n /**\n * @deprecated\n * Use {@link ContentBlock.Multimodal.Data} instead\n */\n export type DataContentBlockType = DataContentBlock[\"type\"];\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isDataContentBlock(\n content_block: object\n): content_block is Data.DataContentBlock {\n return (\n typeof content_block === \"object\" &&\n content_block !== null &&\n \"type\" in content_block &&\n typeof content_block.type === \"string\" &&\n \"source_type\" in content_block &&\n (content_block.source_type === \"url\" ||\n content_block.source_type === \"base64\" ||\n content_block.source_type === \"text\" ||\n content_block.source_type === \"id\")\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isURLContentBlock(\n content_block: object\n): content_block is Data.URLContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"url\" &&\n \"url\" in content_block &&\n typeof content_block.url === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isBase64ContentBlock(\n content_block: object\n): content_block is Data.Base64ContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"base64\" &&\n \"data\" in content_block &&\n typeof content_block.data === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isPlainTextContentBlock(\n content_block: object\n): content_block is Data.PlainTextContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"text\" &&\n \"text\" in content_block &&\n typeof content_block.text === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function isIDContentBlock(\n content_block: object\n): content_block is Data.IDContentBlock {\n return (\n isDataContentBlock(content_block) &&\n content_block.source_type === \"id\" &&\n \"id\" in content_block &&\n typeof content_block.id === \"string\"\n );\n}\n\n/**\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function convertToOpenAIImageBlock(\n content_block: Data.URLContentBlock | Data.Base64ContentBlock\n) {\n if (isDataContentBlock(content_block)) {\n if (content_block.source_type === \"url\") {\n return {\n type: \"image_url\",\n image_url: {\n url: content_block.url,\n },\n };\n }\n if (content_block.source_type === \"base64\") {\n if (!content_block.mime_type) {\n throw new Error(\"mime_type key is required for base64 data.\");\n }\n const mime_type = content_block.mime_type;\n return {\n type: \"image_url\",\n image_url: {\n url: `data:${mime_type};base64,${content_block.data}`,\n },\n };\n }\n }\n throw new Error(\n \"Unsupported source type. Only 'url' and 'base64' are supported.\"\n );\n}\n\n/**\n * Utility function for ChatModelProviders. Parses a mime type into a type, subtype, and parameters.\n *\n * @param mime_type - The mime type to parse.\n * @returns An object containing the type, subtype, and parameters.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseMimeType(mime_type: string): {\n type: string;\n subtype: string;\n parameters: Record<string, string>;\n} {\n const parts = mime_type.split(\";\")[0].split(\"/\");\n if (parts.length !== 2) {\n throw new Error(\n `Invalid mime type: \"${mime_type}\" - does not match type/subtype format.`\n );\n }\n\n const type = parts[0].trim();\n const subtype = parts[1].trim();\n\n if (type === \"\" || subtype === \"\") {\n throw new Error(\n `Invalid mime type: \"${mime_type}\" - type or subtype is empty.`\n );\n }\n\n const parameters: Record<string, string> = {};\n\n for (const parameterKvp of mime_type.split(\";\").slice(1)) {\n const parameterParts = parameterKvp.split(\"=\");\n if (parameterParts.length !== 2) {\n throw new Error(`Invalid parameter syntax in mime type: \"${mime_type}\".`);\n }\n const key = parameterParts[0].trim();\n const value = parameterParts[1].trim();\n if (key === \"\") {\n throw new Error(`Invalid parameter syntax in mime type: \"${mime_type}\".`);\n }\n\n parameters[key] = value;\n }\n\n return {\n type,\n subtype,\n parameters,\n };\n}\n\n/**\n * Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.\n *\n * @param dataUrl - The base64 data URL to parse.\n * @param asTypedArray - Whether to return the data as a typed array.\n * @returns An object containing the parsed data and mime type, or undefined if the data URL is invalid.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseBase64DataUrl({\n dataUrl,\n asTypedArray,\n}: {\n dataUrl: string;\n asTypedArray: true;\n}): { data: Uint8Array; mime_type: string } | undefined;\n\n/**\n * Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.\n *\n * @param dataUrl - The base64 data URL to parse.\n * @param asTypedArray - Whether to return the data as a typed array.\n * @returns The parsed data and mime type, or undefined if the data URL is invalid.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseBase64DataUrl({\n dataUrl,\n asTypedArray,\n}: {\n dataUrl: string;\n asTypedArray?: false;\n}): { data: string; mime_type: string } | undefined;\n\n/**\n * Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.\n *\n * @param dataUrl - The base64 data URL to parse.\n * @param asTypedArray - Whether to return the data as a typed array.\n * @returns The parsed data and mime type, or undefined if the data URL is invalid.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function parseBase64DataUrl({\n dataUrl: data_url,\n asTypedArray = false,\n}: {\n dataUrl: string;\n asTypedArray?: boolean;\n}): { data: string | Uint8Array; mime_type: string } | undefined {\n const formatMatch = data_url.match(\n /^data:(\\w+\\/\\w+);base64,([A-Za-z0-9+/]+=*)$/\n );\n let mime_type: string | undefined;\n\n if (formatMatch) {\n mime_type = formatMatch[1].toLowerCase();\n const data = asTypedArray\n ? Uint8Array.from(atob(formatMatch[2]), (c) => c.charCodeAt(0))\n : formatMatch[2];\n return {\n mime_type,\n data,\n };\n }\n\n return undefined;\n}\n\n/**\n * A bag of provider-specific content block types.\n *\n * Allows implementations of {@link StandardContentBlockConverter} and related to be defined only in\n * terms of the types they support. Also allows for forward compatibility as the set of known\n * standard types grows, as the set of types can be extended without breaking existing\n * implementations of the aforementioned interfaces.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport type ProviderFormatTypes<\n TextFormat = unknown,\n ImageFormat = unknown,\n AudioFormat = unknown,\n FileFormat = unknown,\n VideoFormat = unknown,\n> = {\n text: TextFormat;\n image: ImageFormat;\n audio: AudioFormat;\n file: FileFormat;\n video: VideoFormat;\n};\n\n/**\n * Utility interface for converting between standard and provider-specific data content blocks, to be\n * used when implementing chat model providers.\n *\n * Meant to be used with {@link convertToProviderContentBlock} and\n * {@link convertToStandardContentBlock} rather than being consumed directly.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport interface StandardContentBlockConverter<\n Formats extends Partial<ProviderFormatTypes>,\n> {\n /**\n * The name of the provider type that corresponds to the provider-specific content block types\n * that this converter supports.\n */\n providerName: string;\n\n /**\n * Convert from a standard image block to a provider's proprietary image block format.\n * @param block - The standard image block to convert.\n * @returns The provider image block.\n */\n fromStandardImageBlock?(block: Data.StandardImageBlock): Formats[\"image\"];\n\n /**\n * Convert from a standard audio block to a provider's proprietary audio block format.\n * @param block - The standard audio block to convert.\n * @returns The provider audio block.\n */\n fromStandardAudioBlock?(block: Data.StandardAudioBlock): Formats[\"audio\"];\n\n /**\n * Convert from a standard file block to a provider's proprietary file block format.\n * @param block - The standard file block to convert.\n * @returns The provider file block.\n */\n fromStandardFileBlock?(block: Data.StandardFileBlock): Formats[\"file\"];\n\n /**\n * Convert from a standard text block to a provider's proprietary text block format.\n * @param block - The standard text block to convert.\n * @returns The provider text block.\n */\n fromStandardTextBlock?(block: Data.StandardTextBlock): Formats[\"text\"];\n}\n\n/**\n * Convert from a standard data content block to a provider's proprietary data content block format.\n *\n * Don't override this method. Instead, override the more specific conversion methods and use this\n * method unmodified.\n *\n * @param block - The standard data content block to convert.\n * @returns The provider data content block.\n * @throws An error if the standard data content block type is not supported.\n *\n * @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.\n */\nexport function convertToProviderContentBlock<\n Formats extends Partial<ProviderFormatTypes>,\n>(\n block: Data.DataContentBlock,\n converter: StandardContentBlockConverter<Formats>\n): Formats[keyof Formats] {\n if (block.type === \"text\") {\n if (!converter.fromStandardTextBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardTextBlock\\` method.`\n );\n }\n return converter.fromStandardTextBlock(block as Data.StandardTextBlock);\n }\n if (block.type === \"image\") {\n if (!converter.fromStandardImageBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardImageBlock\\` method.`\n );\n }\n return converter.fromStandardImageBlock(block as Data.StandardImageBlock);\n }\n if (block.type === \"audio\") {\n if (!converter.fromStandardAudioBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardAudioBlock\\` method.`\n );\n }\n return converter.fromStandardAudioBlock(block as Data.StandardAudioBlock);\n }\n if (block.type === \"file\") {\n if (!converter.fromStandardFileBlock) {\n throw new Error(\n `Converter for ${converter.providerName} does not implement \\`fromStandardFileBlock\\` method.`\n );\n }\n return converter.fromStandardFileBlock(block as Data.StandardFileBlock);\n }\n throw new Error(\n `Unable to convert content block type '${block.type}' to provider-specific format: not recognized.`\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["KNOWN_TOOL_BLOCK_TYPES","KNOWN_MULTIMODAL_BLOCK_TYPES"],"sources":["../../../src/messages/content/index.ts"],"sourcesContent":["import type { BaseContentBlock } from \"./base.js\";\nimport {\n KNOWN_BLOCK_TYPES as KNOWN_TOOL_BLOCK_TYPES,\n type Tools,\n} from \"./tools.js\";\nimport {\n KNOWN_BLOCK_TYPES as KNOWN_MULTIMODAL_BLOCK_TYPES,\n type Multimodal,\n} from \"./multimodal.js\";\nimport { type Data } from \"./data.js\";\n\nexport interface ContentBlock extends BaseContentBlock {}\n\nexport const KNOWN_BLOCK_TYPES = [\n \"text\",\n \"reasoning\",\n ...KNOWN_TOOL_BLOCK_TYPES,\n ...KNOWN_MULTIMODAL_BLOCK_TYPES,\n];\n\n//
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["KNOWN_TOOL_BLOCK_TYPES","KNOWN_MULTIMODAL_BLOCK_TYPES"],"sources":["../../../src/messages/content/index.ts"],"sourcesContent":["import type { BaseContentBlock } from \"./base.js\";\nimport {\n KNOWN_BLOCK_TYPES as KNOWN_TOOL_BLOCK_TYPES,\n type Tools,\n} from \"./tools.js\";\nimport {\n KNOWN_BLOCK_TYPES as KNOWN_MULTIMODAL_BLOCK_TYPES,\n type Multimodal,\n} from \"./multimodal.js\";\nimport { type Data } from \"./data.js\";\n\nexport interface ContentBlock extends BaseContentBlock {}\n\nexport const KNOWN_BLOCK_TYPES = [\n \"text\",\n \"reasoning\",\n ...KNOWN_TOOL_BLOCK_TYPES,\n ...KNOWN_MULTIMODAL_BLOCK_TYPES,\n];\n\n// oxlint-disable-next-line @typescript-eslint/no-namespace\nexport declare namespace ContentBlock {\n /**\n * Annotation for citing data from a document.\n */\n export interface Citation {\n /**\n * Type of the content block\n */\n readonly type: \"citation\";\n /**\n * Source type for the citation.\n */\n source?: string;\n /**\n * URL of the document source\n */\n url?: string;\n /**\n * Source document title.\n *\n * For example, the page title for a web page or the title of a paper.\n */\n title?: string;\n /**\n * Start index of the **response text** for which the annotation applies.\n *\n * @see {Text}\n */\n startIndex?: number;\n /**\n * End index of the **response text** for which the annotation applies.\n *\n * @see {Text}\n */\n endIndex?: number;\n /**\n * Excerpt of source text being cited.\n */\n citedText?: string;\n }\n\n /**\n * Text output from a LLM.\n *\n * This typically represents the main text content of a message, such as the response\n * from a language model or the text of a user message.\n */\n export interface Text extends ContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"text\";\n /**\n * Block text.\n */\n text: string;\n /**\n * Index of block in aggregate response. Used during streaming.\n */\n index?: string | number;\n /**\n * Citations and other annotations.\n */\n annotations?: Array<Citation | BaseContentBlock>;\n }\n\n /**\n * Reasoning output from a LLM.\n */\n export interface Reasoning extends ContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"reasoning\";\n /**\n * Reasoning text.\n *\n * Either the thought summary or the raw reasoning text itself.\n * This is often parsed from `<think>` tags in the model's response.\n */\n reasoning: string;\n /**\n * Index of block in aggregate response. Used during streaming.\n */\n index?: string | number;\n }\n\n /**\n * Provider-specific content block.\n *\n * This is used to represent content blocks that are not part of the standard LangChain content model.\n * If a provider's non-standard output includes reasoning and tool calls, it should be\n * the adapter's job to parse that payload and emit the corresponding standard reasoning and tool call blocks.\n */\n export interface NonStandard<\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n TValue extends Record<string, any> = Record<string, any>,\n > extends ContentBlock {\n /**\n * Type of the content block\n */\n type: \"non_standard\";\n /**\n * Provider-specific data\n */\n value: TValue;\n }\n\n export { Tools };\n export { Multimodal };\n export { Data };\n\n export type Standard =\n | Text\n | Reasoning\n | NonStandard\n | Tools.Standard\n | Multimodal.Standard;\n}\n"],"mappings":";;;AAaA,MAAa,oBAAoB;CAC/B;CACA;CACA,GAAGA,cAAAA;CACH,GAAGC,mBAAAA;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["KNOWN_TOOL_BLOCK_TYPES","KNOWN_MULTIMODAL_BLOCK_TYPES"],"sources":["../../../src/messages/content/index.ts"],"sourcesContent":["import type { BaseContentBlock } from \"./base.js\";\nimport {\n KNOWN_BLOCK_TYPES as KNOWN_TOOL_BLOCK_TYPES,\n type Tools,\n} from \"./tools.js\";\nimport {\n KNOWN_BLOCK_TYPES as KNOWN_MULTIMODAL_BLOCK_TYPES,\n type Multimodal,\n} from \"./multimodal.js\";\nimport { type Data } from \"./data.js\";\n\nexport interface ContentBlock extends BaseContentBlock {}\n\nexport const KNOWN_BLOCK_TYPES = [\n \"text\",\n \"reasoning\",\n ...KNOWN_TOOL_BLOCK_TYPES,\n ...KNOWN_MULTIMODAL_BLOCK_TYPES,\n];\n\n//
|
|
1
|
+
{"version":3,"file":"index.js","names":["KNOWN_TOOL_BLOCK_TYPES","KNOWN_MULTIMODAL_BLOCK_TYPES"],"sources":["../../../src/messages/content/index.ts"],"sourcesContent":["import type { BaseContentBlock } from \"./base.js\";\nimport {\n KNOWN_BLOCK_TYPES as KNOWN_TOOL_BLOCK_TYPES,\n type Tools,\n} from \"./tools.js\";\nimport {\n KNOWN_BLOCK_TYPES as KNOWN_MULTIMODAL_BLOCK_TYPES,\n type Multimodal,\n} from \"./multimodal.js\";\nimport { type Data } from \"./data.js\";\n\nexport interface ContentBlock extends BaseContentBlock {}\n\nexport const KNOWN_BLOCK_TYPES = [\n \"text\",\n \"reasoning\",\n ...KNOWN_TOOL_BLOCK_TYPES,\n ...KNOWN_MULTIMODAL_BLOCK_TYPES,\n];\n\n// oxlint-disable-next-line @typescript-eslint/no-namespace\nexport declare namespace ContentBlock {\n /**\n * Annotation for citing data from a document.\n */\n export interface Citation {\n /**\n * Type of the content block\n */\n readonly type: \"citation\";\n /**\n * Source type for the citation.\n */\n source?: string;\n /**\n * URL of the document source\n */\n url?: string;\n /**\n * Source document title.\n *\n * For example, the page title for a web page or the title of a paper.\n */\n title?: string;\n /**\n * Start index of the **response text** for which the annotation applies.\n *\n * @see {Text}\n */\n startIndex?: number;\n /**\n * End index of the **response text** for which the annotation applies.\n *\n * @see {Text}\n */\n endIndex?: number;\n /**\n * Excerpt of source text being cited.\n */\n citedText?: string;\n }\n\n /**\n * Text output from a LLM.\n *\n * This typically represents the main text content of a message, such as the response\n * from a language model or the text of a user message.\n */\n export interface Text extends ContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"text\";\n /**\n * Block text.\n */\n text: string;\n /**\n * Index of block in aggregate response. Used during streaming.\n */\n index?: string | number;\n /**\n * Citations and other annotations.\n */\n annotations?: Array<Citation | BaseContentBlock>;\n }\n\n /**\n * Reasoning output from a LLM.\n */\n export interface Reasoning extends ContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"reasoning\";\n /**\n * Reasoning text.\n *\n * Either the thought summary or the raw reasoning text itself.\n * This is often parsed from `<think>` tags in the model's response.\n */\n reasoning: string;\n /**\n * Index of block in aggregate response. Used during streaming.\n */\n index?: string | number;\n }\n\n /**\n * Provider-specific content block.\n *\n * This is used to represent content blocks that are not part of the standard LangChain content model.\n * If a provider's non-standard output includes reasoning and tool calls, it should be\n * the adapter's job to parse that payload and emit the corresponding standard reasoning and tool call blocks.\n */\n export interface NonStandard<\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n TValue extends Record<string, any> = Record<string, any>,\n > extends ContentBlock {\n /**\n * Type of the content block\n */\n type: \"non_standard\";\n /**\n * Provider-specific data\n */\n value: TValue;\n }\n\n export { Tools };\n export { Multimodal };\n export { Data };\n\n export type Standard =\n | Text\n | Reasoning\n | NonStandard\n | Tools.Standard\n | Multimodal.Standard;\n}\n"],"mappings":";;;AAaA,MAAa,oBAAoB;CAC/B;CACA;CACA,GAAGA;CACH,GAAGC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multimodal.cjs","names":[],"sources":["../../../src/messages/content/multimodal.ts"],"sourcesContent":["import { BaseContentBlock } from \"./base.js\";\n\nexport type Multimodal = never;\n\nexport const KNOWN_BLOCK_TYPES = [\n \"image\",\n \"video\",\n \"audio\",\n \"text-plain\",\n \"file\",\n];\n\n//
|
|
1
|
+
{"version":3,"file":"multimodal.cjs","names":[],"sources":["../../../src/messages/content/multimodal.ts"],"sourcesContent":["import { BaseContentBlock } from \"./base.js\";\n\nexport type Multimodal = never;\n\nexport const KNOWN_BLOCK_TYPES = [\n \"image\",\n \"video\",\n \"audio\",\n \"text-plain\",\n \"file\",\n];\n\n// oxlint-disable-next-line @typescript-eslint/no-namespace\nexport declare namespace Multimodal {\n type BaseDataRecord = {\n /**\n * MIME type of the file.\n *\n * @see https://www.iana.org/assignments/media-types/media-types.xhtml#image\n */\n mimeType?: string | undefined;\n };\n type DataRecordFileId = BaseDataRecord & {\n /**\n * ID of the data file, e.g. from a provider's file api\n */\n fileId: string;\n url?: never;\n data?: never;\n };\n type DataRecordUrl = BaseDataRecord & {\n fileId?: never;\n /**\n * URL of the data file\n */\n url: string;\n data?: never;\n };\n type DataRecordBase64 = BaseDataRecord & {\n fileId?: never;\n url?: never;\n /**\n * MIME type of the file. Required for base64 encoding.\n *\n * @see https://www.iana.org/assignments/media-types/media-types.xhtml#image\n */\n mimeType: string;\n /**\n * Base64 encoded string or binary data of the data\n */\n data: string | Uint8Array;\n };\n type DataRecord = DataRecordFileId | DataRecordUrl | DataRecordBase64;\n\n /** Content block for multimodal data */\n export type Data<TMetadata = Record<string, unknown>> = BaseContentBlock &\n DataRecord & {\n /**\n * MIME type of the file. Required for base64 encoding.\n */\n mimeType?: string;\n /**\n * Metadata of the file\n */\n metadata?: TMetadata;\n /**\n * Content block identifier for multimodal content, e.g. image, video, audio, file or plain text. This can be either:\n * - generated by the provider (e.g., an OpenAI block ID)\n * - generated by LangChain upon creation\n */\n id?: string;\n };\n\n /** Content block for image data */\n export type Image = Data & {\n /** Type of the content block */\n readonly type: \"image\";\n };\n /** Content block for video data */\n export type Video = Data & {\n /** Type of the content block */\n readonly type: \"video\";\n };\n /** Content block for audio data */\n export type Audio = Data & {\n /** Type of the content block */\n readonly type: \"audio\";\n };\n /** Content block for plain text data */\n export type PlainText = Data & {\n /** Type of the content block */\n readonly type: \"text-plain\";\n /**\n * Plaintext content. This is optional if the data is base64 encoded.\n */\n text?: string;\n /**\n * Title of the file, e.g. the title of a document\n */\n title?: string;\n /**\n * Context for the text, e.g. a description or a summary of the text's content\n */\n context?: string;\n };\n\n /** Content block for file data */\n export type File = Data & {\n /**\n * Non-descript multimodal content block\n *\n * This block is intended for files that aren't covered by existing content block types.\n */\n readonly type: \"file\";\n };\n\n export type Standard = Image | Video | Audio | PlainText | File;\n}\n"],"mappings":";AAIA,MAAa,oBAAoB;CAC/B;CACA;CACA;CACA;CACA;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multimodal.js","names":[],"sources":["../../../src/messages/content/multimodal.ts"],"sourcesContent":["import { BaseContentBlock } from \"./base.js\";\n\nexport type Multimodal = never;\n\nexport const KNOWN_BLOCK_TYPES = [\n \"image\",\n \"video\",\n \"audio\",\n \"text-plain\",\n \"file\",\n];\n\n//
|
|
1
|
+
{"version":3,"file":"multimodal.js","names":[],"sources":["../../../src/messages/content/multimodal.ts"],"sourcesContent":["import { BaseContentBlock } from \"./base.js\";\n\nexport type Multimodal = never;\n\nexport const KNOWN_BLOCK_TYPES = [\n \"image\",\n \"video\",\n \"audio\",\n \"text-plain\",\n \"file\",\n];\n\n// oxlint-disable-next-line @typescript-eslint/no-namespace\nexport declare namespace Multimodal {\n type BaseDataRecord = {\n /**\n * MIME type of the file.\n *\n * @see https://www.iana.org/assignments/media-types/media-types.xhtml#image\n */\n mimeType?: string | undefined;\n };\n type DataRecordFileId = BaseDataRecord & {\n /**\n * ID of the data file, e.g. from a provider's file api\n */\n fileId: string;\n url?: never;\n data?: never;\n };\n type DataRecordUrl = BaseDataRecord & {\n fileId?: never;\n /**\n * URL of the data file\n */\n url: string;\n data?: never;\n };\n type DataRecordBase64 = BaseDataRecord & {\n fileId?: never;\n url?: never;\n /**\n * MIME type of the file. Required for base64 encoding.\n *\n * @see https://www.iana.org/assignments/media-types/media-types.xhtml#image\n */\n mimeType: string;\n /**\n * Base64 encoded string or binary data of the data\n */\n data: string | Uint8Array;\n };\n type DataRecord = DataRecordFileId | DataRecordUrl | DataRecordBase64;\n\n /** Content block for multimodal data */\n export type Data<TMetadata = Record<string, unknown>> = BaseContentBlock &\n DataRecord & {\n /**\n * MIME type of the file. Required for base64 encoding.\n */\n mimeType?: string;\n /**\n * Metadata of the file\n */\n metadata?: TMetadata;\n /**\n * Content block identifier for multimodal content, e.g. image, video, audio, file or plain text. This can be either:\n * - generated by the provider (e.g., an OpenAI block ID)\n * - generated by LangChain upon creation\n */\n id?: string;\n };\n\n /** Content block for image data */\n export type Image = Data & {\n /** Type of the content block */\n readonly type: \"image\";\n };\n /** Content block for video data */\n export type Video = Data & {\n /** Type of the content block */\n readonly type: \"video\";\n };\n /** Content block for audio data */\n export type Audio = Data & {\n /** Type of the content block */\n readonly type: \"audio\";\n };\n /** Content block for plain text data */\n export type PlainText = Data & {\n /** Type of the content block */\n readonly type: \"text-plain\";\n /**\n * Plaintext content. This is optional if the data is base64 encoded.\n */\n text?: string;\n /**\n * Title of the file, e.g. the title of a document\n */\n title?: string;\n /**\n * Context for the text, e.g. a description or a summary of the text's content\n */\n context?: string;\n };\n\n /** Content block for file data */\n export type File = Data & {\n /**\n * Non-descript multimodal content block\n *\n * This block is intended for files that aren't covered by existing content block types.\n */\n readonly type: \"file\";\n };\n\n export type Standard = Image | Video | Audio | PlainText | File;\n}\n"],"mappings":";AAIA,MAAa,oBAAoB;CAC/B;CACA;CACA;CACA;CACA;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.cjs","names":[],"sources":["../../../src/messages/content/tools.ts"],"sourcesContent":["import { BaseContentBlock } from \"./base.js\";\n\nexport type Tools = never;\n\nexport const KNOWN_BLOCK_TYPES = [\n \"tool_call\",\n \"tool_call_chunk\",\n \"invalid_tool_call\",\n \"server_tool_call\",\n \"server_tool_call_chunk\",\n \"server_tool_call_result\",\n];\n\n//
|
|
1
|
+
{"version":3,"file":"tools.cjs","names":[],"sources":["../../../src/messages/content/tools.ts"],"sourcesContent":["import { BaseContentBlock } from \"./base.js\";\n\nexport type Tools = never;\n\nexport const KNOWN_BLOCK_TYPES = [\n \"tool_call\",\n \"tool_call_chunk\",\n \"invalid_tool_call\",\n \"server_tool_call\",\n \"server_tool_call_chunk\",\n \"server_tool_call_result\",\n];\n\n// oxlint-disable-next-line @typescript-eslint/no-namespace\nexport declare namespace Tools {\n /**\n * Represents a request to call a tool.\n *\n * @example\n * ```ts\n * const toolCall: ToolCall = {\n * type: \"tool_call\",\n * name: \"foo\",\n * args: { a: 1 },\n * callId: \"123\"\n * };\n * ```\n * This represents a request to call the tool named \"foo\" with arguments {\"a\": 1}\n * and an identifier of \"123\".\n */\n export interface ToolCall<\n TName extends string = string,\n TArgs = unknown,\n > extends BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"tool_call\";\n /**\n * The name of the tool being called\n */\n name: TName;\n /**\n * The arguments to the tool call\n */\n args: TArgs;\n }\n\n /** Content block to represent partial data of a tool call */\n export interface ToolCallChunk<\n TName extends string = string,\n > extends BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"tool_call_chunk\";\n /**\n * The name of the tool being called\n */\n name?: TName;\n /**\n * The arguments to the tool call\n */\n args?: string;\n /**\n * The index of the tool call chunk\n */\n index?: string | number;\n }\n\n /** Content block to represent an invalid tool call */\n export interface InvalidToolCall<\n TName extends string = string,\n > extends BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"invalid_tool_call\";\n /**\n * The name of the tool being called\n */\n name?: TName;\n /**\n * The arguments to the tool call\n */\n args?: string;\n /**\n * An error message associated with the tool call\n */\n error?: string;\n /**\n * Index of block in aggregate response\n */\n index?: string | number;\n }\n\n export interface ServerToolCall<\n TName extends string = string,\n TArgs = unknown,\n > extends BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"server_tool_call\";\n /**\n * The name of the tool being called\n */\n name: TName;\n /**\n * The arguments to the tool call\n */\n args: TArgs;\n }\n\n export interface ServerToolCallChunk<\n TName extends string = string,\n > extends BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"server_tool_call_chunk\";\n /**\n * The name of the tool being called\n */\n name?: TName;\n /**\n * The arguments to the tool call\n */\n args?: string;\n }\n\n export interface ServerToolCallResult<\n TOutput = Record<string, unknown>,\n > extends BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"server_tool_call_result\";\n /**\n * The unique identifier of the tool call that this result corresponds to\n */\n toolCallId: string;\n /**\n * The status of the server tool call\n */\n status: \"success\" | \"error\";\n /**\n * The output of the server tool call\n */\n output: TOutput;\n }\n\n export type Standard =\n | ToolCall\n | ToolCallChunk\n | InvalidToolCall\n | ServerToolCall\n | ServerToolCallChunk\n | ServerToolCallResult;\n}\n"],"mappings":";AAIA,MAAa,oBAAoB;CAC/B;CACA;CACA;CACA;CACA;CACA;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","names":[],"sources":["../../../src/messages/content/tools.ts"],"sourcesContent":["import { BaseContentBlock } from \"./base.js\";\n\nexport type Tools = never;\n\nexport const KNOWN_BLOCK_TYPES = [\n \"tool_call\",\n \"tool_call_chunk\",\n \"invalid_tool_call\",\n \"server_tool_call\",\n \"server_tool_call_chunk\",\n \"server_tool_call_result\",\n];\n\n//
|
|
1
|
+
{"version":3,"file":"tools.js","names":[],"sources":["../../../src/messages/content/tools.ts"],"sourcesContent":["import { BaseContentBlock } from \"./base.js\";\n\nexport type Tools = never;\n\nexport const KNOWN_BLOCK_TYPES = [\n \"tool_call\",\n \"tool_call_chunk\",\n \"invalid_tool_call\",\n \"server_tool_call\",\n \"server_tool_call_chunk\",\n \"server_tool_call_result\",\n];\n\n// oxlint-disable-next-line @typescript-eslint/no-namespace\nexport declare namespace Tools {\n /**\n * Represents a request to call a tool.\n *\n * @example\n * ```ts\n * const toolCall: ToolCall = {\n * type: \"tool_call\",\n * name: \"foo\",\n * args: { a: 1 },\n * callId: \"123\"\n * };\n * ```\n * This represents a request to call the tool named \"foo\" with arguments {\"a\": 1}\n * and an identifier of \"123\".\n */\n export interface ToolCall<\n TName extends string = string,\n TArgs = unknown,\n > extends BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"tool_call\";\n /**\n * The name of the tool being called\n */\n name: TName;\n /**\n * The arguments to the tool call\n */\n args: TArgs;\n }\n\n /** Content block to represent partial data of a tool call */\n export interface ToolCallChunk<\n TName extends string = string,\n > extends BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"tool_call_chunk\";\n /**\n * The name of the tool being called\n */\n name?: TName;\n /**\n * The arguments to the tool call\n */\n args?: string;\n /**\n * The index of the tool call chunk\n */\n index?: string | number;\n }\n\n /** Content block to represent an invalid tool call */\n export interface InvalidToolCall<\n TName extends string = string,\n > extends BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"invalid_tool_call\";\n /**\n * The name of the tool being called\n */\n name?: TName;\n /**\n * The arguments to the tool call\n */\n args?: string;\n /**\n * An error message associated with the tool call\n */\n error?: string;\n /**\n * Index of block in aggregate response\n */\n index?: string | number;\n }\n\n export interface ServerToolCall<\n TName extends string = string,\n TArgs = unknown,\n > extends BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"server_tool_call\";\n /**\n * The name of the tool being called\n */\n name: TName;\n /**\n * The arguments to the tool call\n */\n args: TArgs;\n }\n\n export interface ServerToolCallChunk<\n TName extends string = string,\n > extends BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"server_tool_call_chunk\";\n /**\n * The name of the tool being called\n */\n name?: TName;\n /**\n * The arguments to the tool call\n */\n args?: string;\n }\n\n export interface ServerToolCallResult<\n TOutput = Record<string, unknown>,\n > extends BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: \"server_tool_call_result\";\n /**\n * The unique identifier of the tool call that this result corresponds to\n */\n toolCallId: string;\n /**\n * The status of the server tool call\n */\n status: \"success\" | \"error\";\n /**\n * The output of the server tool call\n */\n output: TOutput;\n }\n\n export type Standard =\n | ToolCall\n | ToolCallChunk\n | InvalidToolCall\n | ServerToolCall\n | ServerToolCallChunk\n | ServerToolCallResult;\n}\n"],"mappings":";AAIA,MAAa,oBAAoB;CAC/B;CACA;CACA;CACA;CACA;CACA;CACD"}
|