@strands-agents/sdk 1.0.0-rc.5 → 1.0.0
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/LICENSE +175 -0
- package/README.md +340 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts +6 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/agent-helpers.js +3 -1
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
- package/dist/src/__fixtures__/mock-plugin.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-plugin.js +3 -1
- package/dist/src/__fixtures__/mock-plugin.js.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.d.ts +3 -1
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +3 -1
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
- package/dist/src/__tests__/mcp.test.js +222 -2
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/a2a/__tests__/events.test.js +2 -0
- package/dist/src/a2a/__tests__/events.test.js.map +1 -1
- package/dist/src/a2a/__tests__/executor.test.js +16 -5
- package/dist/src/a2a/__tests__/executor.test.js.map +1 -1
- package/dist/src/a2a/a2a-agent.d.ts +8 -3
- package/dist/src/a2a/a2a-agent.d.ts.map +1 -1
- package/dist/src/a2a/a2a-agent.js +12 -6
- package/dist/src/a2a/a2a-agent.js.map +1 -1
- package/dist/src/a2a/executor.d.ts +13 -0
- package/dist/src/a2a/executor.d.ts.map +1 -1
- package/dist/src/a2a/executor.js +19 -1
- package/dist/src/a2a/executor.js.map +1 -1
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js +23 -0
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.cancel.test.js +1 -1
- package/dist/src/agent/__tests__/agent.cancel.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.concurrent.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.concurrent.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.concurrent.test.js +488 -0
- package/dist/src/agent/__tests__/agent.concurrent.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.hook.test.js +174 -12
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.invocation-state.test.js +219 -0
- package/dist/src/agent/__tests__/agent.invocation-state.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.stateful-model.test.js +169 -0
- package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.test.js +99 -2
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.tracer.test.node.js +39 -0
- package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.js +5 -4
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
- package/dist/src/agent/agent-as-tool.d.ts.map +1 -1
- package/dist/src/agent/agent-as-tool.js +4 -2
- package/dist/src/agent/agent-as-tool.js.map +1 -1
- package/dist/src/agent/agent.d.ts +75 -1
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +323 -83
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts +2 -2
- package/dist/src/agent/snapshot.d.ts.map +1 -1
- package/dist/src/agent/snapshot.js +8 -2
- package/dist/src/agent/snapshot.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +4 -4
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +2 -2
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +8 -3
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +1 -0
- package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +1 -1
- package/dist/src/errors.d.ts +11 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +12 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +177 -70
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/__tests__/registry.test.js +16 -16
- package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +95 -25
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +98 -23
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/index.d.ts +5 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/logging/__tests__/warn-once.test.d.ts +2 -0
- package/dist/src/logging/__tests__/warn-once.test.d.ts.map +1 -0
- package/dist/src/logging/__tests__/warn-once.test.js +30 -0
- package/dist/src/logging/__tests__/warn-once.test.js.map +1 -0
- package/dist/src/logging/warn-once.d.ts +13 -0
- package/dist/src/logging/warn-once.d.ts.map +1 -0
- package/dist/src/logging/warn-once.js +18 -0
- package/dist/src/logging/warn-once.js.map +1 -0
- package/dist/src/mcp.d.ts +20 -1
- package/dist/src/mcp.d.ts.map +1 -1
- package/dist/src/mcp.js +10 -1
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/mime.d.ts +2 -1
- package/dist/src/mime.d.ts.map +1 -1
- package/dist/src/mime.js +1 -0
- package/dist/src/mime.js.map +1 -1
- package/dist/src/models/__tests__/anthropic.test.js +92 -3
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +113 -2
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/google.test.js +77 -0
- package/dist/src/models/__tests__/google.test.js.map +1 -1
- package/dist/src/models/__tests__/model.test.js +149 -1
- package/dist/src/models/__tests__/model.test.js.map +1 -1
- package/dist/src/models/anthropic.d.ts +12 -1
- package/dist/src/models/anthropic.d.ts.map +1 -1
- package/dist/src/models/anthropic.js +38 -6
- package/dist/src/models/anthropic.js.map +1 -1
- package/dist/src/models/bedrock.d.ts +12 -1
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +45 -11
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/defaults.d.ts +37 -0
- package/dist/src/models/defaults.d.ts.map +1 -0
- package/dist/src/models/defaults.js +41 -0
- package/dist/src/models/defaults.js.map +1 -0
- package/dist/src/models/google/model.d.ts +14 -1
- package/dist/src/models/google/model.d.ts.map +1 -1
- package/dist/src/models/google/model.js +50 -6
- package/dist/src/models/google/model.js.map +1 -1
- package/dist/src/models/model.d.ts +50 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +120 -0
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/openai/__tests__/chat.test.d.ts +2 -0
- package/dist/src/models/openai/__tests__/chat.test.d.ts.map +1 -0
- package/dist/src/models/{__tests__/openai.test.js → openai/__tests__/chat.test.js} +72 -7
- package/dist/src/models/openai/__tests__/chat.test.js.map +1 -0
- package/dist/src/models/openai/__tests__/responses.test.d.ts +2 -0
- package/dist/src/models/openai/__tests__/responses.test.d.ts.map +1 -0
- package/dist/src/models/openai/__tests__/responses.test.js +668 -0
- package/dist/src/models/openai/__tests__/responses.test.js.map +1 -0
- package/dist/src/models/openai/chat-adapter.d.ts +33 -0
- package/dist/src/models/openai/chat-adapter.d.ts.map +1 -0
- package/dist/src/models/openai/chat-adapter.js +383 -0
- package/dist/src/models/openai/chat-adapter.js.map +1 -0
- package/dist/src/models/openai/errors.d.ts +16 -0
- package/dist/src/models/openai/errors.d.ts.map +1 -0
- package/dist/src/models/openai/errors.js +40 -0
- package/dist/src/models/openai/errors.js.map +1 -0
- package/dist/src/models/openai/formatting.d.ts +18 -0
- package/dist/src/models/openai/formatting.d.ts.map +1 -0
- package/dist/src/models/openai/formatting.js +38 -0
- package/dist/src/models/openai/formatting.js.map +1 -0
- package/dist/src/models/openai/index.d.ts +19 -0
- package/dist/src/models/openai/index.d.ts.map +1 -0
- package/dist/src/models/openai/index.js +18 -0
- package/dist/src/models/openai/index.js.map +1 -0
- package/dist/src/models/openai/model.d.ts +77 -0
- package/dist/src/models/openai/model.d.ts.map +1 -0
- package/dist/src/models/openai/model.js +211 -0
- package/dist/src/models/openai/model.js.map +1 -0
- package/dist/src/models/openai/responses-adapter.d.ts +78 -0
- package/dist/src/models/openai/responses-adapter.d.ts.map +1 -0
- package/dist/src/models/openai/responses-adapter.js +467 -0
- package/dist/src/models/openai/responses-adapter.js.map +1 -0
- package/dist/src/models/openai/types.d.ts +131 -0
- package/dist/src/models/openai/types.d.ts.map +1 -0
- package/dist/src/models/openai/types.js +5 -0
- package/dist/src/models/openai/types.js.map +1 -0
- package/dist/src/multiagent/__tests__/events.test.js +122 -28
- package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.js +95 -0
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.js +5 -2
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js +56 -0
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js.map +1 -0
- package/dist/src/multiagent/events.d.ts +19 -1
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +18 -0
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +5 -3
- package/dist/src/multiagent/graph.d.ts.map +1 -1
- package/dist/src/multiagent/graph.js +22 -15
- package/dist/src/multiagent/graph.js.map +1 -1
- package/dist/src/multiagent/index.d.ts +1 -1
- package/dist/src/multiagent/index.d.ts.map +1 -1
- package/dist/src/multiagent/multiagent.d.ts +16 -3
- package/dist/src/multiagent/multiagent.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.d.ts +10 -3
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +28 -6
- package/dist/src/multiagent/nodes.js.map +1 -1
- package/dist/src/multiagent/swarm.d.ts +5 -3
- package/dist/src/multiagent/swarm.d.ts.map +1 -1
- package/dist/src/multiagent/swarm.js +22 -16
- package/dist/src/multiagent/swarm.js.map +1 -1
- package/dist/src/plugins/__tests__/registry.test.js +1 -1
- package/dist/src/plugins/__tests__/registry.test.js.map +1 -1
- package/dist/src/plugins/model-plugin.d.ts +20 -0
- package/dist/src/plugins/model-plugin.d.ts.map +1 -0
- package/dist/src/plugins/model-plugin.js +29 -0
- package/dist/src/plugins/model-plugin.js.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.js +13 -11
- package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
- package/dist/src/session/session-manager.d.ts.map +1 -1
- package/dist/src/session/session-manager.js +9 -0
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/telemetry/__tests__/meter.test.js +23 -0
- package/dist/src/telemetry/__tests__/meter.test.js.map +1 -1
- package/dist/src/telemetry/meter.d.ts +15 -0
- package/dist/src/telemetry/meter.d.ts.map +1 -1
- package/dist/src/telemetry/meter.js +14 -0
- package/dist/src/telemetry/meter.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +24 -3
- package/dist/src/tools/mcp-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-tool.js +103 -31
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/tool.d.ts +11 -1
- package/dist/src/tools/tool.d.ts.map +1 -1
- package/dist/src/tools/tool.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/agent.test.js +48 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +55 -6
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +22 -6
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/elicitation.d.ts +15 -0
- package/dist/src/types/elicitation.d.ts.map +1 -0
- package/dist/src/types/elicitation.js +2 -0
- package/dist/src/types/elicitation.js.map +1 -0
- package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +9 -5
- package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +1 -1
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +1 -0
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +1 -0
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -1
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +1 -0
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
- package/package.json +9 -5
- package/dist/src/models/__tests__/openai.test.d.ts +0 -2
- package/dist/src/models/__tests__/openai.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/openai.test.js.map +0 -1
- package/dist/src/models/openai.d.ts +0 -312
- package/dist/src/models/openai.d.ts.map +0 -1
- package/dist/src/models/openai.js +0 -789
- package/dist/src/models/openai.js.map +0 -1
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenAI model provider implementation.
|
|
3
|
-
*
|
|
4
|
-
* This module provides integration with OpenAI's Chat Completions API,
|
|
5
|
-
* supporting streaming responses, tool use, and configurable model parameters.
|
|
6
|
-
*
|
|
7
|
-
* @see https://platform.openai.com/docs/api-reference/chat/create
|
|
8
|
-
*/
|
|
9
|
-
import OpenAI, { type ClientOptions } from 'openai';
|
|
10
|
-
import type { ApiKeySetter } from 'openai/client';
|
|
11
|
-
import { Model } from '../models/model.js';
|
|
12
|
-
import type { BaseModelConfig, StreamOptions } from '../models/model.js';
|
|
13
|
-
import type { Message } from '../types/messages.js';
|
|
14
|
-
import type { ModelStreamEvent } from '../models/streaming.js';
|
|
15
|
-
/**
|
|
16
|
-
* Supported OpenAI API types.
|
|
17
|
-
* - 'chat': OpenAI Chat Completions API
|
|
18
|
-
*/
|
|
19
|
-
export type OpenAIApi = 'chat';
|
|
20
|
-
/**
|
|
21
|
-
* Configuration interface for OpenAI model provider.
|
|
22
|
-
*
|
|
23
|
-
* Extends BaseModelConfig with OpenAI-specific configuration options
|
|
24
|
-
* for model parameters and request settings.
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```typescript
|
|
28
|
-
* const config: OpenAIModelConfig = {
|
|
29
|
-
* modelId: 'gpt-5.4',
|
|
30
|
-
* temperature: 0.7,
|
|
31
|
-
* maxTokens: 1024
|
|
32
|
-
* }
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
export interface OpenAIModelConfig extends BaseModelConfig {
|
|
36
|
-
/**
|
|
37
|
-
* OpenAI model identifier (e.g., gpt-5.4, gpt-5.4-mini).
|
|
38
|
-
*/
|
|
39
|
-
modelId?: string;
|
|
40
|
-
/**
|
|
41
|
-
* Controls randomness in generation.
|
|
42
|
-
*
|
|
43
|
-
* @see https://platform.openai.com/docs/api-reference/chat/create#chat-create-temperature
|
|
44
|
-
*/
|
|
45
|
-
temperature?: number;
|
|
46
|
-
/**
|
|
47
|
-
* Maximum number of tokens to generate in the completion.
|
|
48
|
-
*
|
|
49
|
-
* @see https://platform.openai.com/docs/api-reference/chat/create#chat-create-max_completion_tokens
|
|
50
|
-
*/
|
|
51
|
-
maxTokens?: number;
|
|
52
|
-
/**
|
|
53
|
-
* Controls diversity via nucleus sampling.
|
|
54
|
-
*
|
|
55
|
-
* @see https://platform.openai.com/docs/api-reference/chat/create#chat-create-top_p
|
|
56
|
-
*/
|
|
57
|
-
topP?: number;
|
|
58
|
-
/**
|
|
59
|
-
* Reduces repetition of token sequences (-2.0 to 2.0).
|
|
60
|
-
*/
|
|
61
|
-
frequencyPenalty?: number;
|
|
62
|
-
/**
|
|
63
|
-
* Encourages the model to talk about new topics (-2.0 to 2.0).
|
|
64
|
-
*/
|
|
65
|
-
presencePenalty?: number;
|
|
66
|
-
/**
|
|
67
|
-
* Additional parameters to pass through to the OpenAI API.
|
|
68
|
-
* This field provides forward compatibility for any new parameters
|
|
69
|
-
* that OpenAI introduces. All properties in this object will be
|
|
70
|
-
* spread into the API request.
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
* ```typescript
|
|
74
|
-
* // Pass stop sequences
|
|
75
|
-
* { params: { stop: ['END', 'STOP'] } }
|
|
76
|
-
*
|
|
77
|
-
* // Pass any future OpenAI parameters
|
|
78
|
-
* { params: { newParameter: 'value' } }
|
|
79
|
-
* ```
|
|
80
|
-
*/
|
|
81
|
-
params?: Record<string, unknown>;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Options interface for creating an OpenAIModel instance.
|
|
85
|
-
*/
|
|
86
|
-
export interface OpenAIModelOptions extends OpenAIModelConfig {
|
|
87
|
-
/**
|
|
88
|
-
* Which OpenAI API to use for inference.
|
|
89
|
-
* Currently only 'chat' (Chat Completions API) is supported.
|
|
90
|
-
*
|
|
91
|
-
* @see https://platform.openai.com/docs/api-reference/chat
|
|
92
|
-
*/
|
|
93
|
-
api: OpenAIApi;
|
|
94
|
-
/**
|
|
95
|
-
* OpenAI API key (falls back to OPENAI_API_KEY environment variable).
|
|
96
|
-
*
|
|
97
|
-
* Accepts either a static string or an async function that resolves to a string.
|
|
98
|
-
* When a function is provided, it is invoked before each request, allowing for
|
|
99
|
-
* dynamic API key rotation or runtime credential refresh.
|
|
100
|
-
*/
|
|
101
|
-
apiKey?: string | ApiKeySetter;
|
|
102
|
-
/**
|
|
103
|
-
* Pre-configured OpenAI client instance.
|
|
104
|
-
* If provided, this client will be used instead of creating a new one.
|
|
105
|
-
*/
|
|
106
|
-
client?: OpenAI;
|
|
107
|
-
/**
|
|
108
|
-
* Additional OpenAI client configuration.
|
|
109
|
-
* Only used if client is not provided.
|
|
110
|
-
*/
|
|
111
|
-
clientConfig?: ClientOptions;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* OpenAI model provider implementation.
|
|
115
|
-
*
|
|
116
|
-
* Implements the Model interface for OpenAI using the Chat Completions API.
|
|
117
|
-
* Supports streaming responses, tool use, and comprehensive configuration.
|
|
118
|
-
*
|
|
119
|
-
* @example
|
|
120
|
-
* ```typescript
|
|
121
|
-
* const provider = new OpenAIModel({
|
|
122
|
-
* api: 'chat',
|
|
123
|
-
* apiKey: 'sk-...',
|
|
124
|
-
* modelId: 'gpt-5.4',
|
|
125
|
-
* temperature: 0.7,
|
|
126
|
-
* maxTokens: 1024
|
|
127
|
-
* })
|
|
128
|
-
*
|
|
129
|
-
* const messages: Message[] = [
|
|
130
|
-
* { role: 'user', content: [{ type: 'textBlock', text: 'Hello!' }] }
|
|
131
|
-
* ]
|
|
132
|
-
*
|
|
133
|
-
* for await (const event of provider.stream(messages)) {
|
|
134
|
-
* if (event.type === 'modelContentBlockDeltaEvent' && event.delta.type === 'textDelta') {
|
|
135
|
-
* process.stdout.write(event.delta.text)
|
|
136
|
-
* }
|
|
137
|
-
* }
|
|
138
|
-
* ```
|
|
139
|
-
*/
|
|
140
|
-
export declare class OpenAIModel extends Model<OpenAIModelConfig> {
|
|
141
|
-
private _config;
|
|
142
|
-
private _client;
|
|
143
|
-
/**
|
|
144
|
-
* Creates a new OpenAIModel instance.
|
|
145
|
-
*
|
|
146
|
-
* @param options - Configuration for model and client
|
|
147
|
-
*
|
|
148
|
-
* @example
|
|
149
|
-
* ```typescript
|
|
150
|
-
* // Minimal configuration with API key and model ID
|
|
151
|
-
* const provider = new OpenAIModel({
|
|
152
|
-
* api: 'chat',
|
|
153
|
-
* modelId: 'gpt-5.4',
|
|
154
|
-
* apiKey: 'sk-...'
|
|
155
|
-
* })
|
|
156
|
-
*
|
|
157
|
-
* // With additional model configuration
|
|
158
|
-
* const provider = new OpenAIModel({
|
|
159
|
-
* api: 'chat',
|
|
160
|
-
* modelId: 'gpt-5.4',
|
|
161
|
-
* apiKey: 'sk-...',
|
|
162
|
-
* temperature: 0.8,
|
|
163
|
-
* maxTokens: 2048
|
|
164
|
-
* })
|
|
165
|
-
*
|
|
166
|
-
* // Using environment variable for API key
|
|
167
|
-
* const provider = new OpenAIModel({
|
|
168
|
-
* api: 'chat',
|
|
169
|
-
* modelId: 'gpt-5.4-mini'
|
|
170
|
-
* })
|
|
171
|
-
*
|
|
172
|
-
* // Using function-based API key for dynamic key retrieval
|
|
173
|
-
* const provider = new OpenAIModel({
|
|
174
|
-
* api: 'chat',
|
|
175
|
-
* modelId: 'gpt-5.4',
|
|
176
|
-
* apiKey: async () => await getRotatingApiKey()
|
|
177
|
-
* })
|
|
178
|
-
*
|
|
179
|
-
* // Using a pre-configured client instance
|
|
180
|
-
* const client = new OpenAI({ apiKey: 'sk-...', timeout: 60000 })
|
|
181
|
-
* const provider = new OpenAIModel({
|
|
182
|
-
* api: 'chat',
|
|
183
|
-
* modelId: 'gpt-5.4',
|
|
184
|
-
* client
|
|
185
|
-
* })
|
|
186
|
-
* ```
|
|
187
|
-
*/
|
|
188
|
-
constructor(options: OpenAIModelOptions);
|
|
189
|
-
/**
|
|
190
|
-
* Updates the model configuration.
|
|
191
|
-
* Merges the provided configuration with existing settings.
|
|
192
|
-
*
|
|
193
|
-
* @param modelConfig - Configuration object with model-specific settings to update
|
|
194
|
-
*
|
|
195
|
-
* @example
|
|
196
|
-
* ```typescript
|
|
197
|
-
* // Update temperature and maxTokens
|
|
198
|
-
* provider.updateConfig({
|
|
199
|
-
* temperature: 0.9,
|
|
200
|
-
* maxTokens: 2048
|
|
201
|
-
* })
|
|
202
|
-
* ```
|
|
203
|
-
*/
|
|
204
|
-
updateConfig(modelConfig: OpenAIModelConfig): void;
|
|
205
|
-
/**
|
|
206
|
-
* Retrieves the current model configuration.
|
|
207
|
-
*
|
|
208
|
-
* @returns The current configuration object
|
|
209
|
-
*
|
|
210
|
-
* @example
|
|
211
|
-
* ```typescript
|
|
212
|
-
* const config = provider.getConfig()
|
|
213
|
-
* console.log(config.modelId)
|
|
214
|
-
* ```
|
|
215
|
-
*/
|
|
216
|
-
getConfig(): OpenAIModelConfig;
|
|
217
|
-
/**
|
|
218
|
-
* Streams a conversation with the OpenAI model.
|
|
219
|
-
* Returns an async iterable that yields streaming events as they occur.
|
|
220
|
-
*
|
|
221
|
-
* @param messages - Array of conversation messages
|
|
222
|
-
* @param options - Optional streaming configuration
|
|
223
|
-
* @returns Async iterable of streaming events
|
|
224
|
-
*
|
|
225
|
-
* @throws \{ContextWindowOverflowError\} When input exceeds the model's context window
|
|
226
|
-
*
|
|
227
|
-
* @example
|
|
228
|
-
* ```typescript
|
|
229
|
-
* const provider = new OpenAIModel({ api: 'chat', modelId: 'gpt-5.4', apiKey: 'sk-...' })
|
|
230
|
-
* const messages: Message[] = [
|
|
231
|
-
* { role: 'user', content: [{ type: 'textBlock', text: 'What is 2+2?' }] }
|
|
232
|
-
* ]
|
|
233
|
-
*
|
|
234
|
-
* for await (const event of provider.stream(messages)) {
|
|
235
|
-
* if (event.type === 'modelContentBlockDeltaEvent' && event.delta.type === 'textDelta') {
|
|
236
|
-
* process.stdout.write(event.delta.text)
|
|
237
|
-
* }
|
|
238
|
-
* }
|
|
239
|
-
* ```
|
|
240
|
-
*
|
|
241
|
-
* @example
|
|
242
|
-
* ```typescript
|
|
243
|
-
* // With tool use
|
|
244
|
-
* const options: StreamOptions = {
|
|
245
|
-
* systemPrompt: 'You are a helpful assistant',
|
|
246
|
-
* toolSpecs: [calculatorTool]
|
|
247
|
-
* }
|
|
248
|
-
*
|
|
249
|
-
* for await (const event of provider.stream(messages, options)) {
|
|
250
|
-
* if (event.type === 'modelMessageStopEvent' && event.stopReason === 'toolUse') {
|
|
251
|
-
* console.log('Model wants to use a tool')
|
|
252
|
-
* }
|
|
253
|
-
* }
|
|
254
|
-
* ```
|
|
255
|
-
*/
|
|
256
|
-
stream(messages: Message[], options?: StreamOptions): AsyncIterable<ModelStreamEvent>;
|
|
257
|
-
/**
|
|
258
|
-
* Formats a request for the OpenAI Chat Completions API.
|
|
259
|
-
*
|
|
260
|
-
* @param messages - Conversation messages
|
|
261
|
-
* @param options - Stream options
|
|
262
|
-
* @returns Formatted OpenAI request
|
|
263
|
-
*/
|
|
264
|
-
private _formatRequest;
|
|
265
|
-
/**
|
|
266
|
-
* Formats messages for OpenAI API.
|
|
267
|
-
* Handles splitting tool results into separate messages.
|
|
268
|
-
*
|
|
269
|
-
* @param messages - SDK messages
|
|
270
|
-
* @returns OpenAI-formatted messages
|
|
271
|
-
*/
|
|
272
|
-
private _formatMessages;
|
|
273
|
-
/**
|
|
274
|
-
* Formats an image block to OpenAI image_url format.
|
|
275
|
-
*
|
|
276
|
-
* @param imageBlock - Image block to format
|
|
277
|
-
* @returns OpenAI image_url content part, or undefined if unsupported
|
|
278
|
-
*/
|
|
279
|
-
private _formatImageBlock;
|
|
280
|
-
/**
|
|
281
|
-
* Splits tool result content into text and image parts.
|
|
282
|
-
* OpenAI API restricts images to user role messages only.
|
|
283
|
-
*
|
|
284
|
-
* @param toolResult - Tool result block to split
|
|
285
|
-
* @returns Tuple of [text content, image parts for user message]
|
|
286
|
-
*/
|
|
287
|
-
private _splitToolResultMedia;
|
|
288
|
-
/**
|
|
289
|
-
* Converts a snake_case string to camelCase.
|
|
290
|
-
* Used for mapping OpenAI stop reasons to SDK format.
|
|
291
|
-
*
|
|
292
|
-
* @param str - Snake case string (e.g., 'content_filter')
|
|
293
|
-
* @returns Camel case string (e.g., 'contentFilter')
|
|
294
|
-
*
|
|
295
|
-
* @example
|
|
296
|
-
* ```typescript
|
|
297
|
-
* _snakeToCamel('context_length_exceeded') // => 'contextLengthExceeded'
|
|
298
|
-
* _snakeToCamel('tool_calls') // => 'toolCalls'
|
|
299
|
-
* ```
|
|
300
|
-
*/
|
|
301
|
-
private _snakeToCamel;
|
|
302
|
-
/**
|
|
303
|
-
* Maps an OpenAI chunk to SDK streaming events.
|
|
304
|
-
*
|
|
305
|
-
* @param chunk - OpenAI chunk
|
|
306
|
-
* @param streamState - Mutable state object tracking message and content block state
|
|
307
|
-
* @param activeToolCalls - Map tracking active tool calls by index
|
|
308
|
-
* @returns Array of SDK streaming events
|
|
309
|
-
*/
|
|
310
|
-
private _mapOpenAIChunkToSDKEvents;
|
|
311
|
-
}
|
|
312
|
-
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/models/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,MAAM,EAAE,EAAE,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,KAAK,EAAE,OAAO,EAA+B,MAAM,sBAAsB,CAAA;AAIhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAK9D;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AA+C9B;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D;;;;;OAKG;IACH,GAAG,EAAE,SAAS,CAAA;IAEd;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAA;IAE9B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;OAGG;IACH,YAAY,CAAC,EAAE,aAAa,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,WAAY,SAAQ,KAAK,CAAC,iBAAiB,CAAC;IACvD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAQ;IAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;gBACS,OAAO,EAAE,kBAAkB;IAoCvC;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI;IAIlD;;;;;;;;;;OAUG;IACH,SAAS,IAAI,iBAAiB;IAI9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC;IA6F5F;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAwHtB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAsNvB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAoC7B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,aAAa;IAIrB;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;CAwInC"}
|