@enderfga/claw-orchestrator 6.5.0 → 7.1.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.
@@ -90,7 +90,23 @@ export interface PhaseErrorPayload {
90
90
  phase: string;
91
91
  error: string;
92
92
  }
93
- export type AutoloopMessageType = 'chat' | 'directive' | 'directive_ack' | 'iter_artifacts' | 'review_request' | 'review_verdict' | 'iter_done' | 'push_user' | 'pause' | 'resume' | 'terminate' | 'phase_error';
93
+ /**
94
+ * Recoverable record emitted when an agent turn reaches its configured send
95
+ * deadline. The dispatch identity is stable for the original logical message,
96
+ * so a later resume can refer to this exact turn without guessing or replaying
97
+ * it implicitly.
98
+ */
99
+ export interface SendTimeoutPayload {
100
+ status: 'awaiting_resume';
101
+ dispatch_id: string;
102
+ agent: 'planner' | 'coder' | 'reviewer';
103
+ message_id: string;
104
+ message_type: AutoloopMessageType;
105
+ iter: number;
106
+ timeout_ms: number;
107
+ error: string;
108
+ }
109
+ export type AutoloopMessageType = 'chat' | 'directive' | 'directive_ack' | 'iter_artifacts' | 'review_request' | 'review_verdict' | 'iter_done' | 'push_user' | 'pause' | 'resume' | 'terminate' | 'phase_error' | 'send_timeout';
94
110
  type PayloadMap = {
95
111
  chat: UserChatPayload;
96
112
  directive: DirectivePayload;
@@ -104,6 +120,7 @@ type PayloadMap = {
104
120
  resume: ResumePayload;
105
121
  terminate: TerminatePayload;
106
122
  phase_error: PhaseErrorPayload;
123
+ send_timeout: SendTimeoutPayload;
107
124
  };
108
125
  export type PayloadFor<T extends AutoloopMessageType> = PayloadMap[T];
109
126
  export type AnyAutoloopMessage = {
@@ -127,6 +144,7 @@ export declare const Msg: {
127
144
  resume: (iter: number) => AutoloopEnvelope<"resume">;
128
145
  terminate: (iter: number, payload: TerminatePayload) => AutoloopEnvelope<"terminate">;
129
146
  phaseError: (iter: number, payload: PhaseErrorPayload) => AutoloopEnvelope<"phase_error">;
147
+ sendTimeout: (iter: number, payload: SendTimeoutPayload) => AutoloopEnvelope<"send_timeout">;
130
148
  };
131
149
  export declare function serialise(env: AnyAutoloopMessage): {
132
150
  text: string;
@@ -30,6 +30,9 @@ const ALLOWED_ROUTES = [
30
30
  ['coder', 'runner', 'phase_error'],
31
31
  ['reviewer', 'runner', 'phase_error'],
32
32
  ['planner', 'runner', 'phase_error'],
33
+ ['coder', 'runner', 'send_timeout'],
34
+ ['reviewer', 'runner', 'send_timeout'],
35
+ ['planner', 'runner', 'send_timeout'],
33
36
  ];
34
37
  export class AutoloopRoutingError extends Error {
35
38
  envelope;
@@ -76,6 +79,7 @@ export const Msg = {
76
79
  resume: (iter) => envelope(iter, 'planner', 'runner', 'resume', {}),
77
80
  terminate: (iter, payload) => envelope(iter, 'planner', 'runner', 'terminate', payload),
78
81
  phaseError: (iter, payload) => envelope(iter, payload.agent, 'runner', 'phase_error', payload),
82
+ sendTimeout: (iter, payload) => envelope(iter, payload.agent, 'runner', 'send_timeout', payload),
79
83
  };
80
84
  // ─── Wire serialisation (for InboxManager transport) ─────────────────────────
81
85
  export function serialise(env) {
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/autoloop/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/autoloop/messages.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Pure transport: validates messages, dispatches to agents, handles the
5
5
  * tiny set of runner-self-targeted messages (iter_artifacts, review_verdict,
6
- * pause/resume/terminate, push_user). No LLM logic lives here — that's the
6
+ * send_timeout, pause/resume/terminate, push_user). No LLM logic lives here — that's the
7
7
  * AgentDispatcher's job (S2-S4 will plug in real Claude sessions; S1 ships
8
8
  * with a mock dispatcher used by tests).
9
9
  *
@@ -12,12 +12,30 @@
12
12
  import { EventEmitter } from 'node:events';
13
13
  import { type AnyAutoloopMessage } from './messages.js';
14
14
  import { type AutoloopConfig, type AutoloopState } from './types.js';
15
+ /**
16
+ * The single allow-list for activity-lease renewal. These values describe
17
+ * externally validated forward progress, rather than work the runner creates
18
+ * for itself. Timer checks and bookkeeping are explicit negative cases so a
19
+ * caller cannot accidentally turn polling into an infinite lease.
20
+ */
21
+ export declare const LEASE_RENEWING_ACTIVITY_KINDS: readonly ["queue_message_accepted", "agent_progress", "lifecycle_transition", "checkpoint_persisted"];
22
+ export type LeaseRenewingActivityKind = (typeof LEASE_RENEWING_ACTIVITY_KINDS)[number];
23
+ export type AutoloopActivityKind = LeaseRenewingActivityKind | 'timer_check' | 'runner_bookkeeping';
24
+ export type AutoloopTimeoutKind = 'activity_lease_expired' | 'hard_timeout_exceeded';
25
+ export interface AutoloopTimeoutEvent {
26
+ kind: AutoloopTimeoutKind;
27
+ observed_at: number;
28
+ deadline_at: number;
29
+ last_activity_at: number;
30
+ }
15
31
  /**
16
32
  * Events emitted by the runner (string keys, documented payloads):
17
33
  * - 'message' : (env: AnyAutoloopMessage) — every routed message
18
34
  * - 'state' : (state: AutoloopState) — status / iter changes
19
35
  * - 'push' : ({ level, summary, detail?, channel }) — fired before notifyUser
20
36
  * - 'iter_done' : ({ iter, verdict, metric }) — Reviewer verdict committed
37
+ * - 'send_timeout': (payload: SendTimeoutPayload) — recoverable agent deadline
38
+ * - 'timeout' : (event: AutoloopTimeoutEvent) — lease or hard deadline expired
21
39
  * - 'terminated' : (reason: string) — final state, no more messages
22
40
  * - 'error' : (err: Error) — routing or dispatcher errors
23
41
  */
@@ -38,20 +56,57 @@ export declare class AutoloopRunner extends EventEmitter {
38
56
  /** Recent push events for dedup (5 min window). */
39
57
  private recentPushes;
40
58
  private stallTimer;
59
+ private activityLeaseTimer;
60
+ private hardDeadlineTimer;
61
+ private lifecycleTimersStarted;
62
+ private timeoutMonitoringStopped;
63
+ private activityLeaseExpired;
64
+ private terminationStarted;
65
+ private terminationPromise;
66
+ /** Timeout outcomes explicitly advanced by an operator resume. Retained so a
67
+ * late/replayed result for the same logical dispatch cannot pause the run a
68
+ * second time after it has already been resolved. */
69
+ private readonly resolvedTimedOutDispatches;
70
+ private readonly timeouts;
71
+ private readonly hardDeadlineAt;
41
72
  constructor(config: AutoloopConfig);
42
73
  start(): Promise<void>;
43
- /** Stop the stall detector; safe to call multiple times. Tests use this. */
74
+ /**
75
+ * Stop every runner-owned timer. Safe to call repeatedly; cancellation uses
76
+ * this before shutting down agents so no late timeout callback can mutate
77
+ * state or initiate a second shutdown.
78
+ */
44
79
  stop(): void;
80
+ /**
81
+ * Record a candidate activity signal through the centralized renewal rule.
82
+ * Returns true only when the signal renewed the lease. Callers must validate
83
+ * progress before selecting one of the four allow-listed kinds above.
84
+ */
85
+ recordActivity(kind: AutoloopActivityKind): boolean;
86
+ private startLifecycleTimers;
87
+ private armHardDeadline;
88
+ private armActivityLease;
89
+ private expireActivityLease;
90
+ private expireHardDeadline;
91
+ private terminate;
45
92
  private startStallDetector;
46
93
  /** Enqueue a message and drain the queue. Resolves when the queue is idle. */
47
94
  send(env: AnyAutoloopMessage): Promise<void>;
48
95
  /** External entry: user typed something to Planner. */
49
96
  chat(text: string): Promise<void>;
97
+ /**
98
+ * Advance one exact recoverable send-timeout pause without replaying the
99
+ * logical dispatch that timed out. SessionManager validates and audits the
100
+ * timeout increase before calling this synchronous transition.
101
+ */
102
+ resumeTimedOutDispatch(dispatchId: string): boolean;
50
103
  /** Mark subagents spawned (called by S3's spawn_subagents tool handler). */
51
104
  markSubagentsSpawned(): void;
52
105
  private drain;
53
106
  private handleOne;
54
107
  private handleRunnerInbox;
108
+ /** Restore parked agent-bound messages at the queue head in arrival order. */
109
+ private restorePausedMessages;
55
110
  private handlePushUser;
56
111
  private firePolicyPush;
57
112
  }
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Pure transport: validates messages, dispatches to agents, handles the
5
5
  * tiny set of runner-self-targeted messages (iter_artifacts, review_verdict,
6
- * pause/resume/terminate, push_user). No LLM logic lives here — that's the
6
+ * send_timeout, pause/resume/terminate, push_user). No LLM logic lives here — that's the
7
7
  * AgentDispatcher's job (S2-S4 will plug in real Claude sessions; S1 ships
8
8
  * with a mock dispatcher used by tests).
9
9
  *
@@ -11,7 +11,7 @@
11
11
  */
12
12
  import { EventEmitter } from 'node:events';
13
13
  import { AutoloopRoutingError, Msg, validateMessage } from './messages.js';
14
- import { DEFAULT_PUSH_POLICY, MAX_METRIC_HISTORY } from './types.js';
14
+ import { DEFAULT_PUSH_POLICY, MAX_METRIC_HISTORY, resolveAutoloopTimeoutConfig, } from './types.js';
15
15
  const MAX_DISPATCH_DEPTH = 64;
16
16
  /** Cap on agent-bound messages parked during a pause, to bound memory if an
17
17
  * operator pauses while policy pushes keep arriving. Oldest are dropped. */
@@ -19,12 +19,27 @@ const MAX_PAUSED_BUFFER = 1000;
19
19
  const DEFAULT_PHASE_ERROR_CIRCUIT = 3;
20
20
  const DEFAULT_STALL_MS = 30 * 60_000;
21
21
  const DEFAULT_STALL_CHECK_MS = 30_000;
22
+ /**
23
+ * The single allow-list for activity-lease renewal. These values describe
24
+ * externally validated forward progress, rather than work the runner creates
25
+ * for itself. Timer checks and bookkeeping are explicit negative cases so a
26
+ * caller cannot accidentally turn polling into an infinite lease.
27
+ */
28
+ export const LEASE_RENEWING_ACTIVITY_KINDS = [
29
+ 'queue_message_accepted',
30
+ 'agent_progress',
31
+ 'lifecycle_transition',
32
+ 'checkpoint_persisted',
33
+ ];
34
+ const LEASE_RENEWING_ACTIVITY_SET = new Set(LEASE_RENEWING_ACTIVITY_KINDS);
22
35
  /**
23
36
  * Events emitted by the runner (string keys, documented payloads):
24
37
  * - 'message' : (env: AnyAutoloopMessage) — every routed message
25
38
  * - 'state' : (state: AutoloopState) — status / iter changes
26
39
  * - 'push' : ({ level, summary, detail?, channel }) — fired before notifyUser
27
40
  * - 'iter_done' : ({ iter, verdict, metric }) — Reviewer verdict committed
41
+ * - 'send_timeout': (payload: SendTimeoutPayload) — recoverable agent deadline
42
+ * - 'timeout' : (event: AutoloopTimeoutEvent) — lease or hard deadline expired
28
43
  * - 'terminated' : (reason: string) — final state, no more messages
29
44
  * - 'error' : (err: Error) — routing or dispatcher errors
30
45
  */
@@ -45,40 +60,206 @@ export class AutoloopRunner extends EventEmitter {
45
60
  /** Recent push events for dedup (5 min window). */
46
61
  recentPushes = [];
47
62
  stallTimer = null;
63
+ activityLeaseTimer = null;
64
+ hardDeadlineTimer = null;
65
+ lifecycleTimersStarted = false;
66
+ timeoutMonitoringStopped = false;
67
+ activityLeaseExpired = false;
68
+ terminationStarted = false;
69
+ terminationPromise = null;
70
+ /** Timeout outcomes explicitly advanced by an operator resume. Retained so a
71
+ * late/replayed result for the same logical dispatch cannot pause the run a
72
+ * second time after it has already been resolved. */
73
+ resolvedTimedOutDispatches = new Set();
74
+ timeouts;
75
+ hardDeadlineAt;
48
76
  constructor(config) {
49
77
  super();
50
78
  this.config = config;
79
+ this.timeouts = resolveAutoloopTimeoutConfig(config);
80
+ const startedAt = Date.now();
81
+ this.hardDeadlineAt = startedAt + this.timeouts.autoloopHardTimeoutMs;
51
82
  this.state = {
52
83
  run_id: config.run_id,
53
84
  status: 'planning',
54
85
  iter: 0,
55
86
  subagents_spawned: false,
56
- started_at: new Date().toISOString(),
87
+ started_at: new Date(startedAt).toISOString(),
57
88
  workspace: config.workspace,
58
89
  ledger_dir: config.ledger_dir,
59
90
  push_log_count: 0,
60
91
  status_reason: null,
92
+ pending_dispatch: null,
61
93
  consecutive_phase_errors: 0,
62
94
  recent_phase_errors: [],
63
95
  metric_history: [],
64
- last_activity_at: Date.now(),
96
+ last_activity_at: startedAt,
65
97
  };
66
98
  }
67
99
  async start() {
68
- await this.config.dispatcher.init?.(this.state);
100
+ this.startLifecycleTimers();
101
+ try {
102
+ await this.config.dispatcher.init?.(this.state);
103
+ }
104
+ catch (err) {
105
+ this.stop();
106
+ throw err;
107
+ }
108
+ if (this.timeoutMonitoringStopped || this.terminationStarted)
109
+ return;
69
110
  // Surface initial state so listeners can render the planning UI.
70
111
  this.emit('state', this.state);
71
112
  this.startStallDetector();
72
113
  }
73
- /** Stop the stall detector; safe to call multiple times. Tests use this. */
114
+ /**
115
+ * Stop every runner-owned timer. Safe to call repeatedly; cancellation uses
116
+ * this before shutting down agents so no late timeout callback can mutate
117
+ * state or initiate a second shutdown.
118
+ */
74
119
  stop() {
120
+ this.timeoutMonitoringStopped = true;
75
121
  if (this.stallTimer) {
76
122
  clearInterval(this.stallTimer);
77
123
  this.stallTimer = null;
78
124
  }
125
+ if (this.activityLeaseTimer) {
126
+ clearTimeout(this.activityLeaseTimer);
127
+ this.activityLeaseTimer = null;
128
+ }
129
+ if (this.hardDeadlineTimer) {
130
+ clearTimeout(this.hardDeadlineTimer);
131
+ this.hardDeadlineTimer = null;
132
+ }
133
+ }
134
+ /**
135
+ * Record a candidate activity signal through the centralized renewal rule.
136
+ * Returns true only when the signal renewed the lease. Callers must validate
137
+ * progress before selecting one of the four allow-listed kinds above.
138
+ */
139
+ recordActivity(kind) {
140
+ if (!LEASE_RENEWING_ACTIVITY_SET.has(kind))
141
+ return false;
142
+ if (this.timeoutMonitoringStopped ||
143
+ this.activityLeaseExpired ||
144
+ this.terminationStarted ||
145
+ this.state.status === 'terminated' ||
146
+ this.state.status === 'crashed') {
147
+ return false;
148
+ }
149
+ const now = Date.now();
150
+ if (now >= this.hardDeadlineAt) {
151
+ void this.expireHardDeadline().catch((err) => this.emit('error', err));
152
+ return false;
153
+ }
154
+ this.state.last_activity_at = now;
155
+ this.armActivityLease();
156
+ return true;
157
+ }
158
+ startLifecycleTimers() {
159
+ if (this.lifecycleTimersStarted || this.timeoutMonitoringStopped)
160
+ return;
161
+ this.lifecycleTimersStarted = true;
162
+ // Arm the absolute deadline first. armActivityLease deliberately omits a
163
+ // lease timer when both deadlines coincide, making hard-cap precedence
164
+ // independent of timer insertion order.
165
+ this.armHardDeadline();
166
+ this.armActivityLease();
167
+ }
168
+ armHardDeadline() {
169
+ if (this.timeoutMonitoringStopped || this.terminationStarted)
170
+ return;
171
+ if (this.hardDeadlineTimer)
172
+ clearTimeout(this.hardDeadlineTimer);
173
+ const delay = Math.max(0, this.hardDeadlineAt - Date.now());
174
+ this.hardDeadlineTimer = setTimeout(() => {
175
+ this.hardDeadlineTimer = null;
176
+ void this.expireHardDeadline().catch((err) => this.emit('error', err));
177
+ }, delay);
178
+ this.hardDeadlineTimer?.unref?.();
179
+ }
180
+ armActivityLease() {
181
+ if (this.activityLeaseTimer) {
182
+ clearTimeout(this.activityLeaseTimer);
183
+ this.activityLeaseTimer = null;
184
+ }
185
+ if (!this.lifecycleTimersStarted ||
186
+ this.timeoutMonitoringStopped ||
187
+ this.activityLeaseExpired ||
188
+ this.terminationStarted ||
189
+ this.state.pending_dispatch) {
190
+ return;
191
+ }
192
+ const activityDeadline = this.state.last_activity_at + this.timeouts.activityLeaseMs;
193
+ if (activityDeadline >= this.hardDeadlineAt)
194
+ return;
195
+ this.activityLeaseTimer = setTimeout(() => {
196
+ this.activityLeaseTimer = null;
197
+ this.expireActivityLease();
198
+ }, Math.max(0, activityDeadline - Date.now()));
199
+ this.activityLeaseTimer?.unref?.();
200
+ }
201
+ expireActivityLease() {
202
+ if (this.timeoutMonitoringStopped || this.activityLeaseExpired || this.terminationStarted)
203
+ return;
204
+ const now = Date.now();
205
+ if (now >= this.hardDeadlineAt) {
206
+ void this.expireHardDeadline().catch((err) => this.emit('error', err));
207
+ return;
208
+ }
209
+ const activityDeadline = this.state.last_activity_at + this.timeouts.activityLeaseMs;
210
+ // A clock adjustment or renewal racing this callback may make it early.
211
+ if (now < activityDeadline) {
212
+ this.armActivityLease();
213
+ return;
214
+ }
215
+ this.activityLeaseExpired = true;
216
+ this.state.status = 'paused';
217
+ this.state.status_reason = 'activity_lease_expired';
218
+ const event = {
219
+ kind: 'activity_lease_expired',
220
+ observed_at: now,
221
+ deadline_at: activityDeadline,
222
+ last_activity_at: this.state.last_activity_at,
223
+ };
224
+ this.emit('state', this.state);
225
+ this.emit('timeout', event);
226
+ }
227
+ async expireHardDeadline() {
228
+ if (this.timeoutMonitoringStopped || this.terminationStarted)
229
+ return;
230
+ const now = Date.now();
231
+ if (now < this.hardDeadlineAt) {
232
+ this.armHardDeadline();
233
+ return;
234
+ }
235
+ await this.terminate('hard_timeout_exceeded', {
236
+ kind: 'hard_timeout_exceeded',
237
+ observed_at: now,
238
+ deadline_at: this.hardDeadlineAt,
239
+ last_activity_at: this.state.last_activity_at,
240
+ });
241
+ }
242
+ terminate(reason, timeoutEvent) {
243
+ if (this.terminationStarted)
244
+ return this.terminationPromise ?? Promise.resolve();
245
+ this.terminationStarted = true;
246
+ this.state.status = 'terminated';
247
+ this.state.status_reason = reason;
248
+ this.state.pending_dispatch = null;
249
+ this.queue.length = 0;
250
+ this.pausedBuffer.length = 0;
251
+ this.stop();
252
+ this.emit('state', this.state);
253
+ if (timeoutEvent)
254
+ this.emit('timeout', timeoutEvent);
255
+ this.terminationPromise = (async () => {
256
+ await this.config.dispatcher.shutdown?.(reason);
257
+ this.emit('terminated', reason);
258
+ })();
259
+ return this.terminationPromise;
79
260
  }
80
261
  startStallDetector() {
81
- if (this.stallTimer)
262
+ if (this.stallTimer || this.timeoutMonitoringStopped || this.terminationStarted)
82
263
  return;
83
264
  const stallMs = this.config.stallMs ?? DEFAULT_STALL_MS;
84
265
  const intervalMs = this.config.stallCheckIntervalMs ?? DEFAULT_STALL_CHECK_MS;
@@ -99,6 +280,7 @@ export class AutoloopRunner extends EventEmitter {
99
280
  /** Enqueue a message and drain the queue. Resolves when the queue is idle. */
100
281
  async send(env) {
101
282
  validateMessage(env);
283
+ this.recordActivity('queue_message_accepted');
102
284
  this.queue.push(env);
103
285
  await this.drain();
104
286
  }
@@ -106,10 +288,37 @@ export class AutoloopRunner extends EventEmitter {
106
288
  chat(text) {
107
289
  return this.send(Msg.chat(this.state.iter, { text }));
108
290
  }
291
+ /**
292
+ * Advance one exact recoverable send-timeout pause without replaying the
293
+ * logical dispatch that timed out. SessionManager validates and audits the
294
+ * timeout increase before calling this synchronous transition.
295
+ */
296
+ resumeTimedOutDispatch(dispatchId) {
297
+ const pending = this.state.pending_dispatch;
298
+ if (this.state.status !== 'paused' ||
299
+ !pending ||
300
+ pending.dispatch_id !== dispatchId ||
301
+ this.state.status_reason !== `awaiting_resume:send_timeout:${pending.agent}:${dispatchId}`) {
302
+ return false;
303
+ }
304
+ this.resolvedTimedOutDispatches.add(dispatchId);
305
+ this.state.pending_dispatch = null;
306
+ this.state.status = 'running';
307
+ this.state.status_reason = null;
308
+ this.recordActivity('lifecycle_transition');
309
+ this.restorePausedMessages();
310
+ this.emit('state', this.state);
311
+ // This entry point is called outside the normal queue drain. Resume only
312
+ // the messages parked *after* the timed-out dispatch; the timed-out message
313
+ // itself is deliberately never requeued.
314
+ void this.drain().catch((err) => this.emit('error', err));
315
+ return true;
316
+ }
109
317
  /** Mark subagents spawned (called by S3's spawn_subagents tool handler). */
110
318
  markSubagentsSpawned() {
111
319
  if (this.state.subagents_spawned)
112
320
  return;
321
+ this.recordActivity('lifecycle_transition');
113
322
  this.state.subagents_spawned = true;
114
323
  this.state.status = 'running';
115
324
  this.emit('state', this.state);
@@ -141,10 +350,9 @@ export class AutoloopRunner extends EventEmitter {
141
350
  // 'terminated' is the final state — once reached, no message of any kind is
142
351
  // processed (see events contract above). The terminate message itself still
143
352
  // runs because status only flips to 'terminated' while handling it.
144
- if (this.state.status === 'terminated')
353
+ if (this.state.status === 'terminated' || this.state.status === 'crashed')
145
354
  return;
146
355
  this.emit('message', env);
147
- this.state.last_activity_at = Date.now();
148
356
  // Runner is the target for a small set of messages — handle them inline.
149
357
  if (env.to === 'runner') {
150
358
  await this.handleRunnerInbox(env);
@@ -173,6 +381,11 @@ export class AutoloopRunner extends EventEmitter {
173
381
  const replies = await this.config.dispatcher.deliver(env);
174
382
  for (const r of replies) {
175
383
  validateMessage(r);
384
+ // A dispatcher-generated deadline record is bookkeeping, not agent
385
+ // progress. Letting it renew the lease would make a timeout extend the
386
+ // run whose lack of progress caused it.
387
+ if (r.type !== 'send_timeout')
388
+ this.recordActivity('agent_progress');
176
389
  this.queue.push(r);
177
390
  }
178
391
  }
@@ -269,6 +482,29 @@ export class AutoloopRunner extends EventEmitter {
269
482
  }
270
483
  return;
271
484
  }
485
+ case 'send_timeout': {
486
+ const pending = env.payload;
487
+ if (this.resolvedTimedOutDispatches.has(pending.dispatch_id))
488
+ return;
489
+ // The dispatcher coalesces duplicate delivery, but the runner also
490
+ // guards its public inbox so replaying the same structured outcome
491
+ // cannot emit a second timeout event or mutate state twice.
492
+ if (this.state.pending_dispatch?.dispatch_id === pending.dispatch_id)
493
+ return;
494
+ // Awaiting an operator decision is a deliberate pause, not subsequent
495
+ // inactivity. Suspend only the renewable lease; the absolute hard
496
+ // deadline stays armed and remains terminal.
497
+ if (this.activityLeaseTimer) {
498
+ clearTimeout(this.activityLeaseTimer);
499
+ this.activityLeaseTimer = null;
500
+ }
501
+ this.state.status = 'paused';
502
+ this.state.status_reason = `awaiting_resume:send_timeout:${pending.agent}:${pending.dispatch_id}`;
503
+ this.state.pending_dispatch = { ...pending };
504
+ this.emit('state', this.state);
505
+ this.emit('send_timeout', this.state.pending_dispatch);
506
+ return;
507
+ }
272
508
  case 'pause': {
273
509
  this.state.status = 'paused';
274
510
  this.state.status_reason = env.payload.reason;
@@ -277,30 +513,20 @@ export class AutoloopRunner extends EventEmitter {
277
513
  }
278
514
  case 'resume': {
279
515
  if (this.state.status === 'paused') {
516
+ // I4 owns the explicit timeout-increase resume contract. Until that
517
+ // arrives, an ordinary resume envelope must not silently discard a
518
+ // pending send deadline and risk replaying its side effects.
519
+ if (this.state.pending_dispatch)
520
+ return;
280
521
  this.state.status = 'running';
281
522
  this.state.status_reason = null;
282
- // Restore parked agent-bound messages at the queue head, preserving
283
- // arrival order so the loop continues from where pause caught it.
284
- while (this.pausedBuffer.length > 0) {
285
- const item = this.pausedBuffer.pop();
286
- if (item)
287
- this.queue.unshift(item);
288
- }
523
+ this.restorePausedMessages();
289
524
  this.emit('state', this.state);
290
525
  }
291
526
  return;
292
527
  }
293
528
  case 'terminate': {
294
- this.state.status = 'terminated';
295
- this.state.status_reason = env.payload.reason;
296
- // Drop any messages queued behind this terminate — they are moot now
297
- // and the contract says no more messages flow after termination.
298
- this.queue.length = 0;
299
- this.pausedBuffer.length = 0;
300
- this.stop();
301
- this.emit('state', this.state);
302
- await this.config.dispatcher.shutdown?.(env.payload.reason);
303
- this.emit('terminated', env.payload.reason);
529
+ await this.terminate(env.payload.reason);
304
530
  return;
305
531
  }
306
532
  default:
@@ -308,6 +534,14 @@ export class AutoloopRunner extends EventEmitter {
308
534
  throw new AutoloopRoutingError(`Unexpected runner-targeted message type: ${env.type}`, env);
309
535
  }
310
536
  }
537
+ /** Restore parked agent-bound messages at the queue head in arrival order. */
538
+ restorePausedMessages() {
539
+ while (this.pausedBuffer.length > 0) {
540
+ const item = this.pausedBuffer.pop();
541
+ if (item)
542
+ this.queue.unshift(item);
543
+ }
544
+ }
311
545
  async handlePushUser(env) {
312
546
  if (env.type !== 'push_user')
313
547
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/autoloop/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/autoloop/runner.ts"],"names":[],"mappings":"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"}