@openrouter/agent 0.9.0 → 0.11.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 (155) hide show
  1. package/README.md +267 -2
  2. package/THIRD_PARTY_NOTICES.md +25 -0
  3. package/esm/index.d.ts +4 -3
  4. package/esm/index.d.ts.map +1 -1
  5. package/esm/index.js +1 -1
  6. package/esm/index.js.map +1 -1
  7. package/esm/inner-loop/call-model.d.ts.map +1 -1
  8. package/esm/inner-loop/call-model.js +26 -7
  9. package/esm/inner-loop/call-model.js.map +1 -1
  10. package/esm/lib/agent-tool.d.ts +1 -1
  11. package/esm/lib/agent-tool.d.ts.map +1 -1
  12. package/esm/lib/agent-tool.js.map +1 -1
  13. package/esm/lib/async-params.d.ts +23 -1
  14. package/esm/lib/async-params.d.ts.map +1 -1
  15. package/esm/lib/async-params.js +26 -1
  16. package/esm/lib/async-params.js.map +1 -1
  17. package/esm/lib/conversation-state.d.ts +1 -1
  18. package/esm/lib/conversation-state.d.ts.map +1 -1
  19. package/esm/lib/conversation-state.js +48 -13
  20. package/esm/lib/conversation-state.js.map +1 -1
  21. package/esm/lib/hooks-schemas.d.ts +3 -7
  22. package/esm/lib/hooks-schemas.d.ts.map +1 -1
  23. package/esm/lib/hooks-schemas.js.map +1 -1
  24. package/esm/lib/model-result.d.ts +32 -4
  25. package/esm/lib/model-result.d.ts.map +1 -1
  26. package/esm/lib/model-result.js +444 -128
  27. package/esm/lib/model-result.js.map +1 -1
  28. package/esm/lib/next-turn-params.d.ts.map +1 -1
  29. package/esm/lib/next-turn-params.js +3 -1
  30. package/esm/lib/next-turn-params.js.map +1 -1
  31. package/esm/lib/next-turn-params.test.js +72 -0
  32. package/esm/lib/next-turn-params.test.js.map +1 -1
  33. package/esm/lib/reusable-stream.d.ts +30 -3
  34. package/esm/lib/reusable-stream.d.ts.map +1 -1
  35. package/esm/lib/reusable-stream.js +127 -32
  36. package/esm/lib/reusable-stream.js.map +1 -1
  37. package/esm/lib/stream-transformers.d.ts +1 -1
  38. package/esm/lib/stream-transformers.d.ts.map +1 -1
  39. package/esm/lib/stream-transformers.js.map +1 -1
  40. package/esm/lib/tool-event-broadcaster.d.ts +18 -5
  41. package/esm/lib/tool-event-broadcaster.d.ts.map +1 -1
  42. package/esm/lib/tool-event-broadcaster.js +90 -19
  43. package/esm/lib/tool-event-broadcaster.js.map +1 -1
  44. package/esm/lib/tool-set-types.d.ts +298 -0
  45. package/esm/lib/tool-set-types.d.ts.map +1 -0
  46. package/esm/lib/tool-set-types.js +2 -0
  47. package/esm/lib/tool-set-types.js.map +1 -0
  48. package/esm/lib/tool-set.d.ts +157 -0
  49. package/esm/lib/tool-set.d.ts.map +1 -0
  50. package/esm/lib/tool-set.js +473 -0
  51. package/esm/lib/tool-set.js.map +1 -0
  52. package/esm/lib/tool-types.d.ts +203 -29
  53. package/esm/lib/tool-types.d.ts.map +1 -1
  54. package/esm/lib/tool-types.js.map +1 -1
  55. package/esm/lib/tool.d.ts +47 -21
  56. package/esm/lib/tool.d.ts.map +1 -1
  57. package/esm/lib/tool.js +13 -3
  58. package/esm/lib/tool.js.map +1 -1
  59. package/esm/lib/turn-context.d.ts +1 -1
  60. package/esm/lib/turn-context.d.ts.map +1 -1
  61. package/esm/lib/turn-context.js +1 -2
  62. package/esm/lib/turn-context.js.map +1 -1
  63. package/esm/mcp/auth/auth-resolver.d.ts +14 -0
  64. package/esm/mcp/auth/auth-resolver.d.ts.map +1 -0
  65. package/esm/mcp/auth/auth-resolver.js +27 -0
  66. package/esm/mcp/auth/auth-resolver.js.map +1 -0
  67. package/esm/mcp/auth/auth-types.d.ts +33 -0
  68. package/esm/mcp/auth/auth-types.d.ts.map +1 -0
  69. package/esm/mcp/auth/auth-types.js +4 -0
  70. package/esm/mcp/auth/auth-types.js.map +1 -0
  71. package/esm/mcp/build-tools.d.ts +29 -0
  72. package/esm/mcp/build-tools.d.ts.map +1 -0
  73. package/esm/mcp/build-tools.js +80 -0
  74. package/esm/mcp/build-tools.js.map +1 -0
  75. package/esm/mcp/cache/cache-store.d.ts +24 -0
  76. package/esm/mcp/cache/cache-store.d.ts.map +1 -0
  77. package/esm/mcp/cache/cache-store.js +20 -0
  78. package/esm/mcp/cache/cache-store.js.map +1 -0
  79. package/esm/mcp/cache/cache-types.d.ts +71 -0
  80. package/esm/mcp/cache/cache-types.d.ts.map +1 -0
  81. package/esm/mcp/cache/cache-types.js +49 -0
  82. package/esm/mcp/cache/cache-types.js.map +1 -0
  83. package/esm/mcp/cache/serialize.d.ts +25 -0
  84. package/esm/mcp/cache/serialize.d.ts.map +1 -0
  85. package/esm/mcp/cache/serialize.js +96 -0
  86. package/esm/mcp/cache/serialize.js.map +1 -0
  87. package/esm/mcp/close-quietly.d.ts +24 -0
  88. package/esm/mcp/close-quietly.d.ts.map +1 -0
  89. package/esm/mcp/close-quietly.js +30 -0
  90. package/esm/mcp/close-quietly.js.map +1 -0
  91. package/esm/mcp/create-mcp-tools.d.ts +13 -0
  92. package/esm/mcp/create-mcp-tools.d.ts.map +1 -0
  93. package/esm/mcp/create-mcp-tools.js +87 -0
  94. package/esm/mcp/create-mcp-tools.js.map +1 -0
  95. package/esm/mcp/elicitation.d.ts +11 -0
  96. package/esm/mcp/elicitation.d.ts.map +1 -0
  97. package/esm/mcp/elicitation.js +51 -0
  98. package/esm/mcp/elicitation.js.map +1 -0
  99. package/esm/mcp/errors.d.ts +91 -0
  100. package/esm/mcp/errors.d.ts.map +1 -0
  101. package/esm/mcp/errors.js +91 -0
  102. package/esm/mcp/errors.js.map +1 -0
  103. package/esm/mcp/handle.d.ts +66 -0
  104. package/esm/mcp/handle.d.ts.map +1 -0
  105. package/esm/mcp/handle.js +323 -0
  106. package/esm/mcp/handle.js.map +1 -0
  107. package/esm/mcp/index.d.ts +13 -0
  108. package/esm/mcp/index.d.ts.map +1 -0
  109. package/esm/mcp/index.js +11 -0
  110. package/esm/mcp/index.js.map +1 -0
  111. package/esm/mcp/mcp-connection.d.ts +150 -0
  112. package/esm/mcp/mcp-connection.d.ts.map +1 -0
  113. package/esm/mcp/mcp-connection.js +478 -0
  114. package/esm/mcp/mcp-connection.js.map +1 -0
  115. package/esm/mcp/mcp-sdk.d.ts +10 -0
  116. package/esm/mcp/mcp-sdk.d.ts.map +1 -0
  117. package/esm/mcp/mcp-sdk.js +37 -0
  118. package/esm/mcp/mcp-sdk.js.map +1 -0
  119. package/esm/mcp/rehydrate.d.ts +76 -0
  120. package/esm/mcp/rehydrate.d.ts.map +1 -0
  121. package/esm/mcp/rehydrate.js +505 -0
  122. package/esm/mcp/rehydrate.js.map +1 -0
  123. package/esm/mcp/resource-tools.d.ts +17 -0
  124. package/esm/mcp/resource-tools.d.ts.map +1 -0
  125. package/esm/mcp/resource-tools.js +155 -0
  126. package/esm/mcp/resource-tools.js.map +1 -0
  127. package/esm/mcp/result-mapper.d.ts +19 -0
  128. package/esm/mcp/result-mapper.d.ts.map +1 -0
  129. package/esm/mcp/result-mapper.js +40 -0
  130. package/esm/mcp/result-mapper.js.map +1 -0
  131. package/esm/mcp/schema/json-schema-guards.d.ts +14 -0
  132. package/esm/mcp/schema/json-schema-guards.d.ts.map +1 -0
  133. package/esm/mcp/schema/json-schema-guards.js +19 -0
  134. package/esm/mcp/schema/json-schema-guards.js.map +1 -0
  135. package/esm/mcp/schema/json-schema-to-zod.d.ts +20 -0
  136. package/esm/mcp/schema/json-schema-to-zod.d.ts.map +1 -0
  137. package/esm/mcp/schema/json-schema-to-zod.js +72 -0
  138. package/esm/mcp/schema/json-schema-to-zod.js.map +1 -0
  139. package/esm/mcp/tool-wrapper.d.ts +41 -0
  140. package/esm/mcp/tool-wrapper.d.ts.map +1 -0
  141. package/esm/mcp/tool-wrapper.js +131 -0
  142. package/esm/mcp/tool-wrapper.js.map +1 -0
  143. package/esm/mcp/transport-types.d.ts +45 -0
  144. package/esm/mcp/transport-types.d.ts.map +1 -0
  145. package/esm/mcp/transport-types.js +2 -0
  146. package/esm/mcp/transport-types.js.map +1 -0
  147. package/esm/mcp/types.d.ts +119 -0
  148. package/esm/mcp/types.d.ts.map +1 -0
  149. package/esm/mcp/types.js +2 -0
  150. package/esm/mcp/types.js.map +1 -0
  151. package/esm/mcp/version.d.ts +3 -0
  152. package/esm/mcp/version.d.ts.map +1 -0
  153. package/esm/mcp/version.js +5 -0
  154. package/esm/mcp/version.js.map +1 -0
  155. package/package.json +48 -7
