@arden-hq/loop 0.0.0-stage → 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.
Files changed (223) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +121 -2
  3. package/dist/abort.d.ts +9 -0
  4. package/dist/abort.d.ts.map +1 -0
  5. package/dist/abort.js +31 -0
  6. package/dist/abort.js.map +1 -0
  7. package/dist/agent/agent.d.ts +48 -0
  8. package/dist/agent/agent.d.ts.map +1 -0
  9. package/dist/agent/agent.js +146 -0
  10. package/dist/agent/agent.js.map +1 -0
  11. package/dist/agent/background-tools.d.ts +51 -0
  12. package/dist/agent/background-tools.d.ts.map +1 -0
  13. package/dist/agent/background-tools.js +257 -0
  14. package/dist/agent/background-tools.js.map +1 -0
  15. package/dist/agent/budget.d.ts +5 -0
  16. package/dist/agent/budget.d.ts.map +1 -0
  17. package/dist/agent/budget.js +48 -0
  18. package/dist/agent/budget.js.map +1 -0
  19. package/dist/agent/config.d.ts +61 -0
  20. package/dist/agent/config.d.ts.map +1 -0
  21. package/dist/agent/config.js +99 -0
  22. package/dist/agent/config.js.map +1 -0
  23. package/dist/agent/guards.d.ts +10 -0
  24. package/dist/agent/guards.d.ts.map +1 -0
  25. package/dist/agent/guards.js +136 -0
  26. package/dist/agent/guards.js.map +1 -0
  27. package/dist/agent/history-journal.d.ts +18 -0
  28. package/dist/agent/history-journal.d.ts.map +1 -0
  29. package/dist/agent/history-journal.js +87 -0
  30. package/dist/agent/history-journal.js.map +1 -0
  31. package/dist/agent/history-projection.d.ts +6 -0
  32. package/dist/agent/history-projection.d.ts.map +1 -0
  33. package/dist/agent/history-projection.js +62 -0
  34. package/dist/agent/history-projection.js.map +1 -0
  35. package/dist/agent/interactions.d.ts +14 -0
  36. package/dist/agent/interactions.d.ts.map +1 -0
  37. package/dist/agent/interactions.js +85 -0
  38. package/dist/agent/interactions.js.map +1 -0
  39. package/dist/agent/middleware.d.ts +5 -0
  40. package/dist/agent/middleware.d.ts.map +1 -0
  41. package/dist/agent/middleware.js +55 -0
  42. package/dist/agent/middleware.js.map +1 -0
  43. package/dist/agent/model-output-projection.d.ts +27 -0
  44. package/dist/agent/model-output-projection.d.ts.map +1 -0
  45. package/dist/agent/model-output-projection.js +138 -0
  46. package/dist/agent/model-output-projection.js.map +1 -0
  47. package/dist/agent/model-output.d.ts +19 -0
  48. package/dist/agent/model-output.d.ts.map +1 -0
  49. package/dist/agent/model-output.js +172 -0
  50. package/dist/agent/model-output.js.map +1 -0
  51. package/dist/agent/model-turn.d.ts +29 -0
  52. package/dist/agent/model-turn.d.ts.map +1 -0
  53. package/dist/agent/model-turn.js +401 -0
  54. package/dist/agent/model-turn.js.map +1 -0
  55. package/dist/agent/policy.d.ts +28 -0
  56. package/dist/agent/policy.d.ts.map +1 -0
  57. package/dist/agent/policy.js +109 -0
  58. package/dist/agent/policy.js.map +1 -0
  59. package/dist/agent/provider-capabilities.d.ts +12 -0
  60. package/dist/agent/provider-capabilities.d.ts.map +1 -0
  61. package/dist/agent/provider-capabilities.js +76 -0
  62. package/dist/agent/provider-capabilities.js.map +1 -0
  63. package/dist/agent/recovery.d.ts +8 -0
  64. package/dist/agent/recovery.d.ts.map +1 -0
  65. package/dist/agent/recovery.js +21 -0
  66. package/dist/agent/recovery.js.map +1 -0
  67. package/dist/agent/replies.d.ts +3 -0
  68. package/dist/agent/replies.d.ts.map +1 -0
  69. package/dist/agent/replies.js +24 -0
  70. package/dist/agent/replies.js.map +1 -0
  71. package/dist/agent/run-state.d.ts +98 -0
  72. package/dist/agent/run-state.d.ts.map +1 -0
  73. package/dist/agent/run-state.js +454 -0
  74. package/dist/agent/run-state.js.map +1 -0
  75. package/dist/agent/run.d.ts +6 -0
  76. package/dist/agent/run.d.ts.map +1 -0
  77. package/dist/agent/run.js +462 -0
  78. package/dist/agent/run.js.map +1 -0
  79. package/dist/agent/streamed-call-history.d.ts +20 -0
  80. package/dist/agent/streamed-call-history.d.ts.map +1 -0
  81. package/dist/agent/streamed-call-history.js +71 -0
  82. package/dist/agent/streamed-call-history.js.map +1 -0
  83. package/dist/agent/streaming-tools.d.ts +23 -0
  84. package/dist/agent/streaming-tools.d.ts.map +1 -0
  85. package/dist/agent/streaming-tools.js +67 -0
  86. package/dist/agent/streaming-tools.js.map +1 -0
  87. package/dist/agent/structured-output.d.ts +27 -0
  88. package/dist/agent/structured-output.d.ts.map +1 -0
  89. package/dist/agent/structured-output.js +26 -0
  90. package/dist/agent/structured-output.js.map +1 -0
  91. package/dist/agent/tool-admission.d.ts +18 -0
  92. package/dist/agent/tool-admission.d.ts.map +1 -0
  93. package/dist/agent/tool-admission.js +22 -0
  94. package/dist/agent/tool-admission.js.map +1 -0
  95. package/dist/contracts/events.d.ts +236 -0
  96. package/dist/contracts/events.d.ts.map +1 -0
  97. package/dist/contracts/events.js +13 -0
  98. package/dist/contracts/events.js.map +1 -0
  99. package/dist/contracts/messages.d.ts +234 -0
  100. package/dist/contracts/messages.d.ts.map +1 -0
  101. package/dist/contracts/messages.js +11 -0
  102. package/dist/contracts/messages.js.map +1 -0
  103. package/dist/contracts/provider.d.ts +177 -0
  104. package/dist/contracts/provider.d.ts.map +1 -0
  105. package/dist/contracts/provider.js +26 -0
  106. package/dist/contracts/provider.js.map +1 -0
  107. package/dist/contracts/tools.d.ts +217 -0
  108. package/dist/contracts/tools.d.ts.map +1 -0
  109. package/dist/contracts/tools.js +16 -0
  110. package/dist/contracts/tools.js.map +1 -0
  111. package/dist/errors.d.ts +112 -0
  112. package/dist/errors.d.ts.map +1 -0
  113. package/dist/errors.js +190 -0
  114. package/dist/errors.js.map +1 -0
  115. package/dist/index.d.ts +34 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +20 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/internal/concurrency.d.ts +11 -0
  120. package/dist/internal/concurrency.d.ts.map +1 -0
  121. package/dist/internal/concurrency.js +86 -0
  122. package/dist/internal/concurrency.js.map +1 -0
  123. package/dist/internal/stream.d.ts +25 -0
  124. package/dist/internal/stream.d.ts.map +1 -0
  125. package/dist/internal/stream.js +97 -0
  126. package/dist/internal/stream.js.map +1 -0
  127. package/dist/internal/validate.d.ts +30 -0
  128. package/dist/internal/validate.d.ts.map +1 -0
  129. package/dist/internal/validate.js +480 -0
  130. package/dist/internal/validate.js.map +1 -0
  131. package/dist/providers/kit/errors.d.ts +40 -0
  132. package/dist/providers/kit/errors.d.ts.map +1 -0
  133. package/dist/providers/kit/errors.js +48 -0
  134. package/dist/providers/kit/errors.js.map +1 -0
  135. package/dist/providers/kit/index.d.ts +10 -0
  136. package/dist/providers/kit/index.d.ts.map +1 -0
  137. package/dist/providers/kit/index.js +10 -0
  138. package/dist/providers/kit/index.js.map +1 -0
  139. package/dist/providers/kit/retry.d.ts +43 -0
  140. package/dist/providers/kit/retry.d.ts.map +1 -0
  141. package/dist/providers/kit/retry.js +118 -0
  142. package/dist/providers/kit/retry.js.map +1 -0
  143. package/dist/providers/kit/sse.d.ts +22 -0
  144. package/dist/providers/kit/sse.d.ts.map +1 -0
  145. package/dist/providers/kit/sse.js +70 -0
  146. package/dist/providers/kit/sse.js.map +1 -0
  147. package/dist/providers/openai-responses/citations.d.ts +21 -0
  148. package/dist/providers/openai-responses/citations.d.ts.map +1 -0
  149. package/dist/providers/openai-responses/citations.js +65 -0
  150. package/dist/providers/openai-responses/citations.js.map +1 -0
  151. package/dist/providers/openai-responses/continuation.d.ts +19 -0
  152. package/dist/providers/openai-responses/continuation.d.ts.map +1 -0
  153. package/dist/providers/openai-responses/continuation.js +28 -0
  154. package/dist/providers/openai-responses/continuation.js.map +1 -0
  155. package/dist/providers/openai-responses/errors.d.ts +28 -0
  156. package/dist/providers/openai-responses/errors.d.ts.map +1 -0
  157. package/dist/providers/openai-responses/errors.js +103 -0
  158. package/dist/providers/openai-responses/errors.js.map +1 -0
  159. package/dist/providers/openai-responses/history.d.ts +8 -0
  160. package/dist/providers/openai-responses/history.d.ts.map +1 -0
  161. package/dist/providers/openai-responses/history.js +93 -0
  162. package/dist/providers/openai-responses/history.js.map +1 -0
  163. package/dist/providers/openai-responses/items.d.ts +106 -0
  164. package/dist/providers/openai-responses/items.d.ts.map +1 -0
  165. package/dist/providers/openai-responses/items.js +124 -0
  166. package/dist/providers/openai-responses/items.js.map +1 -0
  167. package/dist/providers/openai-responses/parameter-schema.d.ts +11 -0
  168. package/dist/providers/openai-responses/parameter-schema.d.ts.map +1 -0
  169. package/dist/providers/openai-responses/parameter-schema.js +186 -0
  170. package/dist/providers/openai-responses/parameter-schema.js.map +1 -0
  171. package/dist/providers/openai-responses/provider.d.ts +54 -0
  172. package/dist/providers/openai-responses/provider.d.ts.map +1 -0
  173. package/dist/providers/openai-responses/provider.js +270 -0
  174. package/dist/providers/openai-responses/provider.js.map +1 -0
  175. package/dist/providers/openai-responses/request.d.ts +41 -0
  176. package/dist/providers/openai-responses/request.d.ts.map +1 -0
  177. package/dist/providers/openai-responses/request.js +276 -0
  178. package/dist/providers/openai-responses/request.js.map +1 -0
  179. package/dist/providers/openai-responses/response.d.ts +7 -0
  180. package/dist/providers/openai-responses/response.d.ts.map +1 -0
  181. package/dist/providers/openai-responses/response.js +354 -0
  182. package/dist/providers/openai-responses/response.js.map +1 -0
  183. package/dist/providers/openai-responses/stored-items.d.ts +9 -0
  184. package/dist/providers/openai-responses/stored-items.d.ts.map +1 -0
  185. package/dist/providers/openai-responses/stored-items.js +133 -0
  186. package/dist/providers/openai-responses/stored-items.js.map +1 -0
  187. package/dist/providers/openai-responses/tool-search.d.ts +12 -0
  188. package/dist/providers/openai-responses/tool-search.d.ts.map +1 -0
  189. package/dist/providers/openai-responses/tool-search.js +68 -0
  190. package/dist/providers/openai-responses/tool-search.js.map +1 -0
  191. package/dist/providers/openai-responses/tools.d.ts +33 -0
  192. package/dist/providers/openai-responses/tools.d.ts.map +1 -0
  193. package/dist/providers/openai-responses/tools.js +53 -0
  194. package/dist/providers/openai-responses/tools.js.map +1 -0
  195. package/dist/providers/openai-responses/web-search.d.ts +5 -0
  196. package/dist/providers/openai-responses/web-search.d.ts.map +1 -0
  197. package/dist/providers/openai-responses/web-search.js +114 -0
  198. package/dist/providers/openai-responses/web-search.js.map +1 -0
  199. package/dist/providers/openai-responses/websocket.d.ts +29 -0
  200. package/dist/providers/openai-responses/websocket.d.ts.map +1 -0
  201. package/dist/providers/openai-responses/websocket.js +400 -0
  202. package/dist/providers/openai-responses/websocket.js.map +1 -0
  203. package/dist/tools/dispatch.d.ts +65 -0
  204. package/dist/tools/dispatch.d.ts.map +1 -0
  205. package/dist/tools/dispatch.js +536 -0
  206. package/dist/tools/dispatch.js.map +1 -0
  207. package/dist/tools/display-title.d.ts +18 -0
  208. package/dist/tools/display-title.d.ts.map +1 -0
  209. package/dist/tools/display-title.js +50 -0
  210. package/dist/tools/display-title.js.map +1 -0
  211. package/dist/tools/search.d.ts +36 -0
  212. package/dist/tools/search.d.ts.map +1 -0
  213. package/dist/tools/search.js +224 -0
  214. package/dist/tools/search.js.map +1 -0
  215. package/dist/tools/tool.d.ts +200 -0
  216. package/dist/tools/tool.d.ts.map +1 -0
  217. package/dist/tools/tool.js +275 -0
  218. package/dist/tools/tool.js.map +1 -0
  219. package/dist/tools/truncate.d.ts +18 -0
  220. package/dist/tools/truncate.d.ts.map +1 -0
  221. package/dist/tools/truncate.js +76 -0
  222. package/dist/tools/truncate.js.map +1 -0
  223. package/package.json +67 -4
