@openai/agents-core 0.5.4 → 0.6.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 (102) hide show
  1. package/dist/computer.d.ts +10 -2
  2. package/dist/events.d.ts +1 -1
  3. package/dist/events.js.map +1 -1
  4. package/dist/events.mjs.map +1 -1
  5. package/dist/extensions/handoffFilters.d.ts +4 -3
  6. package/dist/extensions/handoffFilters.js +8 -3
  7. package/dist/extensions/handoffFilters.js.map +1 -1
  8. package/dist/extensions/handoffFilters.mjs +9 -4
  9. package/dist/extensions/handoffFilters.mjs.map +1 -1
  10. package/dist/index.d.ts +4 -4
  11. package/dist/index.js +8 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.mjs +2 -2
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/items.d.ts +1158 -32
  16. package/dist/items.js +56 -2
  17. package/dist/items.js.map +1 -1
  18. package/dist/items.mjs +53 -1
  19. package/dist/items.mjs.map +1 -1
  20. package/dist/metadata.js +3 -3
  21. package/dist/metadata.mjs +3 -3
  22. package/dist/model.d.ts +14 -2
  23. package/dist/run.js +2 -2
  24. package/dist/run.js.map +1 -1
  25. package/dist/run.mjs +3 -3
  26. package/dist/run.mjs.map +1 -1
  27. package/dist/runContext.js +116 -67
  28. package/dist/runContext.js.map +1 -1
  29. package/dist/runContext.mjs +116 -67
  30. package/dist/runContext.mjs.map +1 -1
  31. package/dist/runState.d.ts +493 -17
  32. package/dist/runState.js +303 -12
  33. package/dist/runState.js.map +1 -1
  34. package/dist/runState.mjs +304 -13
  35. package/dist/runState.mjs.map +1 -1
  36. package/dist/runner/modelOutputs.d.ts +5 -1
  37. package/dist/runner/modelOutputs.js +552 -12
  38. package/dist/runner/modelOutputs.js.map +1 -1
  39. package/dist/runner/modelOutputs.mjs +552 -13
  40. package/dist/runner/modelOutputs.mjs.map +1 -1
  41. package/dist/runner/modelPreparation.js +5 -2
  42. package/dist/runner/modelPreparation.js.map +1 -1
  43. package/dist/runner/modelPreparation.mjs +5 -2
  44. package/dist/runner/modelPreparation.mjs.map +1 -1
  45. package/dist/runner/sessionPersistence.js +17 -3
  46. package/dist/runner/sessionPersistence.js.map +1 -1
  47. package/dist/runner/sessionPersistence.mjs +17 -3
  48. package/dist/runner/sessionPersistence.mjs.map +1 -1
  49. package/dist/runner/streaming.js +8 -0
  50. package/dist/runner/streaming.js.map +1 -1
  51. package/dist/runner/streaming.mjs +9 -1
  52. package/dist/runner/streaming.mjs.map +1 -1
  53. package/dist/runner/toolExecution.js +102 -67
  54. package/dist/runner/toolExecution.js.map +1 -1
  55. package/dist/runner/toolExecution.mjs +102 -67
  56. package/dist/runner/toolExecution.mjs.map +1 -1
  57. package/dist/runner/toolSearch.d.ts +23 -0
  58. package/dist/runner/toolSearch.js +426 -0
  59. package/dist/runner/toolSearch.js.map +1 -0
  60. package/dist/runner/toolSearch.mjs +416 -0
  61. package/dist/runner/toolSearch.mjs.map +1 -0
  62. package/dist/runner/turnResolution.js +2 -1
  63. package/dist/runner/turnResolution.js.map +1 -1
  64. package/dist/runner/turnResolution.mjs +2 -1
  65. package/dist/runner/turnResolution.mjs.map +1 -1
  66. package/dist/tool.d.ts +50 -0
  67. package/dist/tool.js +79 -0
  68. package/dist/tool.js.map +1 -1
  69. package/dist/tool.mjs +74 -0
  70. package/dist/tool.mjs.map +1 -1
  71. package/dist/toolIdentity.d.ts +23 -0
  72. package/dist/toolIdentity.js +105 -0
  73. package/dist/toolIdentity.js.map +1 -0
  74. package/dist/toolIdentity.mjs +89 -0
  75. package/dist/toolIdentity.mjs.map +1 -0
  76. package/dist/tooling.d.ts +24 -0
  77. package/dist/tooling.js +110 -0
  78. package/dist/tooling.js.map +1 -0
  79. package/dist/tooling.mjs +97 -0
  80. package/dist/tooling.mjs.map +1 -0
  81. package/dist/types/aliases.d.ts +3 -3
  82. package/dist/types/protocol.d.ts +417 -12
  83. package/dist/types/protocol.js +59 -4
  84. package/dist/types/protocol.js.map +1 -1
  85. package/dist/types/protocol.mjs +57 -2
  86. package/dist/types/protocol.mjs.map +1 -1
  87. package/dist/types/providerData.d.ts +2 -0
  88. package/dist/utils/index.d.ts +2 -0
  89. package/dist/utils/index.js +15 -1
  90. package/dist/utils/index.js.map +1 -1
  91. package/dist/utils/index.mjs +2 -0
  92. package/dist/utils/index.mjs.map +1 -1
  93. package/dist/utils/serialize.js +37 -6
  94. package/dist/utils/serialize.js.map +1 -1
  95. package/dist/utils/serialize.mjs +37 -6
  96. package/dist/utils/serialize.mjs.map +1 -1
  97. package/dist/utils/toolSearch.d.ts +1 -0
  98. package/dist/utils/toolSearch.js +13 -0
  99. package/dist/utils/toolSearch.js.map +1 -0
  100. package/dist/utils/toolSearch.mjs +2 -0
  101. package/dist/utils/toolSearch.mjs.map +1 -0
  102. package/package.json +2 -2
