@ank1015/agents-provider-openai-azure 0.1.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/CHANGELOG.md ADDED
@@ -0,0 +1,6 @@
1
+ # @ank1015/agents-provider-openai-azure
2
+
3
+ ## 0.1.0
4
+
5
+ - Added support for direct-value API key secret references when creating the default Azure OpenAI SDK client.
6
+ - Added the Azure OpenAI Responses API runtime adapter, request mapper, stream translation, error normalization, and usage/cost mapping.
package/README.md ADDED
@@ -0,0 +1,48 @@
1
+ # @ank1015/agents-provider-openai-azure
2
+
3
+ Azure OpenAI Responses API runtime adapter for `@ank1015/agents`.
4
+
5
+ This package turns normalized `LLMRequest<"openai-azure">` objects into Azure OpenAI Responses API streaming calls and translates response stream events back into normalized assistant events and messages. It also re-exports `@ank1015/agents-provider-openai-azure-spec` from the root entrypoint.
6
+
7
+ ## Install
8
+
9
+ ```sh
10
+ pnpm add @ank1015/agents-provider-openai-azure
11
+ ```
12
+
13
+ ## Exports
14
+
15
+ - `@ank1015/agents-provider-openai-azure`
16
+ - `@ank1015/agents-provider-openai-azure/adapter`
17
+
18
+ ## Usage
19
+
20
+ ```ts
21
+ import { createAdapterTransport } from '@ank1015/agents-core/transport';
22
+ import {
23
+ OPENAI_AZURE_PROVIDER,
24
+ createOpenAIAzureProviderAdapter,
25
+ } from '@ank1015/agents-provider-openai-azure';
26
+
27
+ const transport = createAdapterTransport([
28
+ createOpenAIAzureProviderAdapter({
29
+ provider: OPENAI_AZURE_PROVIDER,
30
+ apiKey: { type: 'env', name: 'AZURE_OPENAI_API_KEY' },
31
+ endpoint: 'https://example.openai.azure.com',
32
+ }),
33
+ ]);
34
+ ```
35
+
36
+ When the key comes from another secret source, pass it directly:
37
+
38
+ ```ts
39
+ createOpenAIAzureProviderAdapter({
40
+ provider: OPENAI_AZURE_PROVIDER,
41
+ apiKey: { type: 'value', value: azureOpenAIKey },
42
+ endpoint: 'https://example.openai.azure.com',
43
+ });
44
+ ```
45
+
46
+ When `apiVersion` is omitted, the adapter uses Azure OpenAI v1/OpenAI-compatible URLs. When `apiVersion` is present, it creates the legacy `AzureOpenAI` SDK client.
47
+
48
+ The wire request model is always `request.modelId`; Azure deployment names are expected to match the static catalog model ids.
@@ -0,0 +1,33 @@
1
+ import type { AssistantMessageEventStreamSource, LLMProviderAdapter, LLMProviderAdapterFactory, LLMRequest, Model } from '@ank1015/agents-contracts';
2
+ import type { ResponseCreateParamsStreaming, ResponseStreamEvent } from 'openai/resources/responses/responses.js';
3
+ import type { OpenAIAzureProvider, OpenAIAzureProviderConfig } from '@ank1015/agents-provider-openai-azure-spec';
4
+ export interface OpenAIAzureResponsesClient {
5
+ responses: {
6
+ create(params: ResponseCreateParamsStreaming, options?: {
7
+ signal?: AbortSignal;
8
+ }): AsyncIterable<ResponseStreamEvent> | Promise<AsyncIterable<ResponseStreamEvent>>;
9
+ };
10
+ }
11
+ export interface OpenAIAzureProviderAdapterDeps {
12
+ readonly client?: OpenAIAzureResponsesClient;
13
+ readonly createClient?: (config: OpenAIAzureProviderConfig) => OpenAIAzureResponsesClient;
14
+ readonly createMessageId?: () => string;
15
+ readonly now?: () => number;
16
+ /** Resolves a model id to its descriptor. Defaults to the package's static catalog. */
17
+ readonly resolveModel?: (modelId: string) => Model<OpenAIAzureProvider> | undefined;
18
+ }
19
+ export declare class OpenAIAzureProviderAdapter implements LLMProviderAdapter<OpenAIAzureProvider> {
20
+ #private;
21
+ readonly provider: "openai-azure";
22
+ constructor(config: OpenAIAzureProviderConfig, deps?: OpenAIAzureProviderAdapterDeps);
23
+ stream(request: LLMRequest<OpenAIAzureProvider>): AssistantMessageEventStreamSource<OpenAIAzureProvider>;
24
+ }
25
+ export declare class OpenAIAzureProviderAdapterFactory implements LLMProviderAdapterFactory<OpenAIAzureProvider> {
26
+ #private;
27
+ readonly provider: "openai-azure";
28
+ constructor(deps?: OpenAIAzureProviderAdapterDeps);
29
+ create(config: OpenAIAzureProviderConfig): OpenAIAzureProviderAdapter;
30
+ }
31
+ export declare function createOpenAIAzureProviderAdapter(config: OpenAIAzureProviderConfig, deps?: OpenAIAzureProviderAdapterDeps): OpenAIAzureProviderAdapter;
32
+ export declare function createOpenAIAzureProviderAdapterFactory(deps?: OpenAIAzureProviderAdapterDeps): OpenAIAzureProviderAdapterFactory;
33
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,iCAAiC,EAMjC,kBAAkB,EAClB,yBAAyB,EACzB,UAAU,EACV,KAAK,EAIN,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAEV,6BAA6B,EAM7B,mBAAmB,EACpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,4CAA4C,CAAC;AASpD,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE;QACT,MAAM,CACJ,MAAM,EAAE,6BAA6B,EACrC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,GAEhC,aAAa,CAAC,mBAAmB,CAAC,GAClC,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;KACjD,CAAC;CACH;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,0BAA0B,CAAC;IAC1F,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;CACrF;AA6DD,qBAAa,0BAA2B,YAAW,kBAAkB,CAAC,mBAAmB,CAAC;;IACxF,QAAQ,CAAC,QAAQ,iBAAyB;gBAO9B,MAAM,EAAE,yBAAyB,EAAE,IAAI,GAAE,8BAAmC;IASxF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,GAAG,iCAAiC,CAAC,mBAAmB,CAAC;CA2JzG;AAED,qBAAa,iCACX,YAAW,yBAAyB,CAAC,mBAAmB,CAAC;;IAEzD,QAAQ,CAAC,QAAQ,iBAAyB;gBAG9B,IAAI,GAAE,8BAAmC;IAIrD,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,0BAA0B;CAGtE;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,yBAAyB,EACjC,IAAI,CAAC,EAAE,8BAA8B,GACpC,0BAA0B,CAE5B;AAED,wBAAgB,uCAAuC,CACrD,IAAI,CAAC,EAAE,8BAA8B,GACpC,iCAAiC,CAEnC"}
@@ -0,0 +1,714 @@
1
+ import OpenAI, { AzureOpenAI } from 'openai';
2
+ import { createEventStream } from '@ank1015/agents-contracts';
3
+ import { OPENAI_AZURE_PROVIDER, getOpenAIAzureModel, openAIAzureProviderConfigSchema, } from '@ank1015/agents-provider-openai-azure-spec';
4
+ import { getOpenAIAzureErrorDetails, isAbortError } from './errors.js';
5
+ import { buildOpenAIAzureResponseParams } from './mapping.js';
6
+ export class OpenAIAzureProviderAdapter {
7
+ provider = OPENAI_AZURE_PROVIDER;
8
+ #config;
9
+ #client;
10
+ #createMessageId;
11
+ #now;
12
+ #resolveModel;
13
+ constructor(config, deps = {}) {
14
+ this.#config = openAIAzureProviderConfigSchema.parse(config);
15
+ this.#client =
16
+ deps.client ?? deps.createClient?.(this.#config) ?? createOpenAIAzureClient(this.#config);
17
+ this.#createMessageId = deps.createMessageId ?? createDefaultMessageId;
18
+ this.#now = deps.now ?? Date.now;
19
+ this.#resolveModel = deps.resolveModel ?? getOpenAIAzureModel;
20
+ }
21
+ stream(request) {
22
+ const stream = createEventStream();
23
+ void this.#produce(request, stream);
24
+ return stream;
25
+ }
26
+ async #produce(request, stream) {
27
+ const model = this.#resolveModel(request.modelId);
28
+ if (!model) {
29
+ const message = this.#buildUnknownModelMessage(request);
30
+ stream.push({ type: 'error', reason: 'error', message });
31
+ stream.end(message);
32
+ return;
33
+ }
34
+ const state = {
35
+ request,
36
+ model,
37
+ stream,
38
+ startedAt: this.#now(),
39
+ content: [],
40
+ statesByOutputIndex: new Map(),
41
+ statesByItemId: new Map(),
42
+ sawRefusal: false,
43
+ };
44
+ try {
45
+ const params = buildOpenAIAzureResponseParams(request, model);
46
+ const requestOptions = request.signal ? { signal: request.signal } : undefined;
47
+ const openAIAzureStream = await this.#client.responses.create(params, requestOptions);
48
+ stream.push({ type: 'start' });
49
+ for await (const event of openAIAzureStream) {
50
+ handleStreamEvent(state, event);
51
+ }
52
+ if (request.signal?.aborted) {
53
+ const message = this.#buildAbortedMessage(state);
54
+ stream.push({ type: 'aborted', reason: 'aborted', message });
55
+ stream.end(message);
56
+ return;
57
+ }
58
+ closeOpenBlocks(state);
59
+ if (!state.finalResponse) {
60
+ throw new Error('Azure OpenAI stream ended without a final response.');
61
+ }
62
+ const message = this.#buildSuccessfulMessage(state);
63
+ stream.push({ type: 'done', reason: message.stopReason, message });
64
+ stream.end(message);
65
+ }
66
+ catch (error) {
67
+ closeOpenBlocks(state, { allowInvalidToolJson: true });
68
+ if (request.signal?.aborted || isAbortError(error)) {
69
+ const message = this.#buildAbortedMessage(state);
70
+ stream.push({ type: 'aborted', reason: 'aborted', message });
71
+ stream.end(message);
72
+ return;
73
+ }
74
+ const message = this.#buildFailedMessage(state, error);
75
+ stream.push({ type: 'error', reason: 'error', message });
76
+ stream.end(message);
77
+ }
78
+ }
79
+ #buildSuccessfulMessage(state) {
80
+ const finalResponse = state.finalResponse;
81
+ if (!finalResponse) {
82
+ throw new Error('Cannot build a successful Azure OpenAI message without a response.');
83
+ }
84
+ hydrateContentFromResponse(state, finalResponse);
85
+ return {
86
+ role: 'assistant',
87
+ id: this.#createMessageId(),
88
+ model: modelRef(state),
89
+ usage: usageFromResponse(finalResponse, state.model),
90
+ duration: this.#now() - state.startedAt,
91
+ nativeMessage: finalResponse,
92
+ content: state.content,
93
+ timestamp: this.#now(),
94
+ stopReason: mapDoneStopReason(finalResponse, state.content, state.sawRefusal),
95
+ };
96
+ }
97
+ #buildFailedMessage(state, error) {
98
+ const message = {
99
+ role: 'assistant',
100
+ id: this.#createMessageId(),
101
+ model: modelRef(state),
102
+ usage: state.finalResponse ? usageFromResponse(state.finalResponse, state.model) : undefined,
103
+ duration: this.#now() - state.startedAt,
104
+ content: state.content,
105
+ timestamp: this.#now(),
106
+ stopReason: 'error',
107
+ error: getOpenAIAzureErrorDetails(error),
108
+ };
109
+ if (state.finalResponse) {
110
+ message.nativeMessage = state.finalResponse;
111
+ }
112
+ return message;
113
+ }
114
+ #buildAbortedMessage(state) {
115
+ const message = {
116
+ role: 'assistant',
117
+ id: this.#createMessageId(),
118
+ model: modelRef(state),
119
+ usage: state.finalResponse ? usageFromResponse(state.finalResponse, state.model) : undefined,
120
+ duration: this.#now() - state.startedAt,
121
+ content: state.content,
122
+ timestamp: this.#now(),
123
+ stopReason: 'aborted',
124
+ };
125
+ if (state.finalResponse) {
126
+ message.nativeMessage = state.finalResponse;
127
+ }
128
+ return message;
129
+ }
130
+ #buildUnknownModelMessage(request) {
131
+ return {
132
+ role: 'assistant',
133
+ id: this.#createMessageId(),
134
+ model: { provider: OPENAI_AZURE_PROVIDER, id: request.modelId },
135
+ duration: 0,
136
+ content: [],
137
+ timestamp: this.#now(),
138
+ stopReason: 'error',
139
+ error: {
140
+ message: `Model "${request.modelId}" is not a known Azure OpenAI model.`,
141
+ canRetry: false,
142
+ },
143
+ };
144
+ }
145
+ }
146
+ export class OpenAIAzureProviderAdapterFactory {
147
+ provider = OPENAI_AZURE_PROVIDER;
148
+ #deps;
149
+ constructor(deps = {}) {
150
+ this.#deps = deps;
151
+ }
152
+ create(config) {
153
+ return new OpenAIAzureProviderAdapter(config, this.#deps);
154
+ }
155
+ }
156
+ export function createOpenAIAzureProviderAdapter(config, deps) {
157
+ return new OpenAIAzureProviderAdapter(config, deps);
158
+ }
159
+ export function createOpenAIAzureProviderAdapterFactory(deps) {
160
+ return new OpenAIAzureProviderAdapterFactory(deps);
161
+ }
162
+ function createOpenAIAzureClient(config) {
163
+ const apiKey = resolveSecret(config.apiKey);
164
+ if (config.apiVersion) {
165
+ return new AzureOpenAI({
166
+ apiKey,
167
+ apiVersion: config.apiVersion,
168
+ endpoint: config.endpoint,
169
+ baseURL: config.baseUrl,
170
+ defaultHeaders: config.headers,
171
+ });
172
+ }
173
+ return new OpenAI({
174
+ apiKey,
175
+ baseURL: getV1BaseURL(config),
176
+ defaultHeaders: config.headers,
177
+ });
178
+ }
179
+ function resolveSecret(secret) {
180
+ if (secret.type === 'value') {
181
+ return secret.value;
182
+ }
183
+ return resolveEnvSecret(secret.name);
184
+ }
185
+ function resolveEnvSecret(name) {
186
+ const processLike = globalThis.process;
187
+ const value = processLike?.env?.[name];
188
+ if (!value) {
189
+ throw new Error(`Azure OpenAI API key environment variable "${name}" is not set.`);
190
+ }
191
+ return value;
192
+ }
193
+ function getV1BaseURL(config) {
194
+ if (config.baseUrl) {
195
+ return config.baseUrl;
196
+ }
197
+ if (!config.endpoint) {
198
+ throw new Error('Azure OpenAI endpoint or baseUrl is required.');
199
+ }
200
+ return `${config.endpoint.replace(/\/+$/, '')}/openai/v1/`;
201
+ }
202
+ function handleStreamEvent(state, event) {
203
+ switch (event.type) {
204
+ case 'response.output_item.added':
205
+ handleOutputItemAdded(state, event.output_index, event.item);
206
+ break;
207
+ case 'response.content_part.added':
208
+ if (event.part.type === 'refusal') {
209
+ state.sawRefusal = true;
210
+ }
211
+ if (event.part.type === 'output_text' || event.part.type === 'refusal') {
212
+ ensureResponseBlock(state, event.output_index, event.item_id);
213
+ }
214
+ break;
215
+ case 'response.output_text.delta':
216
+ appendTextDelta(state, event.output_index, event.item_id, event.delta, false);
217
+ break;
218
+ case 'response.output_text.done':
219
+ setTextContent(state, event.output_index, event.item_id, event.text, false);
220
+ break;
221
+ case 'response.refusal.delta':
222
+ state.sawRefusal = true;
223
+ appendTextDelta(state, event.output_index, event.item_id, event.delta, true);
224
+ break;
225
+ case 'response.refusal.done':
226
+ state.sawRefusal = true;
227
+ setTextContent(state, event.output_index, event.item_id, event.refusal, true);
228
+ break;
229
+ case 'response.reasoning_summary_text.delta':
230
+ case 'response.reasoning_text.delta':
231
+ appendThinkingDelta(state, event.output_index, event.item_id, event.delta);
232
+ break;
233
+ case 'response.reasoning_summary_text.done':
234
+ case 'response.reasoning_text.done':
235
+ setThinkingText(state, event.output_index, event.item_id, event.text);
236
+ break;
237
+ case 'response.function_call_arguments.delta':
238
+ appendFunctionCallDelta(state, event.output_index, event.item_id, event.delta);
239
+ break;
240
+ case 'response.function_call_arguments.done':
241
+ setFunctionCallArguments(state, event.output_index, event.item_id, event.arguments);
242
+ break;
243
+ case 'response.custom_tool_call_input.delta':
244
+ appendCustomToolCallDelta(state, event.output_index, event.item_id, event.delta);
245
+ break;
246
+ case 'response.custom_tool_call_input.done':
247
+ setCustomToolCallInput(state, event.output_index, event.item_id, event.input);
248
+ break;
249
+ case 'response.output_item.done':
250
+ handleOutputItemDone(state, event.output_index, event.item);
251
+ break;
252
+ case 'response.completed':
253
+ case 'response.incomplete':
254
+ state.finalResponse = event.response;
255
+ break;
256
+ case 'response.failed':
257
+ state.finalResponse = event.response;
258
+ throw Object.assign(new Error(event.response.error?.message ?? 'Azure OpenAI response failed.'), {
259
+ code: event.response.error?.code,
260
+ });
261
+ case 'error':
262
+ throw new Error(event.message);
263
+ default:
264
+ break;
265
+ }
266
+ }
267
+ function handleOutputItemAdded(state, outputIndex, item) {
268
+ switch (item.type) {
269
+ case 'message':
270
+ ensureResponseBlock(state, outputIndex, item.id);
271
+ break;
272
+ case 'reasoning':
273
+ ensureThinkingBlock(state, outputIndex, item.id);
274
+ break;
275
+ case 'function_call':
276
+ ensureFunctionCallBlock(state, outputIndex, item);
277
+ break;
278
+ case 'custom_tool_call':
279
+ ensureCustomToolCallBlock(state, outputIndex, item);
280
+ break;
281
+ default:
282
+ break;
283
+ }
284
+ }
285
+ function handleOutputItemDone(state, outputIndex, item) {
286
+ switch (item.type) {
287
+ case 'message':
288
+ finishResponseBlock(state, outputIndex, item);
289
+ break;
290
+ case 'reasoning':
291
+ finishThinkingBlock(state, outputIndex, item);
292
+ break;
293
+ case 'function_call':
294
+ finishFunctionCallBlock(state, outputIndex, item);
295
+ break;
296
+ case 'custom_tool_call':
297
+ finishCustomToolCallBlock(state, outputIndex, item);
298
+ break;
299
+ default:
300
+ break;
301
+ }
302
+ }
303
+ function ensureResponseBlock(state, outputIndex, itemId) {
304
+ const existing = state.statesByOutputIndex.get(outputIndex);
305
+ if (existing?.type === 'response') {
306
+ bindItemId(state, existing, itemId);
307
+ return existing;
308
+ }
309
+ const content = {
310
+ type: 'response',
311
+ response: {
312
+ type: 'text',
313
+ content: '',
314
+ },
315
+ };
316
+ const block = {
317
+ type: 'response',
318
+ contentIndex: state.content.push(content) - 1,
319
+ itemId,
320
+ content,
321
+ ended: false,
322
+ refusal: false,
323
+ };
324
+ registerState(state, outputIndex, block);
325
+ state.stream.push({ type: 'text_start', contentIndex: block.contentIndex });
326
+ return block;
327
+ }
328
+ function ensureThinkingBlock(state, outputIndex, itemId) {
329
+ const existing = state.statesByOutputIndex.get(outputIndex);
330
+ if (existing?.type === 'thinking') {
331
+ bindItemId(state, existing, itemId);
332
+ return existing;
333
+ }
334
+ const content = {
335
+ type: 'thinking',
336
+ thinkingText: '',
337
+ };
338
+ const block = {
339
+ type: 'thinking',
340
+ contentIndex: state.content.push(content) - 1,
341
+ itemId,
342
+ content,
343
+ ended: false,
344
+ };
345
+ registerState(state, outputIndex, block);
346
+ state.stream.push({ type: 'thinking_start', contentIndex: block.contentIndex });
347
+ return block;
348
+ }
349
+ function ensureFunctionCallBlock(state, outputIndex, item) {
350
+ const existing = state.statesByOutputIndex.get(outputIndex);
351
+ if (existing?.type === 'function_call') {
352
+ bindItemId(state, existing, item.id);
353
+ return existing;
354
+ }
355
+ const toolCall = {
356
+ type: 'toolCall',
357
+ toolCallId: item.call_id,
358
+ name: item.name,
359
+ arguments: parsePartialJsonObject(item.arguments),
360
+ };
361
+ const block = {
362
+ type: 'function_call',
363
+ contentIndex: state.content.push(toolCall) - 1,
364
+ itemId: item.id,
365
+ name: item.name,
366
+ partialJson: item.arguments,
367
+ toolCallId: item.call_id,
368
+ ended: false,
369
+ };
370
+ registerState(state, outputIndex, block);
371
+ state.stream.push({
372
+ type: 'toolcall_start',
373
+ contentIndex: block.contentIndex,
374
+ toolCallId: block.toolCallId,
375
+ name: block.name,
376
+ });
377
+ return block;
378
+ }
379
+ function ensureCustomToolCallBlock(state, outputIndex, item) {
380
+ const existing = state.statesByOutputIndex.get(outputIndex);
381
+ if (existing?.type === 'custom_tool_call') {
382
+ bindItemId(state, existing, item.id);
383
+ return existing;
384
+ }
385
+ const toolCall = {
386
+ type: 'toolCall',
387
+ toolCallId: item.call_id,
388
+ name: item.name,
389
+ arguments: { input: item.input },
390
+ };
391
+ const block = {
392
+ type: 'custom_tool_call',
393
+ contentIndex: state.content.push(toolCall) - 1,
394
+ itemId: item.id,
395
+ name: item.name,
396
+ partialInput: item.input,
397
+ toolCallId: item.call_id,
398
+ ended: false,
399
+ };
400
+ registerState(state, outputIndex, block);
401
+ state.stream.push({
402
+ type: 'toolcall_start',
403
+ contentIndex: block.contentIndex,
404
+ toolCallId: block.toolCallId,
405
+ name: block.name,
406
+ });
407
+ return block;
408
+ }
409
+ function appendTextDelta(state, outputIndex, itemId, delta, refusal) {
410
+ const block = ensureResponseBlock(state, outputIndex, itemId);
411
+ block.refusal = block.refusal || refusal;
412
+ block.content.response.content += delta;
413
+ state.stream.push({ type: 'text_delta', contentIndex: block.contentIndex, delta });
414
+ }
415
+ function setTextContent(state, outputIndex, itemId, text, refusal) {
416
+ const block = ensureResponseBlock(state, outputIndex, itemId);
417
+ block.refusal = block.refusal || refusal;
418
+ block.content.response.content = text;
419
+ }
420
+ function appendThinkingDelta(state, outputIndex, itemId, delta) {
421
+ const block = ensureThinkingBlock(state, outputIndex, itemId);
422
+ block.content.thinkingText += delta;
423
+ state.stream.push({ type: 'thinking_delta', contentIndex: block.contentIndex, delta });
424
+ }
425
+ function setThinkingText(state, outputIndex, itemId, text) {
426
+ const block = ensureThinkingBlock(state, outputIndex, itemId);
427
+ block.content.thinkingText = text;
428
+ }
429
+ function appendFunctionCallDelta(state, outputIndex, itemId, delta) {
430
+ const block = getBlockByOutputOrItem(state, outputIndex, itemId);
431
+ if (!block || block.type !== 'function_call') {
432
+ return;
433
+ }
434
+ bindItemId(state, block, itemId);
435
+ block.partialJson += delta;
436
+ const content = state.content[block.contentIndex];
437
+ if (content?.type === 'toolCall') {
438
+ content.arguments = parsePartialJsonObject(block.partialJson);
439
+ }
440
+ state.stream.push({ type: 'toolcall_delta', contentIndex: block.contentIndex, delta });
441
+ }
442
+ function setFunctionCallArguments(state, outputIndex, itemId, argumentsJson) {
443
+ const block = getBlockByOutputOrItem(state, outputIndex, itemId);
444
+ if (block?.type === 'function_call') {
445
+ bindItemId(state, block, itemId);
446
+ block.partialJson = argumentsJson;
447
+ }
448
+ }
449
+ function appendCustomToolCallDelta(state, outputIndex, itemId, delta) {
450
+ const block = getBlockByOutputOrItem(state, outputIndex, itemId);
451
+ if (!block || block.type !== 'custom_tool_call') {
452
+ return;
453
+ }
454
+ bindItemId(state, block, itemId);
455
+ block.partialInput += delta;
456
+ const content = state.content[block.contentIndex];
457
+ if (content?.type === 'toolCall') {
458
+ content.arguments = { input: block.partialInput };
459
+ }
460
+ state.stream.push({ type: 'toolcall_delta', contentIndex: block.contentIndex, delta });
461
+ }
462
+ function setCustomToolCallInput(state, outputIndex, itemId, input) {
463
+ const block = getBlockByOutputOrItem(state, outputIndex, itemId);
464
+ if (block?.type === 'custom_tool_call') {
465
+ bindItemId(state, block, itemId);
466
+ block.partialInput = input;
467
+ }
468
+ }
469
+ function finishResponseBlock(state, outputIndex, item) {
470
+ const block = ensureResponseBlock(state, outputIndex, item.id);
471
+ const text = textFromOutputMessage(item);
472
+ block.refusal = block.refusal || item.content.some((part) => part.type === 'refusal');
473
+ state.sawRefusal = state.sawRefusal || block.refusal;
474
+ block.content.response.content = text;
475
+ finishTextBlock(state, block);
476
+ }
477
+ function finishThinkingBlock(state, outputIndex, item) {
478
+ const block = ensureThinkingBlock(state, outputIndex, item.id);
479
+ const text = thinkingTextFromReasoningItem(item);
480
+ if (text) {
481
+ block.content.thinkingText = text;
482
+ }
483
+ finishThinkingState(state, block);
484
+ }
485
+ function finishFunctionCallBlock(state, outputIndex, item, options = {}) {
486
+ const block = ensureFunctionCallBlock(state, outputIndex, item);
487
+ const args = options.allowInvalidToolJson
488
+ ? parsePartialJsonObject(item.arguments || block.partialJson)
489
+ : parseJsonObject(item.arguments || block.partialJson);
490
+ const toolCall = {
491
+ type: 'toolCall',
492
+ toolCallId: item.call_id,
493
+ name: item.name,
494
+ arguments: args,
495
+ };
496
+ state.content[block.contentIndex] = toolCall;
497
+ finishToolCallBlock(state, block, toolCall);
498
+ }
499
+ function finishCustomToolCallBlock(state, outputIndex, item) {
500
+ const block = ensureCustomToolCallBlock(state, outputIndex, item);
501
+ const toolCall = {
502
+ type: 'toolCall',
503
+ toolCallId: item.call_id,
504
+ name: item.name,
505
+ arguments: { input: item.input },
506
+ };
507
+ state.content[block.contentIndex] = toolCall;
508
+ finishToolCallBlock(state, block, toolCall);
509
+ }
510
+ function finishTextBlock(state, block) {
511
+ if (block.ended) {
512
+ return;
513
+ }
514
+ block.ended = true;
515
+ state.stream.push({
516
+ type: 'text_end',
517
+ contentIndex: block.contentIndex,
518
+ content: block.content,
519
+ });
520
+ }
521
+ function finishThinkingState(state, block) {
522
+ if (block.ended) {
523
+ return;
524
+ }
525
+ block.ended = true;
526
+ state.stream.push({
527
+ type: 'thinking_end',
528
+ contentIndex: block.contentIndex,
529
+ content: block.content,
530
+ });
531
+ }
532
+ function finishToolCallBlock(state, block, toolCall) {
533
+ if (block.ended) {
534
+ return;
535
+ }
536
+ block.ended = true;
537
+ state.stream.push({
538
+ type: 'toolcall_end',
539
+ contentIndex: block.contentIndex,
540
+ toolCall,
541
+ });
542
+ }
543
+ function closeOpenBlocks(state, options = {}) {
544
+ for (const block of state.statesByOutputIndex.values()) {
545
+ if (block.ended) {
546
+ continue;
547
+ }
548
+ if (block.type === 'response') {
549
+ finishTextBlock(state, block);
550
+ }
551
+ else if (block.type === 'thinking') {
552
+ finishThinkingState(state, block);
553
+ }
554
+ else if (block.type === 'function_call') {
555
+ const args = options.allowInvalidToolJson
556
+ ? parsePartialJsonObject(block.partialJson)
557
+ : parseJsonObject(block.partialJson);
558
+ const toolCall = {
559
+ type: 'toolCall',
560
+ toolCallId: block.toolCallId,
561
+ name: block.name,
562
+ arguments: args,
563
+ };
564
+ const content = state.content[block.contentIndex];
565
+ if (content?.type === 'toolCall') {
566
+ content.arguments = args;
567
+ }
568
+ finishToolCallBlock(state, block, toolCall);
569
+ }
570
+ else {
571
+ const toolCall = {
572
+ type: 'toolCall',
573
+ toolCallId: block.toolCallId,
574
+ name: block.name,
575
+ arguments: { input: block.partialInput },
576
+ };
577
+ state.content[block.contentIndex] = toolCall;
578
+ finishToolCallBlock(state, block, toolCall);
579
+ }
580
+ }
581
+ }
582
+ function registerState(state, outputIndex, block) {
583
+ state.statesByOutputIndex.set(outputIndex, block);
584
+ if (block.itemId) {
585
+ state.statesByItemId.set(block.itemId, block);
586
+ }
587
+ }
588
+ function bindItemId(state, block, itemId) {
589
+ if (!itemId || block.itemId === itemId) {
590
+ return;
591
+ }
592
+ block.itemId = itemId;
593
+ state.statesByItemId.set(itemId, block);
594
+ }
595
+ function getBlockByOutputOrItem(state, outputIndex, itemId) {
596
+ return state.statesByOutputIndex.get(outputIndex) ?? state.statesByItemId.get(itemId);
597
+ }
598
+ function hydrateContentFromResponse(state, response) {
599
+ if (state.content.length > 0) {
600
+ return;
601
+ }
602
+ for (const output of response.output) {
603
+ if (output.type === 'message') {
604
+ const text = textFromOutputMessage(output);
605
+ state.sawRefusal =
606
+ state.sawRefusal || output.content.some((part) => part.type === 'refusal');
607
+ state.content.push({
608
+ type: 'response',
609
+ response: { type: 'text', content: text },
610
+ });
611
+ }
612
+ else if (output.type === 'reasoning') {
613
+ state.content.push({
614
+ type: 'thinking',
615
+ thinkingText: thinkingTextFromReasoningItem(output),
616
+ });
617
+ }
618
+ else if (output.type === 'function_call') {
619
+ state.content.push({
620
+ type: 'toolCall',
621
+ name: output.name,
622
+ toolCallId: output.call_id,
623
+ arguments: parseJsonObject(output.arguments),
624
+ });
625
+ }
626
+ else if (output.type === 'custom_tool_call') {
627
+ state.content.push({
628
+ type: 'toolCall',
629
+ name: output.name,
630
+ toolCallId: output.call_id,
631
+ arguments: { input: output.input },
632
+ });
633
+ }
634
+ }
635
+ }
636
+ function textFromOutputMessage(message) {
637
+ return message.content
638
+ .map((part) => (part.type === 'output_text' ? part.text : part.refusal))
639
+ .join('');
640
+ }
641
+ function thinkingTextFromReasoningItem(item) {
642
+ const summary = item.summary.map((part) => part.text).filter(Boolean).join('\n\n');
643
+ if (summary) {
644
+ return summary;
645
+ }
646
+ return item.content?.map((part) => part.text).filter(Boolean).join('\n\n') ?? '';
647
+ }
648
+ function parsePartialJsonObject(value) {
649
+ try {
650
+ return parseJsonObject(value);
651
+ }
652
+ catch {
653
+ return {};
654
+ }
655
+ }
656
+ function parseJsonObject(value) {
657
+ const parsed = JSON.parse(value || '{}');
658
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
659
+ throw new Error('Azure OpenAI function call arguments must be a JSON object.');
660
+ }
661
+ return parsed;
662
+ }
663
+ function mapDoneStopReason(response, content, sawRefusal) {
664
+ if (content.some((part) => part.type === 'toolCall')) {
665
+ return 'toolUse';
666
+ }
667
+ if (response.status === 'incomplete') {
668
+ return response.incomplete_details?.reason === 'content_filter'
669
+ ? 'contentFilter'
670
+ : 'length';
671
+ }
672
+ if (sawRefusal) {
673
+ return 'refusal';
674
+ }
675
+ return 'stop';
676
+ }
677
+ function usageFromResponse(response, model) {
678
+ if (!response.usage) {
679
+ return undefined;
680
+ }
681
+ const cacheRead = response.usage.input_tokens_details.cached_tokens;
682
+ const input = Math.max(response.usage.input_tokens - cacheRead, 0);
683
+ const output = response.usage.output_tokens;
684
+ const cacheWrite = 0;
685
+ const cost = {
686
+ input: costForTokens(input, model.cost.input),
687
+ output: costForTokens(output, model.cost.output),
688
+ cacheRead: costForTokens(cacheRead, model.cost.cacheRead),
689
+ cacheWrite: costForTokens(cacheWrite, model.cost.cacheWrite),
690
+ total: 0,
691
+ };
692
+ cost.total = cost.input + cost.output + cost.cacheRead + cost.cacheWrite;
693
+ return {
694
+ input,
695
+ output,
696
+ cacheRead,
697
+ cacheWrite,
698
+ cost,
699
+ };
700
+ }
701
+ function costForTokens(tokens, costPerMillion) {
702
+ return (tokens * costPerMillion) / 1_000_000;
703
+ }
704
+ function modelRef(state) {
705
+ return {
706
+ provider: OPENAI_AZURE_PROVIDER,
707
+ id: state.request.modelId,
708
+ name: state.model.name,
709
+ };
710
+ }
711
+ function createDefaultMessageId() {
712
+ return `msg_${globalThis.crypto?.randomUUID?.() ?? `${Date.now()}_${Math.random().toString(36).slice(2)}`}`;
713
+ }
714
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { AssistantError } from '@ank1015/agents-contracts';
2
+ export declare function isAbortError(error: unknown): boolean;
3
+ export declare function canRetryOpenAIAzureError(error: unknown): boolean;
4
+ export declare function getOpenAIAzureErrorDetails(error: unknown): AssistantError;
5
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAkChE,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKpD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAoChE;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAKzE"}
package/dist/errors.js ADDED
@@ -0,0 +1,66 @@
1
+ import { APIConnectionError, APIConnectionTimeoutError, APIError, APIUserAbortError, ConflictError, InternalServerError, RateLimitError, } from 'openai/core/error.js';
2
+ function isObject(value) {
3
+ return typeof value === 'object' && value !== null;
4
+ }
5
+ function getErrorMessage(error) {
6
+ if (error instanceof APIError && isObject(error.error)) {
7
+ const nested = error.error.error;
8
+ if (isObject(nested) && typeof nested.message === 'string') {
9
+ return nested.message;
10
+ }
11
+ if (typeof error.error.message === 'string') {
12
+ return error.error.message;
13
+ }
14
+ }
15
+ if (error instanceof Error) {
16
+ return error.message;
17
+ }
18
+ try {
19
+ return JSON.stringify(error) ?? String(error);
20
+ }
21
+ catch {
22
+ return String(error);
23
+ }
24
+ }
25
+ function getErrorCode(error) {
26
+ const code = error?.code;
27
+ return typeof code === 'string' ? code : undefined;
28
+ }
29
+ export function isAbortError(error) {
30
+ return (error instanceof APIUserAbortError ||
31
+ error?.name === 'AbortError');
32
+ }
33
+ export function canRetryOpenAIAzureError(error) {
34
+ if (error instanceof APIUserAbortError) {
35
+ return false;
36
+ }
37
+ if (error instanceof APIConnectionTimeoutError || error instanceof APIConnectionError) {
38
+ return true;
39
+ }
40
+ if (error instanceof ConflictError ||
41
+ error instanceof RateLimitError ||
42
+ error instanceof InternalServerError) {
43
+ return true;
44
+ }
45
+ if (error instanceof APIError) {
46
+ return (error.status === 408 ||
47
+ error.status === 409 ||
48
+ error.status === 429 ||
49
+ (typeof error.status === 'number' && error.status >= 500));
50
+ }
51
+ const status = error?.status;
52
+ const code = getErrorCode(error);
53
+ return (status === 408 ||
54
+ status === 409 ||
55
+ status === 429 ||
56
+ (typeof status === 'number' && status >= 500) ||
57
+ code === 'rate_limit_exceeded' ||
58
+ code === 'server_error');
59
+ }
60
+ export function getOpenAIAzureErrorDetails(error) {
61
+ return {
62
+ message: getErrorMessage(error),
63
+ canRetry: canRetryOpenAIAzureError(error),
64
+ };
65
+ }
66
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './adapter.js';
2
+ export * from '@ank1015/agents-provider-openai-azure-spec';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,4CAA4C,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './adapter.js';
2
+ export * from '@ank1015/agents-provider-openai-azure-spec';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,4CAA4C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { LLMRequest, Model, ToolDefinition } from '@ank1015/agents-contracts';
2
+ import type { OpenAIAzureProvider } from '@ank1015/agents-provider-openai-azure-spec';
3
+ import type { Response, ResponseCreateParamsStreaming, ResponseInput, Tool as OpenAIAzureTool } from 'openai/resources/responses/responses.js';
4
+ export declare function buildOpenAIAzureResponseParams(request: LLMRequest<OpenAIAzureProvider>, model: Model<OpenAIAzureProvider>): ResponseCreateParamsStreaming;
5
+ export declare function buildOpenAIAzureInput(request: LLMRequest<OpenAIAzureProvider>, model: Model<OpenAIAzureProvider>): ResponseInput;
6
+ export declare function convertTools(tools: readonly ToolDefinition[]): OpenAIAzureTool[];
7
+ export declare function isOpenAIAzureResponse(value: unknown): value is Response;
8
+ //# sourceMappingURL=mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,UAAU,EACV,KAAK,EAEL,cAAc,EAEf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAEtF,OAAO,KAAK,EAGV,QAAQ,EACR,6BAA6B,EAK7B,aAAa,EAOb,IAAI,IAAI,eAAe,EACxB,MAAM,yCAAyC,CAAC;AAOjD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,EACxC,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC,GAChC,6BAA6B,CAkB/B;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,EACxC,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC,GAChC,aAAa,CAQf;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,eAAe,EAAE,CAuBhF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAOvE"}
@@ -0,0 +1,210 @@
1
+ import { toolParametersToJsonSchema } from '@ank1015/agents-contracts';
2
+ import { OPENAI_AZURE_PROVIDER } from '@ank1015/agents-provider-openai-azure-spec';
3
+ export function buildOpenAIAzureResponseParams(request, model) {
4
+ const providerOptions = request.providerOptions ?? {};
5
+ const params = {
6
+ ...providerOptions,
7
+ input: buildOpenAIAzureInput(request, model),
8
+ model: request.modelId,
9
+ stream: true,
10
+ };
11
+ if (request.instructions !== undefined) {
12
+ params.instructions = request.instructions;
13
+ }
14
+ if (request.tools?.length) {
15
+ params.tools = convertTools(request.tools);
16
+ }
17
+ return params;
18
+ }
19
+ export function buildOpenAIAzureInput(request, model) {
20
+ const input = [];
21
+ for (const message of request.messages) {
22
+ input.push(...buildMessageInput(message, model, request.tools));
23
+ }
24
+ return input;
25
+ }
26
+ export function convertTools(tools) {
27
+ return tools.map((tool) => {
28
+ if (tool.type === 'custom') {
29
+ return {
30
+ type: 'custom',
31
+ name: tool.name,
32
+ description: tool.description,
33
+ format: {
34
+ type: 'grammar',
35
+ syntax: tool.format.syntax,
36
+ definition: tool.format.definition,
37
+ },
38
+ };
39
+ }
40
+ return {
41
+ type: 'function',
42
+ name: tool.name,
43
+ description: tool.description,
44
+ parameters: toolParametersToJsonSchema(tool.parameters),
45
+ strict: tool.strict ?? null,
46
+ };
47
+ });
48
+ }
49
+ export function isOpenAIAzureResponse(value) {
50
+ return (typeof value === 'object' &&
51
+ value !== null &&
52
+ value.object === 'response' &&
53
+ Array.isArray(value.output));
54
+ }
55
+ function buildMessageInput(message, model, tools) {
56
+ switch (message.role) {
57
+ case 'user':
58
+ return [
59
+ {
60
+ role: 'user',
61
+ content: contentToInput(message.content, model),
62
+ },
63
+ ];
64
+ case 'toolResult':
65
+ return [buildToolResultInput(message, model, tools)];
66
+ case 'assistant':
67
+ return buildAssistantInput(message, tools);
68
+ case 'custom':
69
+ return [];
70
+ }
71
+ }
72
+ function buildToolResultInput(message, model, tools) {
73
+ const output = contentToToolOutput(message.content, model, message.isError);
74
+ const tool = getToolByName(tools, message.toolName);
75
+ if (tool?.type === 'custom') {
76
+ return {
77
+ type: 'custom_tool_call_output',
78
+ call_id: message.toolCallId,
79
+ output: output,
80
+ };
81
+ }
82
+ return {
83
+ type: 'function_call_output',
84
+ call_id: message.toolCallId,
85
+ output: output,
86
+ };
87
+ }
88
+ function buildAssistantInput(message, tools) {
89
+ if (message.model.provider === OPENAI_AZURE_PROVIDER &&
90
+ isOpenAIAzureResponse(message.nativeMessage)) {
91
+ return message.nativeMessage.output;
92
+ }
93
+ return assistantResponseToInput(message.content, tools);
94
+ }
95
+ function assistantResponseToInput(content, tools) {
96
+ const input = [];
97
+ let textBuffer = '';
98
+ const flushText = () => {
99
+ if (!textBuffer) {
100
+ return;
101
+ }
102
+ input.push(buildAssistantTextMessage(textBuffer));
103
+ textBuffer = '';
104
+ };
105
+ for (const part of content) {
106
+ if (part.type === 'thinking') {
107
+ flushText();
108
+ input.push(buildAssistantTextMessage(`<thinking>${part.thinkingText}</thinking>`));
109
+ continue;
110
+ }
111
+ if (part.type === 'response') {
112
+ textBuffer += part.response.content;
113
+ continue;
114
+ }
115
+ flushText();
116
+ const tool = getToolByName(tools, part.name);
117
+ if (tool?.type === 'custom') {
118
+ input.push({
119
+ type: 'custom_tool_call',
120
+ call_id: part.toolCallId,
121
+ name: part.name,
122
+ input: buildCustomToolInput(part.arguments),
123
+ });
124
+ }
125
+ else {
126
+ input.push({
127
+ type: 'function_call',
128
+ call_id: part.toolCallId,
129
+ name: part.name,
130
+ arguments: JSON.stringify(part.arguments),
131
+ });
132
+ }
133
+ }
134
+ flushText();
135
+ return input;
136
+ }
137
+ function buildAssistantTextMessage(text) {
138
+ return {
139
+ id: `msg_${stableHash(text)}`,
140
+ type: 'message',
141
+ role: 'assistant',
142
+ status: 'completed',
143
+ content: [
144
+ {
145
+ type: 'output_text',
146
+ text,
147
+ annotations: [],
148
+ },
149
+ ],
150
+ };
151
+ }
152
+ function contentToInput(content, model) {
153
+ return content.map((part) => {
154
+ if (part.type === 'text') {
155
+ return {
156
+ type: 'input_text',
157
+ text: part.content,
158
+ };
159
+ }
160
+ assertImageInputSupported(model);
161
+ return {
162
+ type: 'input_image',
163
+ detail: 'auto',
164
+ image_url: `data:${part.mimeType};base64,${part.data}`,
165
+ };
166
+ });
167
+ }
168
+ function contentToToolOutput(content, model, isError) {
169
+ if (content.length === 0) {
170
+ return '';
171
+ }
172
+ return content.map((part) => {
173
+ if (part.type === 'text') {
174
+ return {
175
+ type: 'input_text',
176
+ text: isError ? `[TOOL ERROR] ${part.content}` : part.content,
177
+ };
178
+ }
179
+ assertImageInputSupported(model);
180
+ return {
181
+ type: 'input_image',
182
+ detail: 'auto',
183
+ image_url: `data:${part.mimeType};base64,${part.data}`,
184
+ };
185
+ });
186
+ }
187
+ function assertImageInputSupported(model) {
188
+ if (!model.input.includes('image')) {
189
+ throw new Error(`Model "${model.id}" does not support image input.`);
190
+ }
191
+ }
192
+ function getToolByName(tools, name) {
193
+ return tools?.find((tool) => tool.name === name);
194
+ }
195
+ function buildCustomToolInput(argumentsValue) {
196
+ if (typeof argumentsValue === 'string') {
197
+ return argumentsValue;
198
+ }
199
+ return typeof argumentsValue.input === 'string'
200
+ ? argumentsValue.input
201
+ : JSON.stringify(argumentsValue);
202
+ }
203
+ function stableHash(value) {
204
+ let hash = 0;
205
+ for (let index = 0; index < value.length; index += 1) {
206
+ hash = (hash * 31 + value.charCodeAt(index)) >>> 0;
207
+ }
208
+ return hash.toString(36);
209
+ }
210
+ //# sourceMappingURL=mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@ank1015/agents-provider-openai-azure",
3
+ "version": "0.1.0",
4
+ "description": "Azure OpenAI Responses API runtime adapter for @ank1015/agents.",
5
+ "keywords": [
6
+ "agents",
7
+ "azure",
8
+ "openai",
9
+ "gpt",
10
+ "llm",
11
+ "typescript"
12
+ ],
13
+ "license": "UNLICENSED",
14
+ "type": "module",
15
+ "sideEffects": false,
16
+ "main": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/ank1015/agent.git",
21
+ "directory": "packages/provider-openai-azure"
22
+ },
23
+ "bugs": {
24
+ "url": "https://github.com/ank1015/agent/issues"
25
+ },
26
+ "homepage": "https://github.com/ank1015/agent#readme",
27
+ "exports": {
28
+ ".": {
29
+ "types": "./dist/index.d.ts",
30
+ "import": "./dist/index.js"
31
+ },
32
+ "./adapter": {
33
+ "types": "./dist/adapter.d.ts",
34
+ "import": "./dist/adapter.js"
35
+ }
36
+ },
37
+ "publishConfig": {
38
+ "access": "public"
39
+ },
40
+ "files": [
41
+ "dist",
42
+ "README.md",
43
+ "CHANGELOG.md"
44
+ ],
45
+ "scripts": {
46
+ "prepack": "tsc -b",
47
+ "build": "tsc -b",
48
+ "check": "tsc -b --pretty false",
49
+ "test": "vitest run && tsc --noEmit --strict --skipLibCheck --module NodeNext --moduleResolution NodeNext --target ES2022 --ignoreConfig tests/*.test.ts",
50
+ "clean": "rm -rf dist ../../.tsbuildinfo/provider-openai-azure.tsbuildinfo"
51
+ },
52
+ "dependencies": {
53
+ "@ank1015/agents-contracts": "^0.1.1",
54
+ "@ank1015/agents-provider-openai-azure-spec": "^0.1.0",
55
+ "openai": "^6.42.0",
56
+ "zod": "^4.4.3"
57
+ },
58
+ "devDependencies": {
59
+ "vitest": "^4.1.9"
60
+ }
61
+ }