@openrouter/agent 0.7.1 → 0.8.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 (64) hide show
  1. package/README.md +248 -17
  2. package/esm/index.d.ts +8 -5
  3. package/esm/index.d.ts.map +1 -1
  4. package/esm/index.js +12 -4
  5. package/esm/index.js.map +1 -1
  6. package/esm/inner-loop/call-model.d.ts +8 -5
  7. package/esm/inner-loop/call-model.d.ts.map +1 -1
  8. package/esm/inner-loop/call-model.js +16 -6
  9. package/esm/inner-loop/call-model.js.map +1 -1
  10. package/esm/lib/async-params.d.ts +25 -6
  11. package/esm/lib/async-params.d.ts.map +1 -1
  12. package/esm/lib/async-params.js +3 -1
  13. package/esm/lib/async-params.js.map +1 -1
  14. package/esm/lib/conversation-state.d.ts +44 -1
  15. package/esm/lib/conversation-state.d.ts.map +1 -1
  16. package/esm/lib/conversation-state.js +111 -0
  17. package/esm/lib/conversation-state.js.map +1 -1
  18. package/esm/lib/hooks-emit.d.ts +50 -0
  19. package/esm/lib/hooks-emit.d.ts.map +1 -0
  20. package/esm/lib/hooks-emit.js +307 -0
  21. package/esm/lib/hooks-emit.js.map +1 -0
  22. package/esm/lib/hooks-manager.d.ts +141 -0
  23. package/esm/lib/hooks-manager.d.ts.map +1 -0
  24. package/esm/lib/hooks-manager.js +282 -0
  25. package/esm/lib/hooks-manager.js.map +1 -0
  26. package/esm/lib/hooks-matchers.d.ts +12 -0
  27. package/esm/lib/hooks-matchers.d.ts.map +1 -0
  28. package/esm/lib/hooks-matchers.js +26 -0
  29. package/esm/lib/hooks-matchers.js.map +1 -0
  30. package/esm/lib/hooks-resolve.d.ts +17 -0
  31. package/esm/lib/hooks-resolve.d.ts.map +1 -0
  32. package/esm/lib/hooks-resolve.js +42 -0
  33. package/esm/lib/hooks-resolve.js.map +1 -0
  34. package/esm/lib/hooks-schemas.d.ts +188 -0
  35. package/esm/lib/hooks-schemas.d.ts.map +1 -0
  36. package/esm/lib/hooks-schemas.js +184 -0
  37. package/esm/lib/hooks-schemas.js.map +1 -0
  38. package/esm/lib/hooks-types.d.ts +174 -0
  39. package/esm/lib/hooks-types.d.ts.map +1 -0
  40. package/esm/lib/hooks-types.js +45 -0
  41. package/esm/lib/hooks-types.js.map +1 -0
  42. package/esm/lib/model-result.d.ts +209 -9
  43. package/esm/lib/model-result.d.ts.map +1 -1
  44. package/esm/lib/model-result.js +1397 -348
  45. package/esm/lib/model-result.js.map +1 -1
  46. package/esm/lib/reusable-stream.d.ts +6 -0
  47. package/esm/lib/reusable-stream.d.ts.map +1 -1
  48. package/esm/lib/reusable-stream.js +8 -0
  49. package/esm/lib/reusable-stream.js.map +1 -1
  50. package/esm/lib/tool-executor.d.ts.map +1 -1
  51. package/esm/lib/tool-executor.js +11 -1
  52. package/esm/lib/tool-executor.js.map +1 -1
  53. package/esm/lib/tool-orchestrator.d.ts.map +1 -1
  54. package/esm/lib/tool-orchestrator.js +4 -1
  55. package/esm/lib/tool-orchestrator.js.map +1 -1
  56. package/esm/lib/tool-types.d.ts +137 -45
  57. package/esm/lib/tool-types.d.ts.map +1 -1
  58. package/esm/lib/tool-types.js +13 -0
  59. package/esm/lib/tool-types.js.map +1 -1
  60. package/esm/lib/tool.d.ts +35 -25
  61. package/esm/lib/tool.d.ts.map +1 -1
  62. package/esm/lib/tool.js +19 -0
  63. package/esm/lib/tool.js.map +1 -1
  64. package/package.json +7 -3