@@ -6,6 +6,62 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.RunContext = void 0;
7
7
  const logger_1 = __importDefault(require("./logger.js"));
8
8
  const usage_1 = require("./usage.js");
9
+ const COMPUTER_APPROVAL_TOOL_NAMES = new Set([
10
+ 'computer',
11
+ 'computer_use_preview',
12
+ ]);
13
+ function getApprovalToolNameCandidates(toolName) {
14
+ if (!COMPUTER_APPROVAL_TOOL_NAMES.has(toolName)) {
15
+ return [toolName];
16
+ }
17
+ return toolName === 'computer'
18
+ ? ['computer', 'computer_use_preview']
19
+ : ['computer_use_preview', 'computer'];
20
+ }
21
+ function mergeApprovalList(current, incoming) {
22
+ if (current === true || incoming === true) {
23
+ return true;
24
+ }
25
+ const currentList = Array.isArray(current) ? current : [];
26
+ const incomingList = Array.isArray(incoming) ? incoming : [];
27
+ return Array.from(new Set([...currentList, ...incomingList]));
28
+ }
29
+ function mergeApprovalMessages(current, incoming) {
30
+ if (current.rejected === true) {
31
+ return current.messages;
32
+ }
33
+ const merged = current.messages || incoming.messages
34
+ ? { ...incoming.messages, ...current.messages }
35
+ : undefined;
36
+ if (!merged) {
37
+ return undefined;
38
+ }
39
+ if (Array.isArray(current.rejected)) {
40
+ for (const callId of current.rejected) {
41
+ if (!current.messages ||
42
+ !Object.prototype.hasOwnProperty.call(current.messages, callId)) {
43
+ delete merged[callId];
44
+ }
45
+ }
46
+ }
47
+ return Object.keys(merged).length > 0 ? merged : undefined;
48
+ }
49
+ function mergeStickyRejectMessage(current, incoming) {
50
+ if (current.rejected === true) {
51
+ return current.stickyRejectMessage;
52
+ }
53
+ return current.stickyRejectMessage ?? incoming.stickyRejectMessage;
54
+ }
55
+ function mergeApprovalRecords(current, incoming) {
56
+ const mergedMessages = mergeApprovalMessages(current, incoming);
57
+ const stickyRejectMessage = mergeStickyRejectMessage(current, incoming);
58
+ return {
59
+ approved: mergeApprovalList(current.approved, incoming.approved),
60
+ rejected: mergeApprovalList(current.rejected, incoming.rejected),
61
+ ...(mergedMessages ? { messages: mergedMessages } : {}),
62
+ ...(stickyRejectMessage !== undefined ? { stickyRejectMessage } : {}),
63
+ };
64
+ }
9
65
  /**
10
66
  * A context object that is passed to the `Runner.run()` method.
11
67
  */
