@providerprotocol/ai 0.0.34 → 0.0.36

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.
Files changed (136) hide show
  1. package/README.md +546 -3
  2. package/dist/anthropic/index.d.ts +2 -1
  3. package/dist/anthropic/index.js +151 -145
  4. package/dist/anthropic/index.js.map +1 -1
  5. package/dist/cerebras/index.d.ts +392 -0
  6. package/dist/cerebras/index.js +648 -0
  7. package/dist/cerebras/index.js.map +1 -0
  8. package/dist/chunk-2YXFLRQ6.js +49 -0
  9. package/dist/chunk-2YXFLRQ6.js.map +1 -0
  10. package/dist/chunk-4OGB7JZA.js +157 -0
  11. package/dist/chunk-4OGB7JZA.js.map +1 -0
  12. package/dist/chunk-4RX4VQCB.js +31 -0
  13. package/dist/chunk-4RX4VQCB.js.map +1 -0
  14. package/dist/chunk-5IWHCXKN.js +30 -0
  15. package/dist/chunk-5IWHCXKN.js.map +1 -0
  16. package/dist/{chunk-3C7O2RNO.js → chunk-A2IM7PGT.js} +6 -4
  17. package/dist/{chunk-3C7O2RNO.js.map → chunk-A2IM7PGT.js.map} +1 -1
  18. package/dist/{chunk-3D6XGGVG.js → chunk-ARVM24K2.js} +2 -2
  19. package/dist/{chunk-4J6OFUKX.js → chunk-AY55T37A.js} +70 -162
  20. package/dist/chunk-AY55T37A.js.map +1 -0
  21. package/dist/{chunk-ILR2D5PN.js → chunk-BRP5XJ6Q.js} +2 -86
  22. package/dist/chunk-BRP5XJ6Q.js.map +1 -0
  23. package/dist/chunk-C4JP64VW.js +298 -0
  24. package/dist/chunk-C4JP64VW.js.map +1 -0
  25. package/dist/chunk-COS4ON4G.js +111 -0
  26. package/dist/chunk-COS4ON4G.js.map +1 -0
  27. package/dist/chunk-CRP6Y7NF.js +31 -0
  28. package/dist/chunk-CRP6Y7NF.js.map +1 -0
  29. package/dist/chunk-EPB3GQNL.js +118 -0
  30. package/dist/chunk-EPB3GQNL.js.map +1 -0
  31. package/dist/chunk-ETBFOLQN.js +34 -0
  32. package/dist/chunk-ETBFOLQN.js.map +1 -0
  33. package/dist/chunk-I53CI6ZZ.js +142 -0
  34. package/dist/chunk-I53CI6ZZ.js.map +1 -0
  35. package/dist/chunk-IDZOVWP3.js +29 -0
  36. package/dist/chunk-IDZOVWP3.js.map +1 -0
  37. package/dist/chunk-JA3UZALR.js +88 -0
  38. package/dist/chunk-JA3UZALR.js.map +1 -0
  39. package/dist/{chunk-WAKD3OO5.js → chunk-N5DX5JW3.js} +31 -31
  40. package/dist/chunk-N5DX5JW3.js.map +1 -0
  41. package/dist/chunk-OIEWDFQU.js +97 -0
  42. package/dist/chunk-OIEWDFQU.js.map +1 -0
  43. package/dist/{chunk-TOJCZMVU.js → chunk-PMK5LZ5Z.js} +40 -40
  44. package/dist/chunk-PMK5LZ5Z.js.map +1 -0
  45. package/dist/{chunk-6S222DHN.js → chunk-RJGTRQ47.js} +20 -1
  46. package/dist/chunk-RJGTRQ47.js.map +1 -0
  47. package/dist/chunk-UFFJDYCE.js +94 -0
  48. package/dist/chunk-UFFJDYCE.js.map +1 -0
  49. package/dist/chunk-VGKZIGVI.js +222 -0
  50. package/dist/chunk-VGKZIGVI.js.map +1 -0
  51. package/dist/{chunk-KUPF5KHT.js → chunk-Y5H7C5J4.js} +2 -2
  52. package/dist/{embedding-D2BYIehX.d.ts → embedding-BXA72PlJ.d.ts} +1 -1
  53. package/dist/google/index.d.ts +2 -1
  54. package/dist/google/index.js +202 -199
  55. package/dist/google/index.js.map +1 -1
  56. package/dist/groq/index.d.ts +410 -0
  57. package/dist/groq/index.js +649 -0
  58. package/dist/groq/index.js.map +1 -0
  59. package/dist/http/index.d.ts +3 -2
  60. package/dist/http/index.js +5 -4
  61. package/dist/image-stream-CCgwB7ve.d.ts +11 -0
  62. package/dist/index.d.ts +8 -118
  63. package/dist/index.js +520 -769
  64. package/dist/index.js.map +1 -1
  65. package/dist/{llm-BQJZj3cD.d.ts → llm-ByUFPcFH.d.ts} +12 -1632
  66. package/dist/middleware/logging/index.d.ts +76 -0
  67. package/dist/middleware/logging/index.js +74 -0
  68. package/dist/middleware/logging/index.js.map +1 -0
  69. package/dist/middleware/parsed-object/index.d.ts +45 -0
  70. package/dist/middleware/parsed-object/index.js +73 -0
  71. package/dist/middleware/parsed-object/index.js.map +1 -0
  72. package/dist/middleware/pubsub/index.d.ts +97 -0
  73. package/dist/middleware/pubsub/index.js +160 -0
  74. package/dist/middleware/pubsub/index.js.map +1 -0
  75. package/dist/middleware/pubsub/server/express/index.d.ts +66 -0
  76. package/dist/middleware/pubsub/server/express/index.js +11 -0
  77. package/dist/middleware/pubsub/server/express/index.js.map +1 -0
  78. package/dist/middleware/pubsub/server/fastify/index.d.ts +67 -0
  79. package/dist/middleware/pubsub/server/fastify/index.js +11 -0
  80. package/dist/middleware/pubsub/server/fastify/index.js.map +1 -0
  81. package/dist/middleware/pubsub/server/h3/index.d.ts +70 -0
  82. package/dist/middleware/pubsub/server/h3/index.js +11 -0
  83. package/dist/middleware/pubsub/server/h3/index.js.map +1 -0
  84. package/dist/middleware/pubsub/server/index.d.ts +78 -0
  85. package/dist/middleware/pubsub/server/index.js +34 -0
  86. package/dist/middleware/pubsub/server/index.js.map +1 -0
  87. package/dist/middleware/pubsub/server/webapi/index.d.ts +63 -0
  88. package/dist/middleware/pubsub/server/webapi/index.js +11 -0
  89. package/dist/middleware/pubsub/server/webapi/index.js.map +1 -0
  90. package/dist/ollama/index.d.ts +2 -1
  91. package/dist/ollama/index.js +48 -45
  92. package/dist/ollama/index.js.map +1 -1
  93. package/dist/openai/index.d.ts +2 -1
  94. package/dist/openai/index.js +319 -313
  95. package/dist/openai/index.js.map +1 -1
  96. package/dist/openrouter/index.d.ts +2 -1
  97. package/dist/openrouter/index.js +381 -385
  98. package/dist/openrouter/index.js.map +1 -1
  99. package/dist/proxy/index.d.ts +10 -914
  100. package/dist/proxy/index.js +275 -1007
  101. package/dist/proxy/index.js.map +1 -1
  102. package/dist/proxy/server/express/index.d.ts +161 -0
  103. package/dist/proxy/server/express/index.js +24 -0
  104. package/dist/proxy/server/express/index.js.map +1 -0
  105. package/dist/proxy/server/fastify/index.d.ts +162 -0
  106. package/dist/proxy/server/fastify/index.js +24 -0
  107. package/dist/proxy/server/fastify/index.js.map +1 -0
  108. package/dist/proxy/server/h3/index.d.ts +189 -0
  109. package/dist/proxy/server/h3/index.js +28 -0
  110. package/dist/proxy/server/h3/index.js.map +1 -0
  111. package/dist/proxy/server/index.d.ts +151 -0
  112. package/dist/proxy/server/index.js +48 -0
  113. package/dist/proxy/server/index.js.map +1 -0
  114. package/dist/proxy/server/webapi/index.d.ts +278 -0
  115. package/dist/proxy/server/webapi/index.js +32 -0
  116. package/dist/proxy/server/webapi/index.js.map +1 -0
  117. package/dist/responses/index.d.ts +650 -0
  118. package/dist/responses/index.js +930 -0
  119. package/dist/responses/index.js.map +1 -0
  120. package/dist/{retry-8Ch-WWgX.d.ts → retry-BDMo4AVu.d.ts} +1 -1
  121. package/dist/stream-S7nwQRqM.d.ts +1643 -0
  122. package/dist/types-CE4B7pno.d.ts +96 -0
  123. package/dist/utils/index.d.ts +53 -0
  124. package/dist/utils/index.js +7 -0
  125. package/dist/utils/index.js.map +1 -0
  126. package/dist/xai/index.d.ts +2 -1
  127. package/dist/xai/index.js +310 -310
  128. package/dist/xai/index.js.map +1 -1
  129. package/package.json +82 -4
  130. package/dist/chunk-4J6OFUKX.js.map +0 -1
  131. package/dist/chunk-6S222DHN.js.map +0 -1
  132. package/dist/chunk-ILR2D5PN.js.map +0 -1
  133. package/dist/chunk-TOJCZMVU.js.map +0 -1
  134. package/dist/chunk-WAKD3OO5.js.map +0 -1
  135. /package/dist/{chunk-3D6XGGVG.js.map → chunk-ARVM24K2.js.map} +0 -0
  136. /package/dist/{chunk-KUPF5KHT.js.map → chunk-Y5H7C5J4.js.map} +0 -0