@@ -3,9 +3,21 @@ import type { RequestOptions } from '@openrouter/sdk/lib/sdks';
3
3
  import type * as models from '@openrouter/sdk/models';
4
4
  import type { $ZodObject, $ZodShape } from 'zod/v4/core';
5
5
  import type { CallModelInput } from './async-params.js';
6
+ import type { HooksManager } from './hooks-manager.js';
6
7
  import type { StreamableOutputItem } from './stream-transformers.js';
7
8
  import type { ContextInput } from './tool-context.js';
8
9
  import type { ConversationState, InferToolEventsUnion, InferToolOutputsUnion, ParsedToolCall, ResponseStreamEvent, StateAccessor, StopWhen, Tool, ToolContextMapWithShared, ToolStreamEvent, TurnContext } from './tool-types.js';
10
+ /**
11
+ * Default directive appended as a final user message on the forced final
12
+ * turn (`allowFinalResponse` defaulting to on, or explicitly `true`).
13
+ * Forbidding tools via `toolChoice: 'none'` alone is not enough: models
14
+ * that emit tool-call syntax as text (e.g. GLM) will attempt another call
15
+ * and leak it into `content` as unparsed `<tool_call>…` text unless they
16
+ * are told this is the final turn.
17
+ * Pass a non-empty string to `allowFinalResponse` to override the wording,
18
+ * or `''` to append no message at all (legacy behavior).
19
+ */
20
+ export declare const DEFAULT_FINAL_RESPONSE_DIRECTIVE = "You have reached the tool-use limit, and tools are no longer available. Do not attempt to call any more tools. Using the information you already have, write your final answer now.";
9
21
  export interface GetResponseOptions<TTools extends readonly Tool[], TShared extends Record<string, unknown> = Record<string, never>> {
10
22
  request: CallModelInput<TTools, TShared>;
11
23
  client: OpenRouterCore;
@@ -35,6 +47,15 @@ export interface GetResponseOptions<TTools extends readonly Tool[], TShared exte
35
47
  * a final user message.
36
48
  */
37
49
  allowFinalResponse?: boolean | string;
50
+ /**
51
+ * When true, always throw if the final response has an empty `output` array
52
+ * (legacy behavior). Default false: after at least one completed tool
53
+ * execution round, an empty final turn is retried once and then accepted
54
+ * so tool-terminal runs are not reported as failures.
55
+ */
56
+ strictFinalResponse?: boolean;
57
+ /** Hook system for lifecycle events */
58
+ hooks?: HooksManager;
38
59
  }
39
60
  /**
40
61
  * A wrapper around a streaming response that provides multiple consumption patterns.
@@ -67,6 +88,7 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
67
88
  private allToolExecutionRounds;
68
89
  private resolvedRequest;
69
90
  private pendingFreshItems;
91
+ private resumingFromClientTools;
70
92
  private stateAccessor;
71
93
  private currentState;
72
94
  private requireApprovalFn;
@@ -77,6 +99,12 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
77
99
  private initialStreamPipeStarted;
78
100
  private initialPipePromise;
79
101
  private contextStore;
102
+ private readonly hooksManager;
103
+ private sessionStartEmitted;
104
+ private sessionEndEmitted;
105
+ private readonly hookDeniedCalls;
106
+ private pendingModelCall;
107
+ private readonly sessionUsage;
80
108
  constructor(options: GetResponseOptions<TTools, TShared>);
81
109
  /**
82
110
  * Get or create the unified turn broadcaster (lazy initialization).
@@ -94,6 +122,12 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
94
122
  * Emits turn.start / turn.end delimiters around the stream events.
95
123
  */
96
124
  private pipeAndConsumeStream;
125
+ /**
126
+ * Resolve a tool's result `source` from its call name by looking it up in the
127
+ * configured tools. Used where the concrete tool reference isn't in scope
128
+ * (e.g. a rejected execution). Defaults to `'client'` when not found.
129
+ */
130
+ private toolSourceByName;
97
131
  /**
98
132
  * Push a tool result event to both the legacy tool event broadcaster
99
133
  * and the unified turn broadcaster.
@@ -114,6 +148,12 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
114
148
  * Only requires 'output' field and absence of readable stream behavior
115
149
  */
