@openrouter/agent 0.7.2 → 0.9.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 (105) hide show
  1. package/README.md +728 -19
  2. package/esm/index.d.ts +24 -6
  3. package/esm/index.d.ts.map +1 -1
  4. package/esm/index.js +20 -5
  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 +49 -40
  9. package/esm/inner-loop/call-model.js.map +1 -1
  10. package/esm/inner-loop/resume-tool-results.d.ts +128 -0
  11. package/esm/inner-loop/resume-tool-results.d.ts.map +1 -0
  12. package/esm/inner-loop/resume-tool-results.js +244 -0
  13. package/esm/inner-loop/resume-tool-results.js.map +1 -0
  14. package/esm/lib/agent-tool.d.ts +92 -0
  15. package/esm/lib/agent-tool.d.ts.map +1 -0
  16. package/esm/lib/agent-tool.js +211 -0
  17. package/esm/lib/agent-tool.js.map +1 -0
  18. package/esm/lib/async-params.d.ts +107 -6
  19. package/esm/lib/async-params.d.ts.map +1 -1
  20. package/esm/lib/async-params.js +8 -1
  21. package/esm/lib/async-params.js.map +1 -1
  22. package/esm/lib/async-tool-registry.d.ts +134 -0
  23. package/esm/lib/async-tool-registry.d.ts.map +1 -0
  24. package/esm/lib/async-tool-registry.js +352 -0
  25. package/esm/lib/async-tool-registry.js.map +1 -0
  26. package/esm/lib/async-tools.d.ts +23 -0
  27. package/esm/lib/async-tools.d.ts.map +1 -0
  28. package/esm/lib/async-tools.js +19 -0
  29. package/esm/lib/async-tools.js.map +1 -0
  30. package/esm/lib/conversation-state.d.ts +45 -1
  31. package/esm/lib/conversation-state.d.ts.map +1 -1
  32. package/esm/lib/conversation-state.js +119 -0
  33. package/esm/lib/conversation-state.js.map +1 -1
  34. package/esm/lib/doom-loop.d.ts +533 -0
  35. package/esm/lib/doom-loop.d.ts.map +1 -0
  36. package/esm/lib/doom-loop.js +1221 -0
  37. package/esm/lib/doom-loop.js.map +1 -0
  38. package/esm/lib/hooks-emit.d.ts +50 -0
  39. package/esm/lib/hooks-emit.d.ts.map +1 -0
  40. package/esm/lib/hooks-emit.js +307 -0
  41. package/esm/lib/hooks-emit.js.map +1 -0
  42. package/esm/lib/hooks-manager.d.ts +141 -0
  43. package/esm/lib/hooks-manager.d.ts.map +1 -0
  44. package/esm/lib/hooks-manager.js +282 -0
  45. package/esm/lib/hooks-manager.js.map +1 -0
  46. package/esm/lib/hooks-matchers.d.ts +12 -0
  47. package/esm/lib/hooks-matchers.d.ts.map +1 -0
  48. package/esm/lib/hooks-matchers.js +26 -0
  49. package/esm/lib/hooks-matchers.js.map +1 -0
  50. package/esm/lib/hooks-resolve.d.ts +17 -0
  51. package/esm/lib/hooks-resolve.d.ts.map +1 -0
  52. package/esm/lib/hooks-resolve.js +42 -0
  53. package/esm/lib/hooks-resolve.js.map +1 -0
  54. package/esm/lib/hooks-schemas.d.ts +221 -0
  55. package/esm/lib/hooks-schemas.d.ts.map +1 -0
  56. package/esm/lib/hooks-schemas.js +238 -0
  57. package/esm/lib/hooks-schemas.js.map +1 -0
  58. package/esm/lib/hooks-types.d.ts +178 -0
  59. package/esm/lib/hooks-types.d.ts.map +1 -0
  60. package/esm/lib/hooks-types.js +45 -0
  61. package/esm/lib/hooks-types.js.map +1 -0
  62. package/esm/lib/model-result.d.ts +848 -12
  63. package/esm/lib/model-result.d.ts.map +1 -1
  64. package/esm/lib/model-result.js +4055 -410
  65. package/esm/lib/model-result.js.map +1 -1
  66. package/esm/lib/reusable-stream.d.ts +15 -0
  67. package/esm/lib/reusable-stream.d.ts.map +1 -1
  68. package/esm/lib/reusable-stream.js +25 -0
  69. package/esm/lib/reusable-stream.js.map +1 -1
  70. package/esm/lib/stream-transformers.d.ts +20 -0
  71. package/esm/lib/stream-transformers.d.ts.map +1 -1
  72. package/esm/lib/stream-transformers.js +45 -0
  73. package/esm/lib/stream-transformers.js.map +1 -1
  74. package/esm/lib/tool-check.d.ts +76 -0
  75. package/esm/lib/tool-check.d.ts.map +1 -0
  76. package/esm/lib/tool-check.js +241 -0
  77. package/esm/lib/tool-check.js.map +1 -0
  78. package/esm/lib/tool-concurrency.d.ts +42 -0
  79. package/esm/lib/tool-concurrency.d.ts.map +1 -0
  80. package/esm/lib/tool-concurrency.js +80 -0
  81. package/esm/lib/tool-concurrency.js.map +1 -0
  82. package/esm/lib/tool-context.d.ts +45 -1
  83. package/esm/lib/tool-context.d.ts.map +1 -1
  84. package/esm/lib/tool-context.js +60 -1
  85. package/esm/lib/tool-context.js.map +1 -1
  86. package/esm/lib/tool-executor.d.ts +52 -9
  87. package/esm/lib/tool-executor.d.ts.map +1 -1
  88. package/esm/lib/tool-executor.js +263 -21
  89. package/esm/lib/tool-executor.js.map +1 -1
  90. package/esm/lib/tool-orchestrator.d.ts.map +1 -1
  91. package/esm/lib/tool-orchestrator.js +87 -47
  92. package/esm/lib/tool-orchestrator.js.map +1 -1
  93. package/esm/lib/tool-task.d.ts +157 -0
  94. package/esm/lib/tool-task.d.ts.map +1 -0
  95. package/esm/lib/tool-task.js +206 -0
  96. package/esm/lib/tool-task.js.map +1 -0
  97. package/esm/lib/tool-types.d.ts +609 -58
  98. package/esm/lib/tool-types.d.ts.map +1 -1
  99. package/esm/lib/tool-types.js +72 -10
  100. package/esm/lib/tool-types.js.map +1 -1
  101. package/esm/lib/tool.d.ts +217 -25
  102. package/esm/lib/tool.d.ts.map +1 -1
  103. package/esm/lib/tool.js +210 -1
  104. package/esm/lib/tool.js.map +1 -1
  105. package/package.json +35 -3
