@openai/agents-core 0.3.7 → 0.3.9

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 (180) hide show
  1. package/dist/errors.d.ts +40 -0
  2. package/dist/errors.js +39 -1
  3. package/dist/errors.js.map +1 -1
  4. package/dist/errors.mjs +35 -0
  5. package/dist/errors.mjs.map +1 -1
  6. package/dist/index.d.ts +6 -2
  7. package/dist/index.js +13 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +3 -1
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/metadata.js +2 -2
  12. package/dist/metadata.mjs +2 -2
  13. package/dist/result.d.ts +17 -0
  14. package/dist/result.js +71 -24
  15. package/dist/result.js.map +1 -1
  16. package/dist/result.mjs +69 -22
  17. package/dist/result.mjs.map +1 -1
  18. package/dist/run.d.ts +14 -47
  19. package/dist/run.js +421 -994
  20. package/dist/run.js.map +1 -1
  21. package/dist/run.mjs +405 -978
  22. package/dist/run.mjs.map +1 -1
  23. package/dist/runState.d.ts +1286 -172
  24. package/dist/runState.js +146 -16
  25. package/dist/runState.js.map +1 -1
  26. package/dist/runState.mjs +142 -12
  27. package/dist/runState.mjs.map +1 -1
  28. package/dist/runner/constants.d.ts +1 -0
  29. package/dist/runner/constants.js +6 -0
  30. package/dist/runner/constants.js.map +1 -0
  31. package/dist/runner/constants.mjs +3 -0
  32. package/dist/runner/constants.mjs.map +1 -0
  33. package/dist/runner/conversation.d.ts +85 -0
  34. package/dist/runner/conversation.js +275 -0
  35. package/dist/runner/conversation.js.map +1 -0
  36. package/dist/runner/conversation.mjs +269 -0
  37. package/dist/runner/conversation.mjs.map +1 -0
  38. package/dist/runner/guardrails.d.ts +23 -0
  39. package/dist/runner/guardrails.js +174 -0
  40. package/dist/runner/guardrails.js.map +1 -0
  41. package/dist/runner/guardrails.mjs +166 -0
  42. package/dist/runner/guardrails.mjs.map +1 -0
  43. package/dist/runner/items.d.ts +18 -0
  44. package/dist/runner/items.js +89 -0
  45. package/dist/runner/items.js.map +1 -0
  46. package/dist/runner/items.mjs +79 -0
  47. package/dist/runner/items.mjs.map +1 -0
  48. package/dist/runner/mcpApprovals.d.ts +25 -0
  49. package/dist/runner/mcpApprovals.js +66 -0
  50. package/dist/runner/mcpApprovals.js.map +1 -0
  51. package/dist/runner/mcpApprovals.mjs +63 -0
  52. package/dist/runner/mcpApprovals.mjs.map +1 -0
  53. package/dist/runner/modelOutputs.d.ts +10 -0
  54. package/dist/runner/modelOutputs.js +206 -0
  55. package/dist/runner/modelOutputs.js.map +1 -0
  56. package/dist/runner/modelOutputs.mjs +203 -0
  57. package/dist/runner/modelOutputs.mjs.map +1 -0
  58. package/dist/runner/modelPreparation.d.ts +8 -0
  59. package/dist/runner/modelPreparation.js +41 -0
  60. package/dist/runner/modelPreparation.js.map +1 -0
  61. package/dist/runner/modelPreparation.mjs +38 -0
  62. package/dist/runner/modelPreparation.mjs.map +1 -0
  63. package/dist/runner/modelSettings.d.ts +20 -0
  64. package/dist/runner/modelSettings.js +97 -0
  65. package/dist/runner/modelSettings.js.map +1 -0
  66. package/dist/runner/modelSettings.mjs +92 -0
  67. package/dist/runner/modelSettings.mjs.map +1 -0
  68. package/dist/runner/runLoop.d.ts +32 -0
  69. package/dist/runner/runLoop.js +62 -0
  70. package/dist/runner/runLoop.js.map +1 -0
  71. package/dist/runner/runLoop.mjs +57 -0
  72. package/dist/runner/runLoop.mjs.map +1 -0
  73. package/dist/runner/sessionPersistence.d.ts +26 -0
  74. package/dist/runner/sessionPersistence.js +441 -0
  75. package/dist/runner/sessionPersistence.js.map +1 -0
  76. package/dist/runner/sessionPersistence.mjs +431 -0
  77. package/dist/runner/sessionPersistence.mjs.map +1 -0
  78. package/dist/runner/steps.d.ts +48 -0
  79. package/dist/runner/steps.js +40 -0
  80. package/dist/runner/steps.js.map +1 -0
  81. package/dist/runner/steps.mjs +36 -0
  82. package/dist/runner/steps.mjs.map +1 -0
  83. package/dist/runner/streaming.d.ts +9 -0
  84. package/dist/runner/streaming.js +74 -0
  85. package/dist/runner/streaming.js.map +1 -0
  86. package/dist/runner/streaming.mjs +65 -0
  87. package/dist/runner/streaming.mjs.map +1 -0
  88. package/dist/runner/toolExecution.d.ts +15 -0
  89. package/dist/runner/toolExecution.js +997 -0
  90. package/dist/runner/toolExecution.js.map +1 -0
  91. package/dist/runner/toolExecution.mjs +984 -0
  92. package/dist/runner/toolExecution.mjs.map +1 -0
  93. package/dist/runner/toolUseTracker.d.ts +9 -0
  94. package/dist/runner/toolUseTracker.js +34 -0
  95. package/dist/runner/toolUseTracker.js.map +1 -0
  96. package/dist/runner/toolUseTracker.mjs +30 -0
  97. package/dist/runner/toolUseTracker.mjs.map +1 -0
  98. package/dist/runner/tracing.d.ts +23 -0
  99. package/dist/runner/tracing.js +45 -0
  100. package/dist/runner/tracing.js.map +1 -0
  101. package/dist/runner/tracing.mjs +41 -0
  102. package/dist/runner/tracing.mjs.map +1 -0
  103. package/dist/runner/turnPreparation.d.ts +30 -0
  104. package/dist/runner/turnPreparation.js +80 -0
  105. package/dist/runner/turnPreparation.js.map +1 -0
  106. package/dist/runner/turnPreparation.mjs +74 -0
  107. package/dist/runner/turnPreparation.mjs.map +1 -0
  108. package/dist/runner/turnResolution.d.ts +3 -0
  109. package/dist/runner/turnResolution.js +531 -0
  110. package/dist/runner/turnResolution.js.map +1 -0
  111. package/dist/runner/turnResolution.mjs +526 -0
  112. package/dist/runner/turnResolution.mjs.map +1 -0
  113. package/dist/runner/types.d.ts +66 -0
  114. package/dist/runner/types.js +3 -0
  115. package/dist/runner/types.js.map +1 -0
  116. package/dist/runner/types.mjs +2 -0
  117. package/dist/runner/types.mjs.map +1 -0
  118. package/dist/shims/mcp-server/node.js +51 -6
  119. package/dist/shims/mcp-server/node.js.map +1 -1
  120. package/dist/shims/mcp-server/node.mjs +51 -6
  121. package/dist/shims/mcp-server/node.mjs.map +1 -1
  122. package/dist/tool.d.ts +28 -2
  123. package/dist/tool.js +7 -1
  124. package/dist/tool.js.map +1 -1
  125. package/dist/tool.mjs +8 -2
  126. package/dist/tool.mjs.map +1 -1
  127. package/dist/toolGuardrail.d.ts +101 -0
  128. package/dist/toolGuardrail.js +58 -0
  129. package/dist/toolGuardrail.js.map +1 -0
  130. package/dist/toolGuardrail.mjs +51 -0
  131. package/dist/toolGuardrail.mjs.map +1 -0
  132. package/dist/tracing/config.d.ts +3 -0
  133. package/dist/tracing/config.js +3 -0
  134. package/dist/tracing/config.js.map +1 -0
  135. package/dist/tracing/config.mjs +2 -0
  136. package/dist/tracing/config.mjs.map +1 -0
  137. package/dist/tracing/context.d.ts +2 -0
  138. package/dist/tracing/context.js +95 -24
  139. package/dist/tracing/context.js.map +1 -1
  140. package/dist/tracing/context.mjs +95 -24
  141. package/dist/tracing/context.mjs.map +1 -1
  142. package/dist/tracing/createSpans.d.ts +11 -11
  143. package/dist/tracing/index.d.ts +2 -0
  144. package/dist/tracing/index.js.map +1 -1
  145. package/dist/tracing/index.mjs.map +1 -1
  146. package/dist/tracing/provider.js +54 -4
  147. package/dist/tracing/provider.js.map +1 -1
  148. package/dist/tracing/provider.mjs +54 -4
  149. package/dist/tracing/provider.mjs.map +1 -1
  150. package/dist/tracing/spans.d.ts +2 -0
  151. package/dist/tracing/spans.js +6 -0
  152. package/dist/tracing/spans.js.map +1 -1
  153. package/dist/tracing/spans.mjs +6 -0
  154. package/dist/tracing/spans.mjs.map +1 -1
  155. package/dist/tracing/traces.d.ts +11 -1
  156. package/dist/tracing/traces.js +15 -2
  157. package/dist/tracing/traces.js.map +1 -1
  158. package/dist/tracing/traces.mjs +15 -2
  159. package/dist/tracing/traces.mjs.map +1 -1
  160. package/dist/types/protocol.d.ts +11 -0
  161. package/dist/types/protocol.js +1 -0
  162. package/dist/types/protocol.js.map +1 -1
  163. package/dist/types/protocol.mjs +1 -0
  164. package/dist/types/protocol.mjs.map +1 -1
  165. package/dist/utils/binary.d.ts +6 -0
  166. package/dist/utils/binary.js +53 -0
  167. package/dist/utils/binary.js.map +1 -0
  168. package/dist/utils/binary.mjs +49 -0
  169. package/dist/utils/binary.mjs.map +1 -0
  170. package/dist/utils/toolGuardrails.d.ts +24 -0
  171. package/dist/utils/toolGuardrails.js +58 -0
  172. package/dist/utils/toolGuardrails.js.map +1 -0
  173. package/dist/utils/toolGuardrails.mjs +54 -0
  174. package/dist/utils/toolGuardrails.mjs.map +1 -0
  175. package/package.json +4 -3
  176. package/dist/runImplementation.d.ts +0 -161
  177. package/dist/runImplementation.js +0 -2054
  178. package/dist/runImplementation.js.map +0 -1
  179. package/dist/runImplementation.mjs +0 -2028
  180. package/dist/runImplementation.mjs.map +0 -1