116
150
  private isNonStreamingResponse;
151
+ /**
152
+ * Materialize a betaResponsesSend result value into a completed response:
153
+ * streaming values are consumed to completion (through the turn
154
+ * broadcaster when one is attached), non-streaming values pass through.
155
+ */
156
+ private materializeResponse;
117
157
  /**
118
158
  * Get initial response from stream or cached final response.
119
159
  * Consumes the stream to completion if needed to extract the response.
@@ -149,6 +189,15 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
149
189
  * @returns True if interrupted and caller should exit, false to continue
150
190
  */
151
191
  private checkForInterruption;
192
+ /**
193
+ * Inject a user-role message into the conversation state and into the
194
+ * accumulated request input, so the next turn picks it up. Used by the
195
+ * Stop hook's `appendPrompt` to nudge the model without forcing a resume.
196
+ *
197
+ * This advances observable state (messages/input change) so the next
198
+ * iteration of the execution loop is not a no-op.
199
+ */
200
+ private injectAppendPromptMessage;
152
201
  /**
153
202
  * Check if stop conditions are met.
154
203
  * Returns true if execution should stop.
@@ -180,6 +229,109 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
180
229
  * are not classified as manual here.
181
230
  */
182
231
  private isManualToolCall;
232
+ /**
233
+ * Shared helper: execute a single tool and emit the full Pre/Post lifecycle
234
+ * hooks around it.
235
+ *
236
+ * Every code path that ultimately calls `executeTool()` for a user-visible
237
+ * tool call funnels through here so that PreToolUse/PostToolUse/
238
+ * PostToolUseFailure fire consistently — regardless of whether the tool was
239
+ * auto-executed, required approval, or was approved later.
240
+ *
241
+ * Return shape:
242
+ * - `parse_error`: `toolCall.arguments` was a raw JSON string the model
243
+ * failed to produce valid JSON for. The caller should use the prebuilt
244
+ * FunctionCallOutputItem and not execute the tool. No hooks fire.
245
+ * - `hook_blocked`: PreToolUse returned `block` (boolean true or a reason
246
+ * string). The caller should synthesize a denied result without invoking
247
+ * the tool. The FunctionCallOutputItem is prebuilt for convenience.
248
+ * - `execution`: The tool ran. `result` is the ToolExecutionResult.
249
+ * `effectiveToolCall` reflects any `mutatedInput` piped by PreToolUse.
250
+ */
251
+ private runToolWithHooks;
252
+ /**
253
+ * Build the per-emit context for lifecycle hook emits. Threads this run's
254
+ * session identity into `context.sessionId` on every emit, so a
255
+ * `HooksManager` instance shared across concurrent runs never leaks one
256
+ * run's id into another's handlers (the manager-level `setSessionId`
257
+ * default is a single mutable field and would be clobbered by the last
258
+ * run to start).
259
+ */
260
+ private hookEmitContext;
261
+ /**
262
+ * Emit SessionEnd exactly once, and only when a matching SessionStart
263
+ * actually succeeded. Safe to call from multiple teardown paths.
264
+ */
265
+ private emitSessionEndOnce;
266
+ /**
267
+ * Emit PostModelCall for a completed model response and fold its usage
268
+ * into the session aggregate. One emit per materialized response.
269
+ */
270
+ private emitPostModelCall;
271
+ /**
272
+ * Emit the parked initial/resume PostModelCall once its response has been
273
+ * materialized. No-ops when nothing is parked (e.g. the non-streaming
274
+ * branch already emitted). Safe to call from multiple materialization
275
+ * sites; the first wins.
276
+ */
277
+ private emitPendingModelCallOnce;
278
+ /**
279
+ * Emit the Stop hook when a stopWhen condition halts the loop, and decide
280
+ * whether the loop should resume.
281
+ *
282
+ * - `appendPrompt` values from all handlers are concatenated (newline
283
+ * separated) and injected as a user message. Honored independently of
284
+ * forceResume so a handler can nudge the next turn without resuming.
285
+ * - `forceResume` is honored if ANY handler returns it, capped at
286
+ * MAX_FORCE_RESUME_OVERRIDES consecutive overrides without tool
287
+ * progress (the caller resets its counter when a tool round or a fresh
288
+ * response lands).
289
+ *
290
+ * Returns 'resume' when the loop should continue, 'stop' otherwise.
291
+ */
292
+ private runStopHook;
293
+ /**
294
+ * Session teardown for the no-tools stream paths, which bypass
295
+ * executeToolsIfNeeded (the normal SessionEnd site). Emits SessionEnd once
296
+ * and drains pending hook work. Never throws: teardown must not mask the
297
+ * stream's own outcome.
298
+ */
299
+ private finishHooksSessionForStream;
300
+ /**
301
+ * initStream wrapper for the streaming getters. initStream can throw
302
+ * after SessionStart was emitted (e.g. the initial API call fails), and
303
+ * the "Stream not initialized" guard can throw right after it — on both
304
+ * paths the hook session must still be torn down (SessionEnd + drain),
305
+ * otherwise Start/End handlers that treat the pair as a contract see a
306
+ * dangling Start. Teardown is emit-once, so the tools path (which runs
307
+ * its own teardown in executeToolsIfNeeded) is unaffected.
308
+ */
309
+ private initStreamGuarded;
310
+ /**
311
+ * Emit the PermissionRequest hook before the SDK blocks for user approval.
312
+ *
313
+ * Returns the hook's collective decision:
314
+ * - `allow`: the tool should proceed as if auto-approved (skip approval gate)
315
+ * - `deny`: the tool should NOT run; caller should produce a denied result
316
+ * - `ask_user`: fall through to the existing approval flow (the default)
317
+ *
318
+ * Last-wins when multiple handlers return conflicting decisions.
319
+ */
320
+ private emitPermissionRequest;
321
+ /**
322
+ * Run the UserPromptSubmit hook, supporting both string and structured
323
+ * inputs. If a handler returns a mutated prompt, the returned object
324
+ * applies the mutation back to the original input shape (string in =
325
+ * string out, message array in = message array out with the latest user
326
+ * text replaced).
327
+ *
328
+ * Throws if any handler rejects the prompt.
329
+ *
330
+ * Returns `undefined` when the hook does nothing, or when no usable prompt
331
+ * could be extracted from a structured input (handler is skipped and a
332
+ * one-time `console.warn` in dev builds explains why).
333
+ */
334
+ private maybeRunUserPromptSubmit;
183
335
  /**
184
336
  * Execute tools that can auto-execute (don't require approval) in parallel.
185
337
  *
@@ -215,6 +367,31 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
215
367
  * @param pausedCalls - HITL tool calls whose `onToolCalled` returned `null`
216
368
  */
