ai 7.0.0-beta.113 → 7.0.0-beta.115
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 +32 -0
- package/dist/index.d.ts +1506 -1468
- package/dist/index.js +889 -979
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +273 -273
- package/dist/internal/index.js +367 -405
- package/dist/internal/index.js.map +1 -1
- package/dist/test/index.d.ts +18 -18
- package/dist/test/index.js +22 -22
- package/dist/test/index.js.map +1 -1
- package/docs/02-foundations/03-prompts.mdx +13 -11
- package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +2 -1
- package/docs/03-ai-sdk-core/39-file-uploads.mdx +1 -1
- package/docs/03-ai-sdk-core/45-provider-management.mdx +1 -1
- package/docs/03-ai-sdk-core/60-telemetry.mdx +87 -13
- package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +2 -2
- package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +7 -0
- package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +7 -0
- package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +9 -1
- package/docs/07-reference/01-ai-sdk-core/40-provider-registry.mdx +104 -0
- package/docs/07-reference/01-ai-sdk-core/42-custom-provider.mdx +56 -10
- package/docs/07-reference/02-ai-sdk-ui/31-convert-to-model-messages.mdx +1 -1
- package/docs/08-migration-guides/23-migration-guide-7-0.mdx +42 -0
- package/docs/09-troubleshooting/70-high-memory-usage-with-images.mdx +2 -2
- package/package.json +5 -5
- package/src/agent/agent.ts +13 -9
- package/src/agent/create-agent-ui-stream-response.ts +8 -8
- package/src/agent/create-agent-ui-stream.ts +9 -9
- package/src/agent/infer-agent-tools.ts +1 -1
- package/src/agent/infer-agent-ui-message.ts +2 -2
- package/src/agent/pipe-agent-ui-stream-to-response.ts +9 -9
- package/src/agent/tool-loop-agent-settings.ts +17 -19
- package/src/agent/tool-loop-agent.ts +16 -8
- package/src/embed/embed-many-result.ts +3 -4
- package/src/embed/embed-many.ts +5 -5
- package/src/embed/embed-result.ts +3 -4
- package/src/embed/embed.ts +4 -4
- package/src/error/invalid-stream-part-error.ts +1 -1
- package/src/error/no-image-generated-error.ts +1 -1
- package/src/error/no-object-generated-error.ts +3 -3
- package/src/error/no-speech-generated-error.ts +1 -1
- package/src/error/no-transcript-generated-error.ts +1 -1
- package/src/error/no-video-generated-error.ts +1 -1
- package/src/error/tool-call-repair-error.ts +2 -2
- package/src/error/verify-no-object-generated-error.ts +1 -1
- package/src/generate-image/generate-image-result.ts +5 -5
- package/src/generate-image/generate-image.ts +12 -15
- package/src/generate-image/index.ts +3 -2
- package/src/generate-object/generate-object-result.ts +2 -2
- package/src/generate-object/generate-object.ts +14 -14
- package/src/generate-object/inject-json-instruction.ts +1 -1
- package/src/generate-object/output-strategy.ts +10 -10
- package/src/generate-object/parse-and-validate-object-result.ts +1 -1
- package/src/generate-object/repair-text.ts +1 -1
- package/src/generate-object/stream-object-result.ts +4 -4
- package/src/generate-object/stream-object.ts +22 -19
- package/src/generate-object/validate-object-generation-input.ts +1 -1
- package/src/generate-speech/generate-speech-result.ts +4 -4
- package/src/generate-speech/generate-speech.ts +12 -13
- package/src/generate-speech/generated-audio-file.ts +1 -2
- package/src/generate-text/collect-tool-approvals.ts +4 -4
- package/src/generate-text/content-part.ts +9 -9
- package/src/generate-text/create-execute-tools-transformation.ts +9 -7
- package/src/generate-text/execute-tool-call.ts +11 -13
- package/src/generate-text/extract-reasoning-content.ts +1 -1
- package/src/generate-text/extract-text-content.ts +4 -1
- package/src/generate-text/generate-text-events.ts +2 -2
- package/src/generate-text/generate-text-result.ts +18 -14
- package/src/generate-text/generate-text.ts +42 -38
- package/src/generate-text/invoke-tool-callbacks-from-stream.ts +2 -3
- package/src/generate-text/output-utils.ts +1 -1
- package/src/generate-text/output.ts +8 -8
- package/src/generate-text/parse-tool-call.ts +36 -9
- package/src/generate-text/prepare-step.ts +3 -5
- package/src/generate-text/prune-messages.ts +1 -1
- package/src/generate-text/reasoning-output.ts +26 -9
- package/src/generate-text/reasoning.ts +1 -1
- package/src/generate-text/resolve-tool-approval.ts +3 -3
- package/src/generate-text/response-message.ts +1 -1
- package/src/generate-text/restricted-telemetry-dispatcher.ts +1 -1
- package/src/generate-text/smooth-stream.ts +6 -5
- package/src/generate-text/step-result.ts +16 -11
- package/src/generate-text/stop-condition.ts +1 -1
- package/src/generate-text/stream-language-model-call.ts +26 -21
- package/src/generate-text/stream-text-result.ts +29 -26
- package/src/generate-text/stream-text.ts +48 -46
- package/src/generate-text/to-response-messages.ts +2 -2
- package/src/generate-text/tool-approval-configuration.ts +2 -2
- package/src/generate-text/tool-approval-request-output.ts +1 -1
- package/src/generate-text/tool-approval-response-output.ts +1 -1
- package/src/generate-text/tool-call-repair-function.ts +4 -4
- package/src/generate-text/tool-call.ts +3 -4
- package/src/generate-text/tool-error.ts +3 -4
- package/src/generate-text/tool-execution-events.ts +2 -2
- package/src/generate-text/tool-output-denied.ts +1 -1
- package/src/generate-text/tool-output.ts +2 -2
- package/src/generate-text/tool-result.ts +7 -4
- package/src/generate-text/tools-context-parameter.ts +1 -1
- package/src/generate-text/validate-tool-context.ts +1 -2
- package/src/generate-video/generate-video-result.ts +4 -4
- package/src/generate-video/generate-video.ts +6 -10
- package/src/global.ts +2 -2
- package/src/index.ts +3 -3
- package/src/logger/log-warnings.ts +1 -1
- package/src/middleware/add-tool-input-examples-middleware.ts +2 -2
- package/src/middleware/default-embedding-settings-middleware.ts +2 -2
- package/src/middleware/default-settings-middleware.ts +2 -2
- package/src/middleware/extract-json-middleware.ts +1 -1
- package/src/middleware/extract-reasoning-middleware.ts +1 -1
- package/src/middleware/simulate-streaming-middleware.ts +1 -1
- package/src/middleware/wrap-embedding-model.ts +2 -2
- package/src/middleware/wrap-image-model.ts +2 -2
- package/src/middleware/wrap-language-model.ts +2 -2
- package/src/middleware/wrap-provider.ts +2 -2
- package/src/model/as-embedding-model-v3.ts +1 -1
- package/src/model/as-embedding-model-v4.ts +1 -1
- package/src/model/as-image-model-v3.ts +1 -1
- package/src/model/as-image-model-v4.ts +5 -1
- package/src/model/as-language-model-v3.ts +1 -1
- package/src/model/as-language-model-v4.ts +1 -1
- package/src/model/as-provider-v3.ts +1 -1
- package/src/model/as-provider-v4.ts +1 -1
- package/src/model/as-reranking-model-v4.ts +1 -1
- package/src/model/as-speech-model-v3.ts +1 -1
- package/src/model/as-speech-model-v4.ts +5 -1
- package/src/model/as-transcription-model-v3.ts +4 -1
- package/src/model/as-transcription-model-v4.ts +1 -1
- package/src/model/as-video-model-v4.ts +1 -1
- package/src/model/resolve-model.ts +8 -8
- package/src/prompt/content-part.ts +45 -15
- package/src/prompt/convert-to-language-model-prompt.ts +108 -122
- package/src/prompt/create-tool-model-output.ts +2 -2
- package/src/prompt/data-content.ts +1 -78
- package/src/prompt/file-part-data.ts +125 -0
- package/src/prompt/index.ts +3 -2
- package/src/prompt/language-model-call-options.ts +1 -1
- package/src/prompt/message-conversion-error.ts +1 -1
- package/src/prompt/message.ts +1 -1
- package/src/prompt/prepare-language-model-call-options.ts +1 -1
- package/src/prompt/prepare-tool-choice.ts +2 -2
- package/src/prompt/prepare-tools.ts +2 -2
- package/src/prompt/prompt.ts +1 -1
- package/src/prompt/standardize-prompt.ts +3 -3
- package/src/registry/custom-provider.ts +127 -92
- package/src/registry/index.ts +1 -1
- package/src/registry/provider-registry.ts +91 -87
- package/src/rerank/rerank-result.ts +1 -1
- package/src/rerank/rerank.ts +8 -5
- package/src/telemetry/create-telemetry-dispatcher.ts +11 -1
- package/src/telemetry/diagnostic-channel-publisher.ts +50 -0
- package/src/telemetry/diagnostic-channel.ts +24 -0
- package/src/telemetry/index.ts +5 -0
- package/src/telemetry/telemetry.ts +1 -1
- package/src/test/mock-embedding-model-v2.ts +1 -1
- package/src/test/mock-embedding-model-v3.ts +1 -1
- package/src/test/mock-embedding-model-v4.ts +1 -1
- package/src/test/mock-image-model-v2.ts +1 -1
- package/src/test/mock-image-model-v3.ts +1 -1
- package/src/test/mock-image-model-v4.ts +1 -1
- package/src/test/mock-language-model-v2.ts +1 -1
- package/src/test/mock-language-model-v3.ts +1 -1
- package/src/test/mock-language-model-v4.ts +1 -1
- package/src/test/mock-provider-v2.ts +6 -7
- package/src/test/mock-provider-v3.ts +7 -8
- package/src/test/mock-provider-v4.ts +7 -8
- package/src/test/mock-reranking-model-v3.ts +1 -1
- package/src/test/mock-reranking-model-v4.ts +1 -1
- package/src/test/mock-server-response.ts +1 -1
- package/src/test/mock-speech-model-v2.ts +1 -1
- package/src/test/mock-speech-model-v3.ts +1 -1
- package/src/test/mock-speech-model-v4.ts +1 -1
- package/src/test/mock-transcription-model-v2.ts +1 -1
- package/src/test/mock-transcription-model-v3.ts +1 -1
- package/src/test/mock-transcription-model-v4.ts +1 -1
- package/src/test/mock-video-model-v3.ts +1 -1
- package/src/test/mock-video-model-v4.ts +1 -1
- package/src/text-stream/pipe-text-stream-to-response.ts +1 -1
- package/src/transcribe/transcribe-result.ts +3 -3
- package/src/transcribe/transcribe.ts +12 -12
- package/src/types/embedding-model-middleware.ts +1 -1
- package/src/types/embedding-model.ts +1 -1
- package/src/types/image-model-middleware.ts +1 -1
- package/src/types/image-model.ts +1 -1
- package/src/types/json-value.ts +1 -1
- package/src/types/language-model-middleware.ts +1 -1
- package/src/types/language-model.ts +2 -2
- package/src/types/provider-metadata.ts +1 -1
- package/src/types/provider-reference.ts +1 -1
- package/src/types/provider.ts +4 -4
- package/src/types/reranking-model.ts +1 -1
- package/src/types/speech-model.ts +5 -1
- package/src/types/transcription-model.ts +1 -1
- package/src/types/usage.ts +1 -1
- package/src/types/video-model.ts +1 -1
- package/src/types/warning.ts +1 -1
- package/src/ui/call-completion-api.ts +2 -2
- package/src/ui/chat-transport.ts +3 -3
- package/src/ui/chat.ts +10 -11
- package/src/ui/convert-file-list-to-file-ui-parts.ts +1 -1
- package/src/ui/convert-to-model-messages.ts +34 -23
- package/src/ui/default-chat-transport.ts +4 -4
- package/src/ui/direct-chat-transport.ts +6 -6
- package/src/ui/http-chat-transport.ts +5 -5
- package/src/ui/last-assistant-message-is-complete-with-approval-responses.ts +0 -1
- package/src/ui/last-assistant-message-is-complete-with-tool-calls.ts +0 -1
- package/src/ui/process-ui-message-stream.ts +20 -21
- package/src/ui/text-stream-chat-transport.ts +3 -3
- package/src/ui/transform-text-to-ui-message-stream.ts +1 -1
- package/src/ui/ui-messages.ts +13 -6
- package/src/ui/use-completion.ts +1 -1
- package/src/ui/validate-ui-messages.ts +3 -3
- package/src/ui-message-stream/create-ui-message-stream-response.ts +2 -2
- package/src/ui-message-stream/create-ui-message-stream.ts +6 -6
- package/src/ui-message-stream/get-response-ui-message-id.ts +2 -2
- package/src/ui-message-stream/handle-ui-message-stream-finish.ts +6 -6
- package/src/ui-message-stream/pipe-ui-message-stream-to-response.ts +3 -3
- package/src/ui-message-stream/read-ui-message-stream.ts +4 -4
- package/src/ui-message-stream/ui-message-chunks.ts +4 -4
- package/src/ui-message-stream/ui-message-stream-on-finish-callback.ts +2 -2
- package/src/ui-message-stream/ui-message-stream-on-step-finish-callback.ts +1 -1
- package/src/ui-message-stream/ui-message-stream-writer.ts +3 -3
- package/src/upload-file/upload-file-result.ts +3 -3
- package/src/upload-file/upload-file.ts +34 -56
- package/src/upload-skill/upload-skill-result.ts +3 -3
- package/src/upload-skill/upload-skill.ts +27 -8
- package/src/util/create-resolvable-promise.ts +1 -1
- package/src/util/deep-partial.ts +1 -1
- package/src/util/download/download.ts +0 -2
- package/src/util/extract-literal-union.ts +18 -0
- package/src/util/is-node-runtime.ts +3 -0
- package/src/util/notify.ts +1 -1
- package/src/util/parse-partial-json.ts +1 -1
- package/src/util/prepare-retries.ts +1 -2
- package/src/util/serial-job-executor.ts +1 -1
- package/src/util/write-to-server-response.ts +1 -1
- package/src/util/detect-media-type.ts +0 -235
|
@@ -9,11 +9,11 @@ import type { TimeoutConfiguration } from '../prompt/request-options';
|
|
|
9
9
|
import type { StandardizedPrompt } from '../prompt/standardize-prompt';
|
|
10
10
|
import type { ToolChoice } from '../types/language-model';
|
|
11
11
|
import type { LanguageModelUsage } from '../types/usage';
|
|
12
|
-
import { Callback } from '../util/callback';
|
|
12
|
+
import type { Callback } from '../util/callback';
|
|
13
13
|
import type { ActiveTools } from './active-tools';
|
|
14
14
|
import type { Output } from './output';
|
|
15
15
|
import type { StepResult } from './step-result';
|
|
16
|
-
import { TextStreamPart } from './stream-text-result';
|
|
16
|
+
import type { TextStreamPart } from './stream-text-result';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Event passed to the `onStart` callback.
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import type { Context, ToolSet } from '@ai-sdk/provider-utils';
|
|
2
|
-
import { CallWarning, FinishReason, ProviderMetadata } from '../types';
|
|
3
|
-
import { Source } from '../types/language-model';
|
|
4
|
-
import { LanguageModelRequestMetadata } from '../types/language-model-request-metadata';
|
|
5
|
-
import { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';
|
|
6
|
-
import { LanguageModelUsage } from '../types/usage';
|
|
7
|
-
import { ContentPart } from './content-part';
|
|
8
|
-
import { GeneratedFile } from './generated-file';
|
|
9
|
-
import { Output } from './output';
|
|
10
|
-
import { InferCompleteOutput } from './output-utils';
|
|
11
|
-
import { ReasoningFileOutput, ReasoningOutput } from './reasoning-output';
|
|
12
|
-
import { ResponseMessage } from './response-message';
|
|
13
|
-
import { StepResult } from './step-result';
|
|
14
|
-
import {
|
|
15
|
-
|
|
2
|
+
import type { CallWarning, FinishReason, ProviderMetadata } from '../types';
|
|
3
|
+
import type { Source } from '../types/language-model';
|
|
4
|
+
import type { LanguageModelRequestMetadata } from '../types/language-model-request-metadata';
|
|
5
|
+
import type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';
|
|
6
|
+
import type { LanguageModelUsage } from '../types/usage';
|
|
7
|
+
import type { ContentPart } from './content-part';
|
|
8
|
+
import type { GeneratedFile } from './generated-file';
|
|
9
|
+
import type { Output } from './output';
|
|
10
|
+
import type { InferCompleteOutput } from './output-utils';
|
|
11
|
+
import type { ReasoningFileOutput, ReasoningOutput } from './reasoning-output';
|
|
12
|
+
import type { ResponseMessage } from './response-message';
|
|
13
|
+
import type { StepResult } from './step-result';
|
|
14
|
+
import type {
|
|
15
|
+
DynamicToolCall,
|
|
16
|
+
StaticToolCall,
|
|
17
|
+
TypedToolCall,
|
|
18
|
+
} from './tool-call';
|
|
19
|
+
import type {
|
|
16
20
|
DynamicToolResult,
|
|
17
21
|
StaticToolResult,
|
|
18
22
|
TypedToolResult,
|
|
@@ -1,46 +1,44 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {
|
|
2
2
|
LanguageModelV4Content,
|
|
3
3
|
LanguageModelV4GenerateResult,
|
|
4
4
|
LanguageModelV4ToolCall,
|
|
5
5
|
} from '@ai-sdk/provider';
|
|
6
|
-
import type {
|
|
7
|
-
Arrayable,
|
|
8
|
-
Context,
|
|
9
|
-
InferToolSetContext,
|
|
10
|
-
SensitiveContext,
|
|
11
|
-
ToolSet,
|
|
12
|
-
} from '@ai-sdk/provider-utils';
|
|
13
6
|
import {
|
|
14
7
|
asArray,
|
|
15
8
|
createIdGenerator,
|
|
16
9
|
getErrorMessage,
|
|
17
|
-
IdGenerator,
|
|
18
|
-
ProviderOptions,
|
|
19
10
|
withUserAgentSuffix,
|
|
11
|
+
type Arrayable,
|
|
12
|
+
type Context,
|
|
13
|
+
type InferToolSetContext,
|
|
14
|
+
type SensitiveContext,
|
|
15
|
+
type ToolSet,
|
|
16
|
+
type IdGenerator,
|
|
17
|
+
type ProviderOptions,
|
|
20
18
|
} from '@ai-sdk/provider-utils';
|
|
21
19
|
import { NoOutputGeneratedError } from '../error';
|
|
22
20
|
import { ToolCallNotFoundForApprovalError } from '../error/tool-call-not-found-for-approval-error';
|
|
23
21
|
import { logWarnings } from '../logger/log-warnings';
|
|
24
22
|
import { resolveLanguageModel } from '../model/resolve-model';
|
|
25
|
-
import { ModelMessage } from '../prompt';
|
|
23
|
+
import type { ModelMessage } from '../prompt';
|
|
26
24
|
import { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';
|
|
27
25
|
import { createToolModelOutput } from '../prompt/create-tool-model-output';
|
|
28
|
-
import { LanguageModelCallOptions } from '../prompt/language-model-call-options';
|
|
26
|
+
import type { LanguageModelCallOptions } from '../prompt/language-model-call-options';
|
|
29
27
|
import { prepareLanguageModelCallOptions } from '../prompt/prepare-language-model-call-options';
|
|
30
28
|
import { prepareToolChoice } from '../prompt/prepare-tool-choice';
|
|
31
29
|
import { prepareTools } from '../prompt/prepare-tools';
|
|
32
|
-
import { Prompt } from '../prompt/prompt';
|
|
30
|
+
import type { Prompt } from '../prompt/prompt';
|
|
33
31
|
import {
|
|
34
32
|
getStepTimeoutMs,
|
|
35
33
|
getTotalTimeoutMs,
|
|
36
|
-
RequestOptions,
|
|
37
|
-
TimeoutConfiguration,
|
|
34
|
+
type RequestOptions,
|
|
35
|
+
type TimeoutConfiguration,
|
|
38
36
|
} from '../prompt/request-options';
|
|
39
37
|
import { standardizePrompt } from '../prompt/standardize-prompt';
|
|
40
38
|
import { wrapGatewayError } from '../prompt/wrap-gateway-error';
|
|
41
39
|
import type { Telemetry } from '../telemetry/telemetry';
|
|
42
|
-
import { TelemetryOptions } from '../telemetry/telemetry-options';
|
|
43
|
-
import {
|
|
40
|
+
import type { TelemetryOptions } from '../telemetry/telemetry-options';
|
|
41
|
+
import type {
|
|
44
42
|
LanguageModel,
|
|
45
43
|
LanguageModelRequestMetadata,
|
|
46
44
|
ToolChoice,
|
|
@@ -48,9 +46,9 @@ import {
|
|
|
48
46
|
import {
|
|
49
47
|
addLanguageModelUsage,
|
|
50
48
|
asLanguageModelUsage,
|
|
51
|
-
LanguageModelUsage,
|
|
49
|
+
type LanguageModelUsage,
|
|
52
50
|
} from '../types/usage';
|
|
53
|
-
import { DownloadFunction } from '../util/download/download-function';
|
|
51
|
+
import type { DownloadFunction } from '../util/download/download-function';
|
|
54
52
|
import { mergeAbortSignals } from '../util/merge-abort-signals';
|
|
55
53
|
import { mergeObjects } from '../util/merge-objects';
|
|
56
54
|
import { notify } from '../util/notify';
|
|
@@ -58,7 +56,7 @@ import { prepareRetries } from '../util/prepare-retries';
|
|
|
58
56
|
import { VERSION } from '../version';
|
|
59
57
|
import type { ActiveTools } from './active-tools';
|
|
60
58
|
import { collectToolApprovals } from './collect-tool-approvals';
|
|
61
|
-
import { ContentPart } from './content-part';
|
|
59
|
+
import type { ContentPart } from './content-part';
|
|
62
60
|
import { executeToolCall } from './execute-tool-call';
|
|
63
61
|
import { filterActiveTools } from './filter-active-tools';
|
|
64
62
|
import type {
|
|
@@ -67,40 +65,40 @@ import type {
|
|
|
67
65
|
GenerateTextOnStepFinishCallback,
|
|
68
66
|
GenerateTextOnStepStartCallback,
|
|
69
67
|
} from './generate-text-events';
|
|
70
|
-
import { GenerateTextResult } from './generate-text-result';
|
|
68
|
+
import type { GenerateTextResult } from './generate-text-result';
|
|
71
69
|
import { DefaultGeneratedFile } from './generated-file';
|
|
72
70
|
import type {
|
|
73
71
|
OnLanguageModelCallEndCallback,
|
|
74
72
|
OnLanguageModelCallStartCallback,
|
|
75
73
|
} from './language-model-events';
|
|
76
|
-
import {
|
|
77
|
-
import { InferCompleteOutput } from './output-utils';
|
|
74
|
+
import { text, type Output } from './output';
|
|
75
|
+
import type { InferCompleteOutput } from './output-utils';
|
|
78
76
|
import { parseToolCall } from './parse-tool-call';
|
|
79
|
-
import { PrepareStepFunction } from './prepare-step';
|
|
77
|
+
import type { PrepareStepFunction } from './prepare-step';
|
|
80
78
|
import { convertToReasoningOutputs } from './reasoning-output';
|
|
81
79
|
import { createRestrictedTelemetryDispatcher } from './restricted-telemetry-dispatcher';
|
|
82
80
|
import { resolveToolApproval } from './resolve-tool-approval';
|
|
83
|
-
import { ResponseMessage } from './response-message';
|
|
84
|
-
import { DefaultStepResult, StepResult } from './step-result';
|
|
81
|
+
import type { ResponseMessage } from './response-message';
|
|
82
|
+
import { DefaultStepResult, type StepResult } from './step-result';
|
|
85
83
|
import {
|
|
86
84
|
isStepCount,
|
|
87
85
|
isStopConditionMet,
|
|
88
|
-
StopCondition,
|
|
86
|
+
type StopCondition,
|
|
89
87
|
} from './stop-condition';
|
|
90
88
|
import { toResponseMessages } from './to-response-messages';
|
|
91
|
-
import { ToolApprovalConfiguration } from './tool-approval-configuration';
|
|
92
|
-
import { ToolApprovalRequestOutput } from './tool-approval-request-output';
|
|
93
|
-
import { ToolApprovalResponseOutput } from './tool-approval-response-output';
|
|
94
|
-
import { TypedToolCall } from './tool-call';
|
|
95
|
-
import { ToolCallRepairFunction } from './tool-call-repair-function';
|
|
96
|
-
import { TypedToolError } from './tool-error';
|
|
97
|
-
import {
|
|
89
|
+
import type { ToolApprovalConfiguration } from './tool-approval-configuration';
|
|
90
|
+
import type { ToolApprovalRequestOutput } from './tool-approval-request-output';
|
|
91
|
+
import type { ToolApprovalResponseOutput } from './tool-approval-response-output';
|
|
92
|
+
import type { TypedToolCall } from './tool-call';
|
|
93
|
+
import type { ToolCallRepairFunction } from './tool-call-repair-function';
|
|
94
|
+
import type { TypedToolError } from './tool-error';
|
|
95
|
+
import type {
|
|
98
96
|
OnToolExecutionEndCallback,
|
|
99
97
|
OnToolExecutionStartCallback,
|
|
100
98
|
} from './tool-execution-events';
|
|
101
|
-
import { ToolOutput } from './tool-output';
|
|
102
|
-
import { TypedToolResult } from './tool-result';
|
|
103
|
-
import { ToolsContextParameter } from './tools-context-parameter';
|
|
99
|
+
import type { ToolOutput } from './tool-output';
|
|
100
|
+
import type { TypedToolResult } from './tool-result';
|
|
101
|
+
import type { ToolsContextParameter } from './tools-context-parameter';
|
|
104
102
|
|
|
105
103
|
const originalGenerateId = createIdGenerator({
|
|
106
104
|
prefix: 'aitxt',
|
|
@@ -1281,7 +1279,13 @@ function asContent<TOOLS extends ToolSet>({
|
|
|
1281
1279
|
case 'reasoning-file': {
|
|
1282
1280
|
contentParts.push({
|
|
1283
1281
|
type: part.type as 'file' | 'reasoning-file',
|
|
1284
|
-
file: new DefaultGeneratedFile(
|
|
1282
|
+
file: new DefaultGeneratedFile({
|
|
1283
|
+
data:
|
|
1284
|
+
part.data.type === 'data'
|
|
1285
|
+
? part.data.data
|
|
1286
|
+
: part.data.url.toString(),
|
|
1287
|
+
mediaType: part.mediaType,
|
|
1288
|
+
}),
|
|
1285
1289
|
...(part.providerMetadata != null
|
|
1286
1290
|
? { providerMetadata: part.providerMetadata }
|
|
1287
1291
|
: {}),
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { Context, ToolSet } from '@ai-sdk/provider-utils';
|
|
2
|
-
import {
|
|
3
|
-
import { LanguageModelStreamPart } from './stream-language-model-call';
|
|
1
|
+
import type { Context, ModelMessage, ToolSet } from '@ai-sdk/provider-utils';
|
|
2
|
+
import type { LanguageModelStreamPart } from './stream-language-model-call';
|
|
4
3
|
|
|
5
4
|
export function invokeToolCallbacksFromStream<
|
|
6
5
|
TOOLS extends ToolSet,
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
|
-
JSONValue,
|
|
3
|
-
LanguageModelV4CallOptions,
|
|
4
2
|
TypeValidationError,
|
|
3
|
+
type JSONValue,
|
|
4
|
+
type LanguageModelV4CallOptions,
|
|
5
5
|
} from '@ai-sdk/provider';
|
|
6
6
|
import {
|
|
7
7
|
asSchema,
|
|
8
|
-
FlexibleSchema,
|
|
9
8
|
resolve,
|
|
10
9
|
safeParseJSON,
|
|
11
10
|
safeValidateTypes,
|
|
11
|
+
type FlexibleSchema,
|
|
12
12
|
} from '@ai-sdk/provider-utils';
|
|
13
13
|
import { NoObjectGeneratedError } from '../error/no-object-generated-error';
|
|
14
|
-
import { FinishReason } from '../types/language-model';
|
|
15
|
-
import { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';
|
|
16
|
-
import { LanguageModelUsage } from '../types/usage';
|
|
17
|
-
import { DeepPartial } from '../util/deep-partial';
|
|
14
|
+
import type { FinishReason } from '../types/language-model';
|
|
15
|
+
import type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';
|
|
16
|
+
import type { LanguageModelUsage } from '../types/usage';
|
|
17
|
+
import type { DeepPartial } from '../util/deep-partial';
|
|
18
18
|
import { parsePartialJson } from '../util/parse-partial-json';
|
|
19
|
-
import { EnrichedStreamPart } from './stream-text';
|
|
19
|
+
import type { EnrichedStreamPart } from './stream-text';
|
|
20
20
|
|
|
21
21
|
export interface Output<OUTPUT = any, PARTIAL = any, ELEMENT = any> {
|
|
22
22
|
/**
|
|
@@ -1,17 +1,36 @@
|
|
|
1
|
-
import { LanguageModelV4ToolCall } from '@ai-sdk/provider';
|
|
1
|
+
import type { LanguageModelV4ToolCall } from '@ai-sdk/provider';
|
|
2
2
|
import {
|
|
3
3
|
asSchema,
|
|
4
|
-
ModelMessage,
|
|
5
4
|
safeParseJSON,
|
|
6
5
|
safeValidateTypes,
|
|
7
|
-
|
|
6
|
+
type ToolSet,
|
|
7
|
+
type ModelMessage,
|
|
8
|
+
type SystemModelMessage,
|
|
8
9
|
} from '@ai-sdk/provider-utils';
|
|
9
10
|
import { InvalidToolInputError } from '../error/invalid-tool-input-error';
|
|
10
11
|
import { NoSuchToolError } from '../error/no-such-tool-error';
|
|
11
12
|
import { ToolCallRepairError } from '../error/tool-call-repair-error';
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import type {
|
|
13
|
+
import type { ProviderMetadata } from '../types';
|
|
14
|
+
import type { DynamicToolCall, TypedToolCall } from './tool-call';
|
|
15
|
+
import type { ToolCallRepairFunction } from './tool-call-repair-function';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Merge the tool's static `providerMetadata` (e.g. an MCP server name)
|
|
19
|
+
* with the `providerMetadata` returned by the language model on the tool
|
|
20
|
+
* call. Model-supplied metadata wins on conflicting top-level namespaces.
|
|
21
|
+
*/
|
|
22
|
+
function mergeToolProviderMetadata(
|
|
23
|
+
toolMetadata: ProviderMetadata | undefined,
|
|
24
|
+
callMetadata: ProviderMetadata | undefined,
|
|
25
|
+
): ProviderMetadata | undefined {
|
|
26
|
+
if (toolMetadata == null) {
|
|
27
|
+
return callMetadata;
|
|
28
|
+
}
|
|
29
|
+
if (callMetadata == null) {
|
|
30
|
+
return toolMetadata;
|
|
31
|
+
}
|
|
32
|
+
return { ...toolMetadata, ...callMetadata };
|
|
33
|
+
}
|
|
15
34
|
|
|
16
35
|
export async function parseToolCall<TOOLS extends ToolSet>({
|
|
17
36
|
toolCall,
|
|
@@ -93,7 +112,10 @@ export async function parseToolCall<TOOLS extends ToolSet>({
|
|
|
93
112
|
error,
|
|
94
113
|
title: tools?.[toolCall.toolName]?.title,
|
|
95
114
|
providerExecuted: toolCall.providerExecuted,
|
|
96
|
-
providerMetadata:
|
|
115
|
+
providerMetadata: mergeToolProviderMetadata(
|
|
116
|
+
tools?.[toolCall.toolName]?.providerMetadata,
|
|
117
|
+
toolCall.providerMetadata,
|
|
118
|
+
),
|
|
97
119
|
};
|
|
98
120
|
}
|
|
99
121
|
}
|
|
@@ -165,6 +187,11 @@ async function doParseToolCall<TOOLS extends ToolSet>({
|
|
|
165
187
|
});
|
|
166
188
|
}
|
|
167
189
|
|
|
190
|
+
const mergedProviderMetadata = mergeToolProviderMetadata(
|
|
191
|
+
tool.providerMetadata,
|
|
192
|
+
toolCall.providerMetadata,
|
|
193
|
+
);
|
|
194
|
+
|
|
168
195
|
return tool.type === 'dynamic'
|
|
169
196
|
? {
|
|
170
197
|
type: 'tool-call',
|
|
@@ -172,7 +199,7 @@ async function doParseToolCall<TOOLS extends ToolSet>({
|
|
|
172
199
|
toolName: toolCall.toolName,
|
|
173
200
|
input: parseResult.value,
|
|
174
201
|
providerExecuted: toolCall.providerExecuted,
|
|
175
|
-
providerMetadata:
|
|
202
|
+
providerMetadata: mergedProviderMetadata,
|
|
176
203
|
dynamic: true,
|
|
177
204
|
title: tool.title,
|
|
178
205
|
}
|
|
@@ -182,7 +209,7 @@ async function doParseToolCall<TOOLS extends ToolSet>({
|
|
|
182
209
|
toolName,
|
|
183
210
|
input: parseResult.value,
|
|
184
211
|
providerExecuted: toolCall.providerExecuted,
|
|
185
|
-
providerMetadata:
|
|
212
|
+
providerMetadata: mergedProviderMetadata,
|
|
186
213
|
title: tool.title,
|
|
187
214
|
};
|
|
188
215
|
}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
Context,
|
|
3
3
|
InferToolSetContext,
|
|
4
|
-
ToolSet,
|
|
5
|
-
} from '@ai-sdk/provider-utils';
|
|
6
|
-
import {
|
|
7
4
|
ModelMessage,
|
|
8
5
|
ProviderOptions,
|
|
9
6
|
SystemModelMessage,
|
|
7
|
+
ToolSet,
|
|
10
8
|
} from '@ai-sdk/provider-utils';
|
|
11
|
-
import { LanguageModel, ToolChoice } from '../types/language-model';
|
|
9
|
+
import type { LanguageModel, ToolChoice } from '../types/language-model';
|
|
12
10
|
import type { ActiveTools } from './active-tools';
|
|
13
|
-
import { StepResult } from './step-result';
|
|
11
|
+
import type { StepResult } from './step-result';
|
|
14
12
|
|
|
15
13
|
/**
|
|
16
14
|
* Function that you can use to provide different settings for a step.
|
|
@@ -1,6 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type {
|
|
2
|
+
DataContent,
|
|
3
|
+
ReasoningFilePart,
|
|
4
|
+
ReasoningPart,
|
|
5
|
+
} from '@ai-sdk/provider-utils';
|
|
6
|
+
import type { ProviderMetadata } from '../types/provider-metadata';
|
|
7
|
+
import { DefaultGeneratedFile, type GeneratedFile } from './generated-file';
|
|
8
|
+
|
|
9
|
+
function unwrapReasoningFileData(
|
|
10
|
+
data: ReasoningFilePart['data'],
|
|
11
|
+
): DataContent | URL {
|
|
12
|
+
if (typeof data === 'object' && data !== null && 'type' in data) {
|
|
13
|
+
return data.type === 'data' ? data.data : data.url;
|
|
14
|
+
}
|
|
15
|
+
return data;
|
|
16
|
+
}
|
|
4
17
|
|
|
5
18
|
/**
|
|
6
19
|
* Reasoning output of a text generation. It contains a reasoning.
|
|
@@ -80,15 +93,19 @@ export function convertToReasoningOutputs(
|
|
|
80
93
|
};
|
|
81
94
|
}
|
|
82
95
|
|
|
96
|
+
const rawData = unwrapReasoningFileData(part.data);
|
|
97
|
+
|
|
98
|
+
const fileData: string | Uint8Array =
|
|
99
|
+
rawData instanceof ArrayBuffer
|
|
100
|
+
? new Uint8Array(rawData)
|
|
101
|
+
: rawData instanceof URL
|
|
102
|
+
? rawData.toString()
|
|
103
|
+
: (rawData as string | Uint8Array);
|
|
104
|
+
|
|
83
105
|
return {
|
|
84
106
|
type: 'reasoning-file' as const,
|
|
85
107
|
file: new DefaultGeneratedFile({
|
|
86
|
-
data:
|
|
87
|
-
part.data instanceof ArrayBuffer
|
|
88
|
-
? new Uint8Array(part.data)
|
|
89
|
-
: part.data instanceof URL
|
|
90
|
-
? part.data.toString()
|
|
91
|
-
: part.data,
|
|
108
|
+
data: fileData,
|
|
92
109
|
mediaType: part.mediaType,
|
|
93
110
|
}),
|
|
94
111
|
...(part.providerOptions != null
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {
|
|
2
2
|
Context,
|
|
3
3
|
InferToolInput,
|
|
4
4
|
InferToolSetContext,
|
|
5
5
|
ModelMessage,
|
|
6
6
|
ToolSet,
|
|
7
7
|
} from '@ai-sdk/provider-utils';
|
|
8
|
-
import {
|
|
8
|
+
import type {
|
|
9
9
|
ToolApprovalConfiguration,
|
|
10
10
|
ToolApprovalStatus,
|
|
11
11
|
} from './tool-approval-configuration';
|
|
12
|
-
import { TypedToolCall } from './tool-call';
|
|
12
|
+
import type { TypedToolCall } from './tool-call';
|
|
13
13
|
import { validateToolContext } from './validate-tool-context';
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
GenerateTextOnStepStartCallback,
|
|
16
16
|
} from './generate-text-events';
|
|
17
17
|
import type { Output } from './output';
|
|
18
|
-
import { DefaultStepResult, StepResult } from './step-result';
|
|
18
|
+
import { DefaultStepResult, type StepResult } from './step-result';
|
|
19
19
|
import type {
|
|
20
20
|
OnToolExecutionEndCallback,
|
|
21
21
|
OnToolExecutionStartCallback,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { delay as originalDelay } from '@ai-sdk/provider-utils';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { delay as originalDelay, type ToolSet } from '@ai-sdk/provider-utils';
|
|
2
|
+
import {
|
|
3
|
+
InvalidArgumentError,
|
|
4
|
+
type SharedV4ProviderMetadata,
|
|
5
|
+
} from '@ai-sdk/provider';
|
|
6
|
+
import type { TextStreamPart } from './stream-text-result';
|
|
6
7
|
|
|
7
8
|
const CHUNKING_REGEXPS = {
|
|
8
9
|
word: /\S+\s+/m,
|
|
@@ -1,29 +1,34 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
Context,
|
|
3
3
|
InferToolSetContext,
|
|
4
|
+
ReasoningFilePart,
|
|
5
|
+
ReasoningPart,
|
|
4
6
|
ToolSet,
|
|
5
7
|
} from '@ai-sdk/provider-utils';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
+
import type {
|
|
8
9
|
CallWarning,
|
|
9
10
|
FinishReason,
|
|
10
11
|
LanguageModelRequestMetadata,
|
|
11
12
|
LanguageModelResponseMetadata,
|
|
12
13
|
ProviderMetadata,
|
|
13
14
|
} from '../types';
|
|
14
|
-
import { Source } from '../types/language-model';
|
|
15
|
-
import { LanguageModelUsage } from '../types/usage';
|
|
16
|
-
import { ContentPart } from './content-part';
|
|
17
|
-
import { GeneratedFile } from './generated-file';
|
|
15
|
+
import type { Source } from '../types/language-model';
|
|
16
|
+
import type { LanguageModelUsage } from '../types/usage';
|
|
17
|
+
import type { ContentPart } from './content-part';
|
|
18
|
+
import type { GeneratedFile } from './generated-file';
|
|
18
19
|
import { asReasoningText } from './reasoning';
|
|
19
20
|
import {
|
|
20
|
-
ReasoningFileOutput,
|
|
21
|
-
ReasoningOutput,
|
|
22
21
|
convertFromReasoningOutputs,
|
|
22
|
+
type ReasoningFileOutput,
|
|
23
|
+
type ReasoningOutput,
|
|
23
24
|
} from './reasoning-output';
|
|
24
|
-
import { ResponseMessage } from './response-message';
|
|
25
|
-
import {
|
|
26
|
-
|
|
25
|
+
import type { ResponseMessage } from './response-message';
|
|
26
|
+
import type {
|
|
27
|
+
DynamicToolCall,
|
|
28
|
+
StaticToolCall,
|
|
29
|
+
TypedToolCall,
|
|
30
|
+
} from './tool-call';
|
|
31
|
+
import type {
|
|
27
32
|
DynamicToolResult,
|
|
28
33
|
StaticToolResult,
|
|
29
34
|
TypedToolResult,
|
|
@@ -1,37 +1,39 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getErrorMessage,
|
|
3
|
-
LanguageModelV4Prompt,
|
|
4
|
-
LanguageModelV4StreamPart,
|
|
5
|
-
SharedV4Headers,
|
|
3
|
+
type LanguageModelV4Prompt,
|
|
4
|
+
type LanguageModelV4StreamPart,
|
|
5
|
+
type SharedV4Headers,
|
|
6
6
|
} from '@ai-sdk/provider';
|
|
7
|
-
import type { Arrayable, IdGenerator, ToolSet } from '@ai-sdk/provider-utils';
|
|
8
7
|
import {
|
|
9
8
|
createIdGenerator,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
type Arrayable,
|
|
10
|
+
type IdGenerator,
|
|
11
|
+
type ToolSet,
|
|
12
|
+
type ModelMessage,
|
|
13
|
+
type ProviderOptions,
|
|
14
|
+
type SystemModelMessage,
|
|
13
15
|
} from '@ai-sdk/provider-utils';
|
|
14
16
|
import { ToolCallNotFoundForApprovalError } from '../error/tool-call-not-found-for-approval-error';
|
|
15
17
|
import { resolveLanguageModel } from '../model/resolve-model';
|
|
16
|
-
import { LanguageModelCallOptions } from '../prompt/language-model-call-options';
|
|
17
|
-
import { Prompt } from '../prompt';
|
|
18
|
+
import type { LanguageModelCallOptions } from '../prompt/language-model-call-options';
|
|
19
|
+
import type { Prompt } from '../prompt';
|
|
18
20
|
import { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';
|
|
19
21
|
import { prepareToolChoice } from '../prompt/prepare-tool-choice';
|
|
20
22
|
import { prepareTools } from '../prompt/prepare-tools';
|
|
21
23
|
import { standardizePrompt } from '../prompt/standardize-prompt';
|
|
22
|
-
import {
|
|
24
|
+
import type {
|
|
23
25
|
CallWarning,
|
|
24
26
|
FinishReason,
|
|
25
27
|
LanguageModel,
|
|
26
28
|
ToolChoice,
|
|
27
29
|
} from '../types/language-model';
|
|
28
|
-
import { ProviderMetadata } from '../types/provider-metadata';
|
|
29
|
-
import { asLanguageModelUsage, LanguageModelUsage } from '../types/usage';
|
|
30
|
+
import type { ProviderMetadata } from '../types/provider-metadata';
|
|
31
|
+
import { asLanguageModelUsage, type LanguageModelUsage } from '../types/usage';
|
|
30
32
|
import {
|
|
31
|
-
AsyncIterableStream,
|
|
32
33
|
createAsyncIterableStream,
|
|
34
|
+
type AsyncIterableStream,
|
|
33
35
|
} from '../util/async-iterable-stream';
|
|
34
|
-
import { DownloadFunction } from '../util/download/download-function';
|
|
36
|
+
import type { DownloadFunction } from '../util/download/download-function';
|
|
35
37
|
import { notify } from '../util/notify';
|
|
36
38
|
import type { ContentPart } from './content-part';
|
|
37
39
|
import { DefaultGeneratedFileWithType } from './generated-file';
|
|
@@ -39,9 +41,9 @@ import type {
|
|
|
39
41
|
OnLanguageModelCallEndCallback,
|
|
40
42
|
OnLanguageModelCallStartCallback,
|
|
41
43
|
} from './language-model-events';
|
|
42
|
-
import { Output } from './output';
|
|
44
|
+
import type { Output } from './output';
|
|
43
45
|
import { parseToolCall } from './parse-tool-call';
|
|
44
|
-
import {
|
|
46
|
+
import type {
|
|
45
47
|
TextStreamFilePart,
|
|
46
48
|
TextStreamPart,
|
|
47
49
|
TextStreamReasoningDeltaPart,
|
|
@@ -53,10 +55,10 @@ import {
|
|
|
53
55
|
TextStreamToolErrorPart,
|
|
54
56
|
TextStreamToolResultPart,
|
|
55
57
|
} from './stream-text-result';
|
|
56
|
-
import { TypedToolCall } from './tool-call';
|
|
57
|
-
import { ToolCallRepairFunction } from './tool-call-repair-function';
|
|
58
|
-
import { TypedToolError } from './tool-error';
|
|
59
|
-
import { TypedToolResult } from './tool-result';
|
|
58
|
+
import type { TypedToolCall } from './tool-call';
|
|
59
|
+
import type { ToolCallRepairFunction } from './tool-call-repair-function';
|
|
60
|
+
import type { TypedToolError } from './tool-error';
|
|
61
|
+
import type { TypedToolResult } from './tool-result';
|
|
60
62
|
|
|
61
63
|
const originalGenerateId = createIdGenerator({
|
|
62
64
|
prefix: 'aitxt',
|
|
@@ -446,7 +448,10 @@ function createLanguageModelV4StreamPartToLanguageModelStreamPartTransform<
|
|
|
446
448
|
case 'file':
|
|
447
449
|
case 'reasoning-file': {
|
|
448
450
|
const file = new DefaultGeneratedFileWithType({
|
|
449
|
-
data:
|
|
451
|
+
data:
|
|
452
|
+
chunk.data.type === 'data'
|
|
453
|
+
? chunk.data.data
|
|
454
|
+
: chunk.data.url.toString(),
|
|
450
455
|
mediaType: chunk.mediaType,
|
|
451
456
|
});
|
|
452
457
|
|