@@ -56,7 +112,10 @@ class RunContext {
56
112
  * @param approvals - The approvals map to rebuild.
57
113
  */
58
114
  _rebuildApprovals(approvals) {
59
- this.#approvals = new Map(Object.entries(approvals));
115
+ this.#approvals = new Map();
116
+ for (const [toolName, approval] of Object.entries(approvals)) {
117
+ this.#setApprovalRecord(toolName, approval);
118
+ }
60
119
  }
61
120
  /**
62
121
  * Merge approvals from a serialized state without discarding existing entries.
@@ -65,54 +124,8 @@ class RunContext {
65
124
  * @param approvals - The approvals map to merge.
66
125
  */
67
126
  _mergeApprovals(approvals) {
68
- const mergeApproval = (current, incoming) => {
69
- if (current === true || incoming === true) {
70
- return true;
71
- }
72
- const currentList = Array.isArray(current) ? current : [];
73
- const incomingList = Array.isArray(incoming) ? incoming : [];
74
- return Array.from(new Set([...currentList, ...incomingList]));
75
- };
76
- const mergeMessages = (current, incoming) => {
77
- if (current.rejected === true) {
78
- return current.messages;
79
- }
80
- const merged = current.messages || incoming.messages
81
- ? { ...incoming.messages, ...current.messages }
82
- : undefined;
83
- if (!merged) {
84
- return undefined;
85
- }
86
- if (Array.isArray(current.rejected)) {
87
- for (const callId of current.rejected) {
88
- if (!current.messages ||
89
- !Object.prototype.hasOwnProperty.call(current.messages, callId)) {
90
- delete merged[callId];
91
- }
92
- }
93
- }
94
- return Object.keys(merged).length > 0 ? merged : undefined;
95
- };
96
- const mergeStickyRejectMessage = (current, incoming) => {
97
- if (current.rejected === true) {
98
- return current.stickyRejectMessage;
99
- }
100
- return current.stickyRejectMessage ?? incoming.stickyRejectMessage;
101
- };
102
127
  for (const [toolName, incoming] of Object.entries(approvals)) {
103
- const existing = this.#approvals.get(toolName);
104
- if (!existing) {
105
- this.#approvals.set(toolName, incoming);
106
- continue;
107
- }
108
- const mergedMessages = mergeMessages(existing, incoming);
109
- const stickyRejectMessage = mergeStickyRejectMessage(existing, incoming);
110
- this.#approvals.set(toolName, {
111
- approved: mergeApproval(existing.approved, incoming.approved),
112
- rejected: mergeApproval(existing.rejected, incoming.rejected),
113
- ...(mergedMessages ? { messages: mergedMessages } : {}),
114
- ...(stickyRejectMessage !== undefined ? { stickyRejectMessage } : {}),
115
- });
128
+ this.#setApprovalRecord(toolName, incoming);
116
129
  }
117
130
  }
118
131
  /**
@@ -123,11 +136,17 @@ class RunContext {
123
136
  * @returns The message string if one was provided, `undefined` otherwise.
124
137
  */