217
369
  private persistHitlPause;
370
+ /**
371
+ * Persist state when the loop stops due to unresolved manual (client-executed)
372
+ * tool calls — tools with neither `execute` nor `onToolCalled`.
373
+ *
374
+ * Mirrors `persistHitlPause` so callers can read the unresolved calls via
375
+ * `getPendingToolCalls()` / `getState()` after the loop ends. Uses the
376
+ * distinct status `awaiting_client_tools` so consumers can discriminate
377
+ * manual pauses from HITL pauses (`awaiting_hitl`).
378
+ *
379
+ * Resume behavior: `awaiting_client_tools` is intentionally NOT treated as a
380
+ * resumable status for `processApprovalDecisions` — manual tools are not
381
+ * approved/rejected via call IDs; the caller executes them externally and
382
+ * typically supplies `function_call_output` items as new input on the next
383
+ * `callModel`. The paused status and calls remain durable until that request
384
+ * produces a response; they are then cleared atomically with the response.
385
+ *
386
+ * Without a `StateAccessor` nothing is persisted (mirroring
387
+ * `persistHitlPause`): `getPendingToolCalls()` returns `[]` and the caller
388
+ * must read the unresolved `function_call` items off `getResponse().output`.
389
+ * Manual tools require a StateAccessor to be recoverable across processes.
390
+ *
391
+ * @param currentResponse - The response that produced the unresolved calls
392
+ * @param unresolvedCalls - Manual (or otherwise non-auto-resolvable) tool calls
393
+ */
394
+ private persistClientToolsPause;
218
395
  /**
219
396
  * Compute the `output` payload sent to the model for a successfully
220
397
  * settled tool execution. Routes through `toModelOutput` when the tool
@@ -235,6 +412,13 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
235
412
  * `pausedCalls` is non-empty rather than sending an incomplete set of
236
413
  * outputs back to the model.
237
414
  */