@@ -0,0 +1,238 @@
1
+ import * as z4 from 'zod/v4';
2
+ //#region Hook Names & Definition Shape
3
+ //
4
+ // HookName, HookDefinition, and HookRegistry live HERE (with the schemas
5
+ // they key/describe) rather than in hooks-types.ts, so the dependency
6
+ // between the two modules stays one-directional (hooks-types -> hooks-
7
+ // schemas) and no import cycle exists. hooks-types re-exports them, so the
8
+ // public import surface is unchanged.
9
+ export const HookName = {
10
+ PreToolUse: 'PreToolUse',
11
+ PostToolUse: 'PostToolUse',
12
+ PostToolUseFailure: 'PostToolUseFailure',
13
+ UserPromptSubmit: 'UserPromptSubmit',
14
+ Stop: 'Stop',
15
+ PermissionRequest: 'PermissionRequest',
16
+ SessionStart: 'SessionStart',
17
+ SessionEnd: 'SessionEnd',
18
+ PostModelCall: 'PostModelCall',
19
+ DoomLoopDetected: 'DoomLoopDetected',
20
+ };
21
+ //#endregion
22
+ //#region Payload Schemas + Derived Types
23
+ //
24
+ // Each payload/result type is DERIVED from its Zod schema (single source of
25
+ // truth) so the static types can never drift from what the runtime actually
26
+ // validates -- the same discipline custom hooks get via `zodInfer` in
27
+ // hooks-manager.ts. `Readonly<...>` matches the immutability contract
28
+ // handlers are given (top-level, like the previous hand-written interfaces).
29
+ //
30
+ // Note: payloads deliberately do NOT carry `sessionId`. The session id is
31
+ // ambient context, not event data -- handlers read it from
32
+ // `context.sessionId` (LifecycleHookContext), which the manager populates
33
+ // via `setSessionId()`.
34
+ export const PreToolUsePayloadSchema = z4.object({
35
+ toolName: z4.string(),
36
+ toolInput: z4.record(z4.string(), z4.unknown()),
37
+ });
38
+ export const PostToolUsePayloadSchema = z4.object({
39
+ toolName: z4.string(),
40
+ toolInput: z4.record(z4.string(), z4.unknown()),
41
+ toolOutput: z4.unknown(),
42
+ durationMs: z4.number(),
43
+ });
44
+ export const PostToolUseFailurePayloadSchema = z4.object({
45
+ toolName: z4.string(),
46
+ toolInput: z4.record(z4.string(), z4.unknown()),
47
+ error: z4.unknown(),
48
+ });
49
+ export const StopPayloadSchema = z4.object({
50
+ reason: z4.enum([
51
+ 'max_turns',
52
+ ]),
53
+ });
54
+ export const PermissionRequestPayloadSchema = z4.object({
55
+ toolName: z4.string(),
56
+ toolInput: z4.record(z4.string(), z4.unknown()),
57
+ riskLevel: z4.enum([
58
+ 'low',
59
+ 'medium',
60
+ 'high',
61
+ ]),
62
+ });
63
+ export const UserPromptSubmitPayloadSchema = z4.object({
64
+ prompt: z4.string(),
65
+ });
66
+ export const SessionStartPayloadSchema = z4.object({
67
+ config: z4.record(z4.string(), z4.unknown()).optional(),
68
+ });
69
+ const ModelCallUsageSchema = z4.object({
70
+ inputTokens: z4.number(),
71
+ outputTokens: z4.number(),
72
+ totalTokens: z4.number(),
73
+ cachedTokens: z4.number(),
74
+ reasoningTokens: z4.number(),
75
+ cost: z4.number().optional(),
76
+ });
77
+ const SessionUsageTotalsSchema = ModelCallUsageSchema.extend({
78
+ modelCalls: z4.number(),
79
+ });
80
+ export const SessionEndPayloadSchema = z4.object({
81
+ reason: z4.enum([
82
+ 'user',
83
+ 'error',
84
+ 'max_turns',
85
+ 'complete',
86
+ 'doom_loop',
87
+ ]),
88
+ totalUsage: SessionUsageTotalsSchema.optional(),
89
+ });
90
+ export const PostModelCallPayloadSchema = z4.object({
91
+ sessionId: z4.string(),
92
+ responseId: z4.string(),
93
+ model: z4.string(),
94
+ durationMs: z4.number(),
95
+ turnType: z4.enum([
96
+ 'initial',
97
+ 'resume',
98
+ 'tool_round',
99
+ 'final',
100
+ 'retry',
101
+ ]),
102
+ turnNumber: z4.number(),
103
+ usage: ModelCallUsageSchema.optional(),
104
+ });
105
+ export const DoomLoopDetectedPayloadSchema = z4.object({
106
+ /** Which detector fired: identical client/server tool calls, or repeated text. */
107
+ detector: z4.enum([
108
+ 'tool-fingerprint',
109
+ 'server-tool-fingerprint',
110
+ 'text-repetition',
111
+ 'text-streak',
112
+ ]),
113
+ /** The ladder action the engine resolved for this streak. */
114
+ action: z4.enum([
115
+ 'observe',
116
+ 'steer',
117
+ 'escalate',
118
+ 'block',
119
+ 'stop',
120
+ ]),
121
+ /** Consecutive repetition count that crossed a ladder rung. */
122
+ streak: z4.number(),
123
+ /** Deterministic fingerprint of the repeated unit (call identity or text). */
124
+ fingerprint: z4.string(),
125
+ /** Present for tool-fingerprint verdicts. */
126
+ toolName: z4.string().optional(),
127
+ /** Present for tool-fingerprint verdicts: the repeated call's arguments. */
128
+ toolInput: z4.record(z4.string(), z4.unknown()).optional(),
129
+ /** Explanation used for block outputs / steer messages. */
130
+ message: z4.string(),
131
+ });
132
+ //#endregion
133
+ //#region Result Schemas + Derived Types
134
+ export const PreToolUseResultSchema = z4.object({
135
+ mutatedInput: z4.record(z4.string(), z4.unknown()).optional(),
136
+ block: z4
137
+ .union([
138
+ z4.boolean(),
139
+ z4.string(),
140
+ ])
141
+ .optional(),
142
+ });
143
+ export const StopResultSchema = z4.object({
144
+ forceResume: z4.boolean().optional(),
145
+ appendPrompt: z4.string().optional(),
146
+ });
147
+ export const PermissionRequestResultSchema = z4.object({
148
+ decision: z4.enum([
149
+ 'allow',
150
+ 'deny',
151
+ 'ask_user',
152
+ ]),
153
+ reason: z4.string().optional(),
154
+ });
155
+ export const UserPromptSubmitResultSchema = z4.object({
156
+ mutatedPrompt: z4.string().optional(),
157
+ reject: z4
158
+ .union([
159
+ z4.boolean(),
160
+ z4.string(),
161
+ ])
162
+ .optional(),
163
+ });
164
+ export const DoomLoopDetectedResultSchema = z4.object({
165
+ /**
166
+ * Override the engine's resolved action for THIS event — de-escalate
167
+ * (`'observe'` on a would-be block) or escalate (`'stop'` immediately).
168
+ * When several handlers override, the last override wins. Text verdicts
169
+ * cannot be blocked (the tokens are already emitted); an `overrideAction:
170
+ * 'block'` on a text verdict downgrades to `'observe'`. An
171
+ * `overrideAction: 'escalate'` is honored only when an `escalation`
172
+ * config exists and budget remains; otherwise it downgrades to
173
+ * `'observe'`.
174
+ */
175
+ overrideAction: z4
176
+ .enum([
177
+ 'observe',
178
+ 'steer',
179
+ 'escalate',
180
+ 'block',
181
+ 'stop',
182
+ ])
183
+ .optional(),
184
+ });
185
+ const VoidResultSchema = z4.void();
186
+ //#endregion
187
+ //#region Built-in Hook Registry
188
+ // Keyed by the HookName enum object (not string literals) and typed as
189
+ // Record<HookName, ...> so adding a name to HookName without registering
190
+ // schemas here is a compile error.
191
+ export const BUILT_IN_HOOKS = {
192
+ [HookName.PreToolUse]: {
193
+ payload: PreToolUsePayloadSchema,
194
+ result: PreToolUseResultSchema,
195
+ },
196
+ [HookName.PostToolUse]: {
197
+ payload: PostToolUsePayloadSchema,
198
+ result: VoidResultSchema,
199
+ },
200
+ [HookName.PostToolUseFailure]: {
201
+ payload: PostToolUseFailurePayloadSchema,
202
+ result: VoidResultSchema,
203
+ },
204
+ [HookName.UserPromptSubmit]: {
205
+ payload: UserPromptSubmitPayloadSchema,
206
+ result: UserPromptSubmitResultSchema,
207
+ },
208
+ [HookName.Stop]: {
209
+ payload: StopPayloadSchema,
210
+ result: StopResultSchema,
211
+ },
212
+ [HookName.PermissionRequest]: {
213
+ payload: PermissionRequestPayloadSchema,
214
+ result: PermissionRequestResultSchema,
215
+ },
216
+ [HookName.SessionStart]: {
217
+ payload: SessionStartPayloadSchema,
218
+ result: VoidResultSchema,
219
+ },
220
+ [HookName.SessionEnd]: {
221
+ payload: SessionEndPayloadSchema,
222
+ result: VoidResultSchema,
223
+ },
224
+ PostModelCall: {
225
+ payload: PostModelCallPayloadSchema,
226
+ result: VoidResultSchema,
227
+ },
228
+ [HookName.DoomLoopDetected]: {
229
+ payload: DoomLoopDetectedPayloadSchema,
230
+ result: DoomLoopDetectedResultSchema,
231
+ },
232
+ };
233
+ export const BUILT_IN_HOOK_NAMES = new Set(Object.keys(BUILT_IN_HOOKS));
234
+ // NOTE: void-result hooks are detected by schema shape (`isVoidSchema` in
235
+ // hooks-manager.ts), not by a name list, so custom hooks with `result:
236
+ // z.void()` behave identically to the built-in void hooks.
237
+ //#endregion
238
+ //# sourceMappingURL=hooks-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-schemas.js","sourceRoot":"","sources":["../../src/lib/hooks-schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import type { DoomLoopDetectedPayload, DoomLoopDetectedResult, PermissionRequestPayload, PermissionRequestResult, PostModelCallPayload, PostToolUseFailurePayload, PostToolUsePayload, PreToolUsePayload, PreToolUseResult, SessionEndPayload, SessionStartPayload, StopPayload, StopResult, UserPromptSubmitPayload, UserPromptSubmitResult } from './hooks-schemas.js';
2
+ import { HookName } from './hooks-schemas.js';
3
+ export type { HookDefinition, HookRegistry } from './hooks-schemas.js';
4
+ export { HookName } from './hooks-schemas.js';
5
+ /**
6
+ * Context provided to every lifecycle-hook handler invocation.
7
+ *
8
+ * - `signal` is aborted if the manager's `abortInflight()` is called while the
9
+ * emit is still running. Handlers that kick off background work via
10
+ * {@link AsyncOutput} should observe the signal for cancellation.
11
+ */
12
+ export interface LifecycleHookContext {
13
+ readonly signal: AbortSignal;
14
+ readonly hookName: string;
15
+ /**
16
+ * The current session id. This is the single source for session identity in
17
+ * handlers -- payloads deliberately do not repeat it. The engine threads it
18
+ * per emit (safe for a manager shared across concurrent runs); direct
19
+ * `emit()` callers get the manager-level default from `setSessionId()`
20
+ * unless they pass a per-emit override.
21
+ */
22
+ readonly sessionId: string;
23
+ }
24
+ /**
25
+ * Returned by a handler to signal fire-and-forget mode.
26
+ *
27
+ * The chain proceeds immediately without waiting for completion. Any background
28
+ * work the handler has kicked off should be attached as `work` so the manager
29
+ * can track it for `drain()` and enforce the `asyncTimeout`.
30
+ *
31
+ * The handler is expected to construct and return this object synchronously (or
32
+ * resolve to it quickly). The `work` promise is the detached work to track.
33
+ */
34
+ export interface AsyncOutput {
35
+ readonly async: true;
36
+ /**
37
+ * Background work the manager should track for `drain()` and time out after
38
+ * `asyncTimeout` ms. Omit if there is no work to track.
39
+ */
40
+ readonly work?: Promise<unknown>;
41
+ /** Milliseconds before the async handler is aborted. Default: 30000 */
42
+ readonly asyncTimeout?: number;
43
+ }
44
+ declare const DEFAULT_ASYNC_TIMEOUT = 30000;
45
+ export { DEFAULT_ASYNC_TIMEOUT };
46
+ /**
47
+ * A handler may return a sync result, an async signal, or void.
48
+ */
49
+ export type HookReturn<R> = R | AsyncOutput | void;
50
+ /**
51
+ * A hook handler receives the validated payload and context.
52
+ */
53
+ export type HookHandler<P, R> = (payload: P, context: LifecycleHookContext) => HookReturn<R> | Promise<HookReturn<R>>;
54
+ /**
55
+ * Matcher for tool-scoped hooks. Filters handler invocation by tool name.
56
+ */
57
+ export type ToolMatcher = string | RegExp | ((toolName: string) => boolean);
58
+ /**
59
+ * An entry registered for a specific hook.
60
+ */
61
+ export interface HookEntry<P, R> {
62
+ readonly handler: HookHandler<P, R>;
63
+ readonly matcher?: ToolMatcher;
64
+ readonly filter?: (payload: P) => boolean;
65
+ }
66
+ /**
67
+ * Result of emitting a hook through the handler chain.
68
+ */
69
+ export interface EmitResult<R, P> {
70
+ /**
71
+ * Sync results from handlers that returned a hook-specific value.
72
+ *
73
+ * INVARIANT: every entry passed the hook's result schema (invalid results
74
+ * are skipped or thrown per the error policy, never collected), so
75
+ * consumers can rely on the static type `R` without re-narrowing. For
76
+ * void-result hooks (no schema) entries are opaque and `R` is `undefined`
77
+ * -- treat them accordingly.
78
+ */
79
+ readonly results: R[];
80
+ /** Handles to detached async handler work. */
81
+ readonly pending: Promise<void>[];
82
+ /** The payload after all mutation piping has been applied. */
83
+ readonly finalPayload: P;
84
+ /** True if any handler triggered a block/reject short-circuit. */
85
+ readonly blocked: boolean;
86
+ /**
87
+ * True if any handler's result actually piped a mutation into the payload
88
+ * (e.g. PreToolUse `mutatedInput`, UserPromptSubmit `mutatedPrompt`).
89
+ * Callers should use this rather than comparing `finalPayload` references,
90
+ * since payload validation may clone the object even when no handler
91
+ * mutated it.
92
+ */
93
+ readonly mutated: boolean;
94
+ }
95
+ export interface HooksManagerOptions {
96
+ /**
97
+ * If true, a throwing handler or a schema-validation failure stops the chain
98
+ * and propagates the error. If false (default), the error is logged as a
99
+ * warning and execution continues.
100
+ */
101
+ readonly throwOnHandlerError?: boolean;
102
+ }
103
+ export type { DoomLoopDetectedPayload, DoomLoopDetectedResult, ModelCallUsage, PermissionRequestPayload, PermissionRequestResult, PostModelCallPayload, PostToolUseFailurePayload, PostToolUsePayload, PreToolUsePayload, PreToolUseResult, SessionEndPayload, SessionStartPayload, SessionUsageTotals, StopPayload, StopResult, UserPromptSubmitPayload, UserPromptSubmitResult, } from './hooks-schemas.js';
104
+ export interface BuiltInHookDefinitions {
105
+ PreToolUse: {
106
+ payload: PreToolUsePayload;
107
+ result: PreToolUseResult;
108
+ };
109
+ PostToolUse: {
110
+ payload: PostToolUsePayload;
111
+ /** Observation-only hook: handlers have no meaningful result. */
112
+ result: undefined;
113
+ };
114
+ PostToolUseFailure: {
115
+ payload: PostToolUseFailurePayload;
116
+ /** Observation-only hook: handlers have no meaningful result. */
117
+ result: undefined;
118
+ };
119
+ UserPromptSubmit: {
120
+ payload: UserPromptSubmitPayload;
121
+ result: UserPromptSubmitResult;
122
+ };
123
+ Stop: {
124
+ payload: StopPayload;
125
+ result: StopResult;
126
+ };
127
+ PermissionRequest: {
128
+ payload: PermissionRequestPayload;
129
+ result: PermissionRequestResult;
130
+ };
131
+ SessionStart: {
132
+ payload: SessionStartPayload;
133
+ /** Observation-only hook: handlers have no meaningful result. */
134
+ result: undefined;
135
+ };
136
+ SessionEnd: {
137
+ payload: SessionEndPayload;
138
+ /** Observation-only hook: handlers have no meaningful result. */
139
+ result: undefined;
140
+ };
141
+ PostModelCall: {
142
+ payload: PostModelCallPayload;
143
+ /** Observation-only hook: handlers have no meaningful result. */
144
+ result: undefined;
145
+ };
146
+ DoomLoopDetected: {
147
+ payload: DoomLoopDetectedPayload;
148
+ result: DoomLoopDetectedResult;
149
+ };
150
+ }
151
+ /**
152
+ * Inline hook config passed directly to callModel.
153
+ * Only supports built-in hooks. For custom hooks, use a HooksManager instance.
154
+ */
155
+ export type InlineHookConfig = {
156
+ [K in keyof BuiltInHookDefinitions]?: HookEntry<BuiltInHookDefinitions[K]['payload'], BuiltInHookDefinitions[K]['result']>[];
157
+ };
158
+ /**
159
+ * Checks if a value is an AsyncOutput signal (see {@link AsyncOutputSchema}).
160
+ */
161
+ export declare function isAsyncOutput(value: unknown): value is AsyncOutput;
162
+ /**
163
+ * Per-hook chain behavior: which result fields pipe mutations back into the
164
+ * payload, and which result field short-circuits the chain.
165
+ *
166
+ * Keyed by {@link HookName} so a typo'd hook name is a compile error rather
167
+ * than a silent no-behavior lookup. Hooks absent from this table are
168
+ * observation-only: their handlers' results are collected but never alter
169
+ * the payload or stop the chain. Custom hooks never participate.
170
+ */
171
+ export interface HookBehavior {
172
+ /** result field name -> payload field it replaces (mutation piping) */
173
+ readonly mutations?: Readonly<Record<string, string>>;
174
+ /** result field that short-circuits the chain when `true` or a non-empty string */
175
+ readonly blockField?: string;
176
+ }
177
+ export declare const HOOK_BEHAVIOR: Readonly<Partial<Record<HookName, HookBehavior>>>;
178
+ //# sourceMappingURL=hooks-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-types.d.ts","sourceRoot":"","sources":["../../src/lib/hooks-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import * as z4 from 'zod/v4';
2
+ import { HookName } from './hooks-schemas.js';
3
+ // HookName / HookDefinition / HookRegistry are declared in hooks-schemas.ts
4
+ // next to the schemas they describe; re-exported here so the public import
5
+ // surface is unchanged and the module dependency stays one-directional
6
+ // (hooks-types -> hooks-schemas, no cycle).
7
+ export { HookName } from './hooks-schemas.js';
8
+ const DEFAULT_ASYNC_TIMEOUT = 30000;
9
+ export { DEFAULT_ASYNC_TIMEOUT };
10
+ //#endregion
11
+ //#region Helper Types
12
+ /**
13
+ * Strict schema for an {@link AsyncOutput} signal: `async` must be literally
14
+ * `true`, `work`/`asyncTimeout` must match their declared types, and any
15
+ * foreign key fails the parse. A handler that accidentally returns
16
+ * `{ async: true, mutatedInput: {...} }` is therefore treated as a result
17
+ * (so the mutation is not silently discarded), not as fire-and-forget.
18
+ */
19
+ const AsyncOutputSchema = z4.strictObject({
20
+ async: z4.literal(true),
21
+ work: z4.instanceof(Promise).optional(),
22
+ asyncTimeout: z4.number().optional(),
23
+ });
24
+ /**
25
+ * Checks if a value is an AsyncOutput signal (see {@link AsyncOutputSchema}).
26
+ */
27
+ export function isAsyncOutput(value) {
28
+ return AsyncOutputSchema.safeParse(value).success;
29
+ }
30
+ export const HOOK_BEHAVIOR = Object.freeze({
31
+ [HookName.PreToolUse]: Object.freeze({
32
+ mutations: Object.freeze({
33
+ mutatedInput: 'toolInput',
34
+ }),
35
+ blockField: 'block',
36
+ }),
37
+ [HookName.UserPromptSubmit]: Object.freeze({
38
+ mutations: Object.freeze({
39
+ mutatedPrompt: 'prompt',
40
+ }),
41
+ blockField: 'reject',
42
+ }),
43
+ });
44
+ //#endregion
45
+ //# sourceMappingURL=hooks-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-types.js","sourceRoot":"","sources":["../../src/lib/hooks-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,QAAQ,CAAC;AAkB7B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,4EAA4E;AAC5E,2EAA2E;AAC3E,uEAAuE;AACvE,4CAA4C;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AA6C9C,MAAM,qBAAqB,GAAG,KAAM,CAAC;AAErC,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAwKjC,YAAY;AAEZ,sBAAsB;AAEtB;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,EAAE,CAAC,YAAY,CAAC;IACxC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvB,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;IACvC,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AACpD,CAAC;AAkBD,MAAM,CAAC,MAAM,aAAa,GAAsD,MAAM,CAAC,MAAM,CAAC;IAC5F,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;YACvB,YAAY,EAAE,WAAW;SAC1B,CAAC;QACF,UAAU,EAAE,OAAO;KACpB,CAAC;IACF,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACzC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;YACvB,aAAa,EAAE,QAAQ;SACxB,CAAC;QACF,UAAU,EAAE,QAAQ;KACrB,CAAC;CACH,CAAC,CAAC;AAEH,YAAY"}