@@ -0,0 +1,650 @@
1
+ import { d as Provider } from '../llm-ByUFPcFH.js';
2
+ import '../stream-S7nwQRqM.js';
3
+
4
+ /**
5
+ * @fileoverview OpenResponses Provider Type Definitions
6
+ *
7
+ * This module contains TypeScript type definitions for the OpenResponses provider,
8
+ * implementing the open-source OpenResponses specification for multi-provider
9
+ * interoperable LLM interfaces.
10
+ *
11
+ * The OpenResponses spec is based on OpenAI's Responses API but designed to be
12
+ * provider-agnostic, allowing any compatible server to be used.
13
+ *
14
+ * @see {@link https://www.openresponses.org OpenResponses Specification}
15
+ * @module providers/responses/types
16
+ */
17
+ /**
18
+ * Configuration options for creating an OpenResponses model reference.
19
+ *
20
+ * The `host` option allows targeting any OpenResponses-compatible server,
21
+ * making this provider work with OpenAI, self-hosted servers, or any
22
+ * implementation of the OpenResponses specification.
23
+ *
24
+ * @example Using with OpenAI
25
+ * ```typescript
26
+ * const model = responses('gpt-5.2', {
27
+ * host: 'https://api.openai.com/v1'
28
+ * });
29
+ * ```
30
+ *
31
+ * @example Using with a self-hosted server
32
+ * ```typescript
33
+ * const model = responses('llama-3.3-70b', {
34
+ * host: 'http://localhost:8080/v1',
35
+ * apiKeyEnv: 'LOCAL_API_KEY'
36
+ * });
37
+ * ```
38
+ */
39
+ interface ResponsesProviderOptions {
40
+ /**
41
+ * The base URL for the OpenResponses-compatible API.
42
+ * The `/responses` endpoint will be appended to this URL.
43
+ *
44
+ * @example 'https://api.openai.com/v1'
45
+ * @example 'https://openrouter.ai/api/v1'
46
+ * @example 'http://localhost:8080/v1'
47
+ */
48
+ host: string;
49
+ /**
50
+ * Environment variable name containing the API key.
51
+ * Defaults to 'OPENRESPONSES_API_KEY'.
52
+ *
53
+ * @example 'OPENAI_API_KEY'
54
+ * @example 'OPENROUTER_API_KEY'
55
+ */
56
+ apiKeyEnv?: string;
57
+ }
58
+ /**
59
+ * Parameters for the OpenResponses API.
60
+ *
61
+ * These parameters follow the OpenResponses specification and are passed
62
+ * directly to the `/responses` endpoint.
63
+ *
64
+ * @see {@link https://www.openresponses.org/spec OpenResponses Spec}
65
+ */
66
+ interface ResponsesParams {
67
+ /** Maximum output tokens (minimum 16) */
68
+ max_output_tokens?: number;
69
+ /** Temperature for randomness (0.0 - 2.0) */
70
+ temperature?: number;
71
+ /** Top-p (nucleus) sampling (0.0 - 1.0) */
72
+ top_p?: number;
73
+ /** Presence penalty for new tokens */
74
+ presence_penalty?: number;
75
+ /** Frequency penalty for new tokens */
76
+ frequency_penalty?: number;
77
+ /** Number of top logprobs to return (0-20) */
78
+ top_logprobs?: number;
79
+ /** Whether to enable parallel tool calls */
80
+ parallel_tool_calls?: boolean;
81
+ /**
82
+ * Reasoning configuration (for reasoning models).
83
+ * Supported on gpt-5 and o-series models.
84
+ */
85
+ reasoning?: {
86
+ /** Reasoning effort level */
87
+ effort?: 'none' | 'low' | 'medium' | 'high' | 'xhigh';
88
+ /** Include summary of reasoning */
89
+ summary?: 'auto' | 'concise' | 'detailed';
90
+ };
91
+ /** Service tier */
92
+ service_tier?: 'auto' | 'default' | 'flex' | 'priority';
93
+ /** Truncation strategy */
94
+ truncation?: 'auto' | 'disabled';
95
+ /**
96
+ * Fields to include in output.
97
+ * @example ['reasoning.encrypted_content', 'message.output_text.logprobs']
98
+ */
99
+ include?: string[];
100
+ /** Background processing - run response asynchronously */
101
+ background?: boolean;
102
+ /** Continue from a previous response */
103
+ previous_response_id?: string;
104
+ /** Store response for continuation */
105
+ store?: boolean;
106
+ /** Metadata key-value pairs (max 16, keys max 64 chars, values max 512 chars) */
107
+ metadata?: Record<string, string>;
108
+ /** Maximum total calls to built-in tools */
109
+ max_tool_calls?: number;
110
+ /** Stable identifier for caching similar requests (max 64 chars) */
111
+ prompt_cache_key?: string;
112
+ /** Stable identifier for abuse detection (max 64 chars) */
113
+ safety_identifier?: string;
114
+ /**
115
+ * Text format configuration.
116
+ * Controls output format (text, json_object, json_schema) and verbosity.
117
+ */
118
+ text?: ResponsesTextConfig;
119
+ /**
120
+ * Built-in tools from the OpenResponses specification.
121
+ * Currently supports function tools; provider-specific built-in tools
122
+ * may be added via the tools array.
123
+ */
124
+ tools?: ResponsesBuiltInTool[];
125
+ }
126
+ /**
127
+ * Text output configuration for structured output.
128
+ */
129
+ interface ResponsesTextConfig {
130
+ /** Text output format */
131
+ format?: {
132
+ type: 'text';
133
+ } | {
134
+ type: 'json_object';
135
+ } | {
136
+ type: 'json_schema';
137
+ name: string;
138
+ description?: string;
139
+ schema: Record<string, unknown>;
140
+ strict?: boolean;
141
+ };
142
+ /** Verbosity level for responses */
143
+ verbosity?: 'low' | 'medium' | 'high';
144
+ }
145
+ /**
146
+ * Request body for the OpenResponses API.
147
+ */
148
+ interface ResponsesRequest {
149
+ model: string;
150
+ input: string | ResponsesInputItem[];
151
+ instructions?: string;
152
+ max_output_tokens?: number;
153
+ temperature?: number;
154
+ top_p?: number;
155
+ presence_penalty?: number;
156
+ frequency_penalty?: number;
157
+ top_logprobs?: number;
158
+ stream?: boolean;
159
+ tools?: ResponsesToolUnion[];
160
+ tool_choice?: ResponsesToolChoice;
161
+ parallel_tool_calls?: boolean;
162
+ text?: ResponsesTextConfig;
163
+ truncation?: 'auto' | 'disabled';
164
+ store?: boolean;
165
+ metadata?: Record<string, string>;
166
+ reasoning?: {
167
+ effort?: 'none' | 'low' | 'medium' | 'high' | 'xhigh';
168
+ summary?: 'auto' | 'concise' | 'detailed';
169
+ };
170
+ service_tier?: string;
171
+ include?: string[];
172
+ background?: boolean;
173
+ previous_response_id?: string;
174
+ max_tool_calls?: number;
175
+ prompt_cache_key?: string;
176
+ safety_identifier?: string;
177
+ }
178
+ /**
179
+ * Union type for all input item types.
180
+ */
181
+ type ResponsesInputItem = ResponsesSystemItem | ResponsesUserItem | ResponsesAssistantItem | ResponsesFunctionCallInputItem | ResponsesToolResultItem | ResponsesReasoningInputItem | ResponsesItemReference;
182
+ /**
183
+ * Reference to a previous item by ID.
184
+ */
185
+ interface ResponsesItemReference {
186
+ type: 'item_reference';
187
+ id: string;
188
+ }
189
+ /**
190
+ * Reasoning input item for multi-turn context preservation.
191
+ */
192
+ interface ResponsesReasoningInputItem {
193
+ type: 'reasoning';
194
+ id: string;
195
+ summary: Array<{
196
+ type: 'summary_text';
197
+ text: string;
198
+ }>;
199
+ encrypted_content?: string;
200
+ }
201
+ /** System message input item */
202
+ interface ResponsesSystemItem {
203
+ type: 'message';
204
+ role: 'system' | 'developer';
205
+ content: string | ResponsesContentPart[];
206
+ }
207
+ /** User message input item */
208
+ interface ResponsesUserItem {
209
+ type: 'message';
210
+ role: 'user';
211
+ content: string | ResponsesContentPart[];
212
+ }
213
+ /** Assistant message input item */
214
+ interface ResponsesAssistantItem {
215
+ type: 'message';
216
+ role: 'assistant';
217
+ content: string | ResponsesContentPart[];
218
+ }
219
+ /** Function call input item */
220
+ interface ResponsesFunctionCallInputItem {
221
+ type: 'function_call';
222
+ id: string;
223
+ call_id: string;
224
+ name: string;
225
+ arguments: string;
226
+ }
227
+ /** Function call output (tool result) input item */
228
+ interface ResponsesToolResultItem {
229
+ type: 'function_call_output';
230
+ call_id: string;
231
+ output: string;
232
+ }
233
+ /**
234
+ * Union type for content parts.
235
+ */
236
+ type ResponsesContentPart = ResponsesTextPart | ResponsesImagePart | ResponsesFilePart | ResponsesVideoPart | ResponsesOutputTextPart | ResponsesFunctionCallPart;
237
+ /** Text input content part */
238
+ interface ResponsesTextPart {
239
+ type: 'input_text';
240
+ text: string;
241
+ }
242
+ /** Text output content part */
243
+ interface ResponsesOutputTextPart {
244
+ type: 'output_text';
245
+ text: string;
246
+ }
247
+ /** Image content part */
248
+ interface ResponsesImagePart {
249
+ type: 'input_image';
250
+ /** Image URL or base64 data URL */
251
+ image_url?: string;
252
+ /** Base64 image data (alternative to image_url) */
253
+ image?: string;
254
+ /** Detail level for image processing */
255
+ detail?: 'auto' | 'low' | 'high';
256
+ }
257
+ /** File content part (PDFs, documents) */
258
+ interface ResponsesFilePart {
259
+ type: 'input_file';
260
+ filename?: string;
261
+ /** Base64 data URL */
262
+ file_data?: string;
263
+ /** URL to fetch the file from */
264
+ file_url?: string;
265
+ /** Pre-uploaded file ID */
266
+ file_id?: string;
267
+ }
268
+ /** Video content part */
269
+ interface ResponsesVideoPart {
270
+ type: 'input_video';
271
+ /** Base64 video data */
272
+ video?: string;
273
+ /** URL to fetch the video from */
274
+ video_url?: string;
275
+ }
276
+ /** Function call content part */
277
+ interface ResponsesFunctionCallPart {
278
+ type: 'function_call';
279
+ id: string;
280
+ call_id: string;
281
+ name: string;
282
+ arguments: string;
283
+ }
284
+ /**
285
+ * Function tool definition.
286
+ */
287
+ interface ResponsesFunctionTool {
288
+ type: 'function';
289
+ name: string;
290
+ description: string;
291
+ parameters: {
292
+ type: 'object';
293
+ properties: Record<string, unknown>;
294
+ required?: string[];
295
+ additionalProperties?: boolean;
296
+ };
297
+ strict?: boolean;
298
+ }
299
+ /**
300
+ * Built-in tool placeholder for provider-specific tools.
301
+ * Providers implementing OpenResponses may add their own built-in tools.
302
+ */
303
+ interface ResponsesBuiltInTool {
304
+ type: string;
305
+ [key: string]: unknown;
306
+ }
307
+ /**
308
+ * Combined tool type (function or built-in).
309
+ */
310
+ type ResponsesToolUnion = ResponsesFunctionTool | ResponsesBuiltInTool;
311
+ /**
312
+ * Tool choice options.
313
+ */
314
+ type ResponsesToolChoice = 'none' | 'auto' | 'required' | {
315
+ type: 'function';
316
+ name: string;
317
+ };
318
+ /**
319
+ * Response from the OpenResponses API.
320
+ */
321
+ interface ResponsesResponse {
322
+ id: string;
323
+ object: 'response';
324
+ created_at: number;
325
+ completed_at?: number;
326
+ model: string;
327
+ output: ResponsesOutputItem[];
328
+ usage: ResponsesUsage;
329
+ status: 'completed' | 'failed' | 'incomplete' | 'in_progress' | 'queued';
330
+ error?: {
331
+ code: string;
332
+ message: string;
333
+ param?: string;
334
+ };
335
+ incomplete_details?: {
336
+ reason: string;
337
+ };
338
+ }
339
+ /**
340
+ * Union type for all output item types.
341
+ */
342
+ type ResponsesOutputItem = ResponsesMessageOutput | ResponsesFunctionCallOutput | ResponsesReasoningOutput;
343
+ /** Assistant message output item */
344
+ interface ResponsesMessageOutput {
345
+ type: 'message';
346
+ id: string;
347
+ role: 'assistant';
348
+ content: ResponsesOutputContent[];
349
+ status: 'completed' | 'in_progress';
350
+ }
351
+ /** Function call output item */
352
+ interface ResponsesFunctionCallOutput {
353
+ type: 'function_call';
354
+ id: string;
355
+ call_id: string;
356
+ name: string;
357
+ arguments: string;
358
+ status: 'completed' | 'in_progress';
359
+ }
360
+ /** Reasoning output item */
361
+ interface ResponsesReasoningOutput {
362
+ type: 'reasoning';
363
+ id: string;
364
+ summary: Array<{
365
+ type: 'summary_text';
366
+ text: string;
367
+ }>;
368
+ status: 'completed' | 'in_progress' | null;
369
+ encrypted_content?: string;
370
+ }
371
+ /** Output content types */
372
+ type ResponsesOutputContent = {
373
+ type: 'output_text';
374
+ text: string;
375
+ annotations?: unknown[];
376
+ } | {
377
+ type: 'refusal';
378
+ refusal: string;
379
+ } | {
380
+ type: 'reasoning_text';
381
+ text: string;
382
+ } | {
383
+ type: 'summary_text';
384
+ text: string;
385
+ };
386
+ /** Token usage statistics */
387
+ interface ResponsesUsage {
388
+ input_tokens: number;
389
+ output_tokens: number;
390
+ total_tokens: number;
391
+ input_tokens_details?: {
392
+ cached_tokens?: number;
393
+ text_tokens?: number;
394
+ image_tokens?: number;
395
+ audio_tokens?: number;
396
+ };
397
+ output_tokens_details?: {
398
+ text_tokens?: number;
399
+ reasoning_tokens?: number;
400
+ };
401
+ }
402
+ /**
403
+ * Union type for all streaming events.
404
+ */
405
+ type ResponsesStreamEvent = ResponsesCreatedEvent | ResponsesQueuedEvent | ResponsesInProgressEvent | ResponsesCompletedEvent | ResponsesFailedEvent | ResponsesIncompleteEvent | ResponsesOutputItemAddedEvent | ResponsesOutputItemDoneEvent | ResponsesContentPartAddedEvent | ResponsesContentPartDoneEvent | ResponsesTextDeltaEvent | ResponsesTextDoneEvent | ResponsesRefusalDeltaEvent | ResponsesRefusalDoneEvent | ResponsesFunctionCallArgumentsDeltaEvent | ResponsesFunctionCallArgumentsDoneEvent | ResponsesReasoningDeltaEvent | ResponsesReasoningDoneEvent | ResponsesReasoningSummaryTextDeltaEvent | ResponsesReasoningSummaryTextDoneEvent | ResponsesReasoningSummaryPartAddedEvent | ResponsesReasoningSummaryPartDoneEvent | ResponsesAnnotationAddedEvent | ResponsesErrorEvent;
406
+ interface ResponsesCreatedEvent {
407
+ type: 'response.created';
408
+ response: ResponsesResponse;
409
+ sequence_number?: number;
410
+ }
411
+ interface ResponsesQueuedEvent {
412
+ type: 'response.queued';
413
+ response: ResponsesResponse;
414
+ sequence_number?: number;
415
+ }
416
+ interface ResponsesInProgressEvent {
417
+ type: 'response.in_progress';
418
+ response: ResponsesResponse;
419
+ sequence_number?: number;
420
+ }
421
+ interface ResponsesCompletedEvent {
422
+ type: 'response.completed';
423
+ response: ResponsesResponse;
424
+ sequence_number?: number;
425
+ }
426
+ interface ResponsesFailedEvent {
427
+ type: 'response.failed';
428
+ response: ResponsesResponse;
429
+ sequence_number?: number;
430
+ }
431
+ interface ResponsesIncompleteEvent {
432
+ type: 'response.incomplete';
433
+ response: ResponsesResponse;
434
+ sequence_number?: number;
435
+ }
436
+ interface ResponsesOutputItemAddedEvent {
437
+ type: 'response.output_item.added';
438
+ output_index: number;
439
+ item: ResponsesOutputItem;
440
+ sequence_number?: number;
441
+ }
442
+ interface ResponsesOutputItemDoneEvent {
443
+ type: 'response.output_item.done';
444
+ output_index: number;
445
+ item: ResponsesOutputItem;
446
+ sequence_number?: number;
447
+ }
448
+ interface ResponsesContentPartAddedEvent {
449
+ type: 'response.content_part.added';
450
+ output_index: number;
451
+ content_index: number;
452
+ part: ResponsesOutputContent;
453
+ sequence_number?: number;
454
+ }
455
+ interface ResponsesContentPartDoneEvent {
456
+ type: 'response.content_part.done';
457
+ output_index: number;
458
+ content_index: number;
459
+ part: ResponsesOutputContent;
460
+ sequence_number?: number;
461
+ }
462
+ interface ResponsesTextDeltaEvent {
463
+ type: 'response.output_text.delta';
464
+ output_index: number;
465
+ content_index: number;
466
+ delta: string;
467
+ sequence_number?: number;
468
+ }
469
+ interface ResponsesTextDoneEvent {
470
+ type: 'response.output_text.done';
471
+ output_index: number;
472
+ content_index: number;
473
+ text: string;
474
+ sequence_number?: number;
475
+ }
476
+ interface ResponsesRefusalDeltaEvent {
477
+ type: 'response.refusal.delta';
478
+ output_index: number;
479
+ content_index: number;
480
+ delta: string;
481
+ sequence_number?: number;
482
+ }
483
+ interface ResponsesRefusalDoneEvent {
484
+ type: 'response.refusal.done';
485
+ output_index: number;
486
+ content_index: number;
487
+ refusal: string;
488
+ sequence_number?: number;
489
+ }
490
+ interface ResponsesFunctionCallArgumentsDeltaEvent {
491
+ type: 'response.function_call_arguments.delta';
492
+ output_index: number;
493
+ item_id: string;
494
+ delta: string;
495
+ call_id?: string;
496
+ sequence_number?: number;
497
+ }
498
+ interface ResponsesFunctionCallArgumentsDoneEvent {
499
+ type: 'response.function_call_arguments.done';
500
+ output_index: number;
501
+ item_id: string;
502
+ name: string;
503
+ arguments: string;
504
+ call_id?: string;
505
+ sequence_number?: number;
506
+ }
507
+ interface ResponsesReasoningDeltaEvent {
508
+ type: 'response.reasoning.delta';
509
+ output_index: number;
510
+ delta: string;
511
+ sequence_number?: number;
512
+ }
513
+ interface ResponsesReasoningDoneEvent {
514
+ type: 'response.reasoning.done';
515
+ output_index: number;
516
+ text: string;
517
+ sequence_number?: number;
518
+ }
519
+ interface ResponsesReasoningSummaryTextDeltaEvent {
520
+ type: 'response.reasoning_summary_text.delta';
521
+ item_id: string;
522
+ output_index: number;
523
+ summary_index: number;
524
+ delta: string;
525
+ sequence_number?: number;
526
+ }
527
+ interface ResponsesReasoningSummaryTextDoneEvent {
528
+ type: 'response.reasoning_summary_text.done';
529
+ item_id: string;
530
+ output_index: number;
531
+ summary_index: number;
532
+ text: string;
533
+ sequence_number?: number;
534
+ }
535
+ interface ResponsesReasoningSummaryPartAddedEvent {
536
+ type: 'response.reasoning_summary_part.added';
537
+ output_index: number;
538
+ summary_index: number;
539
+ part: {
540
+ type: 'summary_text';
541
+ text: string;
542
+ };
543
+ sequence_number?: number;
544
+ }
545
+ interface ResponsesReasoningSummaryPartDoneEvent {
546
+ type: 'response.reasoning_summary_part.done';
547
+ output_index: number;
548
+ summary_index: number;
549
+ part: {
550
+ type: 'summary_text';
551
+ text: string;
552
+ };
553
+ sequence_number?: number;
554
+ }
555
+ interface ResponsesAnnotationAddedEvent {
556
+ type: 'response.output_text.annotation.added';
557
+ output_index: number;
558
+ content_index: number;
559
+ annotation_index: number;
560
+ annotation: unknown;
561
+ sequence_number?: number;
562
+ }
563
+ interface ResponsesErrorEvent {
564
+ type: 'error';
565
+ error: {
566
+ type: string;
567
+ code?: string;
568
+ message: string;
569
+ param?: string;
570
+ };
571
+ sequence_number?: number;
572
+ }
573
+ /**
574
+ * Custom HTTP headers for OpenResponses requests.
575
+ */
576
+ interface ResponsesHeaders {
577
+ [key: string]: string | undefined;
578
+ }
579
+
580
+ /**
581
+ * @fileoverview OpenResponses Provider
582
+ *
583
+ * Implements support for the OpenResponses specification - an open-source,
584
+ * multi-provider standard for interoperable LLM interfaces.
585
+ *
586
+ * The OpenResponses provider allows connecting to any server implementing
587
+ * the OpenResponses API specification, including OpenAI, OpenRouter,
588
+ * and self-hosted implementations.
589
+ *
590
+ * @see {@link https://www.openresponses.org OpenResponses Specification}
591
+ * @module providers/responses
592
+ */
593
+
594
+ /**
595
+ * Type alias for the OpenResponses provider with its options.
596
+ */
597
+ type ResponsesProvider = Provider<ResponsesProviderOptions>;
598
+ /**
599
+ * OpenResponses provider singleton.
600
+ *
601
+ * Implements the OpenResponses specification for multi-provider, interoperable
602
+ * LLM interfaces. This provider works with any server implementing the
603
+ * OpenResponses API, including:
604
+ *
605
+ * - OpenAI (`https://api.openai.com/v1`)
606
+ * - OpenRouter (`https://openrouter.ai/api/v1`)
607
+ * - Self-hosted servers
608
+ * - Any OpenResponses-compatible endpoint
609
+ *
610
+ * @example Using with OpenAI
611
+ * ```typescript
612
+ * import { responses } from './providers/responses';
613
+ * import { llm } from './core/llm';
614
+ *
615
+ * const model = llm({
616
+ * model: responses('gpt-5.2', { host: 'https://api.openai.com/v1' }),
617
+ * params: { max_output_tokens: 1000 }
618
+ * });
619
+ *
620
+ * const turn = await model.generate('Hello!');
621
+ * console.log(turn.response.text);
622
+ * ```
623
+ *
624
+ * @example Using with OpenRouter
625
+ * ```typescript
626
+ * const model = llm({
627
+ * model: responses('openai/gpt-4o', {
628
+ * host: 'https://openrouter.ai/api/v1',
629
+ * apiKeyEnv: 'OPENROUTER_API_KEY'
630
+ * }),
631
+ * params: { max_output_tokens: 1000 }
632
+ * });
633
+ * ```
634
+ *
635
+ * @example Using with a self-hosted server
636
+ * ```typescript
637
+ * const model = llm({
638
+ * model: responses('llama-3.3-70b', {
639
+ * host: 'http://localhost:8080/v1',
640
+ * apiKeyEnv: 'LOCAL_API_KEY'
641
+ * }),
642
+ * params: { max_output_tokens: 1000 }
643
+ * });
644
+ * ```
645
+ *
646
+ * @see {@link https://www.openresponses.org OpenResponses Specification}
647
+ */
648
+ declare const responses: ResponsesProvider;
649
+
650
+ export { type ResponsesBuiltInTool, type ResponsesContentPart, type ResponsesFunctionTool, type ResponsesHeaders, type ResponsesInputItem, type ResponsesOutputItem, type ResponsesParams, type ResponsesProviderOptions, type ResponsesRequest, type ResponsesResponse, type ResponsesStreamEvent, type ResponsesToolUnion, type ResponsesUsage, responses };