415
+ /**
416
+ * Execute one tool call for a round: resolve the tool, honor any pending
417
+ * PermissionRequest denial, wire preliminary-result broadcasting, and run
418
+ * the tool through the full Pre/Post lifecycle hooks. Returns a tagged
419
+ * outcome consumed by `executeToolRound`'s aggregation loop.
420
+ */
421
+ private executeSingleToolCall;
238
422
  private executeToolRound;
239
423
  /**
240
424
  * Resolve async functions for the current turn.
@@ -256,11 +440,12 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
256
440
  */
257
441
  private makeFollowupRequest;
258
442
  /**
259
- * Make a final no-tools request to coerce a text response after the loop
260
- * was halted by `stopWhen` mid-tool-call. Reuses the resolved request so
261
- * `instructions`, `model`, and other API fields ride along unchanged.
262
- * `tools`, `toolChoice`, and `parallelToolCalls` are stripped — the whole
263
- * point is to force a text turn. The caller is expected to have already
443
+ * Make a final no-tool-calls request to coerce a text response after the
444
+ * loop was halted by `stopWhen` mid-tool-call. Reuses the resolved request
445
+ * so `instructions`, `model`, and other API fields ride along unchanged.
446
+ * `tools` stays in the request with `toolChoice: 'none'` — forbidding
447
+ * calls while keeping the prompt-cache prefix intact (stripping the tools
448
+ * block would bust the cache). The caller is expected to have already
264
449
  * executed the pending tool calls and to pass their outputs in
265
450
  * `toolOutputs` so every function_call in the input has a matching output.
266
451
  */
@@ -269,9 +454,23 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
269
454
  * Validate the final response has required fields.
270
455
  *
271
456
  * @param response - The response to validate
457
+ * @param allowEmptyOutput - When true, tolerate an empty (but present) output array
272
458
  * @throws Error if response is missing required fields or has invalid output
273
459
  */
274
460
  private validateFinalResponse;
461
+ /**
462
+ * Re-send the current resolved request (same accumulated input) once.
463
+ * Used when a follow-up after tool execution returned an empty `output`.
464
+ *
465
+ * `toolChoice` is forced to `'none'` when tools are present (mirroring
466
+ * `makeFinalResponseRequest`) so the retry coerces a text turn: on the
467
+ * natural-loop-completion path the resolved request still carries tools,
468
+ * and a retry that emitted a fresh `function_call` would pass
469
+ * `validateFinalResponse` but never be executed — silently dropping a
470
+ * proposed tool call. Tools stay in the request to keep the prompt-cache
471
+ * prefix intact.
472
+ */
473
+ private retryCurrentRequest;
275
474
  /**
276
475
  * Resolve async functions in the request for a given turn context.
277
476
  * Extracts non-function fields and resolves any async parameter functions.
@@ -452,11 +651,12 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
452
651
  */
453
652
  cancel(): Promise<void>;
454
653
  /**
455
- * Check if the conversation requires human input to continue.
654
+ * Check if the conversation requires human/client input to continue.
456
655
  * Returns true when the conversation is paused waiting for caller-supplied
457
- * decisions — either approval/rejection (`awaiting_approval`) or HITL tool
458
- * resume (`awaiting_hitl`). Also returns true whenever `pendingToolCalls`
459
- * is populated regardless of status.
656
+ * decisions — approval/rejection (`awaiting_approval`), HITL tool resume
657
+ * (`awaiting_hitl`), or client-executed manual tools (`awaiting_client_tools`).
658
+ * Also returns true whenever `pendingToolCalls` is populated regardless of
659
+ * status.
460
660
  */
461
661
  requiresApproval(): Promise<boolean>;
462
662
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"model-result.d.ts","sourceRoot":"","sources":["../../src/lib/model-result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-result.d.ts","sourceRoot":"","sources":["../../src/lib/model-result.ts"],"names":[],"mappings":"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"}