@anionex/dsh-turn-rewind 0.2.0 → 0.2.1
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/lib/client.js +6 -3
- package/lib/client.js.map +1 -1
- package/lib/rewind-host.js +123 -140
- package/lib/types/rewind-host.d.ts +15 -6
- package/package.json +1 -1
- package/src/client/index.tsx +6 -3
- package/src/rewind-host.ts +142 -153
package/lib/client.js
CHANGED
|
@@ -626,9 +626,12 @@ function collectPortalTargets(nodes) {
|
|
|
626
626
|
if (target === null)
|
|
627
627
|
continue;
|
|
628
628
|
const row = rows.get(target.rowKey);
|
|
629
|
-
const messageRoot = row?.querySelector('[data-time-hover-root="true"]');
|
|
630
|
-
|
|
631
|
-
|
|
629
|
+
const messageRoot = row?.querySelector?.('[data-time-hover-root="true"]');
|
|
630
|
+
// Match the actions container by class or last child element
|
|
631
|
+
const actions = (typeof messageRoot?.querySelector === 'function'
|
|
632
|
+
? messageRoot.querySelector('[class*="actions"]')
|
|
633
|
+
: undefined) ?? messageRoot?.lastElementChild;
|
|
634
|
+
if (!(actions instanceof HTMLElement))
|
|
632
635
|
continue;
|
|
633
636
|
targets.push({ container: actions, matched: target.matched });
|
|
634
637
|
}
|
package/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client/src/client/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client/src/client/index.tsx"],"names":[],"mappings":"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"}
|
package/lib/rewind-host.js
CHANGED
|
@@ -6,7 +6,7 @@ export const REWIND_HTTP_PATH = '/turn-rewind';
|
|
|
6
6
|
const BODY_LIMIT = 64 * 1024;
|
|
7
7
|
const INITIAL_CHANGE_PREVIEW_LIMIT = 8;
|
|
8
8
|
const MAX_CHANGE_PAGE_SIZE = 200;
|
|
9
|
-
/** Capture each turn
|
|
9
|
+
/** Capture each turn beside model work and gate root tool side effects on its bounded outcome. */
|
|
10
10
|
export class TurnCheckpointCoordinator {
|
|
11
11
|
engine;
|
|
12
12
|
captures = new Map();
|
|
@@ -17,11 +17,17 @@ export class TurnCheckpointCoordinator {
|
|
|
17
17
|
constructor(engine) {
|
|
18
18
|
this.engine = engine;
|
|
19
19
|
}
|
|
20
|
-
/**
|
|
20
|
+
/** Keep sidecar checkpoint work out of the Agent response waterfall. */
|
|
21
21
|
install(ctx) {
|
|
22
22
|
ctx.on('agent/pre-step', async ({ agent, turn, step, signal }, next) => {
|
|
23
23
|
if (step === 1)
|
|
24
|
-
|
|
24
|
+
this.startCapture(ctx, agent, turn, signal);
|
|
25
|
+
return next();
|
|
26
|
+
}, { prepend: true });
|
|
27
|
+
ctx.on('tools/execute', async (exec, next) => {
|
|
28
|
+
if (exec.agent !== undefined && exec.parent === undefined) {
|
|
29
|
+
await this.waitForOpenTurn(exec.agent, exec.signal);
|
|
30
|
+
}
|
|
25
31
|
return next();
|
|
26
32
|
}, { prepend: true });
|
|
27
33
|
}
|
|
@@ -36,6 +42,15 @@ export class TurnCheckpointCoordinator {
|
|
|
36
42
|
const error = this.failures.get(key);
|
|
37
43
|
return error === undefined ? { status: 'missing' } : { status: 'failed', error };
|
|
38
44
|
}
|
|
45
|
+
startCapture(ctx, agent, turn, signal) {
|
|
46
|
+
const key = checkpointKey(agent.id, turn);
|
|
47
|
+
if (this.captures.has(key))
|
|
48
|
+
return;
|
|
49
|
+
const capture = this.capture(ctx, agent, turn, signal).catch(async (error) => {
|
|
50
|
+
await this.recordFailure(ctx, agent.id, turn, error);
|
|
51
|
+
});
|
|
52
|
+
this.captures.set(key, capture);
|
|
53
|
+
}
|
|
39
54
|
async capture(ctx, agent, turn, signal) {
|
|
40
55
|
const key = checkpointKey(agent.id, turn);
|
|
41
56
|
const cwd = agent.session.header.cwd;
|
|
@@ -53,11 +68,6 @@ export class TurnCheckpointCoordinator {
|
|
|
53
68
|
const captureDeadline = createDeadline(Math.max(1, timeoutMs - reserveMs));
|
|
54
69
|
const captureSignal = AbortSignal.any([signal, captureDeadline.signal]);
|
|
55
70
|
try {
|
|
56
|
-
const existing = this.captures.get(key);
|
|
57
|
-
if (existing !== undefined) {
|
|
58
|
-
await waitWithSignal(existing, captureSignal).catch(() => undefined);
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
71
|
this.pending.add(key);
|
|
62
72
|
this.failures.delete(key);
|
|
63
73
|
this.skips.delete(key);
|
|
@@ -86,7 +96,6 @@ export class TurnCheckpointCoordinator {
|
|
|
86
96
|
this.pending.delete(key);
|
|
87
97
|
}
|
|
88
98
|
})();
|
|
89
|
-
this.captures.set(key, capture);
|
|
90
99
|
try {
|
|
91
100
|
await waitWithSignal(capture, outcomeSignal);
|
|
92
101
|
}
|
|
@@ -107,6 +116,29 @@ export class TurnCheckpointCoordinator {
|
|
|
107
116
|
outcomeDeadline.cancel();
|
|
108
117
|
}
|
|
109
118
|
}
|
|
119
|
+
/** Wait only for the bounded checkpoint outcome of the Agent's open turn. */
|
|
120
|
+
async waitForOpenTurn(agent, signal) {
|
|
121
|
+
if (signal.aborted)
|
|
122
|
+
return;
|
|
123
|
+
const boundary = agent.session.events.findLast(event => event.type === 'turn/start' || event.type === 'turn/end');
|
|
124
|
+
if (boundary?.type !== 'turn/start')
|
|
125
|
+
return;
|
|
126
|
+
const turn = boundary.data.turn;
|
|
127
|
+
if (!Number.isSafeInteger(turn) || turn < 0)
|
|
128
|
+
return;
|
|
129
|
+
const capture = this.captures.get(checkpointKey(agent.id, turn));
|
|
130
|
+
if (capture === undefined)
|
|
131
|
+
return;
|
|
132
|
+
try {
|
|
133
|
+
await waitWithSignal(capture, signal);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
// Delegate caller cancellation so the DSH tool runtime preserves its
|
|
137
|
+
// canonical ABORTED_BEFORE_DISPATCH result instead of a wrapper error.
|
|
138
|
+
if (!signal.aborted)
|
|
139
|
+
throw error;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
110
142
|
async serializeWorkspace(workspace, signal, task) {
|
|
111
143
|
const previous = this.workspaceTails.get(workspace) ?? Promise.resolve();
|
|
112
144
|
const current = (async () => {
|
|
@@ -182,95 +214,6 @@ export function installRewindHttp(ctx, engine, coordinator) {
|
|
|
182
214
|
handler: createRewindHttpHandler(ctx, engine, coordinator),
|
|
183
215
|
}), 'change-ledger.rewindHttp');
|
|
184
216
|
}
|
|
185
|
-
export const MANAGE_HTTP_PATH = '/turn-rewind/manage';
|
|
186
|
-
/** Register the same-origin storage-management endpoint consumed by the settings card. */
|
|
187
|
-
export function installManageHttp(ctx, engine) {
|
|
188
|
-
ctx.effect(() => ctx.webServer.register({
|
|
189
|
-
kind: 'exact',
|
|
190
|
-
path: MANAGE_HTTP_PATH,
|
|
191
|
-
handler: createManageHttpHandler(engine),
|
|
192
|
-
}), 'change-ledger.manageHttp');
|
|
193
|
-
}
|
|
194
|
-
/** Build the storage-management route as a testable unit. */
|
|
195
|
-
export function createManageHttpHandler(engine) {
|
|
196
|
-
return async (request, response) => {
|
|
197
|
-
try {
|
|
198
|
-
if (request.method === 'GET') {
|
|
199
|
-
const workspaces = await engine.listWorkspaces();
|
|
200
|
-
json(response, 200, {
|
|
201
|
-
storageDir: engine.config.storageDir,
|
|
202
|
-
totalBytes: workspaces.reduce((total, workspace) => total + workspace.totalBytes, 0),
|
|
203
|
-
workspaces: workspaces.map((workspace) => ({
|
|
204
|
-
workspace: workspace.workspace,
|
|
205
|
-
totalBytes: workspace.totalBytes,
|
|
206
|
-
recoveryCount: workspace.recoveryCount,
|
|
207
|
-
restorePoints: workspace.restorePoints.map((point) => ({
|
|
208
|
-
id: point.id,
|
|
209
|
-
kind: point.kind,
|
|
210
|
-
format: point.format,
|
|
211
|
-
createdAt: point.createdAt,
|
|
212
|
-
totalBytes: point.totalBytes,
|
|
213
|
-
fileCount: point.fileCount,
|
|
214
|
-
...(point.sessionId === undefined ? {} : { sessionId: point.sessionId }),
|
|
215
|
-
...(point.turn === undefined ? {} : { turn: point.turn }),
|
|
216
|
-
...(point.label === undefined ? {} : { label: point.label }),
|
|
217
|
-
})),
|
|
218
|
-
})),
|
|
219
|
-
});
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
if (request.method === 'POST') {
|
|
223
|
-
const body = objectBody(await readBody(request));
|
|
224
|
-
const action = requiredText(body.action, 'action');
|
|
225
|
-
if (action === 'delete') {
|
|
226
|
-
const workspace = requiredText(body.workspace, 'workspace');
|
|
227
|
-
const restorePointId = requiredText(body.restorePointId, 'restorePointId');
|
|
228
|
-
const report = await engine.purgeWorkspace({ workspace, restorePointIds: [restorePointId] });
|
|
229
|
-
if (report.deletedRestorePoints === 0) {
|
|
230
|
-
throw new ChangeLedgerError(report.retainedRestorePoints > 0 ? 'RECOVERY_REFERENCE' : 'RESTORE_POINT_NOT_FOUND', report.retainedRestorePoints > 0
|
|
231
|
-
? 'restore point is required by an incomplete recovery journal'
|
|
232
|
-
: `restore point ${restorePointId} does not exist`);
|
|
233
|
-
}
|
|
234
|
-
json(response, 200, { status: 'completed', action, ...report });
|
|
235
|
-
return;
|
|
236
|
-
}
|
|
237
|
-
if (action === 'clear-workspace') {
|
|
238
|
-
const workspace = requiredText(body.workspace, 'workspace');
|
|
239
|
-
json(response, 200, { status: 'completed', action, ...await engine.purgeWorkspace({ workspace }) });
|
|
240
|
-
return;
|
|
241
|
-
}
|
|
242
|
-
if (action === 'clear-all') {
|
|
243
|
-
const reports = [];
|
|
244
|
-
const failures = [];
|
|
245
|
-
for (const overview of await engine.listWorkspaces()) {
|
|
246
|
-
try {
|
|
247
|
-
reports.push(await engine.purgeWorkspace({ workspace: overview.workspace }));
|
|
248
|
-
}
|
|
249
|
-
catch (error) {
|
|
250
|
-
failures.push({ workspace: overview.workspace, error: errorMessage(error) });
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
json(response, 200, {
|
|
254
|
-
status: failures.length > 0 ? 'partial' : 'completed',
|
|
255
|
-
action,
|
|
256
|
-
reports,
|
|
257
|
-
...(failures.length > 0 ? { failures } : {}),
|
|
258
|
-
});
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
throw new ChangeLedgerError('INVALID_ARGUMENTS', 'action must be "delete", "clear-workspace", or "clear-all"');
|
|
262
|
-
}
|
|
263
|
-
json(response, 405, { error: 'method not allowed' });
|
|
264
|
-
}
|
|
265
|
-
catch (error) {
|
|
266
|
-
const status = error instanceof ChangeLedgerError && error.code === 'RESTORE_POINT_NOT_FOUND' ? 404 : 409;
|
|
267
|
-
json(response, status, {
|
|
268
|
-
error: errorMessage(error),
|
|
269
|
-
code: error instanceof ChangeLedgerError ? error.code : 'MANAGE_FAILED',
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
217
|
/** Build the exact-route handler as a testable unit. */
|
|
275
218
|
export function createRewindHttpHandler(ctx, engine, coordinator) {
|
|
276
219
|
return async (request, response) => {
|
|
@@ -282,17 +225,7 @@ export function createRewindHttpHandler(ctx, engine, coordinator) {
|
|
|
282
225
|
const detailsOnly = url.searchParams.get('details') === '1';
|
|
283
226
|
const offset = nonNegativeInteger(url.searchParams.get('offset') ?? '0', 'offset');
|
|
284
227
|
const limit = pageSize(url.searchParams.get('limit'), detailsOnly ? MAX_CHANGE_PAGE_SIZE : INITIAL_CHANGE_PREVIEW_LIMIT);
|
|
285
|
-
const {
|
|
286
|
-
let checkpoint;
|
|
287
|
-
try {
|
|
288
|
-
checkpoint = await resolveMessageCheckpoint(ctx, engine, sessionId, session, target);
|
|
289
|
-
}
|
|
290
|
-
catch (error) {
|
|
291
|
-
// File-checkpoint discovery is allowed to fail independently: the dialog
|
|
292
|
-
// must still expose message-only rewind for a valid Session boundary.
|
|
293
|
-
json(response, 200, { status: 'failed', error: errorMessage(error) });
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
228
|
+
const { target, checkpoint } = await resolveMessageCheckpoint(ctx, engine, sessionId, messageSeq);
|
|
296
229
|
if (checkpoint === undefined) {
|
|
297
230
|
const durableSkip = await engine.findTurnCheckpointSkip({
|
|
298
231
|
cwd: target.cwd,
|
|
@@ -348,20 +281,11 @@ export function createRewindHttpHandler(ctx, engine, coordinator) {
|
|
|
348
281
|
if (request.method === 'POST') {
|
|
349
282
|
const body = objectBody(await readBody(request));
|
|
350
283
|
const mode = body.mode;
|
|
351
|
-
if (mode !== 'code' && mode !== 'both'
|
|
352
|
-
throw new ChangeLedgerError('INVALID_ARGUMENTS', 'mode must be "code"
|
|
284
|
+
if (mode !== 'code' && mode !== 'both') {
|
|
285
|
+
throw new ChangeLedgerError('INVALID_ARGUMENTS', 'mode must be "code" or "both"');
|
|
353
286
|
}
|
|
354
287
|
const sessionId = requiredText(body.sessionId, 'sessionId');
|
|
355
288
|
const messageSeq = nonNegativeInteger(body.messageSeq, 'messageSeq');
|
|
356
|
-
if (mode === 'messages') {
|
|
357
|
-
// Message-only rewind never mutates project files, so no checkpoint, no
|
|
358
|
-
// restore plan, and no shared-workspace gate apply; the conversation
|
|
359
|
-
// restart revalidates the message boundary itself.
|
|
360
|
-
const { target } = await resolveMessageTarget(ctx, sessionId, messageSeq);
|
|
361
|
-
const fork = await createConversationRestart(ctx, sessionId, target);
|
|
362
|
-
json(response, 200, { status: 'completed', mode, sessionId: fork.sessionId });
|
|
363
|
-
return;
|
|
364
|
-
}
|
|
365
289
|
const checkpointId = requiredText(body.checkpointId, 'checkpointId');
|
|
366
290
|
const checkpoint = await checkpointForRequest(ctx, engine, sessionId, messageSeq, checkpointId);
|
|
367
291
|
const activeSessionIds = await sharedWorkspaceSessions(ctx.agents, checkpoint.cwd);
|
|
@@ -419,18 +343,15 @@ async function readSession(ctx, sessionId) {
|
|
|
419
343
|
const stored = await ctx.sessionQuery.readSession(sessionId);
|
|
420
344
|
return { id: sessionId, header: stored.session, events: stored.events };
|
|
421
345
|
}
|
|
422
|
-
async function
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
}
|
|
426
|
-
async function resolveMessageCheckpoint(ctx, engine, sessionId, source, target) {
|
|
427
|
-
let current = source;
|
|
346
|
+
async function resolveMessageCheckpoint(ctx, engine, sessionId, messageSeq) {
|
|
347
|
+
let current = await readSession(ctx, sessionId);
|
|
348
|
+
const target = messageTarget(current, messageSeq);
|
|
428
349
|
const direct = await engine.findTurnCheckpoint({ cwd: target.cwd, sessionId, turn: target.turn });
|
|
429
350
|
if (direct !== undefined) {
|
|
430
351
|
if (direct.turnStartSeq !== target.turnStartSeq) {
|
|
431
352
|
throw new ChangeLedgerError('PLAN_STALE', 'the message checkpoint no longer matches its turn start');
|
|
432
353
|
}
|
|
433
|
-
return { ...target, id: direct.id };
|
|
354
|
+
return { target, checkpoint: { ...target, id: direct.id } };
|
|
434
355
|
}
|
|
435
356
|
const seen = new Set([sessionId]);
|
|
436
357
|
while (true) {
|
|
@@ -441,7 +362,7 @@ async function resolveMessageCheckpoint(ctx, engine, sessionId, source, target)
|
|
|
441
362
|
}
|
|
442
363
|
if (parentId === undefined || seedLength === undefined
|
|
443
364
|
|| target.messageSeq >= seedLength || target.turnStartSeq >= seedLength) {
|
|
444
|
-
return
|
|
365
|
+
return { target };
|
|
445
366
|
}
|
|
446
367
|
if (seen.has(parentId)) {
|
|
447
368
|
throw new ChangeLedgerError('PLAN_STALE', 'session fork lineage contains a cycle');
|
|
@@ -453,7 +374,7 @@ async function resolveMessageCheckpoint(ctx, engine, sessionId, source, target)
|
|
|
453
374
|
catch (error) {
|
|
454
375
|
throw new ChangeLedgerError('PLAN_STALE', `parent session ${parentId} is unavailable`, { cause: error });
|
|
455
376
|
}
|
|
456
|
-
const parentTarget = messageTarget(current,
|
|
377
|
+
const parentTarget = messageTarget(current, messageSeq);
|
|
457
378
|
if (parentTarget.turn !== target.turn
|
|
458
379
|
|| parentTarget.turnStartSeq !== target.turnStartSeq
|
|
459
380
|
|| parentTarget.previousTurnEndSeq !== target.previousTurnEndSeq) {
|
|
@@ -465,12 +386,11 @@ async function resolveMessageCheckpoint(ctx, engine, sessionId, source, target)
|
|
|
465
386
|
if (inherited.turnStartSeq !== target.turnStartSeq) {
|
|
466
387
|
throw new ChangeLedgerError('PLAN_STALE', 'the inherited message checkpoint no longer matches the fork boundary');
|
|
467
388
|
}
|
|
468
|
-
return { ...target, id: inherited.id };
|
|
389
|
+
return { target, checkpoint: { ...target, id: inherited.id } };
|
|
469
390
|
}
|
|
470
391
|
}
|
|
471
392
|
async function checkpointForRequest(ctx, engine, sessionId, messageSeq, requestedId) {
|
|
472
|
-
const {
|
|
473
|
-
const checkpoint = await resolveMessageCheckpoint(ctx, engine, sessionId, session, target);
|
|
393
|
+
const { target, checkpoint } = await resolveMessageCheckpoint(ctx, engine, sessionId, messageSeq);
|
|
474
394
|
if (checkpoint === undefined) {
|
|
475
395
|
throw new ChangeLedgerError('RESTORE_POINT_NOT_FOUND', `message ${String(target.messageSeq)} has no rewind checkpoint`);
|
|
476
396
|
}
|
|
@@ -479,22 +399,22 @@ async function checkpointForRequest(ctx, engine, sessionId, messageSeq, requeste
|
|
|
479
399
|
}
|
|
480
400
|
return checkpoint;
|
|
481
401
|
}
|
|
482
|
-
async function createConversationRestart(ctx, sourceId,
|
|
402
|
+
async function createConversationRestart(ctx, sourceId, checkpoint) {
|
|
483
403
|
const source = await readSession(ctx, sourceId);
|
|
484
|
-
const current = messageTarget(source,
|
|
485
|
-
if (current.turn !==
|
|
486
|
-
|| current.turnStartSeq !==
|
|
487
|
-
|| current.previousTurnEndSeq !==
|
|
404
|
+
const current = messageTarget(source, checkpoint.messageSeq);
|
|
405
|
+
if (current.turn !== checkpoint.turn
|
|
406
|
+
|| current.turnStartSeq !== checkpoint.turnStartSeq
|
|
407
|
+
|| current.previousTurnEndSeq !== checkpoint.previousTurnEndSeq) {
|
|
488
408
|
throw new ChangeLedgerError('PLAN_STALE', 'the session no longer contains the selected message boundary');
|
|
489
409
|
}
|
|
490
|
-
const response =
|
|
410
|
+
const response = checkpoint.previousTurnEndSeq === undefined
|
|
491
411
|
? await ctx.apiProxy.sessions.create({
|
|
492
412
|
rpcId: randomUUID(),
|
|
493
|
-
payload: { cwd:
|
|
413
|
+
payload: { cwd: checkpoint.cwd },
|
|
494
414
|
})
|
|
495
415
|
: await ctx.apiProxy.sessions.fork({
|
|
496
416
|
rpcId: randomUUID(),
|
|
497
|
-
payload: { sessionId: sourceId, atSeq:
|
|
417
|
+
payload: { sessionId: sourceId, atSeq: checkpoint.previousTurnEndSeq },
|
|
498
418
|
});
|
|
499
419
|
if (!response.result.ok) {
|
|
500
420
|
throw new ChangeLedgerError('CONVERSATION_REWIND_FAILED', response.result.error.message);
|
|
@@ -621,3 +541,66 @@ function json(response, status, value) {
|
|
|
621
541
|
response.writeHead(status, { 'content-type': 'application/json; charset=utf-8', 'cache-control': 'no-store' });
|
|
622
542
|
response.end(`${JSON.stringify(value)}\n`);
|
|
623
543
|
}
|
|
544
|
+
export const MANAGE_HTTP_PATH = '/turn-rewind/manage';
|
|
545
|
+
/** Register the same-origin storage-management endpoint consumed by the settings card. */
|
|
546
|
+
export function installManageHttp(ctx, engine) {
|
|
547
|
+
ctx.effect(() => ctx.webServer.register({
|
|
548
|
+
kind: 'exact',
|
|
549
|
+
path: MANAGE_HTTP_PATH,
|
|
550
|
+
handler: createManageHttpHandler(engine),
|
|
551
|
+
}), 'change-ledger.manageHttp');
|
|
552
|
+
}
|
|
553
|
+
/** Build the storage-management route as a testable unit. */
|
|
554
|
+
export function createManageHttpHandler(engine) {
|
|
555
|
+
return async (request, response) => {
|
|
556
|
+
try {
|
|
557
|
+
if (request.method === 'GET') {
|
|
558
|
+
const workspaces = await engine.listWorkspaces();
|
|
559
|
+
json(response, 200, {
|
|
560
|
+
storageDir: engine.config.storageDir,
|
|
561
|
+
totalBytes: workspaces.reduce((total, workspace) => total + workspace.totalBytes, 0),
|
|
562
|
+
workspaces: workspaces.map((workspace) => ({
|
|
563
|
+
workspace: workspace.workspace,
|
|
564
|
+
totalBytes: workspace.totalBytes,
|
|
565
|
+
recoveryCount: workspace.recoveryCount,
|
|
566
|
+
restorePoints: workspace.restorePoints.map((point) => ({
|
|
567
|
+
id: point.id,
|
|
568
|
+
kind: point.kind,
|
|
569
|
+
format: point.format,
|
|
570
|
+
createdAt: point.createdAt,
|
|
571
|
+
totalBytes: point.totalBytes,
|
|
572
|
+
fileCount: point.fileCount,
|
|
573
|
+
...(point.sessionId === undefined ? {} : { sessionId: point.sessionId }),
|
|
574
|
+
...(point.turn === undefined ? {} : { turn: point.turn }),
|
|
575
|
+
...(point.label === undefined ? {} : { label: point.label }),
|
|
576
|
+
})),
|
|
577
|
+
})),
|
|
578
|
+
});
|
|
579
|
+
return;
|
|
580
|
+
}
|
|
581
|
+
if (request.method === 'POST') {
|
|
582
|
+
const body = objectBody(await readBody(request));
|
|
583
|
+
const action = requiredText(body.action, 'action');
|
|
584
|
+
if (action === 'delete') {
|
|
585
|
+
const workspace = requiredText(body.workspace, 'workspace');
|
|
586
|
+
const restorePointId = requiredText(body.restorePointId, 'restorePointId');
|
|
587
|
+
const report = await engine.purgeWorkspace({ workspace, restorePointIds: [restorePointId] });
|
|
588
|
+
if (report.deletedRestorePoints === 0) {
|
|
589
|
+
throw new ChangeLedgerError(report.retainedRestorePoints > 0 ? 'RECOVERY_REFERENCE' : 'RESTORE_POINT_NOT_FOUND', report.retainedRestorePoints > 0
|
|
590
|
+
? 'restore point is required by an incomplete recovery journal'
|
|
591
|
+
: `restore point ${restorePointId} does not exist`);
|
|
592
|
+
}
|
|
593
|
+
json(response, 200, { status: 'completed', action, ...report });
|
|
594
|
+
return;
|
|
595
|
+
}
|
|
596
|
+
throw new ChangeLedgerError('INVALID_ARGUMENTS', `unsupported manage action ${action}`);
|
|
597
|
+
}
|
|
598
|
+
response.writeHead(405, { allow: 'GET, POST' });
|
|
599
|
+
response.end();
|
|
600
|
+
}
|
|
601
|
+
catch (error) {
|
|
602
|
+
const status = error instanceof ChangeLedgerError && error.code === 'RESTORE_POINT_NOT_FOUND' ? 404 : 409;
|
|
603
|
+
json(response, status, { error: errorMessage(error), code: error instanceof ChangeLedgerError ? error.code : 'MANAGE_FAILED' });
|
|
604
|
+
}
|
|
605
|
+
};
|
|
606
|
+
}
|
|
@@ -20,6 +20,11 @@ interface AgentLike {
|
|
|
20
20
|
readonly status: 'idle' | 'running';
|
|
21
21
|
readonly session: SessionLike;
|
|
22
22
|
}
|
|
23
|
+
interface ToolExecutionLike {
|
|
24
|
+
readonly agent?: AgentLike;
|
|
25
|
+
readonly parent?: symbol;
|
|
26
|
+
readonly signal: AbortSignal;
|
|
27
|
+
}
|
|
23
28
|
interface AgentsLike {
|
|
24
29
|
list(): AgentLike[];
|
|
25
30
|
}
|
|
@@ -106,10 +111,11 @@ declare module '@deepseek-ai/cordis' {
|
|
|
106
111
|
readonly step: number;
|
|
107
112
|
readonly signal: AbortSignal;
|
|
108
113
|
}, next: () => Promise<unknown>): Promise<unknown>;
|
|
114
|
+
'tools/execute'(exec: ToolExecutionLike, next: () => Promise<unknown>): Promise<unknown>;
|
|
109
115
|
}
|
|
110
116
|
}
|
|
111
117
|
export declare const REWIND_HTTP_PATH = "/turn-rewind";
|
|
112
|
-
/** Capture each turn
|
|
118
|
+
/** Capture each turn beside model work and gate root tool side effects on its bounded outcome. */
|
|
113
119
|
export declare class TurnCheckpointCoordinator {
|
|
114
120
|
private readonly engine;
|
|
115
121
|
private readonly captures;
|
|
@@ -118,7 +124,7 @@ export declare class TurnCheckpointCoordinator {
|
|
|
118
124
|
private readonly skips;
|
|
119
125
|
private readonly workspaceTails;
|
|
120
126
|
constructor(engine: ChangeLedgerEngine);
|
|
121
|
-
/**
|
|
127
|
+
/** Keep sidecar checkpoint work out of the Agent response waterfall. */
|
|
122
128
|
install(ctx: Context): void;
|
|
123
129
|
/** Current capture state for a session turn when no durable checkpoint exists yet. */
|
|
124
130
|
state(sessionId: string, turn: number): {
|
|
@@ -126,19 +132,22 @@ export declare class TurnCheckpointCoordinator {
|
|
|
126
132
|
readonly error?: string;
|
|
127
133
|
readonly reason?: string;
|
|
128
134
|
};
|
|
135
|
+
private startCapture;
|
|
129
136
|
private capture;
|
|
137
|
+
/** Wait only for the bounded checkpoint outcome of the Agent's open turn. */
|
|
138
|
+
private waitForOpenTurn;
|
|
130
139
|
private serializeWorkspace;
|
|
131
140
|
private recordFailure;
|
|
132
141
|
}
|
|
133
142
|
/** Register the same-origin preview/apply endpoint consumed by the browser half. */
|
|
134
143
|
export declare function installRewindHttp(ctx: Context, engine: ChangeLedgerEngine, coordinator: TurnCheckpointCoordinator): void;
|
|
144
|
+
/** Build the exact-route handler as a testable unit. */
|
|
145
|
+
export declare function createRewindHttpHandler(ctx: Pick<Context, 'sessions' | 'sessionQuery' | 'apiProxy'> & {
|
|
146
|
+
readonly agents?: AgentsLike;
|
|
147
|
+
}, engine: ChangeLedgerEngine, coordinator: TurnCheckpointCoordinator): (request: HttpRequestLike, response: HttpResponseLike) => Promise<void>;
|
|
135
148
|
export declare const MANAGE_HTTP_PATH = "/turn-rewind/manage";
|
|
136
149
|
/** Register the same-origin storage-management endpoint consumed by the settings card. */
|
|
137
150
|
export declare function installManageHttp(ctx: Context, engine: ChangeLedgerEngine): void;
|
|
138
151
|
/** Build the storage-management route as a testable unit. */
|
|
139
152
|
export declare function createManageHttpHandler(engine: ChangeLedgerEngine): (request: HttpRequestLike, response: HttpResponseLike) => Promise<void>;
|
|
140
|
-
/** Build the exact-route handler as a testable unit. */
|
|
141
|
-
export declare function createRewindHttpHandler(ctx: Pick<Context, 'sessions' | 'sessionQuery' | 'apiProxy'> & {
|
|
142
|
-
readonly agents?: AgentsLike;
|
|
143
|
-
}, engine: ChangeLedgerEngine, coordinator: TurnCheckpointCoordinator): (request: HttpRequestLike, response: HttpResponseLike) => Promise<void>;
|
|
144
153
|
export {};
|
package/package.json
CHANGED
package/src/client/index.tsx
CHANGED
|
@@ -1017,9 +1017,12 @@ function collectPortalTargets(nodes: readonly RewindNodeLike[]): readonly Rewind
|
|
|
1017
1017
|
const target = selectRewindMessageTarget(value)
|
|
1018
1018
|
if (target === null) continue
|
|
1019
1019
|
const row = rows.get(target.rowKey)
|
|
1020
|
-
const messageRoot = row?.querySelector
|
|
1021
|
-
|
|
1022
|
-
|
|
1020
|
+
const messageRoot = row?.querySelector?.<HTMLElement>('[data-time-hover-root="true"]')
|
|
1021
|
+
// Match the actions container by class or last child element
|
|
1022
|
+
const actions = (typeof messageRoot?.querySelector === 'function'
|
|
1023
|
+
? messageRoot.querySelector<HTMLElement>('[class*="actions"]')
|
|
1024
|
+
: undefined) ?? messageRoot?.lastElementChild
|
|
1025
|
+
if (!(actions instanceof HTMLElement)) continue
|
|
1023
1026
|
targets.push({ container: actions, matched: target.matched })
|
|
1024
1027
|
}
|
|
1025
1028
|
return targets
|
package/src/rewind-host.ts
CHANGED
|
@@ -4,7 +4,6 @@ import { createDeadline } from './deadline.js'
|
|
|
4
4
|
import { ChangeLedgerError, errorMessage } from './errors.js'
|
|
5
5
|
import type { ChangeLedgerEngine } from './engine.js'
|
|
6
6
|
import { discoverRepositoryRoot } from './git.js'
|
|
7
|
-
import type { WorkspacePurgeReport } from './types.js'
|
|
8
7
|
|
|
9
8
|
interface SessionEventLike {
|
|
10
9
|
readonly type: string
|
|
@@ -30,6 +29,12 @@ interface AgentLike {
|
|
|
30
29
|
readonly session: SessionLike
|
|
31
30
|
}
|
|
32
31
|
|
|
32
|
+
interface ToolExecutionLike {
|
|
33
|
+
readonly agent?: AgentLike
|
|
34
|
+
readonly parent?: symbol
|
|
35
|
+
readonly signal: AbortSignal
|
|
36
|
+
}
|
|
37
|
+
|
|
33
38
|
interface AgentsLike {
|
|
34
39
|
list(): AgentLike[]
|
|
35
40
|
}
|
|
@@ -103,6 +108,10 @@ declare module '@deepseek-ai/cordis' {
|
|
|
103
108
|
},
|
|
104
109
|
next: () => Promise<unknown>,
|
|
105
110
|
): Promise<unknown>
|
|
111
|
+
'tools/execute'(
|
|
112
|
+
exec: ToolExecutionLike,
|
|
113
|
+
next: () => Promise<unknown>,
|
|
114
|
+
): Promise<unknown>
|
|
106
115
|
}
|
|
107
116
|
}
|
|
108
117
|
|
|
@@ -111,7 +120,7 @@ const BODY_LIMIT = 64 * 1024
|
|
|
111
120
|
const INITIAL_CHANGE_PREVIEW_LIMIT = 8
|
|
112
121
|
const MAX_CHANGE_PAGE_SIZE = 200
|
|
113
122
|
|
|
114
|
-
/** Capture each turn
|
|
123
|
+
/** Capture each turn beside model work and gate root tool side effects on its bounded outcome. */
|
|
115
124
|
export class TurnCheckpointCoordinator {
|
|
116
125
|
private readonly captures = new Map<string, Promise<void>>()
|
|
117
126
|
private readonly pending = new Set<string>()
|
|
@@ -121,10 +130,17 @@ export class TurnCheckpointCoordinator {
|
|
|
121
130
|
|
|
122
131
|
constructor(private readonly engine: ChangeLedgerEngine) {}
|
|
123
132
|
|
|
124
|
-
/**
|
|
133
|
+
/** Keep sidecar checkpoint work out of the Agent response waterfall. */
|
|
125
134
|
install(ctx: Context): void {
|
|
126
135
|
ctx.on('agent/pre-step', async ({ agent, turn, step, signal }, next) => {
|
|
127
|
-
if (step === 1)
|
|
136
|
+
if (step === 1) this.startCapture(ctx, agent, turn, signal)
|
|
137
|
+
return next()
|
|
138
|
+
}, { prepend: true })
|
|
139
|
+
|
|
140
|
+
ctx.on('tools/execute', async (exec, next) => {
|
|
141
|
+
if (exec.agent !== undefined && exec.parent === undefined) {
|
|
142
|
+
await this.waitForOpenTurn(exec.agent, exec.signal)
|
|
143
|
+
}
|
|
128
144
|
return next()
|
|
129
145
|
}, { prepend: true })
|
|
130
146
|
}
|
|
@@ -139,6 +155,20 @@ export class TurnCheckpointCoordinator {
|
|
|
139
155
|
return error === undefined ? { status: 'missing' } : { status: 'failed', error }
|
|
140
156
|
}
|
|
141
157
|
|
|
158
|
+
private startCapture(
|
|
159
|
+
ctx: Pick<Context, 'logger'>,
|
|
160
|
+
agent: AgentLike,
|
|
161
|
+
turn: number,
|
|
162
|
+
signal: AbortSignal,
|
|
163
|
+
): void {
|
|
164
|
+
const key = checkpointKey(agent.id, turn)
|
|
165
|
+
if (this.captures.has(key)) return
|
|
166
|
+
const capture = this.capture(ctx, agent, turn, signal).catch(async (error: unknown) => {
|
|
167
|
+
await this.recordFailure(ctx, agent.id, turn, error)
|
|
168
|
+
})
|
|
169
|
+
this.captures.set(key, capture)
|
|
170
|
+
}
|
|
171
|
+
|
|
142
172
|
private async capture(
|
|
143
173
|
ctx: Pick<Context, 'logger'>,
|
|
144
174
|
agent: AgentLike,
|
|
@@ -160,11 +190,6 @@ export class TurnCheckpointCoordinator {
|
|
|
160
190
|
const captureDeadline = createDeadline(Math.max(1, timeoutMs - reserveMs))
|
|
161
191
|
const captureSignal = AbortSignal.any([signal, captureDeadline.signal])
|
|
162
192
|
try {
|
|
163
|
-
const existing = this.captures.get(key)
|
|
164
|
-
if (existing !== undefined) {
|
|
165
|
-
await waitWithSignal(existing, captureSignal).catch(() => undefined)
|
|
166
|
-
return
|
|
167
|
-
}
|
|
168
193
|
this.pending.add(key)
|
|
169
194
|
this.failures.delete(key)
|
|
170
195
|
this.skips.delete(key)
|
|
@@ -202,7 +227,6 @@ export class TurnCheckpointCoordinator {
|
|
|
202
227
|
this.pending.delete(key)
|
|
203
228
|
}
|
|
204
229
|
})()
|
|
205
|
-
this.captures.set(key, capture)
|
|
206
230
|
try {
|
|
207
231
|
await waitWithSignal(capture, outcomeSignal)
|
|
208
232
|
} catch (error) {
|
|
@@ -221,6 +245,24 @@ export class TurnCheckpointCoordinator {
|
|
|
221
245
|
}
|
|
222
246
|
}
|
|
223
247
|
|
|
248
|
+
/** Wait only for the bounded checkpoint outcome of the Agent's open turn. */
|
|
249
|
+
private async waitForOpenTurn(agent: AgentLike, signal: AbortSignal): Promise<void> {
|
|
250
|
+
if (signal.aborted) return
|
|
251
|
+
const boundary = agent.session.events.findLast(event => event.type === 'turn/start' || event.type === 'turn/end')
|
|
252
|
+
if (boundary?.type !== 'turn/start') return
|
|
253
|
+
const turn = boundary.data.turn
|
|
254
|
+
if (!Number.isSafeInteger(turn) || (turn as number) < 0) return
|
|
255
|
+
const capture = this.captures.get(checkpointKey(agent.id, turn as number))
|
|
256
|
+
if (capture === undefined) return
|
|
257
|
+
try {
|
|
258
|
+
await waitWithSignal(capture, signal)
|
|
259
|
+
} catch (error) {
|
|
260
|
+
// Delegate caller cancellation so the DSH tool runtime preserves its
|
|
261
|
+
// canonical ABORTED_BEFORE_DISPATCH result instead of a wrapper error.
|
|
262
|
+
if (!signal.aborted) throw error
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
224
266
|
private async serializeWorkspace(workspace: string, signal: AbortSignal, task: () => Promise<void>): Promise<void> {
|
|
225
267
|
const previous = this.workspaceTails.get(workspace) ?? Promise.resolve()
|
|
226
268
|
const current = (async () => {
|
|
@@ -313,101 +355,6 @@ export function installRewindHttp(
|
|
|
313
355
|
}), 'change-ledger.rewindHttp')
|
|
314
356
|
}
|
|
315
357
|
|
|
316
|
-
export const MANAGE_HTTP_PATH = '/turn-rewind/manage'
|
|
317
|
-
|
|
318
|
-
/** Register the same-origin storage-management endpoint consumed by the settings card. */
|
|
319
|
-
export function installManageHttp(ctx: Context, engine: ChangeLedgerEngine): void {
|
|
320
|
-
ctx.effect(() => ctx.webServer.register({
|
|
321
|
-
kind: 'exact',
|
|
322
|
-
path: MANAGE_HTTP_PATH,
|
|
323
|
-
handler: createManageHttpHandler(engine),
|
|
324
|
-
}), 'change-ledger.manageHttp')
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
/** Build the storage-management route as a testable unit. */
|
|
328
|
-
export function createManageHttpHandler(
|
|
329
|
-
engine: ChangeLedgerEngine,
|
|
330
|
-
): (request: HttpRequestLike, response: HttpResponseLike) => Promise<void> {
|
|
331
|
-
return async (request, response) => {
|
|
332
|
-
try {
|
|
333
|
-
if (request.method === 'GET') {
|
|
334
|
-
const workspaces = await engine.listWorkspaces()
|
|
335
|
-
json(response, 200, {
|
|
336
|
-
storageDir: engine.config.storageDir,
|
|
337
|
-
totalBytes: workspaces.reduce((total, workspace) => total + workspace.totalBytes, 0),
|
|
338
|
-
workspaces: workspaces.map((workspace) => ({
|
|
339
|
-
workspace: workspace.workspace,
|
|
340
|
-
totalBytes: workspace.totalBytes,
|
|
341
|
-
recoveryCount: workspace.recoveryCount,
|
|
342
|
-
restorePoints: workspace.restorePoints.map((point) => ({
|
|
343
|
-
id: point.id,
|
|
344
|
-
kind: point.kind,
|
|
345
|
-
format: point.format,
|
|
346
|
-
createdAt: point.createdAt,
|
|
347
|
-
totalBytes: point.totalBytes,
|
|
348
|
-
fileCount: point.fileCount,
|
|
349
|
-
...(point.sessionId === undefined ? {} : { sessionId: point.sessionId }),
|
|
350
|
-
...(point.turn === undefined ? {} : { turn: point.turn }),
|
|
351
|
-
...(point.label === undefined ? {} : { label: point.label }),
|
|
352
|
-
})),
|
|
353
|
-
})),
|
|
354
|
-
})
|
|
355
|
-
return
|
|
356
|
-
}
|
|
357
|
-
if (request.method === 'POST') {
|
|
358
|
-
const body = objectBody(await readBody(request))
|
|
359
|
-
const action = requiredText(body.action, 'action')
|
|
360
|
-
if (action === 'delete') {
|
|
361
|
-
const workspace = requiredText(body.workspace, 'workspace')
|
|
362
|
-
const restorePointId = requiredText(body.restorePointId, 'restorePointId')
|
|
363
|
-
const report = await engine.purgeWorkspace({ workspace, restorePointIds: [restorePointId] })
|
|
364
|
-
if (report.deletedRestorePoints === 0) {
|
|
365
|
-
throw new ChangeLedgerError(
|
|
366
|
-
report.retainedRestorePoints > 0 ? 'RECOVERY_REFERENCE' : 'RESTORE_POINT_NOT_FOUND',
|
|
367
|
-
report.retainedRestorePoints > 0
|
|
368
|
-
? 'restore point is required by an incomplete recovery journal'
|
|
369
|
-
: `restore point ${restorePointId} does not exist`,
|
|
370
|
-
)
|
|
371
|
-
}
|
|
372
|
-
json(response, 200, { status: 'completed', action, ...report })
|
|
373
|
-
return
|
|
374
|
-
}
|
|
375
|
-
if (action === 'clear-workspace') {
|
|
376
|
-
const workspace = requiredText(body.workspace, 'workspace')
|
|
377
|
-
json(response, 200, { status: 'completed', action, ...await engine.purgeWorkspace({ workspace }) })
|
|
378
|
-
return
|
|
379
|
-
}
|
|
380
|
-
if (action === 'clear-all') {
|
|
381
|
-
const reports: WorkspacePurgeReport[] = []
|
|
382
|
-
const failures: { readonly workspace: string; readonly error: string }[] = []
|
|
383
|
-
for (const overview of await engine.listWorkspaces()) {
|
|
384
|
-
try {
|
|
385
|
-
reports.push(await engine.purgeWorkspace({ workspace: overview.workspace }))
|
|
386
|
-
} catch (error) {
|
|
387
|
-
failures.push({ workspace: overview.workspace, error: errorMessage(error) })
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
json(response, 200, {
|
|
391
|
-
status: failures.length > 0 ? 'partial' : 'completed',
|
|
392
|
-
action,
|
|
393
|
-
reports,
|
|
394
|
-
...(failures.length > 0 ? { failures } : {}),
|
|
395
|
-
})
|
|
396
|
-
return
|
|
397
|
-
}
|
|
398
|
-
throw new ChangeLedgerError('INVALID_ARGUMENTS', 'action must be "delete", "clear-workspace", or "clear-all"')
|
|
399
|
-
}
|
|
400
|
-
json(response, 405, { error: 'method not allowed' })
|
|
401
|
-
} catch (error) {
|
|
402
|
-
const status = error instanceof ChangeLedgerError && error.code === 'RESTORE_POINT_NOT_FOUND' ? 404 : 409
|
|
403
|
-
json(response, status, {
|
|
404
|
-
error: errorMessage(error),
|
|
405
|
-
code: error instanceof ChangeLedgerError ? error.code : 'MANAGE_FAILED',
|
|
406
|
-
})
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
|
|
411
358
|
/** Build the exact-route handler as a testable unit. */
|
|
412
359
|
export function createRewindHttpHandler(
|
|
413
360
|
ctx: Pick<Context, 'sessions' | 'sessionQuery' | 'apiProxy'> & { readonly agents?: AgentsLike },
|
|
@@ -423,16 +370,7 @@ export function createRewindHttpHandler(
|
|
|
423
370
|
const detailsOnly = url.searchParams.get('details') === '1'
|
|
424
371
|
const offset = nonNegativeInteger(url.searchParams.get('offset') ?? '0', 'offset')
|
|
425
372
|
const limit = pageSize(url.searchParams.get('limit'), detailsOnly ? MAX_CHANGE_PAGE_SIZE : INITIAL_CHANGE_PREVIEW_LIMIT)
|
|
426
|
-
const {
|
|
427
|
-
let checkpoint: MessageCheckpoint | undefined
|
|
428
|
-
try {
|
|
429
|
-
checkpoint = await resolveMessageCheckpoint(ctx, engine, sessionId, session, target)
|
|
430
|
-
} catch (error) {
|
|
431
|
-
// File-checkpoint discovery is allowed to fail independently: the dialog
|
|
432
|
-
// must still expose message-only rewind for a valid Session boundary.
|
|
433
|
-
json(response, 200, { status: 'failed', error: errorMessage(error) })
|
|
434
|
-
return
|
|
435
|
-
}
|
|
373
|
+
const { target, checkpoint } = await resolveMessageCheckpoint(ctx, engine, sessionId, messageSeq)
|
|
436
374
|
if (checkpoint === undefined) {
|
|
437
375
|
const durableSkip = await engine.findTurnCheckpointSkip({
|
|
438
376
|
cwd: target.cwd,
|
|
@@ -488,20 +426,11 @@ export function createRewindHttpHandler(
|
|
|
488
426
|
if (request.method === 'POST') {
|
|
489
427
|
const body = objectBody(await readBody(request))
|
|
490
428
|
const mode = body.mode
|
|
491
|
-
if (mode !== 'code' && mode !== 'both'
|
|
492
|
-
throw new ChangeLedgerError('INVALID_ARGUMENTS', 'mode must be "code"
|
|
429
|
+
if (mode !== 'code' && mode !== 'both') {
|
|
430
|
+
throw new ChangeLedgerError('INVALID_ARGUMENTS', 'mode must be "code" or "both"')
|
|
493
431
|
}
|
|
494
432
|
const sessionId = requiredText(body.sessionId, 'sessionId')
|
|
495
433
|
const messageSeq = nonNegativeInteger(body.messageSeq, 'messageSeq')
|
|
496
|
-
if (mode === 'messages') {
|
|
497
|
-
// Message-only rewind never mutates project files, so no checkpoint, no
|
|
498
|
-
// restore plan, and no shared-workspace gate apply; the conversation
|
|
499
|
-
// restart revalidates the message boundary itself.
|
|
500
|
-
const { target } = await resolveMessageTarget(ctx, sessionId, messageSeq)
|
|
501
|
-
const fork = await createConversationRestart(ctx, sessionId, target)
|
|
502
|
-
json(response, 200, { status: 'completed', mode, sessionId: fork.sessionId })
|
|
503
|
-
return
|
|
504
|
-
}
|
|
505
434
|
const checkpointId = requiredText(body.checkpointId, 'checkpointId')
|
|
506
435
|
const checkpoint = await checkpointForRequest(ctx, engine, sessionId, messageSeq, checkpointId)
|
|
507
436
|
const activeSessionIds = await sharedWorkspaceSessions(ctx.agents, checkpoint.cwd)
|
|
@@ -579,29 +508,20 @@ interface MessageCheckpoint extends MessageTarget {
|
|
|
579
508
|
readonly id: string
|
|
580
509
|
}
|
|
581
510
|
|
|
582
|
-
async function resolveMessageTarget(
|
|
583
|
-
ctx: Pick<Context, 'sessions' | 'sessionQuery'>,
|
|
584
|
-
sessionId: string,
|
|
585
|
-
messageSeq: number,
|
|
586
|
-
): Promise<{ readonly session: SessionLike; readonly target: MessageTarget }> {
|
|
587
|
-
const session = await readSession(ctx, sessionId)
|
|
588
|
-
return { session, target: messageTarget(session, messageSeq) }
|
|
589
|
-
}
|
|
590
|
-
|
|
591
511
|
async function resolveMessageCheckpoint(
|
|
592
512
|
ctx: Pick<Context, 'sessions' | 'sessionQuery'>,
|
|
593
513
|
engine: ChangeLedgerEngine,
|
|
594
514
|
sessionId: string,
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
515
|
+
messageSeq: number,
|
|
516
|
+
): Promise<{ readonly target: MessageTarget; readonly checkpoint?: MessageCheckpoint }> {
|
|
517
|
+
let current = await readSession(ctx, sessionId)
|
|
518
|
+
const target = messageTarget(current, messageSeq)
|
|
599
519
|
const direct = await engine.findTurnCheckpoint({ cwd: target.cwd, sessionId, turn: target.turn })
|
|
600
520
|
if (direct !== undefined) {
|
|
601
521
|
if (direct.turnStartSeq !== target.turnStartSeq) {
|
|
602
522
|
throw new ChangeLedgerError('PLAN_STALE', 'the message checkpoint no longer matches its turn start')
|
|
603
523
|
}
|
|
604
|
-
return { ...target, id: direct.id }
|
|
524
|
+
return { target, checkpoint: { ...target, id: direct.id } }
|
|
605
525
|
}
|
|
606
526
|
|
|
607
527
|
const seen = new Set<string>([sessionId])
|
|
@@ -613,7 +533,7 @@ async function resolveMessageCheckpoint(
|
|
|
613
533
|
}
|
|
614
534
|
if (parentId === undefined || seedLength === undefined
|
|
615
535
|
|| target.messageSeq >= seedLength || target.turnStartSeq >= seedLength) {
|
|
616
|
-
return
|
|
536
|
+
return { target }
|
|
617
537
|
}
|
|
618
538
|
if (seen.has(parentId)) {
|
|
619
539
|
throw new ChangeLedgerError('PLAN_STALE', 'session fork lineage contains a cycle')
|
|
@@ -624,7 +544,7 @@ async function resolveMessageCheckpoint(
|
|
|
624
544
|
} catch (error) {
|
|
625
545
|
throw new ChangeLedgerError('PLAN_STALE', `parent session ${parentId} is unavailable`, { cause: error })
|
|
626
546
|
}
|
|
627
|
-
const parentTarget = messageTarget(current,
|
|
547
|
+
const parentTarget = messageTarget(current, messageSeq)
|
|
628
548
|
if (parentTarget.turn !== target.turn
|
|
629
549
|
|| parentTarget.turnStartSeq !== target.turnStartSeq
|
|
630
550
|
|| parentTarget.previousTurnEndSeq !== target.previousTurnEndSeq) {
|
|
@@ -635,7 +555,7 @@ async function resolveMessageCheckpoint(
|
|
|
635
555
|
if (inherited.turnStartSeq !== target.turnStartSeq) {
|
|
636
556
|
throw new ChangeLedgerError('PLAN_STALE', 'the inherited message checkpoint no longer matches the fork boundary')
|
|
637
557
|
}
|
|
638
|
-
return { ...target, id: inherited.id }
|
|
558
|
+
return { target, checkpoint: { ...target, id: inherited.id } }
|
|
639
559
|
}
|
|
640
560
|
}
|
|
641
561
|
|
|
@@ -646,8 +566,7 @@ async function checkpointForRequest(
|
|
|
646
566
|
messageSeq: number,
|
|
647
567
|
requestedId: string,
|
|
648
568
|
): Promise<MessageCheckpoint> {
|
|
649
|
-
const {
|
|
650
|
-
const checkpoint = await resolveMessageCheckpoint(ctx, engine, sessionId, session, target)
|
|
569
|
+
const { target, checkpoint } = await resolveMessageCheckpoint(ctx, engine, sessionId, messageSeq)
|
|
651
570
|
if (checkpoint === undefined) {
|
|
652
571
|
throw new ChangeLedgerError('RESTORE_POINT_NOT_FOUND', `message ${String(target.messageSeq)} has no rewind checkpoint`)
|
|
653
572
|
}
|
|
@@ -660,23 +579,23 @@ async function checkpointForRequest(
|
|
|
660
579
|
async function createConversationRestart(
|
|
661
580
|
ctx: Pick<Context, 'sessions' | 'sessionQuery' | 'apiProxy'>,
|
|
662
581
|
sourceId: string,
|
|
663
|
-
|
|
582
|
+
checkpoint: MessageCheckpoint,
|
|
664
583
|
): Promise<{ readonly sessionId: string }> {
|
|
665
584
|
const source = await readSession(ctx, sourceId)
|
|
666
|
-
const current = messageTarget(source,
|
|
667
|
-
if (current.turn !==
|
|
668
|
-
|| current.turnStartSeq !==
|
|
669
|
-
|| current.previousTurnEndSeq !==
|
|
585
|
+
const current = messageTarget(source, checkpoint.messageSeq)
|
|
586
|
+
if (current.turn !== checkpoint.turn
|
|
587
|
+
|| current.turnStartSeq !== checkpoint.turnStartSeq
|
|
588
|
+
|| current.previousTurnEndSeq !== checkpoint.previousTurnEndSeq) {
|
|
670
589
|
throw new ChangeLedgerError('PLAN_STALE', 'the session no longer contains the selected message boundary')
|
|
671
590
|
}
|
|
672
|
-
const response =
|
|
591
|
+
const response = checkpoint.previousTurnEndSeq === undefined
|
|
673
592
|
? await ctx.apiProxy.sessions.create({
|
|
674
593
|
rpcId: randomUUID(),
|
|
675
|
-
payload: { cwd:
|
|
594
|
+
payload: { cwd: checkpoint.cwd },
|
|
676
595
|
})
|
|
677
596
|
: await ctx.apiProxy.sessions.fork({
|
|
678
597
|
rpcId: randomUUID(),
|
|
679
|
-
payload: { sessionId: sourceId, atSeq:
|
|
598
|
+
payload: { sessionId: sourceId, atSeq: checkpoint.previousTurnEndSeq },
|
|
680
599
|
})
|
|
681
600
|
if (!response.result.ok) {
|
|
682
601
|
throw new ChangeLedgerError('CONVERSATION_REWIND_FAILED', response.result.error.message)
|
|
@@ -810,3 +729,73 @@ function json(response: HttpResponseLike, status: number, value: unknown): void
|
|
|
810
729
|
response.writeHead(status, { 'content-type': 'application/json; charset=utf-8', 'cache-control': 'no-store' })
|
|
811
730
|
response.end(`${JSON.stringify(value)}\n`)
|
|
812
731
|
}
|
|
732
|
+
|
|
733
|
+
export const MANAGE_HTTP_PATH = '/turn-rewind/manage'
|
|
734
|
+
|
|
735
|
+
/** Register the same-origin storage-management endpoint consumed by the settings card. */
|
|
736
|
+
export function installManageHttp(ctx: Context, engine: ChangeLedgerEngine): void {
|
|
737
|
+
ctx.effect(() => ctx.webServer.register({
|
|
738
|
+
kind: 'exact',
|
|
739
|
+
path: MANAGE_HTTP_PATH,
|
|
740
|
+
handler: createManageHttpHandler(engine),
|
|
741
|
+
}), 'change-ledger.manageHttp')
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
/** Build the storage-management route as a testable unit. */
|
|
745
|
+
export function createManageHttpHandler(
|
|
746
|
+
engine: ChangeLedgerEngine,
|
|
747
|
+
): (request: HttpRequestLike, response: HttpResponseLike) => Promise<void> {
|
|
748
|
+
return async (request, response) => {
|
|
749
|
+
try {
|
|
750
|
+
if (request.method === 'GET') {
|
|
751
|
+
const workspaces = await engine.listWorkspaces()
|
|
752
|
+
json(response, 200, {
|
|
753
|
+
storageDir: engine.config.storageDir,
|
|
754
|
+
totalBytes: workspaces.reduce((total, workspace) => total + workspace.totalBytes, 0),
|
|
755
|
+
workspaces: workspaces.map((workspace) => ({
|
|
756
|
+
workspace: workspace.workspace,
|
|
757
|
+
totalBytes: workspace.totalBytes,
|
|
758
|
+
recoveryCount: workspace.recoveryCount,
|
|
759
|
+
restorePoints: workspace.restorePoints.map((point) => ({
|
|
760
|
+
id: point.id,
|
|
761
|
+
kind: point.kind,
|
|
762
|
+
format: point.format,
|
|
763
|
+
createdAt: point.createdAt,
|
|
764
|
+
totalBytes: point.totalBytes,
|
|
765
|
+
fileCount: point.fileCount,
|
|
766
|
+
...(point.sessionId === undefined ? {} : { sessionId: point.sessionId }),
|
|
767
|
+
...(point.turn === undefined ? {} : { turn: point.turn }),
|
|
768
|
+
...(point.label === undefined ? {} : { label: point.label }),
|
|
769
|
+
})),
|
|
770
|
+
})),
|
|
771
|
+
})
|
|
772
|
+
return
|
|
773
|
+
}
|
|
774
|
+
if (request.method === 'POST') {
|
|
775
|
+
const body = objectBody(await readBody(request))
|
|
776
|
+
const action = requiredText(body.action, 'action')
|
|
777
|
+
if (action === 'delete') {
|
|
778
|
+
const workspace = requiredText(body.workspace, 'workspace')
|
|
779
|
+
const restorePointId = requiredText(body.restorePointId, 'restorePointId')
|
|
780
|
+
const report = await engine.purgeWorkspace({ workspace, restorePointIds: [restorePointId] })
|
|
781
|
+
if (report.deletedRestorePoints === 0) {
|
|
782
|
+
throw new ChangeLedgerError(
|
|
783
|
+
report.retainedRestorePoints > 0 ? 'RECOVERY_REFERENCE' : 'RESTORE_POINT_NOT_FOUND',
|
|
784
|
+
report.retainedRestorePoints > 0
|
|
785
|
+
? 'restore point is required by an incomplete recovery journal'
|
|
786
|
+
: `restore point ${restorePointId} does not exist`,
|
|
787
|
+
)
|
|
788
|
+
}
|
|
789
|
+
json(response, 200, { status: 'completed', action, ...report })
|
|
790
|
+
return
|
|
791
|
+
}
|
|
792
|
+
throw new ChangeLedgerError('INVALID_ARGUMENTS', `unsupported manage action ${action}`)
|
|
793
|
+
}
|
|
794
|
+
response.writeHead(405, { allow: 'GET, POST' })
|
|
795
|
+
response.end()
|
|
796
|
+
} catch (error) {
|
|
797
|
+
const status = error instanceof ChangeLedgerError && error.code === 'RESTORE_POINT_NOT_FOUND' ? 404 : 409
|
|
798
|
+
json(response, status, { error: errorMessage(error), code: error instanceof ChangeLedgerError ? error.code : 'MANAGE_FAILED' })
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
}
|