@enderfga/claw-orchestrator 6.4.0 → 7.0.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 (40) hide show
  1. package/README.md +19 -4
  2. package/dist/bin/mcp-server.js +5 -3
  3. package/dist/bin/mcp-server.js.map +1 -1
  4. package/dist/src/autoloop/dispatcher.d.ts +37 -3
  5. package/dist/src/autoloop/dispatcher.js +171 -30
  6. package/dist/src/autoloop/dispatcher.js.map +1 -1
  7. package/dist/src/autoloop/messages.d.ts +19 -1
  8. package/dist/src/autoloop/messages.js +4 -0
  9. package/dist/src/autoloop/messages.js.map +1 -1
  10. package/dist/src/autoloop/runner.d.ts +57 -2
  11. package/dist/src/autoloop/runner.js +260 -26
  12. package/dist/src/autoloop/runner.js.map +1 -1
  13. package/dist/src/autoloop/types.d.ts +62 -2
  14. package/dist/src/autoloop/types.js +63 -0
  15. package/dist/src/autoloop/types.js.map +1 -1
  16. package/dist/src/embedded-server.d.ts +8 -0
  17. package/dist/src/embedded-server.js +65 -4
  18. package/dist/src/embedded-server.js.map +1 -1
  19. package/dist/src/index.d.ts +9 -7
  20. package/dist/src/index.js +120 -80
  21. package/dist/src/index.js.map +1 -1
  22. package/dist/src/kernel/engine.js +19 -14
  23. package/dist/src/kernel/engine.js.map +1 -1
  24. package/dist/src/models.js +16 -4
  25. package/dist/src/models.js.map +1 -1
  26. package/dist/src/persistent-agy-session.d.ts +4 -2
  27. package/dist/src/persistent-agy-session.js +12 -3
  28. package/dist/src/persistent-agy-session.js.map +1 -1
  29. package/dist/src/persistent-session.js +11 -1
  30. package/dist/src/persistent-session.js.map +1 -1
  31. package/dist/src/session-manager.d.ts +6 -0
  32. package/dist/src/session-manager.js +246 -13
  33. package/dist/src/session-manager.js.map +1 -1
  34. package/openclaw.plugin.json +1 -1
  35. package/package.json +1 -1
  36. package/skills/SKILL.md +1 -1
  37. package/skills/references/autoloop.md +34 -3
  38. package/skills/references/claude-cli-tracking.md +2 -1
  39. package/skills/references/multi-engine.md +14 -2
  40. package/skills/references/tools.md +24 -3
@@ -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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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Runner-level types for autoloop (three-agent architecture).
3
3
  */
4
- import type { AnyAutoloopMessage, PushChannel, PushLevel } from './messages.js';
4
+ import type { AnyAutoloopMessage, PushChannel, PushLevel, SendTimeoutPayload } from './messages.js';
5
5
  export type AutoloopStatus = 'planning' | 'running' | 'paused' | 'terminated' | 'crashed';
6
6
  /** The three autoloop roles. Single source of truth — dispatcher and SessionManager both use it. */
7
7
  export type AutoloopRoleName = 'planner' | 'coder' | 'reviewer';
