@sema-agent/core 1.282.0 → 1.284.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.
- package/dist/agents/subagent.d.ts +8 -1
- package/dist/agents/subagent.d.ts.map +1 -1
- package/dist/agents/subagent.js +120 -30
- package/dist/agents/subagent.js.map +1 -1
- package/dist/core/checkpoint-store.d.ts +10 -2
- package/dist/core/checkpoint-store.d.ts.map +1 -1
- package/dist/core/checkpoint-store.js.map +1 -1
- package/dist/core/memory-engine/sync-client.d.ts +9 -0
- package/dist/core/memory-engine/sync-client.d.ts.map +1 -1
- package/dist/core/memory-engine/sync-client.js +53 -3
- package/dist/core/memory-engine/sync-client.js.map +1 -1
- package/dist/core/runner/runtask.d.ts +5 -1
- package/dist/core/runner/runtask.d.ts.map +1 -1
- package/dist/core/runner/runtask.js +129 -32
- package/dist/core/runner/runtask.js.map +1 -1
- package/dist/core/task-notification.d.ts +11 -2
- package/dist/core/task-notification.d.ts.map +1 -1
- package/dist/core/task-notification.js +17 -4
- package/dist/core/task-notification.js.map +1 -1
- package/dist/core/task-registry.d.ts +5 -1
- package/dist/core/task-registry.d.ts.map +1 -1
- package/dist/core/task-registry.js +76 -0
- package/dist/core/task-registry.js.map +1 -1
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -106,7 +106,17 @@ function parseMemorySyncResponse(raw, scope, peer) {
|
|
|
106
106
|
const updatedAtMs = curRec["updatedAtMs"];
|
|
107
107
|
if (typeof updatedAtMs !== "number" || !Number.isFinite(updatedAtMs))
|
|
108
108
|
fail("cursor.updatedAtMs must be a finite number");
|
|
109
|
-
|
|
109
|
+
const pullTruncatedRaw = b["pullTruncated"];
|
|
110
|
+
if (pullTruncatedRaw !== undefined && typeof pullTruncatedRaw !== "boolean")
|
|
111
|
+
fail("pullTruncated must be a boolean when present");
|
|
112
|
+
return {
|
|
113
|
+
applied,
|
|
114
|
+
conflicts,
|
|
115
|
+
serverEntries,
|
|
116
|
+
serverDeletes,
|
|
117
|
+
cursor: { peer, baseRevs, updatedAtMs: updatedAtMs },
|
|
118
|
+
...(pullTruncatedRaw === true ? { pullTruncated: true } : {}),
|
|
119
|
+
};
|
|
110
120
|
}
|
|
111
121
|
export async function syncMemoryScope(opts) {
|
|
112
122
|
const { backend, scope, transport, cursor } = opts;
|
|
@@ -120,6 +130,11 @@ export async function syncMemoryScope(opts) {
|
|
|
120
130
|
if (cursor !== undefined && cursor.peer !== peer) {
|
|
121
131
|
throw new Error(`memory sync: cursor is for peer ${JSON.stringify(cursor.peer)}, not ${JSON.stringify(peer)}`);
|
|
122
132
|
}
|
|
133
|
+
for (const [name, v] of [["maxPushEntries", opts.maxPushEntries], ["maxPullEntries", opts.maxPullEntries]]) {
|
|
134
|
+
if (v !== undefined && (!Number.isSafeInteger(v) || v < 1)) {
|
|
135
|
+
throw new Error(`memory sync: ${name} must be a positive integer (>= 1) when set, got ${String(v)}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
123
138
|
const baseRevs = { ...(cursor?.baseRevs ?? {}) };
|
|
124
139
|
const headers = (await backend.listHeaders([scope])).filter((h) => h.scope === scope);
|
|
125
140
|
const fetched = (await backend.getByIds(headers.map((h) => h.id))).filter((e) => e.scope === scope);
|
|
@@ -129,11 +144,21 @@ export async function syncMemoryScope(opts) {
|
|
|
129
144
|
if (plan.pull.length > 0 || plan.deleteLocal.length > 0 || plan.conflicts.length > 0 || plan.cleared.length > 0) {
|
|
130
145
|
throw new Error("memory sync: internal invariant violated — a baseline-stub peer produced pull/deleteLocal/conflict/cleared legs");
|
|
131
146
|
}
|
|
147
|
+
let pushEntries = plan.push;
|
|
148
|
+
let pushTruncated = false;
|
|
149
|
+
if (opts.maxPushEntries !== undefined) {
|
|
150
|
+
pushEntries = [...plan.push].sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
|
|
151
|
+
if (pushEntries.length > opts.maxPushEntries) {
|
|
152
|
+
pushEntries = pushEntries.slice(0, opts.maxPushEntries);
|
|
153
|
+
pushTruncated = true;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
132
156
|
const request = {
|
|
133
157
|
peer,
|
|
134
158
|
baseRevs,
|
|
135
|
-
entries:
|
|
159
|
+
entries: pushEntries,
|
|
136
160
|
deletes: plan.deleteRemote.map((d) => d.id),
|
|
161
|
+
...(opts.maxPullEntries !== undefined ? { pull: { limit: opts.maxPullEntries } } : {}),
|
|
137
162
|
};
|
|
138
163
|
const resp = parseMemorySyncResponse(await transport(memorySyncPath(scope), request), scope, peer);
|
|
139
164
|
const conflicts = resp.conflicts.map((c) => ({ side: "server", ...c }));
|
|
@@ -229,9 +254,31 @@ export async function syncMemoryScope(opts) {
|
|
|
229
254
|
}
|
|
230
255
|
const cursorAdvanced = rejected.size === 0 && report.conflicts.length === 0;
|
|
231
256
|
let nextCursor = cursor;
|
|
257
|
+
const warnings = [];
|
|
232
258
|
if (cursorAdvanced) {
|
|
233
|
-
const nextBaseRevs = { ...resp.cursor.baseRevs };
|
|
234
259
|
const pulledRevById = new Map(resp.serverEntries.map((e) => [e.id, e.rev]));
|
|
260
|
+
const pushedRevById = new Map(request.entries.map((e) => [e.id, e.rev]));
|
|
261
|
+
const serverAppliedIds = new Set(resp.applied.filter((a) => a.op !== "delete").map((a) => a.id));
|
|
262
|
+
const disputedIds = new Set(resp.conflicts.map((c) => c.id));
|
|
263
|
+
const pushAcked = (id, rev) => rev === pushedRevById.get(id) && (serverAppliedIds.has(id) || !disputedIds.has(id));
|
|
264
|
+
const nextBaseRevs = {};
|
|
265
|
+
for (const [id, rev] of Object.entries(resp.cursor.baseRevs)) {
|
|
266
|
+
if (rev === baseRevs[id] || pushAcked(id, rev) || rev === pulledRevById.get(id)) {
|
|
267
|
+
nextBaseRevs[id] = rev;
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
const retained = baseRevs[id];
|
|
271
|
+
const conflictedPush = rev === pushedRevById.get(id);
|
|
272
|
+
if (retained !== undefined) {
|
|
273
|
+
nextBaseRevs[id] = retained;
|
|
274
|
+
warnings.push(conflictedPush
|
|
275
|
+
? `cursor_prefill_rejected: server cursor advanced ${JSON.stringify(id)} to our pushed rev ${JSON.stringify(rev)} while reporting that push rejected/conflicted — kept the old baseline ${JSON.stringify(retained)} (the local version stays re-pushed / ladder-escalated next round instead of being silently overwritten)`
|
|
276
|
+
: `cursor_prefill_rejected: server cursor advanced ${JSON.stringify(id)} to ${JSON.stringify(rev)} without delivering it this round — kept the old baseline ${JSON.stringify(retained)} (the entry stays pullable next round)`);
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
warnings.push(`cursor_prefill_rejected: server cursor introduced ${JSON.stringify(id)} at ${JSON.stringify(rev)} but never delivered it — dropped from the baseline (accepting it would spuriously delete-propagate an entry never seen here)`);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
235
282
|
for (const op of report.applied) {
|
|
236
283
|
if (op.op === "delete") {
|
|
237
284
|
delete nextBaseRevs[op.id];
|
|
@@ -252,6 +299,9 @@ export async function syncMemoryScope(opts) {
|
|
|
252
299
|
conflicts,
|
|
253
300
|
cursorAdvanced,
|
|
254
301
|
cursor: nextCursor,
|
|
302
|
+
...(pushTruncated ? { pushTruncated: true } : {}),
|
|
303
|
+
...(resp.pullTruncated === true ? { pullTruncated: true } : {}),
|
|
304
|
+
...(warnings.length > 0 ? { warnings } : {}),
|
|
255
305
|
};
|
|
256
306
|
}
|
|
257
307
|
//# sourceMappingURL=sync-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-client.js","sourceRoot":"","sources":["../../../src/core/memory-engine/sync-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-client.js","sourceRoot":"","sources":["../../../src/core/memory-engine/sync-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,12 @@ export type ResumeTaskConfig = Omit<TaskSpec, "objective" | "sessionId">;
|
|
|
9
9
|
interface ResumeRun {
|
|
10
10
|
cp: Checkpoint;
|
|
11
11
|
outcome: Extract<ResumeOutcome, {
|
|
12
|
-
gate: "policy_ask" | "resource_limit" | "dry_run_review" | "plan_review";
|
|
12
|
+
gate: "policy_ask" | "resource_limit" | "dry_run_review" | "plan_review" | "wake";
|
|
13
13
|
}>;
|
|
14
|
+
wakeMessage?: {
|
|
15
|
+
text: string;
|
|
16
|
+
trusted: boolean;
|
|
17
|
+
};
|
|
14
18
|
onEnvRestoreFailed?: (reason: ReopenReason) => Promise<void>;
|
|
15
19
|
}
|
|
16
20
|
export declare class Runner {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtask.d.ts","sourceRoot":"","sources":["../../../src/core/runner/runtask.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,
|
|
1
|
+
{"version":3,"file":"runtask.d.ts","sourceRoot":"","sources":["../../../src/core/runner/runtask.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AgentHarness, DEFAULT_COMPACTION_SETTINGS, uuidv7 } from "../../internal/harness.js";
|
|
2
|
-
import { CheckpointError, BINDING_CHECKPOINT_VERSION, checkpointVersionOf, MAX_SUPPORTED_CHECKPOINT_VERSION, remainingBudgetMicroUsd, winnerFromOutcome, } from "../checkpoint-store.js";
|
|
2
|
+
import { CheckpointError, BINDING_CHECKPOINT_VERSION, checkpointVersionOf, MAX_SUPPORTED_CHECKPOINT_VERSION, remainingBudgetMicroUsd, validatePendingSteer, winnerFromOutcome, } from "../checkpoint-store.js";
|
|
3
3
|
import { effectiveCushionMs, estimateCycleMs, recordCallSample, recordToolSample, writeoutCushionMs } from "./call-cap.js";
|
|
4
4
|
import { DEFAULT_COMPACTION_INSTRUCTIONS, createRapidRefillState, maybeCompact, nextTrimForceBackoff, recordCompactionAndCheckRapidRefill } from "../auto-compaction.js";
|
|
5
5
|
import { ASK_USER_QUESTION_TOOL_NAME } from "../ask-question.js";
|
|
@@ -152,6 +152,11 @@ function toolResultMsg(toolCallId, toolName, text, isError) {
|
|
|
152
152
|
};
|
|
153
153
|
}
|
|
154
154
|
function resumeContinuation(resume) {
|
|
155
|
+
if (resume.outcome.gate === "wake") {
|
|
156
|
+
return formatHookFeedback("You were WOKEN from a parked pause by an operator. Before continuing, re-orient from the workspace: " +
|
|
157
|
+
"run `git status` and review your recent changes / last commits to confirm what is already done, then " +
|
|
158
|
+
"continue the remaining work. Do NOT restart the task or re-run work that is already committed.");
|
|
159
|
+
}
|
|
155
160
|
if (resume.outcome.gate === "resource_limit") {
|
|
156
161
|
return formatHookFeedback("You were resumed after a pause. Before continuing, re-orient from the workspace: run `git status` and " +
|
|
157
162
|
"review your recent changes / last commits to confirm what is already done, then continue the " +
|
|
@@ -294,6 +299,7 @@ export class Runner {
|
|
|
294
299
|
return Promise.race([p, timeout]).finally(() => clearTimeout(t));
|
|
295
300
|
};
|
|
296
301
|
let reapHandle;
|
|
302
|
+
const notifyRef = {};
|
|
297
303
|
const manualCompactRef = { requested: false, waiters: [] };
|
|
298
304
|
const drainManualCompactWaiters = (outcome) => {
|
|
299
305
|
manualCompactRef.requested = false;
|
|
@@ -318,7 +324,7 @@ export class Runner {
|
|
|
318
324
|
publishReady(h);
|
|
319
325
|
}, (s) => {
|
|
320
326
|
reapHandle = s;
|
|
321
|
-
}, manualCompactRef, taskIdRef, resume, { ...(internals ?? {}), detachHub });
|
|
327
|
+
}, manualCompactRef, taskIdRef, resume, { ...(internals ?? {}), detachHub }, notifyRef);
|
|
322
328
|
}
|
|
323
329
|
finally {
|
|
324
330
|
releaseLock?.();
|
|
@@ -450,6 +456,46 @@ export class Runner {
|
|
|
450
456
|
throw e;
|
|
451
457
|
}
|
|
452
458
|
},
|
|
459
|
+
notify: async (input, opts) => {
|
|
460
|
+
const notifyError = (msg, code) => {
|
|
461
|
+
const e = new Error(`cannot notify: ${msg}`);
|
|
462
|
+
e.code = code;
|
|
463
|
+
return e;
|
|
464
|
+
};
|
|
465
|
+
if (typeof input?.task_id !== "string" || input.task_id.trim() === "") {
|
|
466
|
+
throw notifyError("input.task_id must be a non-empty string", "notify.invalid_payload");
|
|
467
|
+
}
|
|
468
|
+
const VALID_STATUSES = new Set(["completed", "failed", "killed", "cancelled", "event"]);
|
|
469
|
+
if (!VALID_STATUSES.has(input.status)) {
|
|
470
|
+
throw notifyError(`input.status must be one of ${[...VALID_STATUSES].join("/")}`, "notify.invalid_payload");
|
|
471
|
+
}
|
|
472
|
+
if (typeof input.summary !== "string" || input.summary.trim() === "") {
|
|
473
|
+
throw notifyError("input.summary must be a non-empty string", "notify.invalid_payload");
|
|
474
|
+
}
|
|
475
|
+
if (input.result !== undefined && typeof input.result !== "string") {
|
|
476
|
+
throw notifyError("input.result must be a string when present", "notify.invalid_payload");
|
|
477
|
+
}
|
|
478
|
+
if (input.seq !== undefined && (typeof input.seq !== "number" || !Number.isFinite(input.seq))) {
|
|
479
|
+
throw notifyError("input.seq must be a finite number when present", "notify.invalid_payload");
|
|
480
|
+
}
|
|
481
|
+
if (input.source !== undefined && typeof input.source !== "string") {
|
|
482
|
+
throw notifyError("input.source must be a string when present", "notify.invalid_payload");
|
|
483
|
+
}
|
|
484
|
+
const payload = {
|
|
485
|
+
task_id: input.task_id,
|
|
486
|
+
task_type: "external",
|
|
487
|
+
status: input.status,
|
|
488
|
+
summary: input.summary,
|
|
489
|
+
...(input.result !== undefined ? { result: input.result } : {}),
|
|
490
|
+
...(input.seq !== undefined ? { seq: input.seq } : {}),
|
|
491
|
+
...(input.source !== undefined ? { source: input.source } : {}),
|
|
492
|
+
};
|
|
493
|
+
const h = handle ?? (await orTimeout(ready));
|
|
494
|
+
if (!h || notifyRef.inject === undefined) {
|
|
495
|
+
throw notifyError("the task is not running", "notify.not_running");
|
|
496
|
+
}
|
|
497
|
+
notifyRef.inject(payload, opts);
|
|
498
|
+
},
|
|
453
499
|
compact: async () => {
|
|
454
500
|
if (resultValue)
|
|
455
501
|
throw steeringError("the task has already finished");
|
|
@@ -482,7 +528,7 @@ export class Runner {
|
|
|
482
528
|
})()),
|
|
483
529
|
};
|
|
484
530
|
}
|
|
485
|
-
async runLocked(spec, queue, setResult, onConsolidation, onSuggestions, onReady, onSuspend, manualCompactRef, taskIdRef, resume, internals) {
|
|
531
|
+
async runLocked(spec, queue, setResult, onConsolidation, onSuggestions, onReady, onSuspend, manualCompactRef, taskIdRef, resume, internals, notifyRef) {
|
|
486
532
|
const prepareResume = resume
|
|
487
533
|
? {
|
|
488
534
|
leafId: resume.cp.leafId,
|
|
@@ -515,6 +561,19 @@ export class Runner {
|
|
|
515
561
|
}
|
|
516
562
|
});
|
|
517
563
|
const upstreamTaskNotification = internals?.onTaskNotification;
|
|
564
|
+
const injectTaskNotification = (notification, opts) => {
|
|
565
|
+
if (!notificationLaneLive) {
|
|
566
|
+
if (notificationSessionId !== undefined)
|
|
567
|
+
this.pendingSessionNotifications.pend(notificationSessionId, notification);
|
|
568
|
+
return;
|
|
569
|
+
}
|
|
570
|
+
taskNotificationQueue.enqueue({
|
|
571
|
+
kind: "task_notification",
|
|
572
|
+
priority: opts?.priority ?? "later",
|
|
573
|
+
dedupKey: taskNotificationDedupKey(notification),
|
|
574
|
+
payload: notification,
|
|
575
|
+
});
|
|
576
|
+
};
|
|
518
577
|
const prepared = await prepareTask(spec, this.deps, this.sessions, prepareResume, memorySelector, {
|
|
519
578
|
...(internals ?? {}),
|
|
520
579
|
detachHub,
|
|
@@ -524,21 +583,13 @@ export class Runner {
|
|
|
524
583
|
}
|
|
525
584
|
catch {
|
|
526
585
|
}
|
|
527
|
-
|
|
528
|
-
if (notificationSessionId !== undefined)
|
|
529
|
-
this.pendingSessionNotifications.pend(notificationSessionId, notification);
|
|
530
|
-
return;
|
|
531
|
-
}
|
|
532
|
-
taskNotificationQueue.enqueue({
|
|
533
|
-
kind: "task_notification",
|
|
534
|
-
priority: opts?.priority ?? "later",
|
|
535
|
-
dedupKey: taskNotificationDedupKey(notification),
|
|
536
|
-
payload: notification,
|
|
537
|
-
});
|
|
586
|
+
injectTaskNotification(notification, opts);
|
|
538
587
|
},
|
|
539
588
|
}, this);
|
|
540
589
|
notificationHarness = prepared.harness;
|
|
541
590
|
notificationSessionId = prepared.sessionId;
|
|
591
|
+
if (notifyRef)
|
|
592
|
+
notifyRef.inject = injectTaskNotification;
|
|
542
593
|
{
|
|
543
594
|
const pendingIdle = this.pendingSessionNotifications.drain(prepared.sessionId);
|
|
544
595
|
if (pendingIdle !== undefined) {
|
|
@@ -560,7 +611,7 @@ export class Runner {
|
|
|
560
611
|
resume.cp.gate.kind === "needs_review" ||
|
|
561
612
|
resume.cp.gate.kind === "plan_review")) {
|
|
562
613
|
const waitMs = Math.max(0, prepared.now() - resume.cp.suspendedAt);
|
|
563
|
-
const decision = resume.outcome.decision;
|
|
614
|
+
const decision = resume.outcome.gate === "wake" ? undefined : resume.outcome.decision;
|
|
564
615
|
prepared.humanReviewRef.count += 1;
|
|
565
616
|
prepared.humanReviewRef.totalWaitMs += waitMs;
|
|
566
617
|
const gateToolName = "toolName" in resume.cp.gate ? resume.cp.gate.toolName : undefined;
|
|
@@ -1841,15 +1892,17 @@ export class Runner {
|
|
|
1841
1892
|
throw e;
|
|
1842
1893
|
}
|
|
1843
1894
|
if (resume) {
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1895
|
+
if (resume.outcome.gate !== "wake") {
|
|
1896
|
+
await this.applyResumeDecision(prepared, resume, (e) => queue.push(e), emitCommitted, (toolName, details) => {
|
|
1897
|
+
if (attachState === undefined)
|
|
1898
|
+
return;
|
|
1899
|
+
const family = writeFamilyOf(toolName);
|
|
1900
|
+
if (family !== undefined)
|
|
1901
|
+
stampWriteAnchor(attachState, family, cadenceTurns);
|
|
1902
|
+
if (details !== undefined)
|
|
1903
|
+
reduceToolEnd(attachState, details);
|
|
1904
|
+
}, (toolCallId) => startedToolCallIds.add(toolCallId));
|
|
1905
|
+
}
|
|
1853
1906
|
if (maxCostMicroUsd !== undefined && maxCostMicroUsd <= 0) {
|
|
1854
1907
|
budgetHit = "exceeded";
|
|
1855
1908
|
}
|
|
@@ -1863,11 +1916,12 @@ export class Runner {
|
|
|
1863
1916
|
continuation += "\n\n" + formatHookFeedback(renderOrphanedBackgroundTasks(orphans));
|
|
1864
1917
|
}
|
|
1865
1918
|
}
|
|
1866
|
-
const steer
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1919
|
+
for (const steer of [resume.cp.state.pendingSteer, resume.wakeMessage]) {
|
|
1920
|
+
if (steer) {
|
|
1921
|
+
continuation +=
|
|
1922
|
+
"\n\n" +
|
|
1923
|
+
(steer.trusted ? formatHookFeedback(steer.text) : delimitUntrusted("supervisor steering message", steer.text));
|
|
1924
|
+
}
|
|
1871
1925
|
}
|
|
1872
1926
|
final = await withBrainSinks(() => prepared.harness.prompt(continuation));
|
|
1873
1927
|
}
|
|
@@ -2393,11 +2447,54 @@ export class Runner {
|
|
|
2393
2447
|
if (!store) {
|
|
2394
2448
|
throw new CheckpointError("checkpoint.not_found", "no CheckpointStore wired — cannot resume (set RunnerDeps.checkpointStore or taskConfig.checkpointStore)");
|
|
2395
2449
|
}
|
|
2396
|
-
|
|
2450
|
+
let cp = await store.get(token);
|
|
2397
2451
|
if (!cp) {
|
|
2398
2452
|
throw new CheckpointError("checkpoint.not_found", "no checkpoint found for the supplied token");
|
|
2399
2453
|
}
|
|
2400
|
-
|
|
2454
|
+
let wakeMessage;
|
|
2455
|
+
if (outcome.gate === "wake") {
|
|
2456
|
+
const gk = cp.gate.kind;
|
|
2457
|
+
const decideEntry = gk === "human" || gk === "irreversible_ask"
|
|
2458
|
+
? 'a `policy_ask` outcome (decision allow/deny bound to the pending tool call)'
|
|
2459
|
+
: gk === "needs_review"
|
|
2460
|
+
? 'a `dry_run_review` outcome (decision approve/reject)'
|
|
2461
|
+
: gk === "plan_review"
|
|
2462
|
+
? 'a `plan_review` outcome (decision approve/edit/reject)'
|
|
2463
|
+
: gk === "resource_limit"
|
|
2464
|
+
? 'a `resource_limit` outcome (decision "continue")'
|
|
2465
|
+
: undefined;
|
|
2466
|
+
if (gk !== "task_done") {
|
|
2467
|
+
throw new CheckpointError("wake.gate_pending", `cannot wake: this checkpoint awaits a pending gate decision (gate "${gk}") — wake is not a decision ` +
|
|
2468
|
+
`channel; resume it with ${decideEntry ?? "its own gate outcome"} instead`);
|
|
2469
|
+
}
|
|
2470
|
+
const pa = cp.pendingAction;
|
|
2471
|
+
switch (pa.kind) {
|
|
2472
|
+
case "task_done":
|
|
2473
|
+
break;
|
|
2474
|
+
case "tool_approval":
|
|
2475
|
+
case "resource_limit":
|
|
2476
|
+
case "plan_review": {
|
|
2477
|
+
throw new CheckpointError("wake.gate_pending", `cannot wake: this checkpoint still carries a pending gate-typed action (pendingAction "${pa.kind}" ` +
|
|
2478
|
+
`on a "${gk}" gate — inconsistent row) — wake is not a decision channel; resolve it through its ` +
|
|
2479
|
+
`own decide entry instead`);
|
|
2480
|
+
}
|
|
2481
|
+
default: {
|
|
2482
|
+
const _exhaustive = pa;
|
|
2483
|
+
void _exhaustive;
|
|
2484
|
+
throw new CheckpointError("wake.gate_pending", `cannot wake: this checkpoint carries an unrecognized pendingAction kind "${pa.kind}" ` +
|
|
2485
|
+
`(newer-version row?) — fail-closed: wake only serves a pure park (pendingAction "task_done")`);
|
|
2486
|
+
}
|
|
2487
|
+
}
|
|
2488
|
+
if (outcome.message !== undefined) {
|
|
2489
|
+
wakeMessage = validatePendingSteer(outcome.message);
|
|
2490
|
+
}
|
|
2491
|
+
else if (cp.state.pendingSteer === undefined) {
|
|
2492
|
+
throw new CheckpointError("wake.nothing_to_deliver", "cannot wake: no message was supplied and the checkpoint holds no parked pendingSteer — an empty " +
|
|
2493
|
+
"wake would burn the checkpoint on a blank continuation; supply `message` or park a steer first");
|
|
2494
|
+
}
|
|
2495
|
+
}
|
|
2496
|
+
const gateMatch = outcome.gate === "wake" ||
|
|
2497
|
+
(cp.gate.kind === "human" && outcome.gate === "policy_ask") ||
|
|
2401
2498
|
(cp.gate.kind === "irreversible_ask" && outcome.gate === "policy_ask") ||
|
|
2402
2499
|
(cp.gate.kind === "resource_limit" && outcome.gate === "resource_limit") ||
|
|
2403
2500
|
(cp.gate.kind === "needs_review" && outcome.gate === "dry_run_review") ||
|
|
@@ -2466,7 +2563,7 @@ export class Runner {
|
|
|
2466
2563
|
await store.reopen?.(token, cp.scope, reason);
|
|
2467
2564
|
}
|
|
2468
2565
|
: undefined;
|
|
2469
|
-
return this.runTaskStream(spec, { cp, outcome, onEnvRestoreFailed }, internals);
|
|
2566
|
+
return this.runTaskStream(spec, { cp, outcome, onEnvRestoreFailed, ...(wakeMessage !== undefined ? { wakeMessage } : {}) }, internals);
|
|
2470
2567
|
}
|
|
2471
2568
|
async applyResumeDecision(prepared, resume, emit, emitCommitted, onResolvedToolSuccess, onExecuteStart) {
|
|
2472
2569
|
const { pendingAction } = resume.cp;
|