@polpo-ai/core 0.18.16 → 0.18.18

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.
@@ -341,6 +341,204 @@ describe("executeOwnedRun", () => {
341
341
  ]);
342
342
  expect(await cancellations.get("run-a")).toBeNull();
343
343
  });
344
+ it("contains a heartbeat transport failure, aborts the producer and writes one retryable terminal", async () => {
345
+ const events = new InMemoryRunEventStore();
346
+ const baseLeases = new InMemoryRunExecutionLeaseStore();
347
+ let renewCount = 0;
348
+ const release = vi.fn(baseLeases.release.bind(baseLeases));
349
+ const leaseStore = {
350
+ claim: baseLeases.claim.bind(baseLeases),
351
+ get: baseLeases.get.bind(baseLeases),
352
+ release,
353
+ renew: async (...args) => {
354
+ renewCount += 1;
355
+ if (renewCount === 2) {
356
+ throw new Error("secret postgres heartbeat diagnostics");
357
+ }
358
+ return baseLeases.renew(...args);
359
+ },
360
+ };
361
+ let abortReason;
362
+ const result = await executeOwnedRun({
363
+ runId: "run-heartbeat-failure",
364
+ ...lease,
365
+ journal: new RunEventJournal(events),
366
+ leaseStore,
367
+ heartbeatIntervalMs: 5,
368
+ leaseDurationMs: 50,
369
+ producer: async ({ signal }) => {
370
+ await new Promise((resolve) => signal.addEventListener("abort", () => {
371
+ abortReason = signal.reason;
372
+ resolve();
373
+ }, { once: true }));
374
+ },
375
+ });
376
+ expect(result).toEqual({
377
+ status: "failed",
378
+ error: "Run execution heartbeat failed",
379
+ });
380
+ expect(abortReason).toBe("run_heartbeat_failed");
381
+ const history = (await events.listAfter("run-heartbeat-failure")).events;
382
+ expect(history.map((event) => event.type)).toEqual(["run.started", "run.failed"]);
383
+ expect(history.at(-1)).toMatchObject({
384
+ data: {
385
+ code: "run_heartbeat_failed",
386
+ message: "Run execution heartbeat failed",
387
+ retryable: true,
388
+ },
389
+ });
390
+ expect(JSON.stringify(history)).not.toContain("secret postgres heartbeat diagnostics");
391
+ expect(release).toHaveBeenCalledOnce();
392
+ expect(await baseLeases.get("run-heartbeat-failure")).toBeNull();
393
+ });
394
+ it("fails closed when cancellation polling throws during a heartbeat", async () => {
395
+ const events = new InMemoryRunEventStore();
396
+ const leases = new InMemoryRunExecutionLeaseStore();
397
+ const baseCancellations = new InMemoryRunCancellationStore();
398
+ let pollCount = 0;
399
+ const cancellations = {
400
+ request: baseCancellations.request.bind(baseCancellations),
401
+ clear: baseCancellations.clear.bind(baseCancellations),
402
+ get: async (...args) => {
403
+ pollCount += 1;
404
+ if (pollCount === 2)
405
+ throw new Error("cancellation backend unavailable");
406
+ return baseCancellations.get(...args);
407
+ },
408
+ };
409
+ const result = await executeOwnedRun({
410
+ runId: "run-cancellation-poll-failure",
411
+ ...lease,
412
+ journal: new RunEventJournal(events),
413
+ leaseStore: leases,
414
+ cancellationStore: cancellations,
415
+ heartbeatIntervalMs: 5,
416
+ leaseDurationMs: 50,
417
+ producer: async ({ signal }) => {
418
+ await new Promise((resolve) => signal.addEventListener("abort", () => resolve(), { once: true }));
419
+ },
420
+ });
421
+ expect(result).toEqual({
422
+ status: "failed",
423
+ error: "Run execution heartbeat failed",
424
+ });
425
+ expect((await events.listAfter("run-cancellation-poll-failure")).events)
426
+ .toMatchObject([
427
+ { type: "run.started" },
428
+ { type: "run.failed", data: { code: "run_heartbeat_failed", retryable: true } },
429
+ ]);
430
+ expect(await leases.get("run-cancellation-poll-failure")).toBeNull();
431
+ });
432
+ it("drains an in-flight heartbeat failure before choosing run.completed", async () => {
433
+ const events = new InMemoryRunEventStore();
434
+ const leases = new InMemoryRunExecutionLeaseStore();
435
+ const baseCancellations = new InMemoryRunCancellationStore();
436
+ let pollCount = 0;
437
+ let heartbeatPollStarted;
438
+ const heartbeatPoll = new Promise((resolve) => { heartbeatPollStarted = resolve; });
439
+ let rejectHeartbeatPoll;
440
+ const pendingHeartbeatPoll = new Promise((_resolve, reject) => {
441
+ rejectHeartbeatPoll = reject;
442
+ });
443
+ const cancellations = {
444
+ request: baseCancellations.request.bind(baseCancellations),
445
+ clear: baseCancellations.clear.bind(baseCancellations),
446
+ get: async (...args) => {
447
+ pollCount += 1;
448
+ if (pollCount === 2) {
449
+ heartbeatPollStarted();
450
+ return pendingHeartbeatPoll;
451
+ }
452
+ return baseCancellations.get(...args);
453
+ },
454
+ };
455
+ let finishProducer;
456
+ const producerMayFinish = new Promise((resolve) => { finishProducer = resolve; });
457
+ const execution = executeOwnedRun({
458
+ runId: "run-heartbeat-finalization-race",
459
+ ...lease,
460
+ journal: new RunEventJournal(events),
461
+ leaseStore: leases,
462
+ cancellationStore: cancellations,
463
+ heartbeatIntervalMs: 5,
464
+ leaseDurationMs: 50,
465
+ producer: async () => producerMayFinish,
466
+ });
467
+ await heartbeatPoll;
468
+ finishProducer();
469
+ await new Promise((resolve) => setTimeout(resolve, 0));
470
+ rejectHeartbeatPoll(new Error("late private database failure"));
471
+ await expect(execution).resolves.toEqual({
472
+ status: "failed",
473
+ error: "Run execution heartbeat failed",
474
+ });
475
+ const history = (await events.listAfter("run-heartbeat-finalization-race")).events;
476
+ expect(history.map((event) => event.type)).toEqual(["run.started", "run.failed"]);
477
+ expect(JSON.stringify(history)).not.toContain("late private database failure");
478
+ });
479
+ it("does not terminalize a heartbeat failure after ownership moved", async () => {
480
+ const events = new InMemoryRunEventStore();
481
+ const baseLeases = new InMemoryRunExecutionLeaseStore();
482
+ let renewCount = 0;
483
+ const leaseStore = {
484
+ claim: baseLeases.claim.bind(baseLeases),
485
+ get: baseLeases.get.bind(baseLeases),
486
+ release: baseLeases.release.bind(baseLeases),
487
+ renew: async (...args) => {
488
+ renewCount += 1;
489
+ if (renewCount === 2) {
490
+ const current = await baseLeases.get(args[0]);
491
+ if (current)
492
+ await baseLeases.release(args[0], current);
493
+ await baseLeases.claim(args[0], {
494
+ owner: "replacement-worker",
495
+ token: "replacement-token",
496
+ expiresAt: new Date(Date.now() + 60_000).toISOString(),
497
+ });
498
+ throw new Error("heartbeat acknowledgement lost during owner replacement");
499
+ }
500
+ return baseLeases.renew(...args);
501
+ },
502
+ };
503
+ const result = await executeOwnedRun({
504
+ runId: "run-heartbeat-owner-replaced",
505
+ ...lease,
506
+ journal: new RunEventJournal(events),
507
+ leaseStore,
508
+ heartbeatIntervalMs: 5,
509
+ leaseDurationMs: 50,
510
+ producer: async ({ signal }) => {
511
+ await new Promise((resolve) => signal.addEventListener("abort", () => resolve(), { once: true }));
512
+ },
513
+ });
514
+ expect(result).toEqual({ status: "lost-lease" });
515
+ expect((await events.listAfter("run-heartbeat-owner-replaced")).events.map((event) => event.type)).toEqual(["run.started"]);
516
+ await expect(baseLeases.get("run-heartbeat-owner-replaced")).resolves.toMatchObject({
517
+ owner: "replacement-worker",
518
+ token: "replacement-token",
519
+ });
520
+ });
521
+ it("does not turn a durable completion into a request failure when lease release fails", async () => {
522
+ const events = new InMemoryRunEventStore();
523
+ const baseLeases = new InMemoryRunExecutionLeaseStore();
524
+ const leaseStore = {
525
+ claim: baseLeases.claim.bind(baseLeases),
526
+ get: baseLeases.get.bind(baseLeases),
527
+ renew: baseLeases.renew.bind(baseLeases),
528
+ release: vi.fn(async () => {
529
+ throw new Error("release acknowledgement lost");
530
+ }),
531
+ };
532
+ await expect(executeOwnedRun({
533
+ runId: "run-release-ack-lost",
534
+ ...lease,
535
+ journal: new RunEventJournal(events),
536
+ leaseStore,
537
+ producer: async () => undefined,
538
+ })).resolves.toEqual({ status: "completed" });
539
+ expect((await events.listAfter("run-release-ack-lost")).events.map((event) => event.type)).toEqual(["run.started", "run.completed"]);
540
+ expect(leaseStore.release).toHaveBeenCalledOnce();
541
+ });
344
542
  it("does not terminalize after losing its lease to another owner", async () => {
345
543
  let renewCount = 0;
346
544
  const baseLeases = new InMemoryRunExecutionLeaseStore();
@@ -1 +1 @@
1
- {"version":3,"file":"run-delivery-owner.test.js","sourceRoot":"","sources":["../src/run-delivery-owner.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-delivery-owner.test.js","sourceRoot":"","sources":["../src/run-delivery-owner.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ import type { Shell } from "./shell.js";
2
+ import { type TerminationGatePolicy } from "./termination-gate.js";
3
+ export { TerminationGate, TerminationGateError, validateTerminationGatePolicy } from "./termination-gate.js";
4
+ export type { TerminationGatePolicy, TerminationGateState } from "./termination-gate.js";
1
5
  export declare const RUNTIME_HOOK_CONTRACT_VERSION: 1;
2
6
  export declare const DEFAULT_RUNTIME_HOOK_TIMEOUT_MS = 5000;
3
7
  export declare const DEFAULT_RUNTIME_HOOK_MAX_PAYLOAD_BYTES: number;
@@ -16,6 +20,7 @@ export interface RuntimeHookCapabilities {
16
20
  surfaces: readonly RuntimeHookSurface[];
17
21
  scopes: readonly RuntimeHookScope[];
18
22
  durableReplay: true;
23
+ terminationGate: true;
19
24
  fileEvents: "tool_attributed";
20
25
  }
21
26
  export declare const PORTABLE_RUNTIME_HOOK_CAPABILITIES: RuntimeHookCapabilities;
@@ -110,6 +115,8 @@ export interface RuntimeHookDefinition {
110
115
  enabled?: boolean;
111
116
  /** Recursive hook execution is denied unless explicitly enabled and bounded. */
112
117
  allowRecursive?: boolean;
118
+ /** Opt-in pre-completion validation with bounded same-agent continuation. */
119
+ terminationGate?: TerminationGatePolicy;
113
120
  }
114
121
  export interface RuntimeHookPack {
115
122
  version: typeof RUNTIME_HOOK_CONTRACT_VERSION;
@@ -144,16 +151,29 @@ export type RuntimeHookDecision = {
144
151
  action: "stop";
145
152
  reason?: string;
146
153
  feedback?: string;
154
+ } | {
155
+ action: "continue";
156
+ feedback: RuntimeHookJson;
147
157
  };
148
158
  export interface RuntimeHookHandlerResult {
149
159
  decision?: RuntimeHookDecision;
150
160
  output?: RuntimeHookJson;
151
161
  }
162
+ /** Trusted live resources, never serialized into hook envelopes or model context. */
163
+ export interface RuntimeHookResources {
164
+ shell?: Shell;
165
+ cwd?: string;
166
+ executeTool?: (name: string, input: Record<string, unknown>, execution: {
167
+ callId: string;
168
+ signal: AbortSignal;
169
+ }) => Promise<string>;
170
+ }
152
171
  export interface RuntimeHookExecutionRequest {
153
172
  hook: RuntimeHookDefinition;
154
173
  envelope: RuntimeHookEnvelope;
155
174
  idempotencyKey: string;
156
175
  signal: AbortSignal;
176
+ resources?: RuntimeHookResources;
157
177
  }
158
178
  export interface RuntimeHookHost {
159
179
  execute(request: RuntimeHookExecutionRequest): Promise<RuntimeHookHandlerResult | void>;
@@ -181,7 +201,7 @@ export interface RuntimeHookExecution {
181
201
  startedAt: string;
182
202
  completedAt: string;
183
203
  durationMs: number;
184
- outcome: "allowed" | "denied" | "modified" | "stopped" | "observed" | "failed" | "timed_out";
204
+ outcome: "allowed" | "denied" | "modified" | "stopped" | "continued" | "observed" | "failed" | "timed_out";
185
205
  decision?: RuntimeHookDecision["action"];
186
206
  error?: string;
187
207
  replayed?: boolean;
@@ -197,11 +217,14 @@ export interface RuntimeHookDispatchInput {
197
217
  identity?: RuntimeHookIdentity;
198
218
  data?: Record<string, unknown>;
199
219
  eventId?: string;
220
+ signal?: AbortSignal;
221
+ resources?: RuntimeHookResources;
200
222
  occurredAt?: string;
201
223
  origin?: RuntimeHookOrigin;
202
224
  }
203
225
  export interface RuntimeHookDispatcher {
204
226
  dispatch(input: RuntimeHookDispatchInput): Promise<RuntimeHookDispatchResult>;
227
+ getTerminationGatePolicy?(input: Pick<RuntimeHookDispatchInput, "surface" | "identity">): TerminationGatePolicy | undefined;
205
228
  }
206
229
  export interface RuntimeHookEngineOptions {
207
230
  definitions: readonly RuntimeHookDefinition[];
@@ -226,6 +249,7 @@ export declare class RuntimeHookEngine implements RuntimeHookDispatcher {
226
249
  private readonly maxPayloadBytes;
227
250
  private readonly maxDepth;
228
251
  constructor(options: RuntimeHookEngineOptions);
252
+ getTerminationGatePolicy(input: Pick<RuntimeHookDispatchInput, "surface" | "identity">): TerminationGatePolicy | undefined;
229
253
  dispatch(input: RuntimeHookDispatchInput): Promise<RuntimeHookDispatchResult>;
230
254
  private execute;
231
255
  }
@@ -237,5 +261,4 @@ export declare function runtimeHookIdempotencyKey(eventId: string, hookId: strin
237
261
  export declare function matchesRuntimeHook(matcher: RuntimeHookMatcher | undefined, envelope: RuntimeHookEnvelope): boolean;
238
262
  /** Normalize file mutations produced by the portable workspace tool contract. */
239
263
  export declare function runtimeHookFileChangeForTool(tool: string, input: Readonly<Record<string, unknown>>, result: string): Record<string, RuntimeHookJson> | undefined;
240
- export {};
241
264
  //# sourceMappingURL=runtime-hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-hooks.d.ts","sourceRoot":"","sources":["../src/runtime-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-hooks.d.ts","sourceRoot":"","sources":["../src/runtime-hooks.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { intersectTerminationGatePolicies, validateTerminationGatePolicy } from "./termination-gate.js";
2
+ export { TerminationGate, TerminationGateError, validateTerminationGatePolicy } from "./termination-gate.js";
1
3
  export const RUNTIME_HOOK_CONTRACT_VERSION = 1;
2
4
  export const DEFAULT_RUNTIME_HOOK_TIMEOUT_MS = 5_000;
3
5
  export const DEFAULT_RUNTIME_HOOK_MAX_PAYLOAD_BYTES = 256 * 1024;
@@ -26,6 +28,7 @@ export const PORTABLE_RUNTIME_HOOK_CAPABILITIES = Object.freeze({
26
28
  surfaces: RUNTIME_HOOK_SURFACE_NAMES,
27
29
  scopes: RUNTIME_HOOK_SCOPE_NAMES,
28
30
  durableReplay: true,
31
+ terminationGate: true,
29
32
  fileEvents: "tool_attributed",
30
33
  });
31
34
  const SCOPE_ORDER = {
@@ -65,7 +68,14 @@ export class RuntimeHookEngine {
65
68
  this.maxDepth = options.maxDepth ?? DEFAULT_RUNTIME_HOOK_MAX_DEPTH;
66
69
  this.definitions = options.definitions.map((definition, index) => validateRuntimeHookDefinition(definition, index));
67
70
  }
71
+ getTerminationGatePolicy(input) {
72
+ const envelope = createRuntimeHookEnvelope({ ...input, event: "turn:stop" }, this.now, this.maxPayloadBytes);
73
+ return intersectTerminationGatePolicies(this.definitions
74
+ .filter(hook => hook.enabled !== false && hook.terminationGate && matchesRuntimeHook(hook.matcher, envelope))
75
+ .map(hook => hook.terminationGate));
76
+ }
68
77
  async dispatch(input) {
78
+ input.signal?.throwIfAborted();
69
79
  const envelope = createRuntimeHookEnvelope(input, this.now, this.maxPayloadBytes);
70
80
  const matching = this.definitions
71
81
  .map((definition, declarationOrder) => ({ definition, declarationOrder }))
@@ -85,17 +95,17 @@ export class RuntimeHookEngine {
85
95
  const executions = [];
86
96
  let decision = { action: "allow" };
87
97
  for (const { definition } of controlling) {
88
- const result = await this.execute(definition, envelope);
98
+ const result = await this.execute(definition, envelope, false, input.signal, input.resources);
89
99
  executions.push(result.execution);
90
100
  if (!result.replayed)
91
101
  await this.host.trace?.(result.execution, result.decision, envelope);
92
102
  if (result.decision)
93
103
  decision = composeRuntimeHookDecision(decision, result.decision);
94
- if (["deny", "ask", "defer", "stop"].includes(decision.action))
104
+ if (["deny", "ask", "defer", "stop", "continue"].includes(decision.action))
95
105
  break;
96
106
  }
97
107
  const observed = await Promise.all(observing.map(async ({ definition }) => {
98
- const result = await this.execute(definition, envelope, true);
108
+ const result = await this.execute(definition, envelope, true, input.signal, input.resources);
99
109
  if (!result.replayed)
100
110
  await this.host.trace?.(result.execution, undefined, envelope);
101
111
  return result.execution;
@@ -103,17 +113,22 @@ export class RuntimeHookEngine {
103
113
  executions.push(...observed);
104
114
  return { envelope, decision, executions };
105
115
  }
106
- async execute(hook, envelope, observeOnly = false) {
116
+ async execute(hook, envelope, observeOnly = false, parentSignal, resources) {
107
117
  const startedAt = this.now().toISOString();
118
+ parentSignal?.throwIfAborted();
108
119
  const controller = new AbortController();
120
+ const abort = () => controller.abort(parentSignal?.reason);
121
+ parentSignal?.addEventListener("abort", abort, { once: true });
109
122
  const timeoutMs = hook.handler.timeoutMs ?? DEFAULT_RUNTIME_HOOK_TIMEOUT_MS;
110
123
  const timeout = setTimeout(() => controller.abort(new Error("Runtime hook timed out")), timeoutMs);
111
124
  const idempotencyKey = runtimeHookIdempotencyKey(envelope.eventId, hook.id);
125
+ const attempt = hook.terminationGate && Number.isSafeInteger(envelope.data.terminationAttempt) && Number(envelope.data.terminationAttempt) > 0 ? Number(envelope.data.terminationAttempt) : 1;
112
126
  const request = {
113
127
  hook,
114
128
  envelope,
115
129
  idempotencyKey,
116
130
  signal: controller.signal,
131
+ ...(resources ? { resources } : {}),
117
132
  };
118
133
  try {
119
134
  const replay = await this.host.findCompleted?.(request);
@@ -122,19 +137,20 @@ export class RuntimeHookEngine {
122
137
  const decision = observeOnly
123
138
  ? undefined
124
139
  : normalizeRuntimeHookDecision(replay.decision);
140
+ validateGateDecision(hook, envelope.event, decision, observeOnly);
125
141
  return {
126
142
  execution: { ...replay.execution, replayed: true },
127
143
  ...(decision ? { decision } : {}),
128
144
  replayed: true,
129
145
  };
130
146
  }
131
- const result = await Promise.race([
132
- this.host.execute(request),
133
- new Promise((_, reject) => {
134
- controller.signal.addEventListener("abort", () => reject(controller.signal.reason), { once: true });
135
- }),
136
- ]);
147
+ controller.signal.throwIfAborted();
148
+ const aborted = new Promise((_, reject) => {
149
+ controller.signal.addEventListener("abort", () => reject(controller.signal.reason), { once: true });
150
+ });
151
+ const result = await Promise.race([aborted, this.host.execute(request)]);
137
152
  const decision = observeOnly ? undefined : normalizeRuntimeHookDecision(result?.decision);
153
+ validateGateDecision(hook, envelope.event, decision, observeOnly);
138
154
  const completedAt = this.now().toISOString();
139
155
  return {
140
156
  ...(decision ? { decision } : {}),
@@ -147,7 +163,7 @@ export class RuntimeHookEngine {
147
163
  scope: hook.scope ?? "project",
148
164
  mode: hook.mode ?? "control",
149
165
  priority: hook.priority ?? 0,
150
- attempt: 1,
166
+ attempt,
151
167
  timeoutMs,
152
168
  onFailure: hook.onFailure ?? "continue",
153
169
  startedAt,
@@ -159,9 +175,9 @@ export class RuntimeHookEngine {
159
175
  ? "denied"
160
176
  : decision?.action === "modify"
161
177
  ? "modified"
162
- : decision?.action === "stop"
163
- ? "stopped"
164
- : "allowed",
178
+ : decision?.action === "continue" || (hook.terminationGate && decision?.action === "stop" && Boolean(decision.feedback?.trim()))
179
+ ? "continued"
180
+ : decision?.action === "stop" ? "stopped" : "allowed",
165
181
  ...(decision ? { decision: decision.action } : {}),
166
182
  },
167
183
  };
@@ -179,7 +195,7 @@ export class RuntimeHookEngine {
179
195
  scope: hook.scope ?? "project",
180
196
  mode: hook.mode ?? "control",
181
197
  priority: hook.priority ?? 0,
182
- attempt: 1,
198
+ attempt,
183
199
  timeoutMs,
184
200
  onFailure: hook.onFailure ?? "continue",
185
201
  startedAt,
@@ -188,7 +204,7 @@ export class RuntimeHookEngine {
188
204
  outcome: timedOut ? "timed_out" : "failed",
189
205
  error: message,
190
206
  };
191
- if (!observeOnly && (hook.onFailure ?? "continue") === "block") {
207
+ if (!observeOnly && (error instanceof RuntimeHookBlockedError || hook.terminationGate || (hook.onFailure ?? "continue") === "block")) {
192
208
  return {
193
209
  execution,
194
210
  decision: { action: "deny", reason: message, code: timedOut ? "runtime_hook_timeout" : "runtime_hook_failed" },
@@ -198,9 +214,19 @@ export class RuntimeHookEngine {
198
214
  }
199
215
  finally {
200
216
  clearTimeout(timeout);
217
+ parentSignal?.removeEventListener("abort", abort);
201
218
  }
202
219
  }
203
220
  }
221
+ function validateGateDecision(hook, event, decision, observeOnly) {
222
+ if (observeOnly)
223
+ return;
224
+ if (hook.terminationGate && (!decision || decision.action === "modify"))
225
+ throw new RuntimeHookBlockedError("Termination validator must return an explicit decision", hook.id);
226
+ if (decision?.action === "continue" && (!hook.terminationGate || event !== "turn:stop")) {
227
+ throw new RuntimeHookBlockedError("Continuation requires a configured turn:stop termination gate", hook.id);
228
+ }
229
+ }
204
230
  function assertReplayMatches(replay, request) {
205
231
  const execution = replay.execution;
206
232
  if (execution.idempotencyKey !== request.idempotencyKey
@@ -250,6 +276,13 @@ export function validateRuntimeHookPack(input) {
250
276
  export function validateRuntimeHookDefinition(input, index = 0) {
251
277
  if (!isRecord(input))
252
278
  throw new RuntimeHookValidationError(`Hook ${index} must be an object`);
279
+ if (input.terminationGate !== undefined) {
280
+ if (input.event !== "turn:stop" || input.mode === "observe")
281
+ throw new RuntimeHookValidationError("terminationGate is only valid for controlling turn:stop hooks");
282
+ validateTerminationGatePolicy(input.terminationGate);
283
+ if (input.handler?.type === "prompt" || input.handler?.type === "agent")
284
+ throw new RuntimeHookValidationError("terminationGate requires a deterministic command, HTTP, tool or MCP validator");
285
+ }
253
286
  if (typeof input.id !== "string" || !input.id.trim() || input.id.length > 128) {
254
287
  throw new RuntimeHookValidationError(`Hook ${index} id must contain 1-128 characters`);
255
288
  }
@@ -392,6 +425,7 @@ export function composeRuntimeHookDecision(current, next) {
392
425
  defer: 2,
393
426
  ask: 3,
394
427
  stop: 4,
428
+ continue: 4,
395
429
  deny: 5,
396
430
  };
397
431
  if (current.action === "modify" && next.action === "modify") {
@@ -440,9 +474,12 @@ export function runtimeHookFileChangeForTool(tool, input, result) {
440
474
  function normalizeRuntimeHookDecision(decision) {
441
475
  if (!decision)
442
476
  return undefined;
443
- if (!["allow", "deny", "ask", "defer", "modify", "stop"].includes(decision.action)) {
477
+ if (!["allow", "deny", "ask", "defer", "modify", "stop", "continue"].includes(decision.action)) {
444
478
  throw new RuntimeHookValidationError("Hook returned an unsupported decision");
445
479
  }
480
+ if (decision.action === "continue" && (decision.feedback === undefined || decision.feedback === null || decision.feedback === "")) {
481
+ throw new RuntimeHookValidationError("Continuation requires non-empty validation feedback");
482
+ }
446
483
  return sanitizeRuntimeHookValue(decision, 64 * 1024);
447
484
  }
448
485
  function sanitizeRuntimeHookValue(value, maxBytes) {