@@ -0,0 +1,473 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _ToolSet_instances, _a, _ToolSet_index, _ToolSet_activation, _ToolSet_situations, _ToolSet_mutable, _ToolSet_assertKnown, _ToolSet_withPartitionMutation, _ToolSet_normalizePredicateArg, _ToolSet_resolveWithActivation, _ToolSet_evaluate, _ToolSet_toStatusEntry;
13
+ import { TOOL_SET_SNAPSHOT } from './async-params.js';
14
+ import { isServerTool } from './tool-types.js';
15
+ function toIdArray(names) {
16
+ return typeof names === 'string'
17
+ ? [
18
+ names,
19
+ ]
20
+ : names;
21
+ }
22
+ function isPredicateMap(value) {
23
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
24
+ }
25
+ function defaultServerId(tool) {
26
+ return typeof tool.id === 'string' && tool.id.length > 0 ? tool.id : `server:${tool.config.type}`;
27
+ }
28
+ function toolId(tool) {
29
+ if (isServerTool(tool)) {
30
+ return defaultServerId(tool);
31
+ }
32
+ // After the ServerToolBase narrow, remaining tools are client tools with function.name.
33
+ return tool.function.name;
34
+ }
35
+ function indexTools(tools) {
36
+ const toolById = new Map();
37
+ const orderedIds = [];
38
+ const clientNames = new Set();
39
+ const serverIds = new Set();
40
+ for (const t of tools) {
41
+ const id = toolId(t);
42
+ if (toolById.has(id)) {
43
+ throw new Error(`Duplicate tool ID: "${id}"`);
44
+ }
45
+ toolById.set(id, t);
46
+ orderedIds.push(id);
47
+ if (isServerTool(t)) {
48
+ serverIds.add(id);
49
+ }
50
+ else {
51
+ clientNames.add(id);
52
+ }
53
+ }
54
+ return {
55
+ orderedTools: tools,
56
+ orderedIds: orderedIds,
57
+ toolById,
58
+ clientNames,
59
+ serverIds,
60
+ };
61
+ }
62
+ function cloneActivationMap(activation) {
63
+ return new Map(activation);
64
+ }
65
+ function cloneSituationsMap(situations) {
66
+ return new Map(situations);
67
+ }
68
+ function normalizeConditionalRule(situation, toolId, rule) {
69
+ if (typeof rule === 'function') {
70
+ return {
71
+ mode: 'activateWhen',
72
+ predicate: rule,
73
+ };
74
+ }
75
+ if (typeof rule !== 'object' ||
76
+ rule === null ||
77
+ !('predicate' in rule) ||
78
+ typeof rule.predicate !== 'function' ||
79
+ ('mode' in rule &&
80
+ rule.mode !== undefined &&
81
+ rule.mode !== 'activateWhen' &&
82
+ rule.mode !== 'deactivateWhen')) {
83
+ throw new Error(`Situation "${situation}": conditional rule for tool "${toolId}" must be a function or { mode, predicate } object`);
84
+ }
85
+ const mode = 'mode' in rule ? rule.mode : undefined;
86
+ return {
87
+ mode: (mode ?? 'activateWhen'),
88
+ predicate: rule.predicate,
89
+ };
90
+ }
91
+ /**
92
+ * Immutable-by-default stateful set of tools with a three-way static
93
+ * partition (enabled / disabled / conditional) and optional named situations.
94
+ *
95
+ * @typeParam TTools - Concrete ordered tools tuple
96
+ * @typeParam TShared - Shared context shape for predicates
97
+ * @typeParam P - Compile-time partition of tool-set IDs
98
+ * @typeParam Sit - Named situation registry
99
+ * @typeParam TMutable - Whether this instance mutates in place. Mutable
100
+ * instances deliberately carry a single widened `P`/`Sit` for their entire
101
+ * lifetime (see {@link Mutated}) so that every alias stays sound; immutable
102
+ * instances keep the exact, precisely-refined `P`/`Sit` per instance.
103
+ */
104
+ export class ToolSet {
105
+ constructor(index, activation, situations, mutable) {
106
+ _ToolSet_instances.add(this);
107
+ _ToolSet_index.set(this, void 0);
108
+ _ToolSet_activation.set(this, void 0);
109
+ _ToolSet_situations.set(this, void 0);
110
+ _ToolSet_mutable.set(this, void 0);
111
+ __classPrivateFieldSet(this, _ToolSet_index, index, "f");
112
+ __classPrivateFieldSet(this, _ToolSet_activation, activation, "f");
113
+ __classPrivateFieldSet(this, _ToolSet_situations, situations, "f");
114
+ __classPrivateFieldSet(this, _ToolSet_mutable, mutable, "f");
115
+ }
116
+ static create(opts) {
117
+ const mutable = opts.mutable ?? false;
118
+ if (mutable) {
119
+ return new _a(indexTools(opts.tools), new Map(), new Map(), true);
120
+ }
121
+ return new _a(indexTools(opts.tools), new Map(), new Map(), false);
122
+ }
123
+ /** All tools in construction order, regardless of activation state. */
124
+ get tools() {
125
+ return __classPrivateFieldGet(this, _ToolSet_index, "f").orderedTools;
126
+ }
127
+ activate(names) {
128
+ const list = toIdArray(names);
129
+ for (const n of list) {
130
+ __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_assertKnown).call(this, n);
131
+ }
132
+ return __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_withPartitionMutation).call(this, (activation) => {
133
+ for (const n of list) {
134
+ activation.set(n, {
135
+ kind: 'static',
136
+ active: true,
137
+ source: 'activate',
138
+ });
139
+ }
140
+ });
141
+ }
142
+ deactivate(names) {
143
+ const list = toIdArray(names);
144
+ for (const n of list) {
145
+ __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_assertKnown).call(this, n);
146
+ }
147
+ return __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_withPartitionMutation).call(this, (activation) => {
148
+ for (const n of list) {
149
+ activation.set(n, {
150
+ kind: 'static',
151
+ active: false,
152
+ source: 'deactivate',
153
+ });
154
+ }
155
+ });
156
+ }
157
+ activateWhen(nameOrMap, predicate) {
158
+ const entries = __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_normalizePredicateArg).call(this, nameOrMap, predicate);
159
+ return __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_withPartitionMutation).call(this, (activation) => {
160
+ for (const [n, p] of entries) {
161
+ activation.set(n, {
162
+ kind: 'activateWhen',
163
+ predicate: p,
164
+ source: 'activateWhen',
165
+ });
166
+ }
167
+ });
168
+ }
169
+ deactivateWhen(nameOrMap, predicate) {
170
+ const entries = __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_normalizePredicateArg).call(this, nameOrMap, predicate);
171
+ return __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_withPartitionMutation).call(this, (activation) => {
172
+ for (const [n, p] of entries) {
173
+ activation.set(n, {
174
+ kind: 'deactivateWhen',
175
+ predicate: p,
176
+ source: 'deactivateWhen',
177
+ });
178
+ }
179
+ });
180
+ }
181
+ /**
182
+ * Register named declarative situations. Each situation overlays the base
183
+ * partition — ids it does not mention keep whatever the base set declares.
184
+ *
185
+ * Replaces any previously defined situations (last-call-wins at the registry level).
186
+ */
187
+ defineSituations(situations) {
188
+ const next = new Map();
189
+ for (const [name, config] of Object.entries(situations)) {
190
+ const enabled = config.enabled ?? [];
191
+ const disabled = config.disabled ?? [];
192
+ const conditionalEntries = Object.entries(config.conditional ?? {}).filter((entry) => entry[1] !== undefined);
193
+ const seen = new Set();
194
+ const record = (id, bucket) => {
195
+ __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_assertKnown).call(this, id);
196
+ if (seen.has(id)) {
197
+ throw new Error(`Situation "${name}" lists tool "${id}" more than once (across enabled/disabled/conditional)`);
198
+ }
199
+ seen.add(id);
200
+ void bucket;
201
+ };
202
+ for (const id of enabled) {
203
+ record(id, 'enabled');
204
+ }
205
+ for (const id of disabled) {
206
+ record(id, 'disabled');
207
+ }
208
+ for (const [id] of conditionalEntries) {
209
+ record(id, 'conditional');
210
+ }
211
+ next.set(name, {
212
+ enabled: [
213
+ ...enabled,
214
+ ],
215
+ disabled: [
216
+ ...disabled,
217
+ ],
218
+ conditional: conditionalEntries.map(([id, rule]) => {
219
+ const normalized = normalizeConditionalRule(name, id, rule);
220
+ return {
221
+ id,
222
+ mode: normalized.mode,
223
+ predicate: normalized.predicate,
224
+ };
225
+ }),
226
+ });
227
+ }
228
+ if (__classPrivateFieldGet(this, _ToolSet_mutable, "f")) {
229
+ // Same rationale as #withPartitionMutation: `this` keeps its existing
230
+ // (already widened) static type instead of claiming a freshly refined
231
+ // `InferSituationMap<M>`, so every alias stays statically consistent.
232
+ __classPrivateFieldGet(this, _ToolSet_situations, "f").clear();
233
+ for (const [k, v] of next) {
234
+ __classPrivateFieldGet(this, _ToolSet_situations, "f").set(k, v);
235
+ }
236
+ return this;
237
+ }
238
+ return new _a(__classPrivateFieldGet(this, _ToolSet_index, "f"), cloneActivationMap(__classPrivateFieldGet(this, _ToolSet_activation, "f")), next, false);
239
+ }
240
+ /**
241
+ * Resolve against the base partition (no situation overlay).
242
+ * When the partition is purely static, the active tool tuple is exact at
243
+ * compile time. Conditional ids expand the compile-time upper bound.
244
+ */
245
+ resolve(input) {
246
+ return __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_resolveWithActivation).call(this, __classPrivateFieldGet(this, _ToolSet_activation, "f"), input);
247
+ }
248
+ /**
249
+ * Back-compat alias for {@link resolve}. Prefer `resolve` for new code.
250
+ *
251
+ * Returns the full snapshot, including metadata (`enabled`, `disabled`,
252
+ * `statusByTool`) that is not a valid `callModel` input. Only `tools` and
253
+ * `activeTools` are meant to reach `callModel` — spread those two fields
254
+ * (or use `resolve(...).callModel`, which contains exactly them),
255
+ * not the whole return value of this method:
256
+ *
257
+ * ```ts
258
+ * const { tools, activeTools } = toolSet.inferTools();
259
+ * callModel(client, { model, input, tools, activeTools });
260
+ * ```
261
+ *
262
+ * This result carries an internal marker so `callModel` can strip its
263
+ * metadata when the whole object is spread. Identically named request fields
264
+ * on ordinary, unmarked inputs are preserved.
265
+ */
266
+ inferTools(input) {
267
+ const snapshot = this.resolve(input);
268
+ return {
269
+ tools: [
270
+ ...snapshot.tools,
271
+ ],
272
+ activeTools: [
273
+ ...snapshot.activeTools,
274
+ ],
275
+ enabled: snapshot.enabled,
276
+ disabled: snapshot.disabled,
277
+ statusByTool: snapshot.statusByTool,
278
+ [TOOL_SET_SNAPSHOT]: true,
279
+ };
280
+ }
281
+ /**
282
+ * Resolve a previously-defined named situation. Static situations return
283
+ * exact filtered tool / name tuples at compile time; situations with
284
+ * conditional rules return the sound upper bound, while runtime arrays and
285
+ * `statusByTool` remain exact.
286
+ */
287
+ resolveSituation(name, input) {
288
+ const situation = __classPrivateFieldGet(this, _ToolSet_situations, "f").get(name);
289
+ if (!situation) {
290
+ throw new Error(`Unknown situation: "${String(name)}"`);
291
+ }
292
+ const activation = cloneActivationMap(__classPrivateFieldGet(this, _ToolSet_activation, "f"));
293
+ for (const id of situation.enabled) {
294
+ activation.set(id, {
295
+ kind: 'static',
296
+ active: true,
297
+ source: 'situation',
298
+ });
299
+ }
300
+ for (const id of situation.disabled) {
301
+ activation.set(id, {
302
+ kind: 'static',
303
+ active: false,
304
+ source: 'situation',
305
+ });
306
+ }
307
+ for (const entry of situation.conditional) {
308
+ activation.set(entry.id, {
309
+ kind: entry.mode,
310
+ predicate: entry.predicate,
311
+ source: 'situation',
312
+ });
313
+ }
314
+ return __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_resolveWithActivation).call(this, activation, input);
315
+ }
316
+ clone(opts) {
317
+ const mutable = opts?.mutable ?? __classPrivateFieldGet(this, _ToolSet_mutable, "f");
318
+ if (opts?.mutable === true && !__classPrivateFieldGet(this, _ToolSet_mutable, "f")) {
319
+ return new _a(__classPrivateFieldGet(this, _ToolSet_index, "f"), cloneActivationMap(__classPrivateFieldGet(this, _ToolSet_activation, "f")), cloneSituationsMap(__classPrivateFieldGet(this, _ToolSet_situations, "f")), true);
320
+ }
321
+ return new _a(__classPrivateFieldGet(this, _ToolSet_index, "f"), cloneActivationMap(__classPrivateFieldGet(this, _ToolSet_activation, "f")), cloneSituationsMap(__classPrivateFieldGet(this, _ToolSet_situations, "f")), mutable);
322
+ }
323
+ }
324
+ _a = ToolSet, _ToolSet_index = new WeakMap(), _ToolSet_activation = new WeakMap(), _ToolSet_situations = new WeakMap(), _ToolSet_mutable = new WeakMap(), _ToolSet_instances = new WeakSet(), _ToolSet_assertKnown = function _ToolSet_assertKnown(id) {
325
+ if (!__classPrivateFieldGet(this, _ToolSet_index, "f").toolById.has(id)) {
326
+ throw new Error(`Unknown tool: "${id}"`);
327
+ }
328
+ }, _ToolSet_withPartitionMutation = function _ToolSet_withPartitionMutation(mutate) {
329
+ if (__classPrivateFieldGet(this, _ToolSet_mutable, "f")) {
330
+ // Mutable mode mutates the shared runtime object in place and returns
331
+ // `this` unchanged: every alias of a mutable instance already carries
332
+ // the same widened `P`/`Sit`, so returning that same (unrefined) type
333
+ // here — instead of a freshly refined `NextP` — keeps all aliases
334
+ // statically consistent with the one object they actually reference.
335
+ mutate(__classPrivateFieldGet(this, _ToolSet_activation, "f"));
336
+ return this;
337
+ }
338
+ const nextActivation = cloneActivationMap(__classPrivateFieldGet(this, _ToolSet_activation, "f"));
339
+ mutate(nextActivation);
340
+ return new _a(__classPrivateFieldGet(this, _ToolSet_index, "f"), nextActivation, __classPrivateFieldGet(this, _ToolSet_situations, "f"), false);
341
+ }, _ToolSet_normalizePredicateArg = function _ToolSet_normalizePredicateArg(nameOrMap, predicate) {
342
+ if (typeof nameOrMap === 'string') {
343
+ if (!predicate) {
344
+ throw new Error('activateWhen/deactivateWhen requires a predicate when called with a name');
345
+ }
346
+ __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_assertKnown).call(this, nameOrMap);
347
+ return [
348
+ [
349
+ nameOrMap,
350
+ predicate,
351
+ ],
352
+ ];
353
+ }
354
+ if (!isPredicateMap(nameOrMap)) {
355
+ throw new Error('activateWhen/deactivateWhen requires a name+predicate or predicate map');
356
+ }
357
+ const entries = Object.entries(nameOrMap).filter((entry) => typeof entry[1] === 'function');
358
+ for (const [n] of entries) {
359
+ __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_assertKnown).call(this, n);
360
+ }
361
+ return entries;
362
+ }, _ToolSet_resolveWithActivation = function _ToolSet_resolveWithActivation(activation, input) {
363
+ const resolvedInput = input ?? {};
364
+ const tools = [];
365
+ const activeTools = [];
366
+ const enabled = [];
367
+ const disabled = [];
368
+ // Object.create(null), not `{}`: tool IDs are caller-supplied strings
369
+ // (serverTool only rejects the empty string), so `__proto__` is a valid
370
+ // ID. Assigning `statusByTool['__proto__'] = ...` on a `{}` object would
371
+ // invoke the inherited setter and reassign the object's prototype
372
+ // instead of creating an own property, silently dropping that ID from
373
+ // the exhaustive map. Same reasoning as extractServerToolIdentity in
374
+ // packages/agent/src/lib/model-result.ts and the subset builder in
375
+ // packages/agent/src/lib/doom-loop.ts.
376
+ const statusByTool = Object.create(null);
377
+ for (const id of __classPrivateFieldGet(this, _ToolSet_index, "f").orderedIds) {
378
+ const tool = __classPrivateFieldGet(this, _ToolSet_index, "f").toolById.get(id);
379
+ if (!tool) {
380
+ continue;
381
+ }
382
+ const { active, entry } = __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_evaluate).call(this, id, activation, resolvedInput);
383
+ const status = __classPrivateFieldGet(this, _ToolSet_instances, "m", _ToolSet_toStatusEntry).call(this, active, entry);
384
+ statusByTool[id] = status;
385
+ if (active) {
386
+ tools.push(tool);
387
+ enabled.push(id);
388
+ if (!isServerTool(tool)) {
389
+ activeTools.push(id);
390
+ }
391
+ }
392
+ else {
393
+ disabled.push(id);
394
+ }
395
+ }
396
+ return {
397
+ tools,
398
+ activeTools,
399
+ callModel: {
400
+ tools,
401
+ activeTools,
402
+ },
403
+ enabled,
404
+ disabled,
405
+ statusByTool,
406
+ [TOOL_SET_SNAPSHOT]: true,
407
+ };
408
+ }, _ToolSet_evaluate = function _ToolSet_evaluate(id, activation, input) {
409
+ const entry = activation.get(id);
410
+ if (!entry) {
411
+ return {
412
+ active: true,
413
+ entry: undefined,
414
+ };
415
+ }
416
+ if (entry.kind === 'static') {
417
+ return {
418
+ active: entry.active,
419
+ entry,
420
+ };
421
+ }
422
+ if (entry.kind === 'activateWhen') {
423
+ return {
424
+ active: entry.predicate(input) === true,
425
+ entry,
426
+ };
427
+ }
428
+ return {
429
+ active: entry.predicate(input) !== true,
430
+ entry,
431
+ };
432
+ }, _ToolSet_toStatusEntry = function _ToolSet_toStatusEntry(active, entry) {
433
+ if (!entry) {
434
+ return {
435
+ enabled: active,
436
+ reason: 'default',
437
+ };
438
+ }
439
+ if (entry.kind === 'static') {
440
+ const directive = entry.active ? 'activate' : 'deactivate';
441
+ const reason = entry.source === 'situation'
442
+ ? 'situation'
443
+ : entry.source === 'default'
444
+ ? 'default'
445
+ : directive;
446
+ return {
447
+ enabled: active,
448
+ reason,
449
+ directive,
450
+ };
451
+ }
452
+ const directive = entry.kind;
453
+ const reason = entry.source === 'situation' ? 'situation' : directive;
454
+ return {
455
+ enabled: active,
456
+ reason,
457
+ directive,
458
+ predicate: true,
459
+ };
460
+ };
461
+ export function createToolSet(opts) {
462
+ if (opts.mutable) {
463
+ return ToolSet.create({
464
+ tools: opts.tools,
465
+ mutable: true,
466
+ });
467
+ }
468
+ return ToolSet.create({
469
+ tools: opts.tools,
470
+ mutable: false,
471
+ });
472
+ }
473
+ //# sourceMappingURL=tool-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-set.js","sourceRoot":"","sources":["../../src/lib/tool-set.ts"],"names":[],"mappings":"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"}