125
138
  getRejectionMessage(toolName, callId) {
126
- const approvalEntry = this.#approvals.get(toolName);
127
- return (approvalEntry?.messages?.[callId] ??
128
- (approvalEntry?.rejected === true
129
- ? approvalEntry.stickyRejectMessage
130
- : undefined));
139
+ for (const approvalEntry of this.#getApprovalEntries(toolName)) {
140
+ if (typeof approvalEntry.messages?.[callId] === 'string') {
141
+ return approvalEntry.messages[callId];
142
+ }
143
+ }
144
+ for (const approvalEntry of this.#getApprovalEntries(toolName)) {
145
+ if (approvalEntry.rejected === true) {
146
+ return approvalEntry.stickyRejectMessage;
147
+ }
148
+ }
149
+ return undefined;
131
150
  }
132
151
  #getCallId(approvalItem) {
133
152
  if ('callId' in approvalItem.rawItem) {
@@ -144,23 +163,25 @@ class RunContext {
144
163
  */
145
164
  isToolApproved(approval) {
146
165
  const { toolName, callId } = approval;
147
- const approvalEntry = this.#approvals.get(toolName);
148
- if (approvalEntry?.approved === true && approvalEntry.rejected === true) {
166
+ const approvalEntries = this.#getApprovalEntries(toolName);
167
+ const hasPermanentApproval = approvalEntries.some((approvalEntry) => approvalEntry.approved === true);
168
+ const hasPermanentRejection = approvalEntries.some((approvalEntry) => approvalEntry.rejected === true);
169
+ if (hasPermanentApproval && hasPermanentRejection) {
149
170
  logger_1.default.warn('Tool is permanently approved and rejected at the same time. Approval takes precedence');
150
171
  return true;
151
172
  }
152
- if (approvalEntry?.approved === true) {
173
+ if (hasPermanentApproval) {
153
174
  return true;
154
175
  }
155
- if (approvalEntry?.rejected === true) {
176
+ if (hasPermanentRejection) {
156
177
  return false;
157
178
  }
158
- const individualCallApproval = Array.isArray(approvalEntry?.approved)
179
+ const individualCallApproval = approvalEntries.some((approvalEntry) => Array.isArray(approvalEntry.approved)
159
180
  ? approvalEntry.approved.includes(callId)
160
- : false;
161
- const individualCallRejection = Array.isArray(approvalEntry?.rejected)
181
+ : false);
182
+ const individualCallRejection = approvalEntries.some((approvalEntry) => Array.isArray(approvalEntry.rejected)
162
183
  ? approvalEntry.rejected.includes(callId)
163
- : false;
184
+ : false);
164
185
  if (individualCallApproval && individualCallRejection) {
165
186
  logger_1.default.warn(`Tool call ${callId} is both approved and rejected at the same time. Approval takes precedence`);
166
187
  return true;
@@ -181,21 +202,22 @@ class RunContext {
181
202
  */
182
203
  approveTool(approvalItem, { alwaysApprove = false } = {}) {
183
204
  const toolName = approvalItem.toolName ?? approvalItem.rawItem.name;
205
+ const approvalKey = this.#getApprovalStorageKey(toolName);
184
206
  if (alwaysApprove) {
185
- this.#approvals.set(toolName, {
207
+ this.#approvals.set(approvalKey, {
186
208
  approved: true,
187
209
  rejected: [],
188
210
  });
189
211
  return;
190
212
  }
191
- const approvalEntry = this.#approvals.get(toolName) ?? {
213
+ const approvalEntry = this.#approvals.get(approvalKey) ?? {
192
214
  approved: [],
193
215
  rejected: [],
194
216
  };
195
217
  if (Array.isArray(approvalEntry.approved)) {
196
218
  approvalEntry.approved.push(this.#getCallId(approvalItem));
197
219
  }
198
- this.#approvals.set(toolName, approvalEntry);
220
+ this.#approvals.set(approvalKey, approvalEntry);
199
221
  }
200
222
  /**
201
223
  * Reject a tool call.
@@ -204,9 +226,10 @@ class RunContext {
204
226
  */
205
227
  rejectTool(approvalItem, { alwaysReject = false, message, } = {}) {
206
228
  const toolName = approvalItem.toolName ?? approvalItem.rawItem.name;
229
+ const approvalKey = this.#getApprovalStorageKey(toolName);
207
230
  if (alwaysReject) {
208
231
  const callId = this.#getCallId(approvalItem);
209
- this.#approvals.set(toolName, {
232
+ this.#approvals.set(approvalKey, {
210
233
  approved: false,
211
234
  rejected: true,
212
235
  ...(message !== undefined
@@ -218,7 +241,7 @@ class RunContext {
218
241
  });
219
242
  return;
220
243
  }
221
- const approvalEntry = this.#approvals.get(toolName) ?? {
244
+ const approvalEntry = this.#approvals.get(approvalKey) ?? {
222
245
  approved: [],
223
246
  rejected: [],
224
247
  };
@@ -230,7 +253,7 @@ class RunContext {
230
253
  approvalEntry.messages[callId] = message;
231
254
  }
232
255
  }
233
- this.#approvals.set(toolName, approvalEntry);
256
+ this.#approvals.set(approvalKey, approvalEntry);
234
257
  }
235
258
  /**
236
259
  * Creates a child context that shares approvals and usage, with tool input set.
@@ -261,6 +284,32 @@ class RunContext {
261
284
  }
262
285
  return json;
263
286
  }
287
+ #getApprovalEntries(toolName) {
288
+ return getApprovalToolNameCandidates(toolName)
289
+ .map((candidate) => this.#approvals.get(candidate))
290
+ .filter((approval) => approval !== undefined);
291
+ }
292
+ #getApprovalStorageKey(toolName) {
293
+ return (getApprovalToolNameCandidates(toolName).find((candidate) => this.#approvals.has(candidate)) ?? toolName);
294
+ }
295
+ #setApprovalRecord(toolName, incoming) {
296
+ const candidates = getApprovalToolNameCandidates(toolName);
297
+ const existingEntries = candidates
298
+ .map((candidate) => this.#approvals.get(candidate))
299
+ .filter((approval) => approval !== undefined);
300
+ const mergedExisting = existingEntries.reduce((current, approval) => current ? mergeApprovalRecords(current, approval) : approval, undefined);
301
+ const merged = mergedExisting
302
+ ? mergeApprovalRecords(mergedExisting, incoming)
303
+ : incoming;
304
+ const targetKey = candidates.find((candidate) => this.#approvals.has(candidate)) ??
305
+ toolName;
306
+ this.#approvals.set(targetKey, merged);
307
+ for (const candidate of candidates) {
308
+ if (candidate !== targetKey) {
309
+ this.#approvals.delete(candidate);
310
+ }
311
+ }
312
+ }
264
313
  }
265
314
  exports.RunContext = RunContext;
266
315
  //# sourceMappingURL=runContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runContext.js","sourceRoot":"","sources":["../src/runContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runContext.js","sourceRoot":"","sources":["../src/runContext.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,61 @@
1
1
  import logger from "./logger.mjs";
2
2
  import { Usage } from "./usage.mjs";
3
+ const COMPUTER_APPROVAL_TOOL_NAMES = new Set([
4
+ 'computer',
5
+ 'computer_use_preview',
6
+ ]);
7
+ function getApprovalToolNameCandidates(toolName) {
8
+ if (!COMPUTER_APPROVAL_TOOL_NAMES.has(toolName)) {
9
+ return [toolName];
10
+ }
11
+ return toolName === 'computer'
12
+ ? ['computer', 'computer_use_preview']
13
+ : ['computer_use_preview', 'computer'];
14
+ }
15
+ function mergeApprovalList(current, incoming) {
16
+ if (current === true || incoming === true) {
17
+ return true;
18
+ }
19
+ const currentList = Array.isArray(current) ? current : [];
20
+ const incomingList = Array.isArray(incoming) ? incoming : [];
21
+ return Array.from(new Set([...currentList, ...incomingList]));
22
+ }
23
+ function mergeApprovalMessages(current, incoming) {
24
+ if (current.rejected === true) {
25
+ return current.messages;
26
+ }
27
+ const merged = current.messages || incoming.messages
28
+ ? { ...incoming.messages, ...current.messages }
29
+ : undefined;
30
+ if (!merged) {
31
+ return undefined;
32
+ }
33
+ if (Array.isArray(current.rejected)) {
34
+ for (const callId of current.rejected) {
35
+ if (!current.messages ||
36
+ !Object.prototype.hasOwnProperty.call(current.messages, callId)) {
37
+ delete merged[callId];
38
+ }
39
+ }
40
+ }
41
+ return Object.keys(merged).length > 0 ? merged : undefined;
42
+ }
43
+ function mergeStickyRejectMessage(current, incoming) {
44
+ if (current.rejected === true) {
45
+ return current.stickyRejectMessage;
46
+ }
47
+ return current.stickyRejectMessage ?? incoming.stickyRejectMessage;
48
+ }
49
+ function mergeApprovalRecords(current, incoming) {
50
+ const mergedMessages = mergeApprovalMessages(current, incoming);
51
+ const stickyRejectMessage = mergeStickyRejectMessage(current, incoming);
52
+ return {
53
+ approved: mergeApprovalList(current.approved, incoming.approved),
54
+ rejected: mergeApprovalList(current.rejected, incoming.rejected),
55
+ ...(mergedMessages ? { messages: mergedMessages } : {}),
56
+ ...(stickyRejectMessage !== undefined ? { stickyRejectMessage } : {}),
57
+ };
58
+ }
3
59
  /**
4
60
  * A context object that is passed to the `Runner.run()` method.
5
61
  */
@@ -50,7 +106,10 @@ export class RunContext {
50
106
  * @param approvals - The approvals map to rebuild.
51
107
  */
52
108
  _rebuildApprovals(approvals) {
53
- this.#approvals = new Map(Object.entries(approvals));
109
+ this.#approvals = new Map();
110
+ for (const [toolName, approval] of Object.entries(approvals)) {
111
+ this.#setApprovalRecord(toolName, approval);
112
+ }
54
113
  }
55
114
  /**
56
115
  * Merge approvals from a serialized state without discarding existing entries.
@@ -59,54 +118,8 @@ export class RunContext {
59
118
  * @param approvals - The approvals map to merge.
60
119
  */
61
120
  _mergeApprovals(approvals) {
62
- const mergeApproval = (current, incoming) => {
63
- if (current === true || incoming === true) {
64
- return true;
65
- }
66
- const currentList = Array.isArray(current) ? current : [];
67
- const incomingList = Array.isArray(incoming) ? incoming : [];
68
- return Array.from(new Set([...currentList, ...incomingList]));
69
- };
70
- const mergeMessages = (current, incoming) => {
71
- if (current.rejected === true) {
72
- return current.messages;
73
- }
74
- const merged = current.messages || incoming.messages
75
- ? { ...incoming.messages, ...current.messages }
76
- : undefined;
77
- if (!merged) {
78
- return undefined;
79
- }
80
- if (Array.isArray(current.rejected)) {
81
- for (const callId of current.rejected) {
82
- if (!current.messages ||
83
- !Object.prototype.hasOwnProperty.call(current.messages, callId)) {
84
- delete merged[callId];
85
- }
86
- }
87
- }
88
- return Object.keys(merged).length > 0 ? merged : undefined;
89
- };
90
- const mergeStickyRejectMessage = (current, incoming) => {
91
- if (current.rejected === true) {
92
- return current.stickyRejectMessage;
93
- }
94
- return current.stickyRejectMessage ?? incoming.stickyRejectMessage;
95
- };
96
121
  for (const [toolName, incoming] of Object.entries(approvals)) {
97
- const existing = this.#approvals.get(toolName);
98
- if (!existing) {
99
- this.#approvals.set(toolName, incoming);
100
- continue;
101
- }
102
- const mergedMessages = mergeMessages(existing, incoming);
103
- const stickyRejectMessage = mergeStickyRejectMessage(existing, incoming);
104
- this.#approvals.set(toolName, {
105
- approved: mergeApproval(existing.approved, incoming.approved),
106
- rejected: mergeApproval(existing.rejected, incoming.rejected),
107
- ...(mergedMessages ? { messages: mergedMessages } : {}),
108
- ...(stickyRejectMessage !== undefined ? { stickyRejectMessage } : {}),
109
- });
122
+ this.#setApprovalRecord(toolName, incoming);
110
123
  }
111
124
  }
112
125
  /**
@@ -117,11 +130,17 @@ export class RunContext {
117
130
  * @returns The message string if one was provided, `undefined` otherwise.
118
131
  */
119
132
  getRejectionMessage(toolName, callId) {
120
- const approvalEntry = this.#approvals.get(toolName);
121
- return (approvalEntry?.messages?.[callId] ??
122
- (approvalEntry?.rejected === true
123
- ? approvalEntry.stickyRejectMessage
124
- : undefined));
133
+ for (const approvalEntry of this.#getApprovalEntries(toolName)) {
134
+ if (typeof approvalEntry.messages?.[callId] === 'string') {
135
+ return approvalEntry.messages[callId];
136
+ }
137
+ }
138
+ for (const approvalEntry of this.#getApprovalEntries(toolName)) {
139
+ if (approvalEntry.rejected === true) {
140
+ return approvalEntry.stickyRejectMessage;
141
+ }
142
+ }
143
+ return undefined;
125
144
  }
126
145
  #getCallId(approvalItem) {
127
146
  if ('callId' in approvalItem.rawItem) {
@@ -138,23 +157,25 @@ export class RunContext {
138
157
  */
139
158
  isToolApproved(approval) {
140
159
  const { toolName, callId } = approval;
141
- const approvalEntry = this.#approvals.get(toolName);
142
- if (approvalEntry?.approved === true && approvalEntry.rejected === true) {
160
+ const approvalEntries = this.#getApprovalEntries(toolName);
161
+ const hasPermanentApproval = approvalEntries.some((approvalEntry) => approvalEntry.approved === true);
162
+ const hasPermanentRejection = approvalEntries.some((approvalEntry) => approvalEntry.rejected === true);
163
+ if (hasPermanentApproval && hasPermanentRejection) {
143
164
  logger.warn('Tool is permanently approved and rejected at the same time. Approval takes precedence');
144
165
  return true;
145
166
  }
146
- if (approvalEntry?.approved === true) {
167
+ if (hasPermanentApproval) {
147
168
  return true;
148
169
  }
149
- if (approvalEntry?.rejected === true) {
170
+ if (hasPermanentRejection) {
150
171
  return false;
151
172
  }
152
- const individualCallApproval = Array.isArray(approvalEntry?.approved)
173
+ const individualCallApproval = approvalEntries.some((approvalEntry) => Array.isArray(approvalEntry.approved)
153
174
  ? approvalEntry.approved.includes(callId)
154
- : false;
155
- const individualCallRejection = Array.isArray(approvalEntry?.rejected)
175
+ : false);
176
+ const individualCallRejection = approvalEntries.some((approvalEntry) => Array.isArray(approvalEntry.rejected)
156
177
  ? approvalEntry.rejected.includes(callId)
157
- : false;
178
+ : false);
158
179
  if (individualCallApproval && individualCallRejection) {
159
180
  logger.warn(`Tool call ${callId} is both approved and rejected at the same time. Approval takes precedence`);
160
181
  return true;
@@ -175,21 +196,22 @@ export class RunContext {
175
196
  */
176
197
  approveTool(approvalItem, { alwaysApprove = false } = {}) {
177
198
  const toolName = approvalItem.toolName ?? approvalItem.rawItem.name;
199
+ const approvalKey = this.#getApprovalStorageKey(toolName);
178
200
  if (alwaysApprove) {
179
- this.#approvals.set(toolName, {
201
+ this.#approvals.set(approvalKey, {
180
202
  approved: true,
181
203
  rejected: [],
182
204
  });
183
205
  return;
184
206
  }
185
- const approvalEntry = this.#approvals.get(toolName) ?? {
207
+ const approvalEntry = this.#approvals.get(approvalKey) ?? {
186
208
  approved: [],
187
209
  rejected: [],
188
210
  };
189
211
  if (Array.isArray(approvalEntry.approved)) {
190
212
  approvalEntry.approved.push(this.#getCallId(approvalItem));
191
213
  }
192
- this.#approvals.set(toolName, approvalEntry);
214
+ this.#approvals.set(approvalKey, approvalEntry);
193
215
  }
194
216
  /**
195
217
  * Reject a tool call.
@@ -198,9 +220,10 @@ export class RunContext {
198
220
  */
199
221
  rejectTool(approvalItem, { alwaysReject = false, message, } = {}) {
200
222
  const toolName = approvalItem.toolName ?? approvalItem.rawItem.name;
223
+ const approvalKey = this.#getApprovalStorageKey(toolName);
201
224
  if (alwaysReject) {
202
225
  const callId = this.#getCallId(approvalItem);
203
- this.#approvals.set(toolName, {
226
+ this.#approvals.set(approvalKey, {
204
227
  approved: false,
205
228
  rejected: true,
206
229
  ...(message !== undefined
@@ -212,7 +235,7 @@ export class RunContext {
212
235
  });
213
236
  return;
214
237
  }
215
- const approvalEntry = this.#approvals.get(toolName) ?? {
238
+ const approvalEntry = this.#approvals.get(approvalKey) ?? {
216
239
  approved: [],
217
240
  rejected: [],
218
241
  };
@@ -224,7 +247,7 @@ export class RunContext {
224
247
  approvalEntry.messages[callId] = message;
225
248
  }
226
249
  }
227
- this.#approvals.set(toolName, approvalEntry);
250
+ this.#approvals.set(approvalKey, approvalEntry);
228
251
  }
229
252
  /**
230
253
  * Creates a child context that shares approvals and usage, with tool input set.
@@ -255,5 +278,31 @@ export class RunContext {
255
278
  }
256
279
  return json;
257
280
  }
281
+ #getApprovalEntries(toolName) {
282
+ return getApprovalToolNameCandidates(toolName)
283
+ .map((candidate) => this.#approvals.get(candidate))
284
+ .filter((approval) => approval !== undefined);
285
+ }
286
+ #getApprovalStorageKey(toolName) {
287
+ return (getApprovalToolNameCandidates(toolName).find((candidate) => this.#approvals.has(candidate)) ?? toolName);
288
+ }
289
+ #setApprovalRecord(toolName, incoming) {
290
+ const candidates = getApprovalToolNameCandidates(toolName);
291
+ const existingEntries = candidates
292
+ .map((candidate) => this.#approvals.get(candidate))
293
+ .filter((approval) => approval !== undefined);
294
+ const mergedExisting = existingEntries.reduce((current, approval) => current ? mergeApprovalRecords(current, approval) : approval, undefined);
295
+ const merged = mergedExisting
296
+ ? mergeApprovalRecords(mergedExisting, incoming)
297
+ : incoming;
298
+ const targetKey = candidates.find((candidate) => this.#approvals.has(candidate)) ??
299
+ toolName;
300
+ this.#approvals.set(targetKey, merged);
301
+ for (const candidate of candidates) {
302
+ if (candidate !== targetKey) {
303
+ this.#approvals.delete(candidate);
304
+ }
305
+ }
306
+ }
258
307
  }
259
308
  //# sourceMappingURL=runContext.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"runContext.mjs","sourceRoot":"","sources":["../src/runContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runContext.mjs","sourceRoot":"","sources":["../src/runContext.ts"],"names":[],"mappings":"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"}