@@ -0,0 +1,431 @@
1
+ import { UserError } from "../errors.mjs";
2
+ import { isOpenAIResponsesCompactionAwareSession, } from "../memory/session.mjs";
3
+ import { Usage } from "../usage.mjs";
4
+ import { encodeUint8ArrayToBase64 } from "../utils/base64.mjs";
5
+ import { toUint8ArrayFromBinary } from "../utils/binary.mjs";
6
+ import { buildAgentInputPool, extractOutputItemsFromRunItems, toAgentInputList, getAgentInputItemKey, removeAgentInputFromPool, } from "./items.mjs";
7
+ import logger from "../logger.mjs";
8
+ export function createSessionPersistenceTracker(options) {
9
+ const { session } = options;
10
+ if (!session) {
11
+ return undefined;
12
+ }
13
+ class SessionPersistenceTrackerImpl {
14
+ session;
15
+ hasCallModelInputFilter;
16
+ persistInput;
17
+ originalSnapshot;
18
+ filteredSnapshot;
19
+ pendingWriteCounts;
20
+ persistedInput = false;
21
+ constructor() {
22
+ this.session = options.session;
23
+ this.hasCallModelInputFilter = options.hasCallModelInputFilter;
24
+ this.persistInput = options.persistInput;
25
+ this.originalSnapshot = options.resumingFromState ? [] : undefined;
26
+ this.filteredSnapshot = undefined;
27
+ this.pendingWriteCounts = options.resumingFromState
28
+ ? new Map()
29
+ : undefined;
30
+ }
31
+ setPreparedItems = (items) => {
32
+ const sessionItems = items ?? [];
33
+ this.originalSnapshot = sessionItems.map((item) => structuredClone(item));
34
+ this.pendingWriteCounts = new Map();
35
+ for (const item of sessionItems) {
36
+ const key = getAgentInputItemKey(item);
37
+ this.pendingWriteCounts.set(key, (this.pendingWriteCounts.get(key) ?? 0) + 1);
38
+ }
39
+ };
40
+ recordTurnItems = (sourceItems, filteredItems) => {
41
+ const pendingCounts = this.pendingWriteCounts;
42
+ if (filteredItems !== undefined) {
43
+ if (!pendingCounts) {
44
+ this.filteredSnapshot = cloneItems(filteredItems);
45
+ return;
46
+ }
47
+ const nextSnapshot = collectPersistableFilteredItems({
48
+ pendingCounts,
49
+ sourceItems,
50
+ filteredItems,
51
+ existingSnapshot: this.filteredSnapshot,
52
+ });
53
+ if (nextSnapshot !== undefined) {
54
+ this.filteredSnapshot = nextSnapshot;
55
+ }
56
+ return;
57
+ }
58
+ this.filteredSnapshot = buildSnapshotForUnfilteredItems({
59
+ pendingCounts,
60
+ sourceItems,
61
+ existingSnapshot: this.filteredSnapshot,
62
+ });
63
+ };
64
+ getItemsForPersistence = () => {
65
+ if (this.filteredSnapshot !== undefined) {
66
+ return this.filteredSnapshot;
67
+ }
68
+ if (this.hasCallModelInputFilter) {
69
+ return undefined;
70
+ }
71
+ return this.originalSnapshot;
72
+ };
73
+ buildPersistInputOnce = (serverManagesConversation) => {
74
+ if (!this.session || serverManagesConversation) {
75
+ return undefined;
76
+ }
77
+ const persistInput = this.persistInput ?? saveStreamInputToSession;
78
+ return async () => {
79
+ if (this.persistedInput) {
80
+ return;
81
+ }
82
+ const itemsToPersist = this.getItemsForPersistence();
83
+ if (!itemsToPersist || itemsToPersist.length === 0) {
84
+ return;
85
+ }
86
+ this.persistedInput = true;
87
+ await persistInput(this.session, itemsToPersist);
88
+ };
89
+ };
90
+ }
91
+ return new SessionPersistenceTrackerImpl();
92
+ }
93
+ function cloneItems(items) {
94
+ return items.map((item) => structuredClone(item));
95
+ }
96
+ function buildSourceOccurrenceCounts(sourceItems) {
97
+ const sourceOccurrenceCounts = new WeakMap();
98
+ for (const source of sourceItems) {
99
+ if (!source || typeof source !== 'object') {
100
+ continue;
101
+ }
102
+ const nextCount = (sourceOccurrenceCounts.get(source) ?? 0) + 1;
103
+ sourceOccurrenceCounts.set(source, nextCount);
104
+ }
105
+ return sourceOccurrenceCounts;
106
+ }
107
+ function collectPersistableFilteredItems(options) {
108
+ const { pendingCounts, sourceItems, filteredItems, existingSnapshot } = options;
109
+ const persistableItems = [];
110
+ const sourceOccurrenceCounts = buildSourceOccurrenceCounts(sourceItems);
111
+ const consumeAnyPendingWriteSlot = () => {
112
+ for (const [key, remaining] of pendingCounts) {
113
+ if (remaining > 0) {
114
+ pendingCounts.set(key, remaining - 1);
115
+ return true;
116
+ }
117
+ }
118
+ return false;
119
+ };
120
+ for (let i = 0; i < filteredItems.length; i++) {
121
+ const filteredItem = filteredItems[i];
122
+ if (!filteredItem) {
123
+ continue;
124
+ }
125
+ let allocated = false;
126
+ const source = sourceItems[i];
127
+ if (source && typeof source === 'object') {
128
+ const pendingOccurrences = (sourceOccurrenceCounts.get(source) ?? 0) - 1;
129
+ sourceOccurrenceCounts.set(source, pendingOccurrences);
130
+ if (pendingOccurrences > 0) {
131
+ continue;
132
+ }
133
+ const sourceKey = getAgentInputItemKey(source);
134
+ const remaining = pendingCounts.get(sourceKey) ?? 0;
135
+ if (remaining > 0) {
136
+ pendingCounts.set(sourceKey, remaining - 1);
137
+ persistableItems.push(structuredClone(filteredItem));
138
+ allocated = true;
139
+ continue;
140
+ }
141
+ }
142
+ const filteredKey = getAgentInputItemKey(filteredItem);
143
+ const filteredRemaining = pendingCounts.get(filteredKey) ?? 0;
144
+ if (filteredRemaining > 0) {
145
+ pendingCounts.set(filteredKey, filteredRemaining - 1);
146
+ persistableItems.push(structuredClone(filteredItem));
147
+ allocated = true;
148
+ continue;
149
+ }
150
+ if (!source && consumeAnyPendingWriteSlot()) {
151
+ persistableItems.push(structuredClone(filteredItem));
152
+ allocated = true;
153
+ }
154
+ if (!allocated && !source && existingSnapshot === undefined) {
155
+ persistableItems.push(structuredClone(filteredItem));
156
+ }
157
+ }
158
+ if (persistableItems.length > 0 || existingSnapshot === undefined) {
159
+ return persistableItems;
160
+ }
161
+ return existingSnapshot;
162
+ }
163
+ function buildSnapshotForUnfilteredItems(options) {
164
+ const { pendingCounts, sourceItems, existingSnapshot } = options;
165
+ if (!pendingCounts) {
166
+ const filtered = sourceItems
167
+ .filter((item) => Boolean(item))
168
+ .map((item) => structuredClone(item));
169
+ return filtered.length > 0
170
+ ? filtered
171
+ : existingSnapshot === undefined
172
+ ? []
173
+ : existingSnapshot;
174
+ }
175
+ const filtered = [];
176
+ for (const item of sourceItems) {
177
+ if (!item) {
178
+ continue;
179
+ }
180
+ const key = getAgentInputItemKey(item);
181
+ const remaining = pendingCounts.get(key) ?? 0;
182
+ if (remaining <= 0) {
183
+ continue;
184
+ }
185
+ pendingCounts.set(key, remaining - 1);
186
+ filtered.push(structuredClone(item));
187
+ }
188
+ if (filtered.length > 0) {
189
+ return filtered;
190
+ }
191
+ return existingSnapshot === undefined ? [] : existingSnapshot;
192
+ }
193
+ export async function saveToSession(session, sessionInputItems, result) {
194
+ const state = result.state;
195
+ const alreadyPersisted = state._currentTurnPersistedItemCount ?? 0;
196
+ const newRunItems = result.newItems.slice(alreadyPersisted);
197
+ if (process.env.OPENAI_AGENTS__DEBUG_SAVE_SESSION) {
198
+ console.debug('saveToSession:newRunItems', newRunItems.map((item) => item.type));
199
+ }
200
+ await persistRunItemsToSession({
201
+ session,
202
+ state,
203
+ newRunItems,
204
+ extraInputItems: sessionInputItems,
205
+ lastResponseId: result.lastResponseId,
206
+ alreadyPersistedCount: alreadyPersisted,
207
+ });
208
+ }
209
+ export async function saveStreamInputToSession(session, sessionInputItems) {
210
+ if (!session) {
211
+ return;
212
+ }
213
+ if (!sessionInputItems || sessionInputItems.length === 0) {
214
+ return;
215
+ }
216
+ const sanitizedInput = normalizeItemsForSessionPersistence(sessionInputItems);
217
+ await session.addItems(sanitizedInput);
218
+ }
219
+ export async function saveStreamResultToSession(session, result) {
220
+ const state = result.state;
221
+ const alreadyPersisted = state._currentTurnPersistedItemCount ?? 0;
222
+ const newRunItems = result.newItems.slice(alreadyPersisted);
223
+ await persistRunItemsToSession({
224
+ session,
225
+ state,
226
+ newRunItems,
227
+ lastResponseId: result.lastResponseId,
228
+ alreadyPersistedCount: alreadyPersisted,
229
+ });
230
+ }
231
+ export async function prepareInputItemsWithSession(input, session, sessionInputCallback, options) {
232
+ if (!session) {
233
+ return {
234
+ preparedInput: input,
235
+ sessionItems: undefined,
236
+ };
237
+ }
238
+ const includeHistoryInPreparedInput = options?.includeHistoryInPreparedInput ?? true;
239
+ const preserveDroppedNewItems = options?.preserveDroppedNewItems ?? false;
240
+ const history = await session.getItems();
241
+ const newInputItems = toAgentInputList(input);
242
+ if (!sessionInputCallback) {
243
+ return {
244
+ preparedInput: includeHistoryInPreparedInput
245
+ ? [...history, ...newInputItems]
246
+ : newInputItems,
247
+ sessionItems: newInputItems,
248
+ };
249
+ }
250
+ const historySnapshot = history.slice();
251
+ const newInputSnapshot = newInputItems.slice();
252
+ const combined = await sessionInputCallback(history, newInputItems);
253
+ if (!Array.isArray(combined)) {
254
+ throw new UserError('Session input callback must return an array of AgentInputItem objects.');
255
+ }
256
+ const historyCounts = buildItemFrequencyMap(historySnapshot);
257
+ const newInputCounts = buildItemFrequencyMap(newInputSnapshot);
258
+ const historyRefs = buildAgentInputPool(historySnapshot);
259
+ const newInputRefs = buildAgentInputPool(newInputSnapshot);
260
+ const appended = [];
261
+ for (const item of combined) {
262
+ const key = getAgentInputItemKey(item);
263
+ if (removeAgentInputFromPool(newInputRefs, item)) {
264
+ decrementCount(newInputCounts, key);
265
+ appended.push(item);
266
+ continue;
267
+ }
268
+ if (removeAgentInputFromPool(historyRefs, item)) {
269
+ decrementCount(historyCounts, key);
270
+ continue;
271
+ }
272
+ const historyRemaining = historyCounts.get(key) ?? 0;
273
+ if (historyRemaining > 0) {
274
+ historyCounts.set(key, historyRemaining - 1);
275
+ continue;
276
+ }
277
+ const newRemaining = newInputCounts.get(key) ?? 0;
278
+ if (newRemaining > 0) {
279
+ newInputCounts.set(key, newRemaining - 1);
280
+ appended.push(item);
281
+ continue;
282
+ }
283
+ appended.push(item);
284
+ }
285
+ const preparedItems = includeHistoryInPreparedInput
286
+ ? combined
287
+ : appended.length > 0
288
+ ? appended
289
+ : preserveDroppedNewItems
290
+ ? newInputSnapshot
291
+ : [];
292
+ if (preserveDroppedNewItems &&
293
+ appended.length === 0 &&
294
+ newInputSnapshot.length > 0) {
295
+ // In server-managed conversations we cannot drop the turn delta; restore it and warn callers.
296
+ logger.warn('sessionInputCallback dropped all new inputs in a server-managed conversation; original turn inputs were restored to avoid losing the API delta. Keep at least one new item or omit conversationId if you intended to drop them.');
297
+ }
298
+ return {
299
+ preparedInput: preparedItems,
300
+ sessionItems: appended,
301
+ };
302
+ }
303
+ function normalizeItemsForSessionPersistence(items) {
304
+ return items.map((item) => sanitizeValueForSession(stripTransientCallIds(item)));
305
+ }
306
+ function sanitizeValueForSession(value, context = {}) {
307
+ if (value === null || value === undefined) {
308
+ return value;
309
+ }
310
+ const binary = toUint8ArrayFromBinary(value);
311
+ if (binary) {
312
+ return toDataUrlFromBytes(binary, context.mediaType);
313
+ }
314
+ if (Array.isArray(value)) {
315
+ return value.map((entry) => sanitizeValueForSession(entry, context));
316
+ }
317
+ if (!isPlainObject(value)) {
318
+ return value;
319
+ }
320
+ const record = value;
321
+ const result = {};
322
+ const mediaType = typeof record.mediaType === 'string' && record.mediaType.length > 0
323
+ ? record.mediaType
324
+ : context.mediaType;
325
+ for (const [key, entry] of Object.entries(record)) {
326
+ const nextContext = key === 'data' || key === 'fileData' ? { mediaType } : context;
327
+ result[key] = sanitizeValueForSession(entry, nextContext);
328
+ }
329
+ return result;
330
+ }
331
+ function toDataUrlFromBytes(bytes, mediaType) {
332
+ const base64 = encodeUint8ArrayToBase64(bytes);
333
+ const type = mediaType && !mediaType.startsWith('data:') ? mediaType : 'text/plain';
334
+ return `data:${type};base64,${base64}`;
335
+ }
336
+ function isPlainObject(value) {
337
+ if (typeof value !== 'object' || value === null) {
338
+ return false;
339
+ }
340
+ const proto = Object.getPrototypeOf(value);
341
+ return proto === Object.prototype || proto === null;
342
+ }
343
+ function stripTransientCallIds(value) {
344
+ if (value === null || value === undefined) {
345
+ return value;
346
+ }
347
+ if (Array.isArray(value)) {
348
+ return value.map((entry) => stripTransientCallIds(entry));
349
+ }
350
+ if (!isPlainObject(value)) {
351
+ return value;
352
+ }
353
+ const record = value;
354
+ const result = {};
355
+ const isProtocolItem = typeof record.type === 'string' && record.type.length > 0;
356
+ const shouldStripId = isProtocolItem && shouldStripIdForType(record.type);
357
+ for (const [key, entry] of Object.entries(record)) {
358
+ if (shouldStripId && key === 'id') {
359
+ continue;
360
+ }
361
+ result[key] = stripTransientCallIds(entry);
362
+ }
363
+ return result;
364
+ }
365
+ function shouldStripIdForType(type) {
366
+ switch (type) {
367
+ case 'function_call':
368
+ case 'function_call_result':
369
+ return true;
370
+ default:
371
+ return false;
372
+ }
373
+ }
374
+ async function persistRunItemsToSession(options) {
375
+ const { session, state, newRunItems, extraInputItems = [], lastResponseId, alreadyPersistedCount, } = options;
376
+ if (!session) {
377
+ return;
378
+ }
379
+ const itemsToSave = [
380
+ ...extraInputItems,
381
+ ...extractOutputItemsFromRunItems(newRunItems),
382
+ ];
383
+ if (itemsToSave.length === 0) {
384
+ state._currentTurnPersistedItemCount =
385
+ alreadyPersistedCount + newRunItems.length;
386
+ await runCompactionOnSession(session, lastResponseId, state);
387
+ return;
388
+ }
389
+ const sanitizedItems = normalizeItemsForSessionPersistence(itemsToSave);
390
+ await session.addItems(sanitizedItems);
391
+ await runCompactionOnSession(session, lastResponseId, state);
392
+ state._currentTurnPersistedItemCount =
393
+ alreadyPersistedCount + newRunItems.length;
394
+ }
395
+ async function runCompactionOnSession(session, responseId, state) {
396
+ if (!isOpenAIResponsesCompactionAwareSession(session)) {
397
+ return;
398
+ }
399
+ const compactionResult = await session.runCompaction(typeof responseId === 'undefined' ? undefined : { responseId });
400
+ if (!compactionResult) {
401
+ return;
402
+ }
403
+ const usage = compactionResult.usage;
404
+ state._context.usage.add(new Usage({
405
+ requests: 1,
406
+ inputTokens: usage.inputTokens,
407
+ outputTokens: usage.outputTokens,
408
+ totalTokens: usage.totalTokens,
409
+ inputTokensDetails: usage.inputTokensDetails,
410
+ outputTokensDetails: usage.outputTokensDetails,
411
+ requestUsageEntries: [usage],
412
+ }));
413
+ }
414
+ function buildItemFrequencyMap(items) {
415
+ const counts = new Map();
416
+ for (const item of items) {
417
+ const key = getAgentInputItemKey(item);
418
+ counts.set(key, (counts.get(key) ?? 0) + 1);
419
+ }
420
+ return counts;
421
+ }
422
+ function decrementCount(map, key) {
423
+ const remaining = (map.get(key) ?? 0) - 1;
424
+ if (remaining <= 0) {
425
+ map.delete(key);
426
+ }
427
+ else {
428
+ map.set(key, remaining);
429
+ }
430
+ }
431
+ //# sourceMappingURL=sessionPersistence.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionPersistence.mjs","sourceRoot":"","sources":["../../src/runner/sessionPersistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { z } from 'zod';
2
+ import { ModelResponse } from '../model';
3
+ import { RunItem } from '../items';
4
+ import { AgentInputItem } from '../types';
5
+ export declare const nextStepSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
6
+ type: z.ZodLiteral<"next_step_handoff">;
7
+ newAgent: z.ZodAny;
8
+ }, "strip", z.ZodTypeAny, {
9
+ type: "next_step_handoff";
10
+ newAgent?: any;
11
+ }, {
12
+ type: "next_step_handoff";
13
+ newAgent?: any;
14
+ }>, z.ZodObject<{
15
+ type: z.ZodLiteral<"next_step_final_output">;
16
+ output: z.ZodString;
17
+ }, "strip", z.ZodTypeAny, {
18
+ type: "next_step_final_output";
19
+ output: string;
20
+ }, {
21
+ type: "next_step_final_output";
22
+ output: string;
23
+ }>, z.ZodObject<{
24
+ type: z.ZodLiteral<"next_step_run_again">;
25
+ }, "strip", z.ZodTypeAny, {
26
+ type: "next_step_run_again";
27
+ }, {
28
+ type: "next_step_run_again";
29
+ }>, z.ZodObject<{
30
+ type: z.ZodLiteral<"next_step_interruption">;
31
+ data: z.ZodRecord<z.ZodString, z.ZodAny>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ type: "next_step_interruption";
34
+ data: Record<string, any>;
35
+ }, {
36
+ type: "next_step_interruption";
37
+ data: Record<string, any>;
38
+ }>]>;
39
+ export type NextStep = z.infer<typeof nextStepSchema>;
40
+ export declare class SingleStepResult {
41
+ originalInput: string | AgentInputItem[];
42
+ modelResponse: ModelResponse;
43
+ preStepItems: RunItem[];
44
+ newStepItems: RunItem[];
45
+ nextStep: NextStep;
46
+ constructor(originalInput: string | AgentInputItem[], modelResponse: ModelResponse, preStepItems: RunItem[], newStepItems: RunItem[], nextStep: NextStep);
47
+ get generatedItems(): RunItem[];
48
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SingleStepResult = exports.nextStepSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.nextStepSchema = zod_1.z.discriminatedUnion('type', [
6
+ zod_1.z.object({
7
+ type: zod_1.z.literal('next_step_handoff'),
8
+ newAgent: zod_1.z.any(),
9
+ }),
10
+ zod_1.z.object({
11
+ type: zod_1.z.literal('next_step_final_output'),
12
+ output: zod_1.z.string(),
13
+ }),
14
+ zod_1.z.object({
15
+ type: zod_1.z.literal('next_step_run_again'),
16
+ }),
17
+ zod_1.z.object({
18
+ type: zod_1.z.literal('next_step_interruption'),
19
+ data: zod_1.z.record(zod_1.z.string(), zod_1.z.any()),
20
+ }),
21
+ ]);
22
+ class SingleStepResult {
23
+ originalInput;
24
+ modelResponse;
25
+ preStepItems;
26
+ newStepItems;
27
+ nextStep;
28
+ constructor(originalInput, modelResponse, preStepItems, newStepItems, nextStep) {
29
+ this.originalInput = originalInput;
30
+ this.modelResponse = modelResponse;
31
+ this.preStepItems = preStepItems;
32
+ this.newStepItems = newStepItems;
33
+ this.nextStep = nextStep;
34
+ }
35
+ get generatedItems() {
36
+ return this.preStepItems.concat(this.newStepItems);
37
+ }
38
+ }
39
+ exports.SingleStepResult = SingleStepResult;
40
+ //# sourceMappingURL=steps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/runner/steps.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAKX,QAAA,cAAc,GAAG,OAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACzD,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACpC,QAAQ,EAAE,OAAC,CAAC,GAAG,EAAE;KAClB,CAAC;IACF,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;QACzC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;KACnB,CAAC;IACF,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;KACvC,CAAC;IACF,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;QACzC,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC;KACpC,CAAC;CACH,CAAC,CAAC;AAIH,MAAa,gBAAgB;IAElB;IACA;IACA;IACA;IACA;IALT,YACS,aAAwC,EACxC,aAA4B,EAC5B,YAAuB,EACvB,YAAuB,EACvB,QAAkB;QAJlB,kBAAa,GAAb,aAAa,CAA2B;QACxC,kBAAa,GAAb,aAAa,CAAe;QAC5B,iBAAY,GAAZ,YAAY,CAAW;QACvB,iBAAY,GAAZ,YAAY,CAAW;QACvB,aAAQ,GAAR,QAAQ,CAAU;IACxB,CAAC;IAEJ,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;CACF;AAZD,4CAYC"}
@@ -0,0 +1,36 @@
1
+ import { z } from 'zod';
2
+ export const nextStepSchema = z.discriminatedUnion('type', [
3
+ z.object({
4
+ type: z.literal('next_step_handoff'),
5
+ newAgent: z.any(),
6
+ }),
7
+ z.object({
8
+ type: z.literal('next_step_final_output'),
9
+ output: z.string(),
10
+ }),
11
+ z.object({
12
+ type: z.literal('next_step_run_again'),
13
+ }),
14
+ z.object({
15
+ type: z.literal('next_step_interruption'),
16
+ data: z.record(z.string(), z.any()),
17
+ }),
18
+ ]);
19
+ export class SingleStepResult {
20
+ originalInput;
21
+ modelResponse;
22
+ preStepItems;
23
+ newStepItems;
24
+ nextStep;
25
+ constructor(originalInput, modelResponse, preStepItems, newStepItems, nextStep) {
26
+ this.originalInput = originalInput;
27
+ this.modelResponse = modelResponse;
28
+ this.preStepItems = preStepItems;
29
+ this.newStepItems = newStepItems;
30
+ this.nextStep = nextStep;
31
+ }
32
+ get generatedItems() {
33
+ return this.preStepItems.concat(this.newStepItems);
34
+ }
35
+ }
36
+ //# sourceMappingURL=steps.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steps.mjs","sourceRoot":"","sources":["../../src/runner/steps.ts"],"names":[],"mappings":"OAAO,EAAE,CAAC,EAAE,MAAM,KAAK;AAKvB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACzD,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACpC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE;KAClB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;QACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;KACnB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;KACvC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;QACzC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;KACpC,CAAC;CACH,CAAC,CAAC;AAIH,MAAM,OAAO,gBAAgB;IAElB;IACA;IACA;IACA;IACA;IALT,YACS,aAAwC,EACxC,aAA4B,EAC5B,YAAuB,EACvB,YAAuB,EACvB,QAAkB;QAJlB,kBAAa,GAAb,aAAa,CAA2B;QACxC,kBAAa,GAAb,aAAa,CAAe;QAC5B,iBAAY,GAAZ,YAAY,CAAW;QACvB,iBAAY,GAAZ,YAAY,CAAW;QACvB,aAAQ,GAAR,QAAQ,CAAU;IACxB,CAAC;IAEJ,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { RunItem } from '../items';
2
+ import { StreamedRunResult } from '../result';
3
+ export declare const isAbortError: (error: unknown) => boolean;
4
+ export declare function streamStepItemsToRunResult(result: StreamedRunResult<any, any>, items: RunItem[]): void;
5
+ export declare function addStepToRunResult(result: StreamedRunResult<any, any>, step: {
6
+ newStepItems: RunItem[];
7
+ }, options?: {
8
+ skipItems?: Set<RunItem>;
9
+ }): void;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isAbortError = void 0;
7
+ exports.streamStepItemsToRunResult = streamStepItemsToRunResult;
8
+ exports.addStepToRunResult = addStepToRunResult;
9
+ const logger_1 = __importDefault(require("../logger.js"));
10
+ const events_1 = require("../events.js");
11
+ const items_1 = require("../items.js");
12
+ const isAbortError = (error) => {
13
+ if (!error) {
14
+ return false;
15
+ }
16
+ if (error instanceof Error && error.name === 'AbortError') {
17
+ return true;
18
+ }
19
+ const DomExceptionCtor = typeof DOMException !== 'undefined' ? DOMException : undefined;
20
+ if (DomExceptionCtor &&
21
+ error instanceof DomExceptionCtor &&
22
+ error.name === 'AbortError') {
23
+ return true;
24
+ }
25
+ return false;
26
+ };
27
+ exports.isAbortError = isAbortError;
28
+ function getRunItemStreamEventName(item) {
29
+ if (item instanceof items_1.RunMessageOutputItem) {
30
+ return 'message_output_created';
31
+ }
32
+ if (item instanceof items_1.RunHandoffCallItem) {
33
+ return 'handoff_requested';
34
+ }
35
+ if (item instanceof items_1.RunHandoffOutputItem) {
36
+ return 'handoff_occurred';
37
+ }
38
+ if (item instanceof items_1.RunToolCallItem) {
39
+ return 'tool_called';
40
+ }
41
+ if (item instanceof items_1.RunToolCallOutputItem) {
42
+ return 'tool_output';
43
+ }
44
+ if (item instanceof items_1.RunReasoningItem) {
45
+ return 'reasoning_item_created';
46
+ }
47
+ if (item instanceof items_1.RunToolApprovalItem) {
48
+ return 'tool_approval_requested';
49
+ }
50
+ return undefined;
51
+ }
52
+ function enqueueRunItemStreamEvent(result, item) {
53
+ const itemName = getRunItemStreamEventName(item);
54
+ if (!itemName) {
55
+ logger_1.default.warn('Unknown item type: ', item);
56
+ return;
57
+ }
58
+ result._addItem(new events_1.RunItemStreamEvent(itemName, item));
59
+ }
60
+ function streamStepItemsToRunResult(result, items) {
61
+ for (const item of items) {
62
+ enqueueRunItemStreamEvent(result, item);
63
+ }
64
+ }
65
+ function addStepToRunResult(result, step, options) {
66
+ const skippedItems = options?.skipItems;
67
+ for (const item of step.newStepItems) {
68
+ if (skippedItems?.has(item)) {
69
+ continue;
70
+ }
71
+ enqueueRunItemStreamEvent(result, item);
72
+ }
73
+ }
74
+ //# sourceMappingURL=streaming.js.map