@@ -0,0 +1,270 @@
1
+ import { retryAfterHints } from "@arden-hq/std/retry";
2
+ import { openResponsesSession } from "./websocket.js";
3
+ import { backoffSleep, DEFAULT_MAX_ATTEMPTS, nextRetry, ProviderError, raceAbort, readSseEvents, RetryableProviderError, SemanticResponseError, SseParser } from "../kit/index.js";
4
+ import { OpenAiResponsesProviderError, StatusError } from "./errors.js";
5
+ import { asRecord } from "./items.js";
6
+ import { makePayload } from "./request.js";
7
+ import { makeEventMapper } from "./response.js";
8
+ import { errorMessage } from "@arden-hq/std/errors";
9
+ export { OpenAiResponsesProviderError, statusFailureCode } from "./errors.js";
10
+ export { makePayload } from "./request.js";
11
+ const DEFAULT_BASE_URL = "https://api.openai.com/v1";
12
+ const DEFAULT_CAPABILITIES = Object.freeze({
13
+ hostedTools: Object.freeze(["web_search"]),
14
+ structuredOutput: "native",
15
+ asyncTools: "message",
16
+ steering: "boundary"
17
+ });
18
+ const DEFAULT_IDLE_TIMEOUT_MS = 120_000;
19
+ const MAX_ERROR_DETAIL_BYTES = 16_384;
20
+ const MAX_ERROR_DETAIL_WAIT_MS = 5_000;
21
+ const abortReason = (signal) => signal.reason ?? new DOMException("The model request was cancelled", "AbortError");
22
+ const waitBeforeRetry = async (delayMs, signal) => {
23
+ try {
24
+ await backoffSleep(delayMs, signal);
25
+ }
26
+ catch {
27
+ if (signal?.aborted)
28
+ throw abortReason(signal);
29
+ throw new OpenAiResponsesProviderError("OpenAI response retry was interrupted");
30
+ }
31
+ };
32
+ const sanitizedFailure = (error) => {
33
+ if (error instanceof OpenAiResponsesProviderError)
34
+ return error;
35
+ if (error instanceof ProviderError)
36
+ return new OpenAiResponsesProviderError(error.message, error.code);
37
+ return new OpenAiResponsesProviderError("OpenAI response stream failed");
38
+ };
39
+ const rawEvent = (event) => {
40
+ if (event.data.trim() === "[DONE]")
41
+ return { type: "response.done" };
42
+ if (event.data.trim().length === 0)
43
+ return { type: event.event };
44
+ let decoded;
45
+ try {
46
+ decoded = JSON.parse(event.data);
47
+ }
48
+ catch {
49
+ throw new SemanticResponseError("OpenAI returned an invalid SSE event");
50
+ }
51
+ const record = asRecord(decoded);
52
+ if (record === null)
53
+ throw new SemanticResponseError("OpenAI returned an invalid SSE event");
54
+ return typeof record.type === "string" ? record : { ...record, type: event.event };
55
+ };
56
+ const authHeaders = async (options, signal, forceRefresh) => {
57
+ try {
58
+ signal?.throwIfAborted();
59
+ const headers = await options.auth.headers({
60
+ signal: signal ?? new AbortController().signal,
61
+ ...(forceRefresh ? { forceRefresh: true } : {})
62
+ });
63
+ signal?.throwIfAborted();
64
+ return headers;
65
+ }
66
+ catch (error) {
67
+ if (signal?.aborted)
68
+ throw abortReason(signal);
69
+ if (error instanceof OpenAiResponsesProviderError)
70
+ throw error;
71
+ throw new OpenAiResponsesProviderError("The account could not provide credentials", "provider_auth");
72
+ }
73
+ };
74
+ const readErrorDetail = async (body, signal, idleTimeoutMs) => {
75
+ if (body === null)
76
+ return null;
77
+ const reader = body.getReader();
78
+ const timeout = new AbortController();
79
+ const timer = setTimeout(() => timeout.abort(), Math.min(idleTimeoutMs, MAX_ERROR_DETAIL_WAIT_MS));
80
+ const readSignal = AbortSignal.any([signal, timeout.signal]);
81
+ const decoder = new TextDecoder();
82
+ let detail = "";
83
+ let bytes = 0;
84
+ try {
85
+ while (bytes < MAX_ERROR_DETAIL_BYTES) {
86
+ const chunk = await raceAbort(reader.read(), readSignal);
87
+ if (chunk.done)
88
+ return detail + decoder.decode();
89
+ const available = MAX_ERROR_DETAIL_BYTES - bytes;
90
+ const slice = chunk.value.subarray(0, available);
91
+ detail += decoder.decode(slice, { stream: true });
92
+ bytes += slice.byteLength;
93
+ }
94
+ return detail + decoder.decode();
95
+ }
96
+ catch {
97
+ if (signal.aborted)
98
+ throw abortReason(signal);
99
+ return detail || null;
100
+ }
101
+ finally {
102
+ clearTimeout(timer);
103
+ void reader.cancel().catch(() => { });
104
+ }
105
+ };
106
+ const connect = async (options, headers, body, signal) => {
107
+ let response;
108
+ try {
109
+ response = await options.fetch(`${options.baseUrl}/responses`, {
110
+ method: "POST",
111
+ headers: {
112
+ ...headers,
113
+ accept: "text/event-stream",
114
+ "content-type": "application/json"
115
+ },
116
+ body,
117
+ signal
118
+ });
119
+ }
120
+ catch (cause) {
121
+ if (signal.aborted)
122
+ throw cause;
123
+ throw new RetryableProviderError(errorMessage(cause, "OpenAI request failed"));
124
+ }
125
+ if (!response.ok) {
126
+ const { retryAfter, retryAfterMs } = retryAfterHints(response.headers);
127
+ const detail = await readErrorDetail(response.body, signal, options.idleTimeoutMs);
128
+ throw new StatusError(response.status, retryAfter, retryAfterMs, detail);
129
+ }
130
+ if (response.body === null)
131
+ throw new RetryableProviderError("OpenAI returned an empty response body");
132
+ return response.body;
133
+ };
134
+ const streamResponse = async function* (request, options, payloadJson) {
135
+ let forceRefresh = false;
136
+ let authRetried = false;
137
+ let attempts = 0;
138
+ while (true) {
139
+ attempts += 1;
140
+ let emitted = false;
141
+ const headers = {
142
+ ...(await authHeaders(options, request.signal, forceRefresh)),
143
+ ...(options.cacheScopeHeader === undefined || request.cacheScope === undefined
144
+ ? {}
145
+ : { [options.cacheScopeHeader]: request.cacheScope })
146
+ };
147
+ request.signal?.throwIfAborted();
148
+ forceRefresh = false;
149
+ const attempt = new AbortController();
150
+ const signal = request.signal;
151
+ const propagateAbort = () => {
152
+ if (signal !== undefined)
153
+ attempt.abort(abortReason(signal));
154
+ };
155
+ signal?.addEventListener("abort", propagateAbort, { once: true });
156
+ const parser = new SseParser();
157
+ const mapEvent = makeEventMapper(request.model, request.toolSearch);
158
+ try {
159
+ const body = await connect(options, headers, payloadJson, attempt.signal);
160
+ let terminal = false;
161
+ for await (const event of readSseEvents(body, parser, {
162
+ idleTimeoutMs: options.idleTimeoutMs,
163
+ streamName: "OpenAI response stream",
164
+ ...(request.signal === undefined ? {} : { signal: request.signal })
165
+ })) {
166
+ if (request.signal?.aborted)
167
+ throw abortReason(request.signal);
168
+ for (const item of mapEvent(rawEvent(event))) {
169
+ emitted = true;
170
+ yield item;
171
+ if (item._tag === "Completed") {
172
+ terminal = true;
173
+ break;
174
+ }
175
+ }
176
+ if (terminal)
177
+ return;
178
+ }
179
+ throw new RetryableProviderError("OpenAI response stream ended before a terminal event");
180
+ }
181
+ catch (error) {
182
+ if (request.signal?.aborted)
183
+ throw abortReason(request.signal);
184
+ attempt.abort();
185
+ if (!emitted && !authRetried && error instanceof StatusError && error.status === 401) {
186
+ authRetried = true;
187
+ forceRefresh = true;
188
+ attempts -= 1;
189
+ continue;
190
+ }
191
+ const delayMs = nextRetry(attempts, error, {
192
+ maxAttempts: options.maxAttempts,
193
+ wireHintMs: parser.retryDelayMs
194
+ });
195
+ if (delayMs !== undefined) {
196
+ yield {
197
+ _tag: "ProviderStreamRetry",
198
+ attempt: attempts,
199
+ maxAttempts: options.maxAttempts,
200
+ delayMs
201
+ };
202
+ await waitBeforeRetry(delayMs, request.signal);
203
+ continue;
204
+ }
205
+ throw sanitizedFailure(error);
206
+ }
207
+ finally {
208
+ request.signal?.removeEventListener("abort", propagateAbort);
209
+ attempt.abort();
210
+ }
211
+ }
212
+ };
213
+ export const makeOpenAiResponsesProvider = (options) => {
214
+ if (options.idleTimeoutMs !== undefined &&
215
+ (!Number.isSafeInteger(options.idleTimeoutMs) || options.idleTimeoutMs <= 0)) {
216
+ throw new OpenAiResponsesProviderError("OpenAI idle timeout must be a positive integer");
217
+ }
218
+ if (options.maxAttempts !== undefined &&
219
+ (!Number.isSafeInteger(options.maxAttempts) || options.maxAttempts <= 0)) {
220
+ throw new OpenAiResponsesProviderError("OpenAI max attempts must be a positive integer");
221
+ }
222
+ const baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;
223
+ const resolved = Object.freeze({
224
+ auth: options.auth,
225
+ fetch: options.fetch ?? globalThis.fetch,
226
+ baseUrl: baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl,
227
+ idleTimeoutMs: options.idleTimeoutMs ?? DEFAULT_IDLE_TIMEOUT_MS,
228
+ maxAttempts: options.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,
229
+ cacheScopeHeader: options.cacheScopeHeader
230
+ });
231
+ const modelPrefix = options.modelPrefix ?? "";
232
+ const defaultInstructions = options.defaultInstructions;
233
+ const connectWebSocket = options.connectWebSocket;
234
+ const capabilities = options.capabilities ?? (() => DEFAULT_CAPABILITIES);
235
+ const stream = (request) => {
236
+ const payloadRequest = options.omitMaxOutputTokens === true
237
+ ? (({ maxOutputTokens: _, ...rest }) => rest)(request)
238
+ : request;
239
+ const payload = makePayload(payloadRequest, modelPrefix, defaultInstructions);
240
+ return streamResponse(request, resolved, JSON.stringify(payload));
241
+ };
242
+ return Object.freeze({
243
+ protocolVersion: 1,
244
+ capabilities,
245
+ stream,
246
+ ...(connectWebSocket === undefined
247
+ ? {}
248
+ : {
249
+ openSession: () => openResponsesSession({
250
+ connect: connectWebSocket,
251
+ headers: (signal, forceRefresh) => authHeaders(resolved, signal, forceRefresh),
252
+ baseUrl: resolved.baseUrl,
253
+ modelPrefix,
254
+ ...(defaultInstructions === undefined ? {} : { defaultInstructions }),
255
+ ...(options.omitMaxOutputTokens === undefined
256
+ ? {}
257
+ : { omitMaxOutputTokens: options.omitMaxOutputTokens }),
258
+ maxAttempts: resolved.maxAttempts,
259
+ idleTimeoutMs: resolved.idleTimeoutMs,
260
+ capabilities,
261
+ transport: options.transport ?? (() => "sse"),
262
+ ...(options.cacheScopeHeader === undefined
263
+ ? {}
264
+ : { cacheScopeHeader: options.cacheScopeHeader }),
265
+ fallback: stream
266
+ })
267
+ })
268
+ });
269
+ };
270
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/providers/openai-responses/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { ModelProviderRequest } from "../../contracts/provider.js";
2
+ import { type InputItem } from "./items.js";
3
+ import { type ClientToolSearchTool, type FunctionTool } from "./tools.js";
4
+ interface HostedWebSearchTool {
5
+ readonly type: "web_search";
6
+ readonly external_web_access: true;
7
+ }
8
+ type ResponsesTool = FunctionTool | HostedWebSearchTool | ClientToolSearchTool;
9
+ export interface ResponsesPayload {
10
+ readonly model: string;
11
+ readonly input: ReadonlyArray<InputItem>;
12
+ readonly include: ReadonlyArray<string>;
13
+ readonly stream: true;
14
+ readonly store: false;
15
+ readonly parallel_tool_calls: true;
16
+ readonly instructions?: string;
17
+ readonly tools?: ReadonlyArray<ResponsesTool>;
18
+ readonly tool_choice?: string;
19
+ readonly max_output_tokens?: number;
20
+ readonly reasoning?: {
21
+ readonly effort: string;
22
+ readonly summary: "detailed";
23
+ };
24
+ readonly prompt_cache_key?: string;
25
+ readonly text?: {
26
+ readonly format: {
27
+ readonly type: "json_schema";
28
+ readonly name: string;
29
+ readonly schema: Readonly<Record<string, unknown>>;
30
+ readonly strict: true;
31
+ };
32
+ };
33
+ }
34
+ /**
35
+ * The request body for one model step. A request this adapter cannot build
36
+ * from the stored history or the tool catalog is Arden's own defect, never
37
+ * the person's: it fails as `request_invalid`, like a request OpenAI refuses.
38
+ */
39
+ export declare const makePayload: (request: ModelProviderRequest, modelPrefix: string, defaultInstructions: string | undefined) => ResponsesPayload;
40
+ export {};
41
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/providers/openai-responses/request.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGvE,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3E,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AAEnB,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAA;CACnC;AAED,KAAK,aAAa,GAAG,YAAY,GAAG,mBAAmB,GAAG,oBAAoB,CAAA;AAE9E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAA;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;KAAE,CAAA;IAC9E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,MAAM,EAAE;YACf,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;YAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;YACrB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;YAClD,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;SACtB,CAAA;KACF,CAAA;CACF;AAyOD;;;;GAIG;AACH,eAAO,MAAM,WAAW,YACb,oBAAoB,eAChB,MAAM,uBACE,MAAM,GAAG,SAAS,KACtC,gBASF,CAAA"}
@@ -0,0 +1,276 @@
1
+ import { OpenAiResponsesProviderError } from "./errors.js";
2
+ import { validateFunctionCallHistory } from "./history.js";
3
+ import { asRecord, WEB_SEARCH_TOOL_NAME } from "./items.js";
4
+ import { responseItems } from "./stored-items.js";
5
+ import { clientToolSearchTool, functionTool, namespacedTools } from "./tools.js";
6
+ const REASONING_EFFORTS = new Set([
7
+ "none",
8
+ "minimal",
9
+ "low",
10
+ "medium",
11
+ "high",
12
+ "xhigh",
13
+ "max",
14
+ "ultra"
15
+ ]);
16
+ const decodeTools = (declarations) => {
17
+ const tools = [];
18
+ let hasWebSearch = false;
19
+ for (const tool of declarations) {
20
+ if (tool.hosted !== true) {
21
+ tools.push(functionTool(tool));
22
+ continue;
23
+ }
24
+ if (tool.name !== WEB_SEARCH_TOOL_NAME) {
25
+ throw new OpenAiResponsesProviderError("The tool catalog contains an unsupported hosted tool");
26
+ }
27
+ if (hasWebSearch) {
28
+ throw new OpenAiResponsesProviderError("The tool catalog contains duplicate hosted web search tools");
29
+ }
30
+ hasWebSearch = true;
31
+ tools.push({ type: "web_search", external_web_access: true });
32
+ }
33
+ return { tools, hasWebSearch };
34
+ };
35
+ const textContent = (message) => {
36
+ if (typeof message.content === "string" ||
37
+ message.content === null ||
38
+ message.content === undefined) {
39
+ return message.content ?? "";
40
+ }
41
+ throw new OpenAiResponsesProviderError("OpenAI Responses currently supports text message content only");
42
+ };
43
+ const userContent = (message) => {
44
+ if (typeof message.content === "string" ||
45
+ message.content === null ||
46
+ message.content === undefined) {
47
+ return message.content ?? "";
48
+ }
49
+ return message.content.map((value) => {
50
+ const block = asRecord(value);
51
+ if (block?.type === "text" && typeof block.text === "string") {
52
+ return { type: "input_text", text: block.text };
53
+ }
54
+ if (block?.type === "context" &&
55
+ typeof block.content_type === "string" &&
56
+ (block.content === undefined || block.content === null || typeof block.content === "string")) {
57
+ const metadata = block.metadata === undefined || block.metadata === null ? {} : asRecord(block.metadata);
58
+ if (metadata === null || Object.values(metadata).some((value) => typeof value !== "string")) {
59
+ throw new OpenAiResponsesProviderError("OpenAI Responses received unsupported user content");
60
+ }
61
+ const attrs = Object.entries(metadata)
62
+ .map(([key, value]) => `${key}="${value}"`)
63
+ .join(" ");
64
+ const tag = `${block.content_type}${attrs.length === 0 ? "" : ` ${attrs}`}`;
65
+ return {
66
+ type: "input_text",
67
+ text: typeof block.content === "string" && block.content.length > 0
68
+ ? `<${tag}>\n${block.content}\n</${block.content_type}>`
69
+ : `<${tag} />`
70
+ };
71
+ }
72
+ if (block?.type === "image" &&
73
+ (block.media_type === "image/png" || block.media_type === "image/jpeg") &&
74
+ typeof block.data === "string" &&
75
+ block.data.length > 0) {
76
+ return {
77
+ type: "input_image",
78
+ image_url: `data:${block.media_type};base64,${block.data}`
79
+ };
80
+ }
81
+ throw new OpenAiResponsesProviderError("OpenAI Responses received unsupported user content");
82
+ });
83
+ };
84
+ const convertMessages = (messages, renderInteraction, toolSearch, asyncTools) => {
85
+ const instructions = [];
86
+ const batches = [];
87
+ for (const message of messages) {
88
+ if (message.role === "system") {
89
+ const content = textContent(message);
90
+ if (content.length > 0)
91
+ instructions.push(content);
92
+ continue;
93
+ }
94
+ if (message.role === "developer" && toolSearch !== undefined && message.loaded_tools?.length) {
95
+ const callId = `tool-load-${message.message_id ?? message.loaded_tools.join(",")}`;
96
+ batches.push({
97
+ items: [
98
+ {
99
+ type: "tool_search_call",
100
+ call_id: callId,
101
+ execution: "client",
102
+ status: "completed",
103
+ arguments: { query: `select:${message.loaded_tools.join(",")}` }
104
+ },
105
+ {
106
+ type: "tool_search_output",
107
+ call_id: callId,
108
+ execution: "client",
109
+ status: "completed",
110
+ tools: namespacedTools(toolSearch.lookup(message.loaded_tools))
111
+ }
112
+ ],
113
+ deferWhileCallsPending: true
114
+ });
115
+ continue;
116
+ }
117
+ if (message.role === "developer") {
118
+ const content = textContent(message);
119
+ if (content.length > 0) {
120
+ batches.push({
121
+ items: [
122
+ {
123
+ type: "message",
124
+ role: "developer",
125
+ content: [{ type: "input_text", text: content }]
126
+ }
127
+ ],
128
+ deferWhileCallsPending: true
129
+ });
130
+ }
131
+ continue;
132
+ }
133
+ if (message.role === "user") {
134
+ if (message.async_tool_launch !== undefined)
135
+ continue;
136
+ if (message.interaction !== undefined) {
137
+ batches.push({
138
+ items: [
139
+ {
140
+ type: "agent_message",
141
+ author: message.interaction.from.id,
142
+ recipient: message.interaction.to.id,
143
+ content: [{ type: "input_text", text: renderInteraction(message.interaction) }]
144
+ }
145
+ ],
146
+ deferWhileCallsPending: false
147
+ });
148
+ continue;
149
+ }
150
+ batches.push({
151
+ items: [{ role: "user", content: userContent(message) }],
152
+ deferWhileCallsPending: true
153
+ });
154
+ continue;
155
+ }
156
+ if (message.role === "tool") {
157
+ batches.push({
158
+ items: [
159
+ {
160
+ type: "function_call_output",
161
+ call_id: message.tool_call_id,
162
+ output: textContent(message),
163
+ status: "completed"
164
+ }
165
+ ],
166
+ deferWhileCallsPending: false
167
+ });
168
+ continue;
169
+ }
170
+ const replay = responseItems(message, asyncTools);
171
+ if ("provider_tool_calls" in message) {
172
+ const calls = message.provider_tool_calls;
173
+ if (calls !== null && !Array.isArray(calls)) {
174
+ throw new OpenAiResponsesProviderError("Stored provider tool history is invalid");
175
+ }
176
+ if (replay === undefined && Array.isArray(calls) && calls.length > 0) {
177
+ throw new OpenAiResponsesProviderError("Stored provider tool history requires matching OpenAI response items");
178
+ }
179
+ }
180
+ if (replay !== undefined) {
181
+ batches.push({ items: replay, deferWhileCallsPending: false });
182
+ continue;
183
+ }
184
+ const content = textContent(message);
185
+ batches.push({
186
+ items: [
187
+ ...(content.length > 0 ? [{ role: "assistant", content }] : []),
188
+ ...(message.tool_calls ?? []).map((call) => ({
189
+ type: "function_call",
190
+ call_id: call.id,
191
+ name: call.function.name,
192
+ arguments: call.function.arguments,
193
+ ...(call.async === true ? { async: true } : {}),
194
+ status: "completed"
195
+ }))
196
+ ],
197
+ deferWhileCallsPending: false
198
+ });
199
+ }
200
+ const input = validateFunctionCallHistory(batches);
201
+ const joined = instructions.join("\n\n");
202
+ return {
203
+ ...(joined.length === 0 ? {} : { instructions: joined }),
204
+ input
205
+ };
206
+ };
207
+ /**
208
+ * The request body for one model step. A request this adapter cannot build
209
+ * from the stored history or the tool catalog is Arden's own defect, never
210
+ * the person's: it fails as `request_invalid`, like a request OpenAI refuses.
211
+ */
212
+ export const makePayload = (request, modelPrefix, defaultInstructions) => {
213
+ try {
214
+ return buildPayload(request, modelPrefix, defaultInstructions);
215
+ }
216
+ catch (error) {
217
+ if (error instanceof OpenAiResponsesProviderError && error.code === "provider_error") {
218
+ throw new OpenAiResponsesProviderError(error.message, "request_invalid");
219
+ }
220
+ throw error;
221
+ }
222
+ };
223
+ const buildPayload = (request, modelPrefix, defaultInstructions) => {
224
+ const asyncTools = new Set([...request.tools, ...request.deferredTools].flatMap((tool) => tool.async === true ? [tool.name] : []));
225
+ const history = convertMessages(request.messages, request.renderInteraction, request.toolSearch, asyncTools);
226
+ const catalog = decodeTools(request.tools);
227
+ const tools = request.toolSearch === undefined
228
+ ? catalog.tools
229
+ : [...catalog.tools, clientToolSearchTool(request.toolSearch)];
230
+ if (request.toolChoice === "required" && tools.length === 0) {
231
+ throw new OpenAiResponsesProviderError("A required tool choice needs at least one function tool");
232
+ }
233
+ const model = modelPrefix.length > 0 && request.model.startsWith(modelPrefix)
234
+ ? request.model.slice(modelPrefix.length)
235
+ : request.model;
236
+ if (model.trim().length === 0) {
237
+ throw new OpenAiResponsesProviderError("The OpenAI model ID must not be empty");
238
+ }
239
+ if (request.reasoningEffort !== undefined && !REASONING_EFFORTS.has(request.reasoningEffort)) {
240
+ throw new OpenAiResponsesProviderError("The OpenAI reasoning effort is not supported");
241
+ }
242
+ const instructions = history.instructions ?? defaultInstructions;
243
+ return {
244
+ model,
245
+ input: history.input,
246
+ include: [
247
+ "reasoning.encrypted_content",
248
+ ...(catalog.hasWebSearch ? ["web_search_call.action.sources"] : [])
249
+ ],
250
+ stream: true,
251
+ store: false,
252
+ parallel_tool_calls: true,
253
+ ...(instructions === undefined ? {} : { instructions }),
254
+ ...(tools.length === 0 ? {} : { tools, tool_choice: request.toolChoice }),
255
+ ...(request.maxOutputTokens === undefined
256
+ ? {}
257
+ : { max_output_tokens: request.maxOutputTokens }),
258
+ ...(request.reasoningEffort === undefined
259
+ ? {}
260
+ : { reasoning: { effort: request.reasoningEffort, summary: "detailed" } }),
261
+ ...(request.cacheScope === undefined ? {} : { prompt_cache_key: request.cacheScope }),
262
+ ...(request.responseFormat === undefined
263
+ ? {}
264
+ : {
265
+ text: {
266
+ format: {
267
+ type: "json_schema",
268
+ name: request.responseFormat.name,
269
+ schema: request.responseFormat.schema,
270
+ strict: true
271
+ }
272
+ }
273
+ })
274
+ };
275
+ };
276
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/providers/openai-responses/request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ModelStreamItem } from "../../contracts/provider.js";
2
+ import type { ToolSearch } from "../../contracts/tools.js";
3
+ import { type RawResponseEvent } from "./items.js";
4
+ export declare const responseCode: (event: RawResponseEvent) => string | null;
5
+ export declare const responseFailureMessage: (event: RawResponseEvent) => string;
6
+ export declare const makeEventMapper: (requestedModel: string, toolSearch?: ToolSearch) => ((event: RawResponseEvent) => ReadonlyArray<ModelStreamItem>);
7
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/providers/openai-responses/response.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAoC,eAAe,EAAE,MAAM,6BAA6B,CAAA;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAI1D,OAAO,EASL,KAAK,gBAAgB,EAKtB,MAAM,YAAY,CAAA;AA0InB,eAAO,MAAM,YAAY,UAAW,gBAAgB,KAAG,MAAM,GAAG,IAO/D,CAAA;AAaD,eAAO,MAAM,sBAAsB,UAAW,gBAAgB,KAAG,MAOhE,CAAA;AAED,eAAO,MAAM,eAAe,mBACV,MAAM,eACT,UAAU,KACtB,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,aAAa,CAAC,eAAe,CAAC,CA+O9D,CAAA"}