@@ -17,6 +17,11 @@ export interface AutoloopState {
17
17
  push_log_count: number;
18
18
  /** Last reason set when status flips to terminated/crashed/paused. */
19
19
  status_reason: string | null;
20
+ /**
21
+ * The one logical agent dispatch awaiting an explicit resume decision.
22
+ * Optional for backward compatibility with state checkpointed before I3.
23
+ */
24
+ pending_dispatch?: SendTimeoutPayload | null;
20
25
  /**
21
26
  * Phase-error circuit breaker — incremented on every `phase_error` message,
22
27
  * cleared on each successful (non-error) `iter_done`. When it reaches
@@ -39,6 +44,61 @@ export interface AutoloopState {
39
44
  export declare const MAX_METRIC_HISTORY = 20;
40
45
  /** Schema version stamped onto every ledger artifact (directive/eval/verdict.json). */
41
46
  export declare const LEDGER_SCHEMA_VERSION = 1;
47
+ /** Default wall-clock cap for one Planner, Coder, or Reviewer message. */
48
+ export declare const DEFAULT_SEND_TIMEOUT_MS = 600000;
49
+ /** Shortest supported wall-clock cap for one agent message. */
50
+ export declare const MIN_SEND_TIMEOUT_MS = 5000;
51
+ /** Longest supported wall-clock cap for one agent message. */
52
+ export declare const MAX_SEND_TIMEOUT_MS = 7200000;
53
+ /** Default inactivity lease for an Autoloop run. */
54
+ export declare const DEFAULT_ACTIVITY_LEASE_MS = 1800000;
55
+ /** Shortest supported inactivity lease. */
56
+ export declare const MIN_ACTIVITY_LEASE_MS = 60000;
57
+ /** Longest supported inactivity lease. */
58
+ export declare const MAX_ACTIVITY_LEASE_MS = 7200000;
59
+ /** Default absolute lifetime cap for an Autoloop run. */
60
+ export declare const DEFAULT_AUTOLOOP_HARD_TIMEOUT_MS = 86400000;
61
+ /** Shortest supported absolute lifetime cap. */
62
+ export declare const MIN_AUTOLOOP_HARD_TIMEOUT_MS = 600000;
63
+ /** Longest supported absolute lifetime cap (72 hours). */
64
+ export declare const MAX_AUTOLOOP_HARD_TIMEOUT_MS = 259200000;
65
+ /** User-configurable Autoloop timeout values. Omitted values use the defaults above. */
66
+ export interface AutoloopTimeoutConfig {
67
+ sendTimeoutMs?: number;
68
+ activityLeaseMs?: number;
69
+ autoloopHardTimeoutMs?: number;
70
+ }
71
+ /** Fully resolved timeout values used by the Autoloop runtime. */
72
+ export type ResolvedAutoloopTimeoutConfig = Required<AutoloopTimeoutConfig>;
73
+ export interface AutoloopTimeoutFieldSchema {
74
+ readonly type: 'number';
75
+ readonly default: number;
76
+ readonly minimum: number;
77
+ readonly maximum: number;
78
+ }
79
+ /** JSON-Schema-compatible metadata shared by runtime validation and later API schemas. */
80
+ export declare const AUTOLOOP_TIMEOUT_SCHEMA: {
81
+ readonly sendTimeoutMs: {
82
+ readonly type: "number";
83
+ readonly default: 600000;
84
+ readonly minimum: 5000;
85
+ readonly maximum: 7200000;
86
+ };
87
+ readonly activityLeaseMs: {
88
+ readonly type: "number";
89
+ readonly default: 1800000;
90
+ readonly minimum: 60000;
91
+ readonly maximum: 7200000;
92
+ };
93
+ readonly autoloopHardTimeoutMs: {
94
+ readonly type: "number";
95
+ readonly default: 86400000;
96
+ readonly minimum: 600000;
97
+ readonly maximum: 259200000;
98
+ };
99
+ };
100
+ export declare function validateAutoloopTimeoutConfig(config: AutoloopTimeoutConfig): void;
101
+ export declare function resolveAutoloopTimeoutConfig(config?: AutoloopTimeoutConfig): ResolvedAutoloopTimeoutConfig;
42
102
  export interface PushPolicyRule {
43
103
  silent?: boolean;
44
104
  level?: PushLevel;
@@ -73,7 +133,7 @@ export interface AgentDispatcher {
73
133
  /** Called on terminate — agent must release sessions cleanly. */
74
134
  shutdown?(reason: string): Promise<void>;
75
135
  }
76
- export interface AutoloopConfig {
136
+ export interface AutoloopConfig extends AutoloopTimeoutConfig {
77
137
  run_id: string;
78
138
  workspace: string;
79
139
  ledger_dir: string;
@@ -5,6 +5,69 @@
5
5
  export const MAX_METRIC_HISTORY = 20;
6
6
  /** Schema version stamped onto every ledger artifact (directive/eval/verdict.json). */
7
7
  export const LEDGER_SCHEMA_VERSION = 1;
8
+ /** Default wall-clock cap for one Planner, Coder, or Reviewer message. */
9
+ export const DEFAULT_SEND_TIMEOUT_MS = 600_000;
10
+ /** Shortest supported wall-clock cap for one agent message. */
11
+ export const MIN_SEND_TIMEOUT_MS = 5_000;
12
+ /** Longest supported wall-clock cap for one agent message. */
13
+ export const MAX_SEND_TIMEOUT_MS = 7_200_000;
14
+ /** Default inactivity lease for an Autoloop run. */
15
+ export const DEFAULT_ACTIVITY_LEASE_MS = 1_800_000;
16
+ /** Shortest supported inactivity lease. */
17
+ export const MIN_ACTIVITY_LEASE_MS = 60_000;
18
+ /** Longest supported inactivity lease. */
19
+ export const MAX_ACTIVITY_LEASE_MS = 7_200_000;
20
+ /** Default absolute lifetime cap for an Autoloop run. */
21
+ export const DEFAULT_AUTOLOOP_HARD_TIMEOUT_MS = 86_400_000;
22
+ /** Shortest supported absolute lifetime cap. */
23
+ export const MIN_AUTOLOOP_HARD_TIMEOUT_MS = 600_000;
24
+ /** Longest supported absolute lifetime cap (72 hours). */
25
+ export const MAX_AUTOLOOP_HARD_TIMEOUT_MS = 259_200_000;
26
+ /** JSON-Schema-compatible metadata shared by runtime validation and later API schemas. */
27
+ export const AUTOLOOP_TIMEOUT_SCHEMA = {
28
+ sendTimeoutMs: {
29
+ type: 'number',
30
+ default: DEFAULT_SEND_TIMEOUT_MS,
31
+ minimum: MIN_SEND_TIMEOUT_MS,
32
+ maximum: MAX_SEND_TIMEOUT_MS,
33
+ },
34
+ activityLeaseMs: {
35
+ type: 'number',
36
+ default: DEFAULT_ACTIVITY_LEASE_MS,
37
+ minimum: MIN_ACTIVITY_LEASE_MS,
38
+ maximum: MAX_ACTIVITY_LEASE_MS,
39
+ },
40
+ autoloopHardTimeoutMs: {
41
+ type: 'number',
42
+ default: DEFAULT_AUTOLOOP_HARD_TIMEOUT_MS,
43
+ minimum: MIN_AUTOLOOP_HARD_TIMEOUT_MS,
44
+ maximum: MAX_AUTOLOOP_HARD_TIMEOUT_MS,
45
+ },
46
+ };
47
+ const AUTOLOOP_TIMEOUT_FIELDS = [
48
+ 'sendTimeoutMs',
49
+ 'activityLeaseMs',
50
+ 'autoloopHardTimeoutMs',
51
+ ];
52
+ export function validateAutoloopTimeoutConfig(config) {
53
+ for (const field of AUTOLOOP_TIMEOUT_FIELDS) {
54
+ const value = config[field];
55
+ if (value === undefined)
56
+ continue;
57
+ const { minimum, maximum } = AUTOLOOP_TIMEOUT_SCHEMA[field];
58
+ if (typeof value !== 'number' || !Number.isFinite(value) || value < minimum || value > maximum) {
59
+ throw new Error(`${field} must be a finite number in the inclusive range [${minimum}, ${maximum}]`);
60
+ }
61
+ }
62
+ }
63
+ export function resolveAutoloopTimeoutConfig(config = {}) {
64
+ validateAutoloopTimeoutConfig(config);
65
+ return {
66
+ sendTimeoutMs: config.sendTimeoutMs ?? DEFAULT_SEND_TIMEOUT_MS,
67
+ activityLeaseMs: config.activityLeaseMs ?? DEFAULT_ACTIVITY_LEASE_MS,
68
+ autoloopHardTimeoutMs: config.autoloopHardTimeoutMs ?? DEFAULT_AUTOLOOP_HARD_TIMEOUT_MS,
69
+ };
70
+ }
8
71
  export const DEFAULT_PUSH_POLICY = {
9
72
  on_start: { level: 'info', channel: 'wechat' },
10
73
  on_iter_done_ok: { silent: true },
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/autoloop/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmCH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,uFAAuF;AACvF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAmBvC,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;IAC9C,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACjC,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IACjD,sBAAsB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IAC1D,oBAAoB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IACxD,cAAc,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;IACnD,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;IACpD,kBAAkB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE;CAC3D,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/autoloop/types.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,14 @@
8
8
  */
9
9
  import * as http from 'node:http';
10
10
  import { SessionManager } from './session-manager.js';
11
+ declare function rejectCustomEngineOverHttp(body: unknown): string | null;
12
+ /**
13
+ * Exposed so the tool registry can check its own schemas against this guard.
14
+ * The schemas are what a host sends back in a `tools` array, and several of
15
+ * them describe custom-engine properties — the guard must read those as
16
+ * descriptions, not as an attempt to name a binary.
17
+ */
18
+ export declare const __rejectCustomEngineOverHttpForTest: typeof rejectCustomEngineOverHttp;
11
19
  /**
12
20
  * A guarded SSE writer.
13
21
  *