@modelprofile.com/flexharness 3.6.0 → 3.8.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/changelog.md +18 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.flexharness.d.ts +71 -1
- package/dist_ts/classes.flexharness.js +2374 -138
- package/dist_ts/classes.stores.js +1 -1
- package/dist_ts/errors.d.ts +8 -0
- package/dist_ts/errors.js +17 -1
- package/dist_ts/index.d.ts +1 -0
- package/dist_ts/index.js +2 -1
- package/dist_ts/interfaces.d.ts +272 -5
- package/dist_ts/interfaces.js +18 -2
- package/dist_ts/plugins.d.ts +2 -2
- package/dist_ts/plugins.js +3 -3
- package/dist_ts/utils.json.d.ts +5 -2
- package/dist_ts/utils.json.js +485 -10
- package/dist_ts/utils.slashcommands.d.ts +7 -0
- package/dist_ts/utils.slashcommands.js +164 -0
- package/dist_ts_migration/v3_legacyflexharness.js +6 -2
- package/package.json +1 -1
- package/readme.hints.md +4 -0
- package/readme.md +190 -3
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.flexharness.ts +3210 -190
- package/ts/classes.stores.ts +9 -8
- package/ts/errors.ts +25 -0
- package/ts/index.ts +4 -0
- package/ts/interfaces.ts +378 -5
- package/ts/plugins.ts +2 -0
- package/ts/utils.json.ts +543 -12
- package/ts/utils.slashcommands.ts +178 -0
- package/ts_migration/v3_legacyflexharness.ts +10 -5
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
|
-
import { FlexHarnessAbortError, FlexHarnessCallbackOverflowError, FlexHarnessClosedError, FlexHarnessExternalError, FlexHarnessNotFoundError, FlexHarnessPermissionRejectedError, FlexHarnessPermissionStateError, FlexHarnessQueueFullError, FlexHarnessRunError, FlexHarnessSessionBusyError, FlexHarnessStoreConflictError, FlexHarnessStoreCommitUncertainError, FlexHarnessValidationError, errorToInfo, } from './errors.js';
|
|
2
|
+
import { FlexHarnessAbortError, FlexHarnessCallbackOverflowError, FlexHarnessClosedError, FlexHarnessExternalError, FlexHarnessNotFoundError, FlexHarnessPermissionRejectedError, FlexHarnessPermissionStateError, FlexHarnessQueueFullError, FlexHarnessRunError, FlexHarnessSessionBusyError, FlexHarnessSlashCommandReentryError, FlexHarnessSlashCommandUnavailableError, FlexHarnessStoreConflictError, FlexHarnessStoreCommitUncertainError, FlexHarnessValidationError, errorToInfo, } from './errors.js';
|
|
3
|
+
import { FLEX_REVERSION_MAX_AFFECTED_WORKSPACES, FLEX_REVERSION_DEFAULT_LIMITS, FLEX_REVERSION_MAXIMUM_LIMITS, FLEX_REVERSION_REASON_CODE_MAX_BYTES, FLEX_REVERSION_REFERENCE_MAX_BYTES, FLEX_REVERSION_WORKSPACE_ID_MAX_BYTES, FLEX_REVERSION_WORKSPACE_LABEL_MAX_BYTES, } from './interfaces.js';
|
|
3
4
|
import { InMemoryFlexHarnessStores } from './classes.stores.js';
|
|
4
5
|
import { assertJsonSerializable, cloneSerializable, deepFreeze, normalizeJsonValue, resolveJsonLimits, } from './utils.json.js';
|
|
5
6
|
import { hydrateAgentMessages, normalizeFlexPrompt, } from './utils.prompt.js';
|
|
7
|
+
import { FLEX_SLASH_COMMAND_INITIALIZE_TEMPLATE, FLEX_SLASH_COMMAND_MAX_INPUT_BYTES, expandSlashCommandTemplate, isValidSlashCommandName, parseSlashCommand, slashCommandTemplateHints, } from './utils.slashcommands.js';
|
|
6
8
|
const DEFAULT_CALLBACK_LIMITS = {
|
|
7
9
|
maxEvents: 10_000,
|
|
8
10
|
maxOutputBytes: 1024 * 1024,
|
|
@@ -43,9 +45,14 @@ const maximumMaxSubagentCallsPerRun = 128;
|
|
|
43
45
|
const maxResourceToolProviders = 128;
|
|
44
46
|
const maxResourceIdBytes = 512;
|
|
45
47
|
const maxResourceToolNameBytes = 512;
|
|
48
|
+
const maxSlashCommandRegistrations = 128;
|
|
49
|
+
const maxSlashCommandDescriptionBytes = 2048;
|
|
50
|
+
const maxSlashCommandTemplateBytes = FLEX_SLASH_COMMAND_MAX_INPUT_BYTES;
|
|
46
51
|
const resourceToolStemLength = 16;
|
|
47
52
|
const repairCancellationMessage = 'The process stopped before this run completed.';
|
|
48
53
|
const scopeRetirementMessage = 'The scope is being retired.';
|
|
54
|
+
const slashCommandSessionUnavailableReason = 'Session must be idle with no queued prompts.';
|
|
55
|
+
const reservedSlashCommandNames = new Set(['compact', 'undo', 'redo', 'init']);
|
|
49
56
|
const externalErrorFallback = Object.freeze({
|
|
50
57
|
name: 'FlexHarnessExternalError',
|
|
51
58
|
message: 'The model operation failed.',
|
|
@@ -202,6 +209,70 @@ function normalizeSubagents(definitions) {
|
|
|
202
209
|
}
|
|
203
210
|
return Object.freeze(normalized);
|
|
204
211
|
}
|
|
212
|
+
function normalizeSlashCommands(registrations) {
|
|
213
|
+
if (registrations === undefined)
|
|
214
|
+
return new Map();
|
|
215
|
+
if (!Array.isArray(registrations) || registrations.length > maxSlashCommandRegistrations) {
|
|
216
|
+
throw new FlexHarnessValidationError(`slashCommands must be an array with at most ${maxSlashCommandRegistrations} registrations.`);
|
|
217
|
+
}
|
|
218
|
+
const normalized = new Map();
|
|
219
|
+
for (let index = 0; index < registrations.length; index++) {
|
|
220
|
+
const registration = registrations[index];
|
|
221
|
+
if (!registration
|
|
222
|
+
|| typeof registration !== 'object'
|
|
223
|
+
|| Array.isArray(registration)
|
|
224
|
+
|| ![Object.prototype, null].includes(Object.getPrototypeOf(registration))) {
|
|
225
|
+
throw new FlexHarnessValidationError(`slashCommands[${index}] must be a plain object.`);
|
|
226
|
+
}
|
|
227
|
+
const keys = Object.keys(registration);
|
|
228
|
+
const hasTemplate = Object.prototype.hasOwnProperty.call(registration, 'template');
|
|
229
|
+
const hasHandler = Object.prototype.hasOwnProperty.call(registration, 'handler');
|
|
230
|
+
const supported = hasTemplate
|
|
231
|
+
? ['name', 'description', 'template']
|
|
232
|
+
: ['name', 'description', 'handler'];
|
|
233
|
+
const unsupported = keys.find((key) => !supported.includes(key));
|
|
234
|
+
if (unsupported || hasTemplate === hasHandler) {
|
|
235
|
+
throw new FlexHarnessValidationError(`slashCommands[${index}] must define exactly one of template or handler.`);
|
|
236
|
+
}
|
|
237
|
+
if (typeof registration.name !== 'string' || !isValidSlashCommandName(registration.name)) {
|
|
238
|
+
throw new FlexHarnessValidationError(`slashCommands[${index}].name is invalid.`);
|
|
239
|
+
}
|
|
240
|
+
if (reservedSlashCommandNames.has(registration.name)) {
|
|
241
|
+
throw new FlexHarnessValidationError(`Slash command "${registration.name}" is reserved.`);
|
|
242
|
+
}
|
|
243
|
+
if (normalized.has(registration.name)) {
|
|
244
|
+
throw new FlexHarnessValidationError(`Duplicate slash command "${registration.name}".`);
|
|
245
|
+
}
|
|
246
|
+
if (registration.description !== undefined) {
|
|
247
|
+
validateUtf8String(registration.description, `slashCommands[${index}].description`, maxSlashCommandDescriptionBytes, true);
|
|
248
|
+
}
|
|
249
|
+
if (hasTemplate) {
|
|
250
|
+
const template = registration.template;
|
|
251
|
+
validateUtf8String(template, `slashCommands[${index}].template`, maxSlashCommandTemplateBytes, true);
|
|
252
|
+
normalized.set(registration.name, Object.freeze({
|
|
253
|
+
name: registration.name,
|
|
254
|
+
...(registration.description === undefined
|
|
255
|
+
? {}
|
|
256
|
+
: { description: registration.description }),
|
|
257
|
+
template,
|
|
258
|
+
}));
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
const handler = registration.handler;
|
|
262
|
+
if (typeof handler !== 'function') {
|
|
263
|
+
throw new FlexHarnessValidationError(`slashCommands[${index}].handler must be a function.`);
|
|
264
|
+
}
|
|
265
|
+
normalized.set(registration.name, Object.freeze({
|
|
266
|
+
name: registration.name,
|
|
267
|
+
...(registration.description === undefined
|
|
268
|
+
? {}
|
|
269
|
+
: { description: registration.description }),
|
|
270
|
+
handler,
|
|
271
|
+
}));
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return Object.freeze(normalized);
|
|
275
|
+
}
|
|
205
276
|
function resolveBoundedPositiveInteger(value, name, defaultValue, maximum) {
|
|
206
277
|
const resolved = value ?? defaultValue;
|
|
207
278
|
if (!Number.isSafeInteger(resolved) || resolved < 1 || resolved > maximum) {
|
|
@@ -472,6 +543,26 @@ function validatePromptOptions(options, scheduled) {
|
|
|
472
543
|
throw new FlexHarnessValidationError('maxSteps must be a positive integer.');
|
|
473
544
|
}
|
|
474
545
|
}
|
|
546
|
+
function validateSlashCommandExecutionOptions(options) {
|
|
547
|
+
if (!options || typeof options !== 'object' || Array.isArray(options)) {
|
|
548
|
+
throw new FlexHarnessValidationError('Slash command execution options must be a plain object.');
|
|
549
|
+
}
|
|
550
|
+
const unsupported = Object.keys(options)
|
|
551
|
+
.find((key) => !['modelHint', 'system', 'maxSteps', 'signal'].includes(key));
|
|
552
|
+
if (unsupported) {
|
|
553
|
+
throw new FlexHarnessValidationError(`Slash command execution options do not support "${unsupported}".`);
|
|
554
|
+
}
|
|
555
|
+
if (options.signal !== undefined && !(options.signal instanceof AbortSignal)) {
|
|
556
|
+
throw new FlexHarnessValidationError('Slash command signal must be an AbortSignal.');
|
|
557
|
+
}
|
|
558
|
+
const promptOptions = {
|
|
559
|
+
...(options.modelHint === undefined ? {} : { modelHint: options.modelHint }),
|
|
560
|
+
...(options.system === undefined ? {} : { system: options.system }),
|
|
561
|
+
...(options.maxSteps === undefined ? {} : { maxSteps: options.maxSteps }),
|
|
562
|
+
};
|
|
563
|
+
validatePromptOptions(promptOptions, false);
|
|
564
|
+
return promptOptions;
|
|
565
|
+
}
|
|
475
566
|
function resolveCallbackLimits(limits = {}) {
|
|
476
567
|
const resolved = {
|
|
477
568
|
maxEvents: limits.maxEvents ?? DEFAULT_CALLBACK_LIMITS.maxEvents,
|
|
@@ -505,6 +596,22 @@ function resolvePromptQueueLimits(limits = {}) {
|
|
|
505
596
|
}
|
|
506
597
|
return resolved;
|
|
507
598
|
}
|
|
599
|
+
function resolveReversionLimits(limits = {}) {
|
|
600
|
+
const resolved = {
|
|
601
|
+
maxCompletedTurns: limits.maxCompletedTurns ?? FLEX_REVERSION_DEFAULT_LIMITS.maxCompletedTurns,
|
|
602
|
+
maxSegments: limits.maxSegments ?? FLEX_REVERSION_DEFAULT_LIMITS.maxSegments,
|
|
603
|
+
maxExcludedRunIds: limits.maxExcludedRunIds ?? FLEX_REVERSION_DEFAULT_LIMITS.maxExcludedRunIds,
|
|
604
|
+
maxPendingReversionReleases: limits.maxPendingReversionReleases
|
|
605
|
+
?? FLEX_REVERSION_DEFAULT_LIMITS.maxPendingReversionReleases,
|
|
606
|
+
};
|
|
607
|
+
for (const [name, value] of Object.entries(resolved)) {
|
|
608
|
+
const maximum = FLEX_REVERSION_MAXIMUM_LIMITS[name];
|
|
609
|
+
if (!Number.isSafeInteger(value) || value < 1 || value > maximum) {
|
|
610
|
+
throw new FlexHarnessValidationError(`reversionLimits.${name} must be an integer from 1 through ${maximum}.`);
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
return resolved;
|
|
614
|
+
}
|
|
508
615
|
function normalizeAgentSessionPolicy(policy = {}) {
|
|
509
616
|
return {
|
|
510
617
|
...(policy.contextBuilder === undefined ? {} : { contextBuilder: policy.contextBuilder }),
|
|
@@ -538,8 +645,12 @@ export class FlexHarness {
|
|
|
538
645
|
toolOutputLimits;
|
|
539
646
|
callbackLimits;
|
|
540
647
|
promptQueueLimits;
|
|
648
|
+
reversionLimits;
|
|
649
|
+
turnReversionProvider;
|
|
650
|
+
reversionPolicy;
|
|
541
651
|
externalErrorProjector;
|
|
542
652
|
subagents;
|
|
653
|
+
slashCommands;
|
|
543
654
|
maxSubagentDepth;
|
|
544
655
|
maxSubagentCallsPerRun;
|
|
545
656
|
stateLoads = new Map();
|
|
@@ -554,8 +665,13 @@ export class FlexHarness {
|
|
|
554
665
|
orphanedExecutionContexts = new Map();
|
|
555
666
|
orphanedProviderReleases = new Map();
|
|
556
667
|
orphanedTombstoneCleanups = new Map();
|
|
668
|
+
orphanedTombstoneOwners = new Map();
|
|
557
669
|
pendingPromptAdmissionOwners = new Set();
|
|
670
|
+
activeSlashCommandExecutions = new Map();
|
|
671
|
+
activeSlashCommandListings = new Set();
|
|
558
672
|
compactorInvocationContext = new plugins.AsyncLocalStorage();
|
|
673
|
+
slashCommandInvocationContext = new plugins.AsyncLocalStorage();
|
|
674
|
+
slashCommandActivityContext = new plugins.AsyncLocalStorage();
|
|
559
675
|
deferredCompactorContexts = new WeakMap();
|
|
560
676
|
sequence = 0;
|
|
561
677
|
promptQueueSequence = 0;
|
|
@@ -577,14 +693,32 @@ export class FlexHarness {
|
|
|
577
693
|
this.toolOutputLimits = resolveJsonLimits(options.toolOutputLimits);
|
|
578
694
|
this.callbackLimits = resolveCallbackLimits(options.callbackLimits);
|
|
579
695
|
this.promptQueueLimits = resolvePromptQueueLimits(options.promptQueueLimits);
|
|
696
|
+
this.reversionLimits = resolveReversionLimits(options.reversionLimits);
|
|
697
|
+
this.turnReversionProvider = options.turnReversionProvider;
|
|
698
|
+
this.reversionPolicy = options.reversionPolicy ?? 'transcript-optional';
|
|
699
|
+
if (!['transcript-optional', 'workspace-required'].includes(this.reversionPolicy)) {
|
|
700
|
+
throw new FlexHarnessValidationError('reversionPolicy must be "transcript-optional" or "workspace-required".');
|
|
701
|
+
}
|
|
702
|
+
const protocolVersion = this.turnReversionProvider
|
|
703
|
+
&& 'protocolVersion' in this.turnReversionProvider
|
|
704
|
+
? this.turnReversionProvider.protocolVersion
|
|
705
|
+
: 1;
|
|
706
|
+
if (protocolVersion !== 1 && protocolVersion !== 2) {
|
|
707
|
+
throw new FlexHarnessValidationError('Turn reversion provider protocolVersion is invalid.');
|
|
708
|
+
}
|
|
709
|
+
if (this.reversionPolicy === 'workspace-required' && protocolVersion !== 2) {
|
|
710
|
+
throw new FlexHarnessValidationError('workspace-required reversion policy requires a protocolVersion 2 turn reversion provider.');
|
|
711
|
+
}
|
|
580
712
|
this.externalErrorProjector = options.externalErrorProjector;
|
|
581
713
|
this.subagents = normalizeSubagents(options.subagents);
|
|
714
|
+
this.slashCommands = normalizeSlashCommands(options.slashCommands);
|
|
582
715
|
this.maxSubagentDepth = resolveBoundedPositiveInteger(options.maxSubagentDepth, 'maxSubagentDepth', defaultMaxSubagentDepth, maximumMaxSubagentDepth);
|
|
583
716
|
this.maxSubagentCallsPerRun = resolveBoundedPositiveInteger(options.maxSubagentCallsPerRun, 'maxSubagentCallsPerRun', defaultMaxSubagentCallsPerRun, maximumMaxSubagentCallsPerRun);
|
|
584
717
|
}
|
|
585
718
|
async listSessions(scopeId) {
|
|
586
719
|
const { state } = await this.resolveState(scopeId);
|
|
587
720
|
await state.scopeQueue;
|
|
721
|
+
this.assertOpen();
|
|
588
722
|
this.assertStateAcceptingWork(state);
|
|
589
723
|
return publicSnapshot([...state.sessions.values()]
|
|
590
724
|
.filter((stored) => !state.initializingSessions.has(stored.session.sessionId))
|
|
@@ -719,6 +853,34 @@ export class FlexHarness {
|
|
|
719
853
|
this.assertStateAcceptingWork(state);
|
|
720
854
|
return publicSnapshot(this.requireSession(state, sessionId).session);
|
|
721
855
|
}
|
|
856
|
+
async getSessionReversionInfo(scopeId, sessionId) {
|
|
857
|
+
const { state } = await this.resolveState(scopeId);
|
|
858
|
+
const stored = this.requireSession(state, sessionId);
|
|
859
|
+
await stored.projectionQueue;
|
|
860
|
+
this.assertStateAcceptingWork(state);
|
|
861
|
+
await this.reconcileContextAvailability(state, stored);
|
|
862
|
+
const unavailableReason = await this.reversionUnavailableReason(state, stored);
|
|
863
|
+
const groups = this.reversionGroups(stored);
|
|
864
|
+
const undo = this.reversionUnit(stored, 'undo');
|
|
865
|
+
const redo = this.reversionUnit(stored, 'redo');
|
|
866
|
+
const isAvailable = (unit) => Boolean(!unavailableReason
|
|
867
|
+
&& unit
|
|
868
|
+
&& unit.target.contextAvailable
|
|
869
|
+
&& !unit.segments.some((segment) => segment.provenance === 'workspace'
|
|
870
|
+
&& segment.disposition === 'revertible'
|
|
871
|
+
&& segment.workspaceReference === undefined));
|
|
872
|
+
return publicSnapshot({
|
|
873
|
+
undoAvailable: isAvailable(undo),
|
|
874
|
+
redoAvailable: isAvailable(redo),
|
|
875
|
+
groups: groups.map((group, index) => ({
|
|
876
|
+
runId: group.target.runId,
|
|
877
|
+
kind: group.kind,
|
|
878
|
+
visibility: index < stored.revertCursor ? 'visible' : 'hidden',
|
|
879
|
+
affectedWorkspaces: cloneSerializable(group.affectedWorkspaces),
|
|
880
|
+
affectedWorkspacesTruncated: group.affectedWorkspacesTruncated,
|
|
881
|
+
})),
|
|
882
|
+
});
|
|
883
|
+
}
|
|
722
884
|
async updateSession(scopeId, sessionId, options) {
|
|
723
885
|
validateUpdateSessionOptions(options);
|
|
724
886
|
const { state } = await this.resolveState(scopeId);
|
|
@@ -745,7 +907,9 @@ export class FlexHarness {
|
|
|
745
907
|
return result;
|
|
746
908
|
}
|
|
747
909
|
async deleteSession(scopeId, sessionId) {
|
|
910
|
+
this.assertNoAmbientSlashCommandTeardown({ scopeId, sessionId });
|
|
748
911
|
const { scope, state } = await this.resolveState(scopeId);
|
|
912
|
+
this.assertNoAmbientSlashCommandTeardown({ storageKey: state.storageKey });
|
|
749
913
|
validateIdentifier(sessionId, 'sessionId');
|
|
750
914
|
await state.scopeQueue;
|
|
751
915
|
const deletionKey = state.tombstones.get(sessionId)?.rootSessionId ?? sessionId;
|
|
@@ -812,6 +976,13 @@ export class FlexHarness {
|
|
|
812
976
|
}
|
|
813
977
|
});
|
|
814
978
|
const reason = this.trustInternalError(new FlexHarnessAbortError('The session subtree was deleted.'));
|
|
979
|
+
const slashCommandErrors = [];
|
|
980
|
+
for (const deleted of deletedSessions) {
|
|
981
|
+
const listingSettlement = this.abortSlashCommandListings(state.storageKey, reason, deleted.sessionId);
|
|
982
|
+
if (listingSettlement)
|
|
983
|
+
await listingSettlement;
|
|
984
|
+
await this.abortSlashCommandExecutions(state.storageKey, reason, slashCommandErrors, deleted.sessionId);
|
|
985
|
+
}
|
|
815
986
|
const childFirstDeletedSessions = [...deletedSessions].sort((left, right) => (right.depth ?? 0) - (left.depth ?? 0)
|
|
816
987
|
|| left.sessionId.localeCompare(right.sessionId));
|
|
817
988
|
for (const deleted of childFirstDeletedSessions) {
|
|
@@ -821,7 +992,10 @@ export class FlexHarness {
|
|
|
821
992
|
}
|
|
822
993
|
}
|
|
823
994
|
try {
|
|
824
|
-
const orphanErrors =
|
|
995
|
+
const orphanErrors = [
|
|
996
|
+
...slashCommandErrors,
|
|
997
|
+
...await this.closeOrphanedResources(state.storageKey),
|
|
998
|
+
];
|
|
825
999
|
if (orphanErrors.length > 0)
|
|
826
1000
|
throw combineErrors(orphanErrors);
|
|
827
1001
|
for (const descendantRoot of descendantRoots) {
|
|
@@ -844,7 +1018,7 @@ export class FlexHarness {
|
|
|
844
1018
|
const stored = this.requireSession(state, sessionId);
|
|
845
1019
|
await stored.projectionQueue;
|
|
846
1020
|
this.assertStateAcceptingWork(state);
|
|
847
|
-
return publicSnapshot(stored
|
|
1021
|
+
return publicSnapshot(this.visibleMessages(stored));
|
|
848
1022
|
}
|
|
849
1023
|
async listMessagePage(scopeId, sessionId, options = {}) {
|
|
850
1024
|
if (!options || typeof options !== 'object' || Array.isArray(options)) {
|
|
@@ -868,13 +1042,14 @@ export class FlexHarness {
|
|
|
868
1042
|
await stored.projectionQueue;
|
|
869
1043
|
this.assertStateAcceptingWork(state);
|
|
870
1044
|
const namespace = this.messageCursorNamespace(state.storageKey);
|
|
871
|
-
|
|
1045
|
+
const visibleMessages = this.visibleMessages(stored);
|
|
1046
|
+
let end = visibleMessages.length;
|
|
872
1047
|
if (options.before !== undefined) {
|
|
873
1048
|
const cursor = this.parseMessageCursor(options.before);
|
|
874
1049
|
if (cursor.namespace !== namespace || cursor.sessionId !== sessionId) {
|
|
875
1050
|
throw new FlexHarnessValidationError('Message page cursor is invalid.');
|
|
876
1051
|
}
|
|
877
|
-
const anchor =
|
|
1052
|
+
const anchor = visibleMessages.findIndex((message) => message.messageId === cursor.anchorMessageId);
|
|
878
1053
|
if (anchor < 0)
|
|
879
1054
|
throw new FlexHarnessValidationError('Message page cursor is stale.');
|
|
880
1055
|
end = anchor;
|
|
@@ -882,7 +1057,7 @@ export class FlexHarness {
|
|
|
882
1057
|
let start = end;
|
|
883
1058
|
let messages = [];
|
|
884
1059
|
for (let index = end - 1; index >= 0 && messages.length < limit; index--) {
|
|
885
|
-
const candidate = createBoundedTransferMessage(
|
|
1060
|
+
const candidate = createBoundedTransferMessage(visibleMessages[index]);
|
|
886
1061
|
const candidateMessages = [candidate, ...messages];
|
|
887
1062
|
const nextCursor = index > 0
|
|
888
1063
|
? this.createMessageCursor(namespace, sessionId, candidate.messageId)
|
|
@@ -909,6 +1084,370 @@ export class FlexHarness {
|
|
|
909
1084
|
this.assertStateAcceptingWork(state);
|
|
910
1085
|
return publicSnapshot(createBoundedTransferMessage(this.requireMessage(stored, messageId)));
|
|
911
1086
|
}
|
|
1087
|
+
async listSlashCommands(scopeId, sessionId) {
|
|
1088
|
+
const { state } = await this.resolveState(scopeId);
|
|
1089
|
+
return this.trackSlashCommandListing(scopeId, state, sessionId, async (signal) => {
|
|
1090
|
+
await this.awaitReversionOperation(state.scopeQueue, signal);
|
|
1091
|
+
signal.throwIfAborted();
|
|
1092
|
+
this.assertStateAcceptingWork(state);
|
|
1093
|
+
const stored = this.requireSession(state, sessionId);
|
|
1094
|
+
await this.reconcileContextAvailability(state, stored);
|
|
1095
|
+
signal.throwIfAborted();
|
|
1096
|
+
const sessionAvailable = this.isSessionAvailableForSlashCommand(state, stored);
|
|
1097
|
+
const reversionIdleReason = await this.reversionUnavailableReason(state, stored, false, signal);
|
|
1098
|
+
signal.throwIfAborted();
|
|
1099
|
+
return this.createSlashCommandDescriptors(state, stored, sessionAvailable, reversionIdleReason);
|
|
1100
|
+
});
|
|
1101
|
+
}
|
|
1102
|
+
createSlashCommandDescriptors(state, stored, sessionAvailable, reversionIdleReason) {
|
|
1103
|
+
const sessionAvailability = sessionAvailable
|
|
1104
|
+
? {}
|
|
1105
|
+
: { available: false, unavailableReason: slashCommandSessionUnavailableReason };
|
|
1106
|
+
const undoUnit = this.reversionUnit(stored, 'undo');
|
|
1107
|
+
const redoUnit = this.reversionUnit(stored, 'redo');
|
|
1108
|
+
const workspaceReversion = (unit) => !unit
|
|
1109
|
+
|| !this.turnReversionProvider
|
|
1110
|
+
|| unit.segments.some((segment) => segment.provenance !== 'workspace')
|
|
1111
|
+
? 'unsupported'
|
|
1112
|
+
: 'supported';
|
|
1113
|
+
const reversionAvailability = (unit) => {
|
|
1114
|
+
if (reversionIdleReason)
|
|
1115
|
+
return {
|
|
1116
|
+
available: false,
|
|
1117
|
+
unavailableReason: reversionIdleReason,
|
|
1118
|
+
};
|
|
1119
|
+
if (!unit)
|
|
1120
|
+
return { available: false, unavailableReason: 'No turn is available.' };
|
|
1121
|
+
if (!unit.target.contextAvailable)
|
|
1122
|
+
return {
|
|
1123
|
+
available: false,
|
|
1124
|
+
unavailableReason: 'The turn is beyond the context archive horizon.',
|
|
1125
|
+
};
|
|
1126
|
+
if (unit.segments.some((segment) => segment.disposition === 'revertible' && segment.workspaceReference === undefined))
|
|
1127
|
+
return {
|
|
1128
|
+
available: false,
|
|
1129
|
+
unavailableReason: 'The turn has no available workspace reversion capture.',
|
|
1130
|
+
};
|
|
1131
|
+
return { available: true };
|
|
1132
|
+
};
|
|
1133
|
+
const compactAvailable = Boolean(this.agentSessionPolicy.contextCompactor) && sessionAvailable;
|
|
1134
|
+
const compactUnavailableReason = !this.agentSessionPolicy.contextCompactor
|
|
1135
|
+
? 'No context compactor is configured.'
|
|
1136
|
+
: !sessionAvailable
|
|
1137
|
+
? slashCommandSessionUnavailableReason
|
|
1138
|
+
: undefined;
|
|
1139
|
+
const initPrompt = expandSlashCommandTemplate(FLEX_SLASH_COMMAND_INITIALIZE_TEMPLATE, '', []);
|
|
1140
|
+
const initAvailability = this.slashCommandPromptAvailability(state, stored, this.promptAdmissionByteSize(initPrompt, {}));
|
|
1141
|
+
const descriptors = [
|
|
1142
|
+
{
|
|
1143
|
+
name: 'compact',
|
|
1144
|
+
description: 'Compact the current session context.',
|
|
1145
|
+
kind: 'builtin',
|
|
1146
|
+
hints: [],
|
|
1147
|
+
available: compactAvailable,
|
|
1148
|
+
...(compactUnavailableReason === undefined
|
|
1149
|
+
? {}
|
|
1150
|
+
: { unavailableReason: compactUnavailableReason }),
|
|
1151
|
+
workspaceReversion: 'not-applicable',
|
|
1152
|
+
},
|
|
1153
|
+
{
|
|
1154
|
+
name: 'init',
|
|
1155
|
+
description: 'Create or update AGENTS.md for the active workspace.',
|
|
1156
|
+
kind: 'builtin',
|
|
1157
|
+
hints: ['$ARGUMENTS'],
|
|
1158
|
+
...initAvailability,
|
|
1159
|
+
workspaceReversion: 'not-applicable',
|
|
1160
|
+
},
|
|
1161
|
+
{
|
|
1162
|
+
name: 'undo',
|
|
1163
|
+
description: 'Undo the most recent session operation.',
|
|
1164
|
+
kind: 'builtin',
|
|
1165
|
+
hints: [],
|
|
1166
|
+
...reversionAvailability(undoUnit),
|
|
1167
|
+
workspaceReversion: workspaceReversion(undoUnit),
|
|
1168
|
+
},
|
|
1169
|
+
{
|
|
1170
|
+
name: 'redo',
|
|
1171
|
+
description: 'Redo the most recently undone session operation.',
|
|
1172
|
+
kind: 'builtin',
|
|
1173
|
+
hints: [],
|
|
1174
|
+
...reversionAvailability(redoUnit),
|
|
1175
|
+
workspaceReversion: workspaceReversion(redoUnit),
|
|
1176
|
+
},
|
|
1177
|
+
];
|
|
1178
|
+
for (const registration of this.slashCommands.values()) {
|
|
1179
|
+
const template = typeof registration.template === 'string';
|
|
1180
|
+
const availability = template
|
|
1181
|
+
? this.slashCommandPromptAvailability(state, stored, this.promptAdmissionByteSize(expandSlashCommandTemplate(registration.template, '', []), {}))
|
|
1182
|
+
: { available: sessionAvailable, ...sessionAvailability };
|
|
1183
|
+
descriptors.push({
|
|
1184
|
+
name: registration.name,
|
|
1185
|
+
description: registration.description ?? '',
|
|
1186
|
+
kind: template ? 'template' : 'handler',
|
|
1187
|
+
hints: template ? slashCommandTemplateHints(registration.template) : [],
|
|
1188
|
+
...availability,
|
|
1189
|
+
workspaceReversion: 'not-applicable',
|
|
1190
|
+
});
|
|
1191
|
+
}
|
|
1192
|
+
return publicSnapshot(descriptors);
|
|
1193
|
+
}
|
|
1194
|
+
async executeSlashCommand(scopeId, sessionId, untouchedInput, options = {}) {
|
|
1195
|
+
const currentInvocation = this.slashCommandInvocationContext.getStore();
|
|
1196
|
+
if (currentInvocation?.scopeId === scopeId && currentInvocation.sessionId === sessionId) {
|
|
1197
|
+
throw this.trustInternalError(new FlexHarnessSlashCommandReentryError(sessionId));
|
|
1198
|
+
}
|
|
1199
|
+
const parsed = parseSlashCommand(untouchedInput);
|
|
1200
|
+
if (parsed.type !== 'parsed')
|
|
1201
|
+
return parsed;
|
|
1202
|
+
const registration = this.slashCommands.get(parsed.name);
|
|
1203
|
+
if (!reservedSlashCommandNames.has(parsed.name) && !registration) {
|
|
1204
|
+
return Object.freeze({
|
|
1205
|
+
type: 'unknown',
|
|
1206
|
+
input: parsed.input,
|
|
1207
|
+
name: parsed.name,
|
|
1208
|
+
rawArguments: parsed.rawArguments,
|
|
1209
|
+
arguments: parsed.arguments,
|
|
1210
|
+
});
|
|
1211
|
+
}
|
|
1212
|
+
const promptOptions = validateSlashCommandExecutionOptions(options);
|
|
1213
|
+
const { scope, state } = await this.resolveState(scopeId);
|
|
1214
|
+
await state.scopeQueue;
|
|
1215
|
+
this.assertOpen();
|
|
1216
|
+
this.assertStateAcceptingWork(state);
|
|
1217
|
+
const stored = this.requireSession(state, sessionId);
|
|
1218
|
+
const sessionKey = this.slashCommandSessionKey(state.storageKey, sessionId);
|
|
1219
|
+
const invocationOwner = this.slashCommandInvocationContext.getStore();
|
|
1220
|
+
if (invocationOwner?.sessionKey === sessionKey) {
|
|
1221
|
+
throw this.trustInternalError(new FlexHarnessSlashCommandReentryError(sessionId));
|
|
1222
|
+
}
|
|
1223
|
+
if (this.activeSlashCommandExecutions.has(sessionKey)) {
|
|
1224
|
+
throw new FlexHarnessSessionBusyError(sessionId, 'already has an active slash command execution');
|
|
1225
|
+
}
|
|
1226
|
+
if (parsed.name === 'undo' || parsed.name === 'redo') {
|
|
1227
|
+
if (parsed.arguments.length > 0) {
|
|
1228
|
+
throw new FlexHarnessValidationError(`Slash command "/${parsed.name}" does not accept arguments.`);
|
|
1229
|
+
}
|
|
1230
|
+
await this.changeReversionCursorResolved(scopeId, sessionId, parsed.name, scope.scope, state, options.signal);
|
|
1231
|
+
return Object.freeze({ type: 'operation', name: parsed.name });
|
|
1232
|
+
}
|
|
1233
|
+
if (parsed.name === 'compact') {
|
|
1234
|
+
if (parsed.arguments.length > 0) {
|
|
1235
|
+
throw new FlexHarnessValidationError('Slash command "/compact" does not accept arguments.');
|
|
1236
|
+
}
|
|
1237
|
+
if (!this.agentSessionPolicy.contextCompactor) {
|
|
1238
|
+
throw new FlexHarnessSlashCommandUnavailableError(parsed.name, 'No context compactor is configured.');
|
|
1239
|
+
}
|
|
1240
|
+
this.requireSessionAvailableForSlashCommand(state, stored, parsed.name);
|
|
1241
|
+
return this.trackSlashCommandExecution(scopeId, state, sessionId, 'operation', options.signal, async (signal) => {
|
|
1242
|
+
await this.commitRevertedBranch(state, stored, scopeId, scope.scope);
|
|
1243
|
+
await this.compactStoredSession(scopeId, scope.scope, state, stored, signal);
|
|
1244
|
+
return Object.freeze({ type: 'operation', name: parsed.name });
|
|
1245
|
+
});
|
|
1246
|
+
}
|
|
1247
|
+
if (options.signal?.aborted) {
|
|
1248
|
+
throw this.trustInternalError(new FlexHarnessAbortError('The slash command was aborted.'));
|
|
1249
|
+
}
|
|
1250
|
+
if (parsed.name === 'init' || typeof registration?.template === 'string') {
|
|
1251
|
+
const template = parsed.name === 'init'
|
|
1252
|
+
? FLEX_SLASH_COMMAND_INITIALIZE_TEMPLATE
|
|
1253
|
+
: registration.template;
|
|
1254
|
+
const expanded = expandSlashCommandTemplate(template, parsed.rawArguments, parsed.arguments);
|
|
1255
|
+
normalizeFlexPrompt(expanded);
|
|
1256
|
+
this.requireSlashCommandPromptAvailable(state, stored, parsed.name, this.promptAdmissionByteSize(expanded, promptOptions));
|
|
1257
|
+
return this.trackSlashCommandExecution(scopeId, state, sessionId, 'prompt-admission', options.signal, async (signal) => {
|
|
1258
|
+
const queued = await this.enqueuePromptInternal(scopeId, sessionId, expanded, promptOptions, undefined, undefined, false, signal, true);
|
|
1259
|
+
const cancellation = this.trustInternalError(new FlexHarnessAbortError('The slash command prompt was aborted.'));
|
|
1260
|
+
const cancel = () => {
|
|
1261
|
+
const entry = queued.queued;
|
|
1262
|
+
if (!entry)
|
|
1263
|
+
return;
|
|
1264
|
+
this.cancelQueuedPrompt(entry, cancellation, this.createCompactorContext(scopeId, scope.scope, state.storageKey, sessionId));
|
|
1265
|
+
};
|
|
1266
|
+
const cancellationSignals = options.signal && options.signal !== signal
|
|
1267
|
+
? [signal, options.signal]
|
|
1268
|
+
: [signal];
|
|
1269
|
+
for (const cancellationSignal of cancellationSignals) {
|
|
1270
|
+
cancellationSignal.addEventListener('abort', cancel, { once: true });
|
|
1271
|
+
}
|
|
1272
|
+
if (cancellationSignals.some((cancellationSignal) => cancellationSignal.aborted))
|
|
1273
|
+
cancel();
|
|
1274
|
+
let admission;
|
|
1275
|
+
try {
|
|
1276
|
+
admission = await queued.started;
|
|
1277
|
+
if (cancellationSignals.some((cancellationSignal) => cancellationSignal.aborted)) {
|
|
1278
|
+
cancel();
|
|
1279
|
+
throw cancellationSignals.find((cancellationSignal) => cancellationSignal.aborted)?.reason
|
|
1280
|
+
?? cancellation;
|
|
1281
|
+
}
|
|
1282
|
+
}
|
|
1283
|
+
catch (error) {
|
|
1284
|
+
for (const cancellationSignal of cancellationSignals) {
|
|
1285
|
+
cancellationSignal.removeEventListener('abort', cancel);
|
|
1286
|
+
}
|
|
1287
|
+
throw error;
|
|
1288
|
+
}
|
|
1289
|
+
void admission.completion.finally(() => {
|
|
1290
|
+
for (const cancellationSignal of cancellationSignals) {
|
|
1291
|
+
cancellationSignal.removeEventListener('abort', cancel);
|
|
1292
|
+
}
|
|
1293
|
+
}).catch(() => undefined);
|
|
1294
|
+
return Object.freeze({ type: 'prompt-admission', name: parsed.name, admission });
|
|
1295
|
+
});
|
|
1296
|
+
}
|
|
1297
|
+
this.requireSessionAvailableForSlashCommand(state, stored, parsed.name);
|
|
1298
|
+
return this.executeSlashCommandHandler(scopeId, scope.scope, state, stored, parsed.name, parsed.rawArguments, parsed.arguments, registration.handler, options.signal);
|
|
1299
|
+
}
|
|
1300
|
+
isSessionAvailableForSlashCommand(state, stored, allowPendingApply = false) {
|
|
1301
|
+
return this.isSessionRuntimeIdle(state, stored)
|
|
1302
|
+
&& !this.activeSlashCommandExecutions.has(this.slashCommandSessionKey(state.storageKey, stored.session.sessionId))
|
|
1303
|
+
&& (stored.pendingReversion === undefined
|
|
1304
|
+
|| (allowPendingApply && stored.pendingReversion.kind === 'apply'));
|
|
1305
|
+
}
|
|
1306
|
+
slashCommandPromptUnavailableReason(state, stored, byteSize) {
|
|
1307
|
+
if (state.lifecycle !== 'active')
|
|
1308
|
+
return 'The session namespace is not accepting work.';
|
|
1309
|
+
if (this.activeSlashCommandExecutions.has(this.slashCommandSessionKey(state.storageKey, stored.session.sessionId)))
|
|
1310
|
+
return 'Session already has an active slash command execution.';
|
|
1311
|
+
if (stored.pendingReversion)
|
|
1312
|
+
return 'Session has a pending reversion operation.';
|
|
1313
|
+
if (stored.session.agent !== undefined) {
|
|
1314
|
+
return 'Subagent sessions can only be prompted through the foreground task tool.';
|
|
1315
|
+
}
|
|
1316
|
+
if (stored.outstandingPromptsById.size >= this.promptQueueLimits.maxOutstandingPromptsPerSession) {
|
|
1317
|
+
return 'Session has reached its outstanding prompt limit.';
|
|
1318
|
+
}
|
|
1319
|
+
if (stored.outstandingPromptBytes + byteSize > this.promptQueueLimits.maxOutstandingBytesPerSession) {
|
|
1320
|
+
return 'Session has reached its outstanding prompt byte limit.';
|
|
1321
|
+
}
|
|
1322
|
+
if (this.pendingPromptAdmissions >= this.promptQueueLimits.maxPendingAdmissions) {
|
|
1323
|
+
return 'FlexHarness has reached its pending prompt admission limit.';
|
|
1324
|
+
}
|
|
1325
|
+
if (this.pendingPromptAdmissionBytes + byteSize > this.promptQueueLimits.maxPendingAdmissionBytes) {
|
|
1326
|
+
return 'FlexHarness has reached its pending prompt admission byte limit.';
|
|
1327
|
+
}
|
|
1328
|
+
return undefined;
|
|
1329
|
+
}
|
|
1330
|
+
slashCommandPromptAvailability(state, stored, byteSize) {
|
|
1331
|
+
const unavailableReason = this.slashCommandPromptUnavailableReason(state, stored, byteSize);
|
|
1332
|
+
return unavailableReason === undefined
|
|
1333
|
+
? { available: true }
|
|
1334
|
+
: { available: false, unavailableReason };
|
|
1335
|
+
}
|
|
1336
|
+
requireSlashCommandPromptAvailable(state, stored, commandName, byteSize) {
|
|
1337
|
+
const reason = this.slashCommandPromptUnavailableReason(state, stored, byteSize);
|
|
1338
|
+
if (reason)
|
|
1339
|
+
throw new FlexHarnessSlashCommandUnavailableError(commandName, reason);
|
|
1340
|
+
}
|
|
1341
|
+
promptAdmissionByteSize(prompt, options, scheduleKey, debounceMs) {
|
|
1342
|
+
return jsonBytes({
|
|
1343
|
+
prompt: normalizeFlexPrompt(prompt),
|
|
1344
|
+
options: cloneSerializable(options),
|
|
1345
|
+
scheduleKey,
|
|
1346
|
+
debounceMs,
|
|
1347
|
+
});
|
|
1348
|
+
}
|
|
1349
|
+
isSessionRuntimeIdle(state, stored) {
|
|
1350
|
+
return stored.session.status === 'idle'
|
|
1351
|
+
&& !state.activeRuns.has(stored.session.sessionId)
|
|
1352
|
+
&& stored.outstandingPromptsById.size === 0;
|
|
1353
|
+
}
|
|
1354
|
+
slashCommandSessionKey(storageKey, sessionId) {
|
|
1355
|
+
return JSON.stringify([storageKey, sessionId]);
|
|
1356
|
+
}
|
|
1357
|
+
requireSessionAvailableForSlashCommand(state, stored, commandName) {
|
|
1358
|
+
if (!this.isSessionAvailableForSlashCommand(state, stored)) {
|
|
1359
|
+
throw new FlexHarnessSlashCommandUnavailableError(commandName, slashCommandSessionUnavailableReason);
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
trackSlashCommandExecution(scopeId, state, sessionId, kind, externalSignal, operation) {
|
|
1363
|
+
const sessionKey = this.slashCommandSessionKey(state.storageKey, sessionId);
|
|
1364
|
+
if (this.activeSlashCommandExecutions.has(sessionKey)) {
|
|
1365
|
+
throw new FlexHarnessSessionBusyError(sessionId, 'already has an active slash command execution');
|
|
1366
|
+
}
|
|
1367
|
+
const controller = new AbortController();
|
|
1368
|
+
const abortFromExternalSignal = () => {
|
|
1369
|
+
if (!controller.signal.aborted) {
|
|
1370
|
+
controller.abort(this.trustInternalError(new FlexHarnessAbortError('The slash command was aborted.')));
|
|
1371
|
+
}
|
|
1372
|
+
};
|
|
1373
|
+
externalSignal?.addEventListener('abort', abortFromExternalSignal, { once: true });
|
|
1374
|
+
if (externalSignal?.aborted)
|
|
1375
|
+
abortFromExternalSignal();
|
|
1376
|
+
const activityOwner = Object.freeze({ scopeId, storageKey: state.storageKey, sessionId });
|
|
1377
|
+
const completion = Promise.resolve().then(() => this.slashCommandActivityContext.run(activityOwner, () => {
|
|
1378
|
+
if (controller.signal.aborted)
|
|
1379
|
+
throw controller.signal.reason;
|
|
1380
|
+
return operation(controller.signal);
|
|
1381
|
+
}));
|
|
1382
|
+
const active = {
|
|
1383
|
+
kind,
|
|
1384
|
+
storageKey: state.storageKey,
|
|
1385
|
+
sessionId,
|
|
1386
|
+
controller,
|
|
1387
|
+
completion,
|
|
1388
|
+
};
|
|
1389
|
+
this.activeSlashCommandExecutions.set(sessionKey, active);
|
|
1390
|
+
return completion.finally(() => {
|
|
1391
|
+
externalSignal?.removeEventListener('abort', abortFromExternalSignal);
|
|
1392
|
+
if (this.activeSlashCommandExecutions.get(sessionKey) === active) {
|
|
1393
|
+
this.activeSlashCommandExecutions.delete(sessionKey);
|
|
1394
|
+
}
|
|
1395
|
+
});
|
|
1396
|
+
}
|
|
1397
|
+
trackSlashCommandListing(scopeId, state, sessionId, operation) {
|
|
1398
|
+
const controller = new AbortController();
|
|
1399
|
+
const activityOwner = Object.freeze({ scopeId, storageKey: state.storageKey, sessionId });
|
|
1400
|
+
const completion = Promise.resolve().then(() => this.slashCommandActivityContext.run(activityOwner, () => operation(controller.signal)));
|
|
1401
|
+
const active = {
|
|
1402
|
+
storageKey: state.storageKey,
|
|
1403
|
+
sessionId,
|
|
1404
|
+
controller,
|
|
1405
|
+
completion,
|
|
1406
|
+
};
|
|
1407
|
+
this.activeSlashCommandListings.add(active);
|
|
1408
|
+
return completion.finally(() => {
|
|
1409
|
+
this.activeSlashCommandListings.delete(active);
|
|
1410
|
+
});
|
|
1411
|
+
}
|
|
1412
|
+
async executeSlashCommandHandler(scopeId, scope, state, stored, commandName, rawArguments, arguments_, handler, externalSignal) {
|
|
1413
|
+
const sessionKey = this.slashCommandSessionKey(state.storageKey, stored.session.sessionId);
|
|
1414
|
+
const invocationOwner = this.slashCommandInvocationContext.getStore();
|
|
1415
|
+
if (invocationOwner?.sessionKey === sessionKey) {
|
|
1416
|
+
throw this.trustInternalError(new FlexHarnessSlashCommandReentryError(stored.session.sessionId));
|
|
1417
|
+
}
|
|
1418
|
+
if (this.activeSlashCommandExecutions.has(sessionKey)) {
|
|
1419
|
+
throw new FlexHarnessSessionBusyError(stored.session.sessionId, 'already has an active slash command execution');
|
|
1420
|
+
}
|
|
1421
|
+
const owner = Object.freeze({
|
|
1422
|
+
scopeId,
|
|
1423
|
+
storageKey: state.storageKey,
|
|
1424
|
+
sessionId: stored.session.sessionId,
|
|
1425
|
+
sessionKey,
|
|
1426
|
+
});
|
|
1427
|
+
return this.trackSlashCommandExecution(scopeId, state, stored.session.sessionId, 'handler', externalSignal, (signal) => this.slashCommandInvocationContext.run(owner, async () => {
|
|
1428
|
+
const context = Object.freeze({
|
|
1429
|
+
scopeId,
|
|
1430
|
+
scope,
|
|
1431
|
+
storageKey: state.storageKey,
|
|
1432
|
+
sessionId: stored.session.sessionId,
|
|
1433
|
+
rawArguments,
|
|
1434
|
+
arguments: arguments_,
|
|
1435
|
+
signal,
|
|
1436
|
+
});
|
|
1437
|
+
try {
|
|
1438
|
+
await this.commitRevertedBranch(state, stored, scopeId, scope);
|
|
1439
|
+
const result = await handler(context);
|
|
1440
|
+
return Object.freeze({
|
|
1441
|
+
type: 'handler-result',
|
|
1442
|
+
name: commandName,
|
|
1443
|
+
result: normalizeJsonValue(result === undefined ? null : result, this.toolOutputLimits),
|
|
1444
|
+
});
|
|
1445
|
+
}
|
|
1446
|
+
catch (error) {
|
|
1447
|
+
throw this.projectOperationError(error, 'slashCommand', scopeId, stored.session.sessionId, `slash-command:${commandName}`);
|
|
1448
|
+
}
|
|
1449
|
+
}));
|
|
1450
|
+
}
|
|
912
1451
|
async prompt(scopeId, sessionId, prompt, options = {}) {
|
|
913
1452
|
const admission = await this.startPrompt(scopeId, sessionId, prompt, options);
|
|
914
1453
|
return admission.completion;
|
|
@@ -1077,36 +1616,473 @@ export class FlexHarness {
|
|
|
1077
1616
|
async compactSession(scopeId, sessionId) {
|
|
1078
1617
|
const { scope, state } = await this.resolveState(scopeId);
|
|
1079
1618
|
const stored = this.requireSession(state, sessionId);
|
|
1619
|
+
const invocationOwner = this.slashCommandInvocationContext.getStore();
|
|
1620
|
+
if (invocationOwner?.sessionKey === this.slashCommandSessionKey(state.storageKey, sessionId)) {
|
|
1621
|
+
throw this.trustInternalError(new FlexHarnessSlashCommandReentryError(sessionId));
|
|
1622
|
+
}
|
|
1080
1623
|
this.assertStateAcceptingWork(state);
|
|
1624
|
+
if (!this.agentSessionPolicy.contextCompactor) {
|
|
1625
|
+
throw new FlexHarnessSlashCommandUnavailableError('compact', 'No context compactor is configured.');
|
|
1626
|
+
}
|
|
1627
|
+
this.requireSessionAvailableForSlashCommand(state, stored, 'compact');
|
|
1628
|
+
await this.trackSlashCommandExecution(scopeId, state, sessionId, 'operation', undefined, async (signal) => {
|
|
1629
|
+
await this.commitRevertedBranch(state, stored, scopeId, scope.scope);
|
|
1630
|
+
await this.compactStoredSession(scopeId, scope.scope, state, stored, signal);
|
|
1631
|
+
});
|
|
1632
|
+
}
|
|
1633
|
+
async compactStoredSession(scopeId, scope, state, stored, signal) {
|
|
1081
1634
|
try {
|
|
1082
|
-
await this.withCompactorContext(this.createCompactorContext(scopeId, scope
|
|
1635
|
+
await this.withCompactorContext(this.createCompactorContext(scopeId, scope, state.storageKey, stored.session.sessionId), () => stored.agentSession.compact(signal === undefined ? {} : { abort: signal }));
|
|
1083
1636
|
}
|
|
1084
1637
|
catch (error) {
|
|
1085
|
-
throw this.projectOperationError(error, 'agentSession', scopeId, sessionId, 'compaction');
|
|
1638
|
+
throw this.projectOperationError(error, 'agentSession', scopeId, stored.session.sessionId, 'compaction');
|
|
1639
|
+
}
|
|
1640
|
+
}
|
|
1641
|
+
async undoSession(scopeId, sessionId, signal) {
|
|
1642
|
+
const result = await this.changeReversionCursor(scopeId, sessionId, 'undo', signal);
|
|
1643
|
+
return Object.freeze({ revertedRunId: result });
|
|
1644
|
+
}
|
|
1645
|
+
async redoSession(scopeId, sessionId, signal) {
|
|
1646
|
+
const result = await this.changeReversionCursor(scopeId, sessionId, 'redo', signal);
|
|
1647
|
+
return Object.freeze({ restoredRunId: result });
|
|
1648
|
+
}
|
|
1649
|
+
reversionUnit(stored, direction) {
|
|
1650
|
+
const groups = this.reversionGroups(stored);
|
|
1651
|
+
if (direction === 'undo') {
|
|
1652
|
+
let start = stored.revertCursor - 1;
|
|
1653
|
+
while (start >= 0 && groups[start]?.kind === 'no-change')
|
|
1654
|
+
start--;
|
|
1655
|
+
const candidate = groups[start];
|
|
1656
|
+
if (!candidate || candidate.kind !== 'candidate')
|
|
1657
|
+
return undefined;
|
|
1658
|
+
return {
|
|
1659
|
+
target: candidate.target,
|
|
1660
|
+
segments: groups.slice(start, stored.revertCursor).flatMap((group) => group.segments),
|
|
1661
|
+
toCursor: start,
|
|
1662
|
+
};
|
|
1663
|
+
}
|
|
1664
|
+
const candidate = groups[stored.revertCursor];
|
|
1665
|
+
if (!candidate || candidate.kind !== 'candidate')
|
|
1666
|
+
return undefined;
|
|
1667
|
+
let end = stored.revertCursor + 1;
|
|
1668
|
+
while (groups[end]?.kind === 'no-change')
|
|
1669
|
+
end++;
|
|
1670
|
+
return {
|
|
1671
|
+
target: candidate.target,
|
|
1672
|
+
segments: groups.slice(stored.revertCursor, end).flatMap((group) => group.segments),
|
|
1673
|
+
toCursor: end,
|
|
1674
|
+
};
|
|
1675
|
+
}
|
|
1676
|
+
reversionGroups(stored) {
|
|
1677
|
+
const groups = [];
|
|
1678
|
+
let leading = [];
|
|
1679
|
+
for (const segment of stored.reversionSegments) {
|
|
1680
|
+
if (segment.status === 'completed') {
|
|
1681
|
+
const segments = groups.length === 0 ? [...leading, segment] : [segment];
|
|
1682
|
+
leading = [];
|
|
1683
|
+
groups.push({
|
|
1684
|
+
target: segment,
|
|
1685
|
+
segments,
|
|
1686
|
+
kind: 'candidate',
|
|
1687
|
+
affectedWorkspaces: [],
|
|
1688
|
+
affectedWorkspacesTruncated: false,
|
|
1689
|
+
});
|
|
1690
|
+
}
|
|
1691
|
+
else if (groups.length > 0) {
|
|
1692
|
+
groups[groups.length - 1].segments.push(segment);
|
|
1693
|
+
}
|
|
1694
|
+
else {
|
|
1695
|
+
leading.push(segment);
|
|
1696
|
+
}
|
|
1697
|
+
}
|
|
1698
|
+
for (const group of groups) {
|
|
1699
|
+
const affected = new Map();
|
|
1700
|
+
for (const workspace of group.segments.flatMap((segment) => segment.affectedWorkspaces ?? [])) {
|
|
1701
|
+
if (affected.has(workspace.id))
|
|
1702
|
+
continue;
|
|
1703
|
+
if (affected.size < FLEX_REVERSION_MAX_AFFECTED_WORKSPACES) {
|
|
1704
|
+
affected.set(workspace.id, cloneSerializable(workspace));
|
|
1705
|
+
}
|
|
1706
|
+
else {
|
|
1707
|
+
group.affectedWorkspacesTruncated = true;
|
|
1708
|
+
}
|
|
1709
|
+
}
|
|
1710
|
+
group.affectedWorkspaces = [...affected.values()];
|
|
1711
|
+
if (this.reversionPolicy === 'transcript-optional')
|
|
1712
|
+
continue;
|
|
1713
|
+
if (group.segments.some((segment) => segment.status === 'capturing'
|
|
1714
|
+
|| segment.disposition === 'pending'
|
|
1715
|
+
|| (segment.protocolVersion === 1 && segment.provenance === 'transcript')
|
|
1716
|
+
|| segment.disposition === 'nonrevertible')) {
|
|
1717
|
+
group.kind = 'barrier';
|
|
1718
|
+
}
|
|
1719
|
+
else if (group.segments.some((segment) => segment.disposition === 'revertible')) {
|
|
1720
|
+
group.kind = 'candidate';
|
|
1721
|
+
}
|
|
1722
|
+
else {
|
|
1723
|
+
group.kind = 'no-change';
|
|
1724
|
+
}
|
|
1725
|
+
}
|
|
1726
|
+
return groups;
|
|
1727
|
+
}
|
|
1728
|
+
async requireReversionIdle(state, stored, sessionId, allowPendingApply = false, operationSignal) {
|
|
1729
|
+
const reason = await this.reversionUnavailableReason(state, stored, allowPendingApply, operationSignal);
|
|
1730
|
+
if (reason)
|
|
1731
|
+
throw new FlexHarnessSessionBusyError(sessionId, reason.toLowerCase().replace(/\.$/u, ''));
|
|
1732
|
+
}
|
|
1733
|
+
async reversionUnavailableReason(state, stored, allowPendingApply = false, operationSignal) {
|
|
1734
|
+
if (stored.pendingReversion && !(allowPendingApply && stored.pendingReversion.kind === 'apply')) {
|
|
1735
|
+
return 'Session has a pending reversion operation.';
|
|
1736
|
+
}
|
|
1737
|
+
if (!this.isSessionRuntimeIdle(state, stored)) {
|
|
1738
|
+
return slashCommandSessionUnavailableReason;
|
|
1739
|
+
}
|
|
1740
|
+
const activeOperation = this.activeSlashCommandExecutions.get(this.slashCommandSessionKey(state.storageKey, stored.session.sessionId));
|
|
1741
|
+
if (activeOperation && activeOperation.controller.signal !== operationSignal) {
|
|
1742
|
+
return 'Session already has an active slash command execution.';
|
|
1743
|
+
}
|
|
1744
|
+
if ([...state.pendingPermissions.values()].some((pending) => !pending.settled && pending.request.sessionId === stored.session.sessionId)) {
|
|
1745
|
+
return 'Session has a pending permission.';
|
|
1746
|
+
}
|
|
1747
|
+
if (stored.agentSession.listUncertainToolExecutions().length > 0) {
|
|
1748
|
+
return 'Session has uncertain tool executions.';
|
|
1749
|
+
}
|
|
1750
|
+
if (stored.jobs) {
|
|
1751
|
+
operationSignal?.throwIfAborted();
|
|
1752
|
+
const jobs = Promise.resolve().then(() => stored.jobs.list());
|
|
1753
|
+
if ((await this.awaitReversionOperation(jobs, operationSignal))
|
|
1754
|
+
.some((job) => job.state === 'running')) {
|
|
1755
|
+
return 'Session has running background jobs.';
|
|
1756
|
+
}
|
|
1757
|
+
}
|
|
1758
|
+
return undefined;
|
|
1759
|
+
}
|
|
1760
|
+
async awaitReversionOperation(operation, signal) {
|
|
1761
|
+
if (!signal)
|
|
1762
|
+
return operation;
|
|
1763
|
+
void operation.catch(() => undefined);
|
|
1764
|
+
let rejectForAbort;
|
|
1765
|
+
const aborted = new Promise((_resolve, reject) => {
|
|
1766
|
+
rejectForAbort = () => reject(signal.reason ?? this.trustInternalError(new FlexHarnessAbortError('The slash command was aborted.')));
|
|
1767
|
+
signal.addEventListener('abort', rejectForAbort, { once: true });
|
|
1768
|
+
if (signal.aborted)
|
|
1769
|
+
rejectForAbort();
|
|
1770
|
+
});
|
|
1771
|
+
try {
|
|
1772
|
+
return await Promise.race([operation, aborted]);
|
|
1773
|
+
}
|
|
1774
|
+
finally {
|
|
1775
|
+
signal.removeEventListener('abort', rejectForAbort);
|
|
1776
|
+
}
|
|
1777
|
+
}
|
|
1778
|
+
async changeReversionCursor(scopeId, sessionId, direction, signal) {
|
|
1779
|
+
const { scope, state } = await this.resolveState(scopeId);
|
|
1780
|
+
return this.changeReversionCursorResolved(scopeId, sessionId, direction, scope.scope, state, signal);
|
|
1781
|
+
}
|
|
1782
|
+
async changeReversionCursorResolved(scopeId, sessionId, direction, scope, state, signal) {
|
|
1783
|
+
const stored = this.requireSession(state, sessionId);
|
|
1784
|
+
this.assertStateAcceptingWork(state);
|
|
1785
|
+
const invocationOwner = this.slashCommandInvocationContext.getStore();
|
|
1786
|
+
if (invocationOwner?.sessionKey === this.slashCommandSessionKey(state.storageKey, sessionId)) {
|
|
1787
|
+
throw this.trustInternalError(new FlexHarnessSlashCommandReentryError(sessionId));
|
|
1788
|
+
}
|
|
1789
|
+
return this.trackSlashCommandExecution(scopeId, state, sessionId, 'operation', signal, async (operationSignal) => {
|
|
1790
|
+
await stored.projectionQueue;
|
|
1791
|
+
const resumable = stored.pendingReversion?.kind === 'apply'
|
|
1792
|
+
&& stored.pendingReversion.direction === direction;
|
|
1793
|
+
await this.requireReversionIdle(state, stored, sessionId, resumable, operationSignal);
|
|
1794
|
+
await this.reconcileContextAvailability(state, stored);
|
|
1795
|
+
operationSignal.throwIfAborted();
|
|
1796
|
+
const pending = stored.pendingReversion;
|
|
1797
|
+
if (pending?.kind === 'apply') {
|
|
1798
|
+
if (pending.direction !== direction) {
|
|
1799
|
+
throw new FlexHarnessSessionBusyError(sessionId, 'has a pending opposite reversion operation');
|
|
1800
|
+
}
|
|
1801
|
+
const target = pending.segmentRunIds
|
|
1802
|
+
.map((runId) => stored.reversionSegments.find((segment) => segment.runId === runId))
|
|
1803
|
+
.find((segment) => segment?.status === 'completed');
|
|
1804
|
+
if (!target)
|
|
1805
|
+
throw new FlexHarnessValidationError('Pending reversion has no target candidate.');
|
|
1806
|
+
await this.resumePendingApply(state, stored, scopeId, scope, operationSignal);
|
|
1807
|
+
this.emitEvent(scopeId, sessionId, {
|
|
1808
|
+
type: 'session.history.changed',
|
|
1809
|
+
direction,
|
|
1810
|
+
runId: target.runId,
|
|
1811
|
+
});
|
|
1812
|
+
return target.runId;
|
|
1813
|
+
}
|
|
1814
|
+
const unit = this.reversionUnit(stored, direction);
|
|
1815
|
+
if (!unit) {
|
|
1816
|
+
throw new FlexHarnessSlashCommandUnavailableError(direction, direction === 'undo' ? 'No visible turn can be undone.' : 'No hidden turn can be redone.');
|
|
1817
|
+
}
|
|
1818
|
+
if (!unit.target.contextAvailable) {
|
|
1819
|
+
throw new FlexHarnessSlashCommandUnavailableError(direction, 'The turn is beyond the context archive horizon.');
|
|
1820
|
+
}
|
|
1821
|
+
if (this.turnReversionProvider && unit.segments.some((segment) => segment.disposition === 'revertible' && segment.workspaceReference === undefined)) {
|
|
1822
|
+
throw new FlexHarnessSlashCommandUnavailableError(direction, 'The turn has no available workspace reversion capture.');
|
|
1823
|
+
}
|
|
1824
|
+
const operationId = this.reversionId('apply', state.storageKey, sessionId, JSON.stringify([direction, stored.revertCursor, unit.toCursor, unit.target.runId]));
|
|
1825
|
+
await this.mutateProjection(state, stored, () => {
|
|
1826
|
+
stored.pendingReversion = {
|
|
1827
|
+
kind: 'apply',
|
|
1828
|
+
operationId,
|
|
1829
|
+
direction,
|
|
1830
|
+
fromCursor: stored.revertCursor,
|
|
1831
|
+
toCursor: unit.toCursor,
|
|
1832
|
+
segmentRunIds: unit.segments.map((segment) => segment.runId),
|
|
1833
|
+
appliedRunIds: [],
|
|
1834
|
+
};
|
|
1835
|
+
}, true);
|
|
1836
|
+
await this.resumePendingApply(state, stored, scopeId, scope, operationSignal);
|
|
1837
|
+
this.emitEvent(scopeId, sessionId, {
|
|
1838
|
+
type: 'session.history.changed',
|
|
1839
|
+
direction,
|
|
1840
|
+
runId: unit.target.runId,
|
|
1841
|
+
});
|
|
1842
|
+
return unit.target.runId;
|
|
1843
|
+
});
|
|
1844
|
+
}
|
|
1845
|
+
async reconcileContextAvailability(state, stored) {
|
|
1846
|
+
const activeEvents = new Set(stored.agentSession.getEvents().map((event) => event.id));
|
|
1847
|
+
if (!stored.reversionSegments.some((segment) => segment.contextAvailable
|
|
1848
|
+
&& segment.eventIds.length > 0
|
|
1849
|
+
&& !segment.eventIds.some((eventId) => activeEvents.has(eventId))))
|
|
1850
|
+
return false;
|
|
1851
|
+
let branchCommitted = false;
|
|
1852
|
+
await this.mutateProjection(state, stored, () => {
|
|
1853
|
+
for (const segment of stored.reversionSegments) {
|
|
1854
|
+
if (segment.contextAvailable
|
|
1855
|
+
&& segment.eventIds.length > 0
|
|
1856
|
+
&& !segment.eventIds.some((eventId) => activeEvents.has(eventId)))
|
|
1857
|
+
segment.contextAvailable = false;
|
|
1858
|
+
}
|
|
1859
|
+
branchCommitted = this.commitArchivedHiddenBranchState(stored);
|
|
1860
|
+
this.pruneReversionState(stored, false, true);
|
|
1861
|
+
}, true);
|
|
1862
|
+
const context = stored.compactorContext;
|
|
1863
|
+
if (context) {
|
|
1864
|
+
await this.drainReversionReleases(state, stored, context.scopeId, context.scope, false);
|
|
1865
|
+
}
|
|
1866
|
+
return branchCommitted;
|
|
1867
|
+
}
|
|
1868
|
+
async resumePendingApply(state, stored, scopeId, scope, signal) {
|
|
1869
|
+
const pending = stored.pendingReversion;
|
|
1870
|
+
if (pending?.kind !== 'apply')
|
|
1871
|
+
return;
|
|
1872
|
+
const segmentMap = new Map(stored.reversionSegments.map((segment) => [segment.runId, segment]));
|
|
1873
|
+
if (pending.segmentRunIds.some((runId) => segmentMap.get(runId)?.disposition === 'revertible')
|
|
1874
|
+
&& !this.turnReversionProvider) {
|
|
1875
|
+
throw new FlexHarnessValidationError('Pending workspace reversion recovery requires its turn reversion provider.');
|
|
1876
|
+
}
|
|
1877
|
+
const orderedRunIds = pending.direction === 'undo'
|
|
1878
|
+
? [...pending.segmentRunIds].reverse()
|
|
1879
|
+
: [...pending.segmentRunIds];
|
|
1880
|
+
let workspaceProgress = pending.appliedRunIds.some((runId) => segmentMap.get(runId)?.disposition === 'revertible');
|
|
1881
|
+
for (const runId of orderedRunIds) {
|
|
1882
|
+
if (pending.appliedRunIds.includes(runId))
|
|
1883
|
+
continue;
|
|
1884
|
+
if (signal?.aborted && !workspaceProgress) {
|
|
1885
|
+
await this.persistKnownNotApplied(state, stored, pending.operationId, runId);
|
|
1886
|
+
throw signal.reason;
|
|
1887
|
+
}
|
|
1888
|
+
const segment = segmentMap.get(runId);
|
|
1889
|
+
if (!segment)
|
|
1890
|
+
throw new FlexHarnessValidationError('Pending reversion references a missing segment.');
|
|
1891
|
+
if (segment.disposition === 'revertible') {
|
|
1892
|
+
if (!this.turnReversionProvider || !segment.captureId || segment.workspaceReference === undefined) {
|
|
1893
|
+
throw new FlexHarnessValidationError('Pending workspace reversion segment is incomplete.');
|
|
1894
|
+
}
|
|
1895
|
+
if (this.reversionProviderProtocolVersion() !== segment.protocolVersion) {
|
|
1896
|
+
throw new FlexHarnessValidationError(`Pending workspace reversion requires protocolVersion ${segment.protocolVersion}.`);
|
|
1897
|
+
}
|
|
1898
|
+
const captureId = segment.captureId;
|
|
1899
|
+
const reference = segment.workspaceReference;
|
|
1900
|
+
const childOperationId = `${pending.operationId}:${sha256Hex(runId).slice(0, 16)}`;
|
|
1901
|
+
const createContext = (contextSignal) => Object.freeze({
|
|
1902
|
+
scopeId,
|
|
1903
|
+
scope,
|
|
1904
|
+
storageKey: state.storageKey,
|
|
1905
|
+
sessionId: stored.session.sessionId,
|
|
1906
|
+
runId,
|
|
1907
|
+
captureId,
|
|
1908
|
+
reference: cloneSerializable(reference),
|
|
1909
|
+
operationId: childOperationId,
|
|
1910
|
+
direction: pending.direction,
|
|
1911
|
+
signal: contextSignal,
|
|
1912
|
+
});
|
|
1913
|
+
let inspection;
|
|
1914
|
+
try {
|
|
1915
|
+
inspection = await this.withReversionMaintenanceSignal((inspectionSignal) => this.turnReversionProvider.inspectApply(createContext(inspectionSignal)));
|
|
1916
|
+
}
|
|
1917
|
+
catch (inspectionError) {
|
|
1918
|
+
state.lifecycle = 'fenced';
|
|
1919
|
+
throw this.projectOperationError(inspectionError, 'turnReversion', scopeId, stored.session.sessionId, childOperationId);
|
|
1920
|
+
}
|
|
1921
|
+
if (inspection.status === 'unknown') {
|
|
1922
|
+
state.lifecycle = 'fenced';
|
|
1923
|
+
throw new FlexHarnessValidationError('Workspace reversion apply outcome is unknown.');
|
|
1924
|
+
}
|
|
1925
|
+
if (inspection.status === 'not-applied') {
|
|
1926
|
+
try {
|
|
1927
|
+
if (signal && !workspaceProgress) {
|
|
1928
|
+
await this.turnReversionProvider.apply(createContext(signal));
|
|
1929
|
+
}
|
|
1930
|
+
else {
|
|
1931
|
+
await this.withReversionMaintenanceSignal((maintenanceSignal) => this.turnReversionProvider.apply(createContext(maintenanceSignal)));
|
|
1932
|
+
}
|
|
1933
|
+
}
|
|
1934
|
+
catch (error) {
|
|
1935
|
+
try {
|
|
1936
|
+
inspection = await this.withReversionMaintenanceSignal((inspectionSignal) => this.turnReversionProvider.inspectApply(createContext(inspectionSignal)));
|
|
1937
|
+
}
|
|
1938
|
+
catch (inspectionError) {
|
|
1939
|
+
state.lifecycle = 'fenced';
|
|
1940
|
+
throw this.projectOperationError(inspectionError, 'turnReversion', scopeId, stored.session.sessionId, childOperationId);
|
|
1941
|
+
}
|
|
1942
|
+
if (inspection.status !== 'applied') {
|
|
1943
|
+
if (inspection.status === 'unknown')
|
|
1944
|
+
state.lifecycle = 'fenced';
|
|
1945
|
+
else
|
|
1946
|
+
await this.persistKnownNotApplied(state, stored, pending.operationId, runId);
|
|
1947
|
+
throw this.projectOperationError(error, 'turnReversion', scopeId, stored.session.sessionId, childOperationId);
|
|
1948
|
+
}
|
|
1949
|
+
}
|
|
1950
|
+
}
|
|
1951
|
+
}
|
|
1952
|
+
await this.mutateProjection(state, stored, () => {
|
|
1953
|
+
const current = stored.pendingReversion;
|
|
1954
|
+
if (current?.kind !== 'apply' || current.operationId !== pending.operationId) {
|
|
1955
|
+
throw new FlexHarnessValidationError('Pending reversion changed while applying.');
|
|
1956
|
+
}
|
|
1957
|
+
if (!current.appliedRunIds.includes(runId))
|
|
1958
|
+
current.appliedRunIds.push(runId);
|
|
1959
|
+
}, true);
|
|
1960
|
+
if (segment.disposition === 'revertible')
|
|
1961
|
+
workspaceProgress = true;
|
|
1962
|
+
}
|
|
1963
|
+
await this.mutateProjection(state, stored, () => {
|
|
1964
|
+
const current = stored.pendingReversion;
|
|
1965
|
+
if (current?.kind !== 'apply' || current.operationId !== pending.operationId) {
|
|
1966
|
+
throw new FlexHarnessValidationError('Pending reversion changed before cursor commit.');
|
|
1967
|
+
}
|
|
1968
|
+
stored.revertCursor = current.toCursor;
|
|
1969
|
+
delete stored.pendingReversion;
|
|
1970
|
+
}, true);
|
|
1971
|
+
}
|
|
1972
|
+
async persistKnownNotApplied(state, stored, operationId, runId) {
|
|
1973
|
+
await this.mutateProjection(state, stored, () => {
|
|
1974
|
+
const current = stored.pendingReversion;
|
|
1975
|
+
if (current?.kind !== 'apply' || current.operationId !== operationId) {
|
|
1976
|
+
throw new FlexHarnessValidationError('Pending reversion changed while recording failed apply.');
|
|
1977
|
+
}
|
|
1978
|
+
current.appliedRunIds = current.appliedRunIds.filter((entry) => entry !== runId);
|
|
1979
|
+
const hasWorkspaceProgress = current.appliedRunIds.some((appliedRunId) => stored.reversionSegments.some((segment) => segment.runId === appliedRunId && segment.disposition === 'revertible'));
|
|
1980
|
+
if (!hasWorkspaceProgress) {
|
|
1981
|
+
stored.revertCursor = current.fromCursor;
|
|
1982
|
+
delete stored.pendingReversion;
|
|
1983
|
+
}
|
|
1984
|
+
}, true);
|
|
1985
|
+
}
|
|
1986
|
+
async recoverPendingCapture(state, stored, scopeId, scope, outcomes) {
|
|
1987
|
+
const pending = stored.pendingReversion;
|
|
1988
|
+
if (pending?.kind !== 'capture' || !this.turnReversionProvider)
|
|
1989
|
+
return;
|
|
1990
|
+
const segment = stored.reversionSegments.find((entry) => entry.runId === pending.runId);
|
|
1991
|
+
if (!segment)
|
|
1992
|
+
throw new FlexHarnessValidationError('Pending capture references a missing segment.');
|
|
1993
|
+
if (this.reversionProviderProtocolVersion() !== pending.protocolVersion) {
|
|
1994
|
+
throw new FlexHarnessValidationError(`Pending capture recovery requires protocolVersion ${pending.protocolVersion}.`);
|
|
1995
|
+
}
|
|
1996
|
+
const outcome = outcomes.get(pending.runId);
|
|
1997
|
+
if (pending.state === 'prepared') {
|
|
1998
|
+
await this.mutateProjection(state, stored, () => {
|
|
1999
|
+
const current = stored.pendingReversion;
|
|
2000
|
+
if (current?.kind !== 'capture' || current.captureId !== pending.captureId) {
|
|
2001
|
+
throw new FlexHarnessValidationError('Pending capture changed before finalization.');
|
|
2002
|
+
}
|
|
2003
|
+
current.state = 'finalizing';
|
|
2004
|
+
}, true);
|
|
1086
2005
|
}
|
|
2006
|
+
const finalizedOutcome = await this.resolveReversionCaptureOutcome(state, scopeId, scope, stored.session.sessionId, pending.runId, pending.captureId, pending.state === 'prepared' ? 'finalizing' : pending.state);
|
|
2007
|
+
if (finalizedOutcome === undefined) {
|
|
2008
|
+
await this.mutateProjection(state, stored, () => {
|
|
2009
|
+
stored.reversionSegments = stored.reversionSegments.filter((entry) => entry.runId !== pending.runId);
|
|
2010
|
+
delete stored.pendingReversion;
|
|
2011
|
+
}, true);
|
|
2012
|
+
return;
|
|
2013
|
+
}
|
|
2014
|
+
await this.mutateProjection(state, stored, () => {
|
|
2015
|
+
segment.status = outcome === 'accepted'
|
|
2016
|
+
? 'completed'
|
|
2017
|
+
: outcome === 'rejected'
|
|
2018
|
+
? 'failed'
|
|
2019
|
+
: 'cancelled';
|
|
2020
|
+
this.applyFinalizedReversionOutcome(stored, segment, finalizedOutcome);
|
|
2021
|
+
segment.eventIds = stored.agentSession.getEvents()
|
|
2022
|
+
.filter((event) => event.generationId === pending.runId)
|
|
2023
|
+
.map((event) => event.id);
|
|
2024
|
+
if (segment.status === 'completed')
|
|
2025
|
+
stored.revertCursor++;
|
|
2026
|
+
if (outcome === undefined && !stored.excludedRunIds.includes(pending.runId)) {
|
|
2027
|
+
stored.excludedRunIds.push(pending.runId);
|
|
2028
|
+
}
|
|
2029
|
+
delete stored.pendingReversion;
|
|
2030
|
+
this.pruneReversionState(stored, false, true);
|
|
2031
|
+
}, true);
|
|
2032
|
+
await this.drainReversionReleases(state, stored, scopeId, scope, false);
|
|
1087
2033
|
}
|
|
1088
2034
|
async archiveSessionEvents(scopeId, sessionId, compactionEventId) {
|
|
1089
2035
|
if (compactionEventId !== undefined) {
|
|
1090
2036
|
validateIdentifier(compactionEventId, 'compactionEventId');
|
|
1091
2037
|
requireTransferIdentifier(compactionEventId, 'compactionEventId');
|
|
1092
2038
|
}
|
|
1093
|
-
const { state } = await this.resolveState(scopeId);
|
|
2039
|
+
const { scope, state } = await this.resolveState(scopeId);
|
|
1094
2040
|
const stored = this.requireSession(state, sessionId);
|
|
1095
2041
|
this.assertStateAcceptingWork(state);
|
|
2042
|
+
this.requireSessionAvailableForSlashCommand(state, stored, 'archive');
|
|
2043
|
+
const compaction = compactionEventId === undefined
|
|
2044
|
+
? [...stored.agentSession.getEvents()].reverse().find((event) => event.type === 'context-compaction')
|
|
2045
|
+
: stored.agentSession.getEvents().find((event) => event.type === 'context-compaction' && event.id === compactionEventId);
|
|
2046
|
+
if (!compaction || compaction.type !== 'context-compaction')
|
|
2047
|
+
return undefined;
|
|
2048
|
+
let archive;
|
|
1096
2049
|
try {
|
|
1097
|
-
|
|
1098
|
-
if (!archive)
|
|
1099
|
-
return undefined;
|
|
1100
|
-
return publicSnapshot({
|
|
1101
|
-
archiveId: this.boundedIdentifier(archive.archiveId, 'archiveId'),
|
|
1102
|
-
sessionId: this.boundedIdentifier(archive.sessionId, 'sessionId'),
|
|
1103
|
-
createdAt: new Date(archive.createdAt).toISOString(),
|
|
1104
|
-
eventCount: archive.events.length,
|
|
1105
|
-
});
|
|
2050
|
+
archive = await stored.agentSession.archiveCompactedEvents(compaction.id);
|
|
1106
2051
|
}
|
|
1107
2052
|
catch (error) {
|
|
1108
2053
|
throw this.projectOperationError(error, 'agentSession', scopeId, sessionId, 'archive');
|
|
1109
2054
|
}
|
|
2055
|
+
if (!archive)
|
|
2056
|
+
return undefined;
|
|
2057
|
+
let branchCommitted = false;
|
|
2058
|
+
try {
|
|
2059
|
+
const archivedIds = new Set(archive.events.map((event) => event.id));
|
|
2060
|
+
await this.mutateProjection(state, stored, () => {
|
|
2061
|
+
branchCommitted = this.commitRevertedBranchState(stored);
|
|
2062
|
+
for (const segment of stored.reversionSegments) {
|
|
2063
|
+
if (segment.eventIds.some((eventId) => archivedIds.has(eventId))) {
|
|
2064
|
+
segment.contextAvailable = false;
|
|
2065
|
+
}
|
|
2066
|
+
}
|
|
2067
|
+
this.pruneReversionState(stored);
|
|
2068
|
+
}, true);
|
|
2069
|
+
}
|
|
2070
|
+
catch (error) {
|
|
2071
|
+
throw this.projectOperationError(error, 'persistence', scopeId, sessionId, 'archive-horizon');
|
|
2072
|
+
}
|
|
2073
|
+
if (branchCommitted) {
|
|
2074
|
+
this.emitEvent(scopeId, sessionId, {
|
|
2075
|
+
type: 'session.history.changed',
|
|
2076
|
+
direction: 'branch',
|
|
2077
|
+
});
|
|
2078
|
+
}
|
|
2079
|
+
await this.drainReversionReleases(state, stored, scopeId, scope.scope, false);
|
|
2080
|
+
return publicSnapshot({
|
|
2081
|
+
archiveId: this.boundedIdentifier(archive.archiveId, 'archiveId'),
|
|
2082
|
+
sessionId: this.boundedIdentifier(archive.sessionId, 'sessionId'),
|
|
2083
|
+
createdAt: new Date(archive.createdAt).toISOString(),
|
|
2084
|
+
eventCount: archive.events.length,
|
|
2085
|
+
});
|
|
1110
2086
|
}
|
|
1111
2087
|
async listBackgroundExecutions(scopeId, sessionId) {
|
|
1112
2088
|
const { state } = await this.resolveState(scopeId);
|
|
@@ -1163,6 +2139,7 @@ export class FlexHarness {
|
|
|
1163
2139
|
};
|
|
1164
2140
|
}
|
|
1165
2141
|
retireScope(scopeId) {
|
|
2142
|
+
this.assertNoAmbientSlashCommandTeardown({ scopeId });
|
|
1166
2143
|
this.assertOpen();
|
|
1167
2144
|
validateIdentifier(scopeId, 'scopeId');
|
|
1168
2145
|
const existing = this.scopeRetirements.get(scopeId);
|
|
@@ -1182,6 +2159,7 @@ export class FlexHarness {
|
|
|
1182
2159
|
return retirement;
|
|
1183
2160
|
}
|
|
1184
2161
|
async dispose() {
|
|
2162
|
+
this.assertNoAmbientSlashCommandTeardown();
|
|
1185
2163
|
if (this.disposePromise)
|
|
1186
2164
|
return this.disposePromise;
|
|
1187
2165
|
this.closed = true;
|
|
@@ -1194,16 +2172,11 @@ export class FlexHarness {
|
|
|
1194
2172
|
this.disposePromise = disposal;
|
|
1195
2173
|
return disposal;
|
|
1196
2174
|
}
|
|
1197
|
-
async enqueuePromptInternal(scopeId, sessionId, prompt, options, scheduleKey, debounceMs, subagentAdmission = false, admissionSignal) {
|
|
2175
|
+
async enqueuePromptInternal(scopeId, sessionId, prompt, options, scheduleKey, debounceMs, subagentAdmission = false, admissionSignal, slashCommandAdmission = false) {
|
|
1198
2176
|
this.assertOpen();
|
|
1199
2177
|
const normalizedPrompt = normalizeFlexPrompt(prompt);
|
|
1200
2178
|
const normalizedOptions = cloneSerializable(options);
|
|
1201
|
-
const byteSize =
|
|
1202
|
-
prompt: normalizedPrompt,
|
|
1203
|
-
options: normalizedOptions,
|
|
1204
|
-
scheduleKey,
|
|
1205
|
-
debounceMs,
|
|
1206
|
-
});
|
|
2179
|
+
const byteSize = this.promptAdmissionByteSize(prompt, options, scheduleKey, debounceMs);
|
|
1207
2180
|
const releasePendingAdmission = this.reservePendingPromptAdmission(byteSize);
|
|
1208
2181
|
let resolveSettled;
|
|
1209
2182
|
const pendingOwner = {
|
|
@@ -1239,6 +2212,17 @@ export class FlexHarness {
|
|
|
1239
2212
|
}
|
|
1240
2213
|
this.assertStateAcceptingWork(state);
|
|
1241
2214
|
const stored = this.requireSession(state, sessionId);
|
|
2215
|
+
const sessionKey = this.slashCommandSessionKey(state.storageKey, sessionId);
|
|
2216
|
+
const invocationOwner = this.slashCommandInvocationContext.getStore();
|
|
2217
|
+
if (invocationOwner?.sessionKey === sessionKey) {
|
|
2218
|
+
throw this.trustInternalError(new FlexHarnessSlashCommandReentryError(sessionId));
|
|
2219
|
+
}
|
|
2220
|
+
if (!slashCommandAdmission && this.activeSlashCommandExecutions.has(sessionKey)) {
|
|
2221
|
+
throw new FlexHarnessSessionBusyError(sessionId, 'already has an active slash command execution');
|
|
2222
|
+
}
|
|
2223
|
+
if (stored.pendingReversion) {
|
|
2224
|
+
throw new FlexHarnessSessionBusyError(sessionId, 'has a pending reversion operation');
|
|
2225
|
+
}
|
|
1242
2226
|
if (stored.session.agent !== undefined && !subagentAdmission) {
|
|
1243
2227
|
throw new FlexHarnessValidationError('Subagent sessions can only be prompted through the foreground task tool.');
|
|
1244
2228
|
}
|
|
@@ -1297,6 +2281,7 @@ export class FlexHarness {
|
|
|
1297
2281
|
return {
|
|
1298
2282
|
admission: Object.freeze({ queueId: queued.queueId, completion }),
|
|
1299
2283
|
started,
|
|
2284
|
+
queued,
|
|
1300
2285
|
};
|
|
1301
2286
|
}
|
|
1302
2287
|
finally {
|
|
@@ -1417,11 +2402,40 @@ export class FlexHarness {
|
|
|
1417
2402
|
const options = queued.options;
|
|
1418
2403
|
let projectionReserved = false;
|
|
1419
2404
|
try {
|
|
2405
|
+
await this.commitRevertedBranch(run.state, run.stored, run.scopeId, run.scope);
|
|
1420
2406
|
run.transaction = await this.withRunCompactorContext(run, () => run.stored.agentSession.beginGeneration(cloneSerializable(prompt.modelMessage.content), { generationId: run.runId }));
|
|
1421
2407
|
this.assertPromptPromotion(queued, run);
|
|
1422
2408
|
const reservation = this.createReservation(run, prompt);
|
|
1423
2409
|
await this.mutateProjection(run.state, run.stored, () => {
|
|
1424
2410
|
run.stored.messages.push(reservation.userMessage, reservation.assistantMessage);
|
|
2411
|
+
if (run.stored.session.agent === undefined) {
|
|
2412
|
+
this.pruneReversionState(run.stored, true);
|
|
2413
|
+
const captureId = this.turnReversionProvider
|
|
2414
|
+
? this.reversionId('capture', run.state.storageKey, run.sessionId, run.runId)
|
|
2415
|
+
: undefined;
|
|
2416
|
+
const protocolVersion = this.reversionProviderProtocolVersion() ?? 1;
|
|
2417
|
+
run.stored.reversionSegments.push({
|
|
2418
|
+
runId: run.runId,
|
|
2419
|
+
userMessageId: reservation.userMessage.messageId,
|
|
2420
|
+
status: 'capturing',
|
|
2421
|
+
contextAvailable: true,
|
|
2422
|
+
eventIds: [],
|
|
2423
|
+
workspaceCaptured: captureId !== undefined,
|
|
2424
|
+
protocolVersion,
|
|
2425
|
+
provenance: captureId === undefined ? 'transcript' : 'workspace',
|
|
2426
|
+
...(captureId === undefined ? {} : { disposition: 'pending' }),
|
|
2427
|
+
...(captureId === undefined ? {} : { captureId }),
|
|
2428
|
+
});
|
|
2429
|
+
if (captureId) {
|
|
2430
|
+
run.stored.pendingReversion = {
|
|
2431
|
+
kind: 'capture',
|
|
2432
|
+
runId: run.runId,
|
|
2433
|
+
captureId,
|
|
2434
|
+
state: 'preparing',
|
|
2435
|
+
protocolVersion,
|
|
2436
|
+
};
|
|
2437
|
+
}
|
|
2438
|
+
}
|
|
1425
2439
|
});
|
|
1426
2440
|
projectionReserved = true;
|
|
1427
2441
|
run.reservedUserMessage = publicSnapshot(reservation.userMessage);
|
|
@@ -1609,6 +2623,7 @@ export class FlexHarness {
|
|
|
1609
2623
|
const result = normalizeRunResult(rawResult);
|
|
1610
2624
|
if (!run.modelResolution)
|
|
1611
2625
|
throw new FlexHarnessValidationError('Generation completed without a resolved model.');
|
|
2626
|
+
await this.finalizeRunReversion(run, 'completed');
|
|
1612
2627
|
const terminal = this.buildTerminal(run, 'completed', result);
|
|
1613
2628
|
try {
|
|
1614
2629
|
await this.mutateProjection(run.state, run.stored, () => {
|
|
@@ -1640,6 +2655,7 @@ export class FlexHarness {
|
|
|
1640
2655
|
}
|
|
1641
2656
|
this.emitTerminalProjection(run, terminal);
|
|
1642
2657
|
this.emitFinalRunEvent(run, terminal.assistantMessage, undefined, false);
|
|
2658
|
+
await this.drainReversionReleases(run.state, run.stored, run.scopeId, run.scope, false);
|
|
1643
2659
|
return {
|
|
1644
2660
|
runId: run.runId,
|
|
1645
2661
|
sessionId: run.sessionId,
|
|
@@ -1675,6 +2691,15 @@ export class FlexHarness {
|
|
|
1675
2691
|
? run.ownerCancellation
|
|
1676
2692
|
: this.projectExternalError(run, error, generated ? 'persistence' : 'agentSession');
|
|
1677
2693
|
const errors = [safeError];
|
|
2694
|
+
try {
|
|
2695
|
+
await this.finalizeRunReversion(run, cancelled ? 'cancelled' : 'failed');
|
|
2696
|
+
}
|
|
2697
|
+
catch (reversionError) {
|
|
2698
|
+
errors.push(reversionError);
|
|
2699
|
+
const combined = combineErrors(errors);
|
|
2700
|
+
await this.fenceNamespace(run.state, run, combined);
|
|
2701
|
+
throw combined;
|
|
2702
|
+
}
|
|
1678
2703
|
if (generated && !this.isTombstoned(run)) {
|
|
1679
2704
|
const failedStage = this.buildTerminal(run, cancelled ? 'cancelled' : 'failed', undefined, safeError);
|
|
1680
2705
|
try {
|
|
@@ -1729,10 +2754,12 @@ export class FlexHarness {
|
|
|
1729
2754
|
this.emitTerminalProjection(run, terminal);
|
|
1730
2755
|
this.emitFinalRunEvent(run, terminal.assistantMessage, terminalError, publicStatus === 'cancelled');
|
|
1731
2756
|
}
|
|
2757
|
+
await this.drainReversionReleases(run.state, run.stored, run.scopeId, run.scope, false);
|
|
1732
2758
|
throw errors.length > 1 ? combineErrors(errors) : terminalError;
|
|
1733
2759
|
}
|
|
1734
2760
|
async prepareGeneration(run, options, signal) {
|
|
1735
2761
|
signal.throwIfAborted();
|
|
2762
|
+
await this.prepareRunReversion(run, signal);
|
|
1736
2763
|
run.phase = 'running';
|
|
1737
2764
|
const queued = run.stored.outstandingPromptsById.get(run.queueId);
|
|
1738
2765
|
if (queued && (queued.status === 'starting' || queued.status === 'scheduled')) {
|
|
@@ -2226,116 +3253,937 @@ export class FlexHarness {
|
|
|
2226
3253
|
if (!active || active.runId !== runId || active.phase === 'finalizing' || active.phase === 'promoting') {
|
|
2227
3254
|
return false;
|
|
2228
3255
|
}
|
|
2229
|
-
const cancellation = reason instanceof FlexHarnessAbortError
|
|
2230
|
-
? reason
|
|
2231
|
-
: this.trustInternalError(new FlexHarnessAbortError('The parent run was aborted.'));
|
|
2232
|
-
this.cancelRun(active, cancellation);
|
|
2233
|
-
return true;
|
|
3256
|
+
const cancellation = reason instanceof FlexHarnessAbortError
|
|
3257
|
+
? reason
|
|
3258
|
+
: this.trustInternalError(new FlexHarnessAbortError('The parent run was aborted.'));
|
|
3259
|
+
this.cancelRun(active, cancellation);
|
|
3260
|
+
return true;
|
|
3261
|
+
}
|
|
3262
|
+
createReservation(run, prompt) {
|
|
3263
|
+
const timestamp = new Date().toISOString();
|
|
3264
|
+
const userMessage = {
|
|
3265
|
+
messageId: run.userMessageId,
|
|
3266
|
+
sessionId: run.sessionId,
|
|
3267
|
+
runId: run.runId,
|
|
3268
|
+
role: 'user',
|
|
3269
|
+
status: 'streaming',
|
|
3270
|
+
createdAt: timestamp,
|
|
3271
|
+
parts: prompt.parts.map((part) => {
|
|
3272
|
+
if (part.type === 'text') {
|
|
3273
|
+
return { partId: plugins.crypto.randomUUID(), type: 'text', text: part.text };
|
|
3274
|
+
}
|
|
3275
|
+
return {
|
|
3276
|
+
partId: plugins.crypto.randomUUID(),
|
|
3277
|
+
type: 'attachment',
|
|
3278
|
+
attachmentType: part.type,
|
|
3279
|
+
...describeAttachment(part),
|
|
3280
|
+
};
|
|
3281
|
+
}),
|
|
3282
|
+
};
|
|
3283
|
+
const assistantMessage = {
|
|
3284
|
+
messageId: run.assistantMessageId,
|
|
3285
|
+
sessionId: run.sessionId,
|
|
3286
|
+
runId: run.runId,
|
|
3287
|
+
role: 'assistant',
|
|
3288
|
+
status: 'streaming',
|
|
3289
|
+
createdAt: timestamp,
|
|
3290
|
+
parts: [],
|
|
3291
|
+
};
|
|
3292
|
+
return { userMessage, assistantMessage };
|
|
3293
|
+
}
|
|
3294
|
+
buildTerminal(run, status, result, error) {
|
|
3295
|
+
const timestamp = new Date().toISOString();
|
|
3296
|
+
const userMessage = cloneSerializable(run.reservedUserMessage
|
|
3297
|
+
?? run.stored.messages.find((message) => message.messageId === run.userMessageId)
|
|
3298
|
+
?? {
|
|
3299
|
+
messageId: run.userMessageId,
|
|
3300
|
+
sessionId: run.sessionId,
|
|
3301
|
+
runId: run.runId,
|
|
3302
|
+
role: 'user',
|
|
3303
|
+
status: 'streaming',
|
|
3304
|
+
createdAt: timestamp,
|
|
3305
|
+
parts: [],
|
|
3306
|
+
});
|
|
3307
|
+
const assistantMessage = cloneSerializable(run.reservedAssistantMessage
|
|
3308
|
+
?? run.stored.messages.find((message) => message.messageId === run.assistantMessageId)
|
|
3309
|
+
?? {
|
|
3310
|
+
messageId: run.assistantMessageId,
|
|
3311
|
+
sessionId: run.sessionId,
|
|
3312
|
+
runId: run.runId,
|
|
3313
|
+
role: 'assistant',
|
|
3314
|
+
status: 'streaming',
|
|
3315
|
+
createdAt: timestamp,
|
|
3316
|
+
parts: [],
|
|
3317
|
+
});
|
|
3318
|
+
assistantMessage.parts = cloneSerializable(run.callbackParts);
|
|
3319
|
+
const terminalParts = assistantMessage.parts;
|
|
3320
|
+
for (const part of terminalParts) {
|
|
3321
|
+
if (part.type === 'reasoning' && part.status === 'running') {
|
|
3322
|
+
part.status = status === 'completed' ? 'completed' : 'cancelled';
|
|
3323
|
+
}
|
|
3324
|
+
else if (part.type === 'tool' && part.status === 'running') {
|
|
3325
|
+
part.status = status === 'cancelled' ? 'cancelled' : 'failed';
|
|
3326
|
+
part.error = status === 'cancelled'
|
|
3327
|
+
? 'Tool execution was cancelled.'
|
|
3328
|
+
: 'Tool execution ended without a terminal event.';
|
|
3329
|
+
}
|
|
3330
|
+
}
|
|
3331
|
+
userMessage.status = status;
|
|
3332
|
+
userMessage.completedAt = timestamp;
|
|
3333
|
+
assistantMessage.status = status;
|
|
3334
|
+
assistantMessage.completedAt = timestamp;
|
|
3335
|
+
if (run.modelResolution)
|
|
3336
|
+
assistantMessage.model = cloneSerializable(run.modelResolution.identity);
|
|
3337
|
+
if (status === 'completed' && result) {
|
|
3338
|
+
if (!assistantMessage.parts.some((part) => part.type === 'text')) {
|
|
3339
|
+
assistantMessage.parts.push({
|
|
3340
|
+
partId: plugins.crypto.randomUUID(),
|
|
3341
|
+
type: 'text',
|
|
3342
|
+
text: truncateUtf8(result.text, this.callbackLimits.maxOutputBytes),
|
|
3343
|
+
});
|
|
3344
|
+
}
|
|
3345
|
+
assistantMessage.usage = cloneSerializable(result.usage);
|
|
3346
|
+
}
|
|
3347
|
+
else {
|
|
3348
|
+
const message = truncateUtf8(error?.message ?? externalErrorFallback.message, maxTransferMetadataBytes);
|
|
3349
|
+
userMessage.error = message;
|
|
3350
|
+
assistantMessage.error = message;
|
|
3351
|
+
}
|
|
3352
|
+
return {
|
|
3353
|
+
runId: run.runId,
|
|
3354
|
+
status,
|
|
3355
|
+
userMessage,
|
|
3356
|
+
assistantMessage,
|
|
3357
|
+
...(run.modelResolution ? { model: cloneSerializable(run.modelResolution.identity) } : {}),
|
|
3358
|
+
...(status === 'completed' && result
|
|
3359
|
+
? {
|
|
3360
|
+
usage: cloneSerializable(result.usage),
|
|
3361
|
+
finishReason: result.finishReason,
|
|
3362
|
+
steps: result.steps,
|
|
3363
|
+
}
|
|
3364
|
+
: {}),
|
|
3365
|
+
};
|
|
3366
|
+
}
|
|
3367
|
+
reversionId(kind, storageKey, sessionId, value) {
|
|
3368
|
+
return `${kind}_${sha256Hex(JSON.stringify([storageKey, sessionId, value]))}`;
|
|
3369
|
+
}
|
|
3370
|
+
reversionProviderProtocolVersion() {
|
|
3371
|
+
if (!this.turnReversionProvider)
|
|
3372
|
+
return undefined;
|
|
3373
|
+
return 'protocolVersion' in this.turnReversionProvider ? 2 : 1;
|
|
3374
|
+
}
|
|
3375
|
+
reversionCaptureContext(run, captureId, signal) {
|
|
3376
|
+
return Object.freeze({
|
|
3377
|
+
scopeId: run.scopeId,
|
|
3378
|
+
scope: run.scope,
|
|
3379
|
+
storageKey: run.state.storageKey,
|
|
3380
|
+
sessionId: run.sessionId,
|
|
3381
|
+
runId: run.runId,
|
|
3382
|
+
captureId,
|
|
3383
|
+
signal,
|
|
3384
|
+
});
|
|
3385
|
+
}
|
|
3386
|
+
async withReversionMaintenanceSignal(operation) {
|
|
3387
|
+
const controller = new AbortController();
|
|
3388
|
+
const timeoutMs = this.agentSessionPolicy.generationLeaseCleanupTimeoutMs ?? 30_000;
|
|
3389
|
+
const timeoutError = new Error(`Turn reversion maintenance timed out after ${timeoutMs}ms.`);
|
|
3390
|
+
let rejectTimeout;
|
|
3391
|
+
const timeout = new Promise((_resolve, reject) => {
|
|
3392
|
+
rejectTimeout = reject;
|
|
3393
|
+
});
|
|
3394
|
+
const timer = setTimeout(() => {
|
|
3395
|
+
controller.abort(timeoutError);
|
|
3396
|
+
rejectTimeout(timeoutError);
|
|
3397
|
+
}, timeoutMs);
|
|
3398
|
+
const completion = Promise.resolve().then(() => operation(controller.signal));
|
|
3399
|
+
void completion.catch(() => undefined);
|
|
3400
|
+
try {
|
|
3401
|
+
return await Promise.race([completion, timeout]);
|
|
3402
|
+
}
|
|
3403
|
+
finally {
|
|
3404
|
+
clearTimeout(timer);
|
|
3405
|
+
}
|
|
3406
|
+
}
|
|
3407
|
+
inspectReversionCapture(scopeId, scope, storageKey, sessionId, runId, captureId) {
|
|
3408
|
+
return this.withReversionMaintenanceSignal(async (signal) => {
|
|
3409
|
+
const provider = this.turnReversionProvider;
|
|
3410
|
+
const inspection = await provider.inspectCapture(Object.freeze({
|
|
3411
|
+
scopeId,
|
|
3412
|
+
scope,
|
|
3413
|
+
storageKey,
|
|
3414
|
+
sessionId,
|
|
3415
|
+
runId,
|
|
3416
|
+
captureId,
|
|
3417
|
+
signal,
|
|
3418
|
+
}));
|
|
3419
|
+
if (inspection.status !== 'finalized')
|
|
3420
|
+
return { status: inspection.status };
|
|
3421
|
+
if (this.reversionProviderProtocolVersion() === 2) {
|
|
3422
|
+
if (!('outcome' in inspection)) {
|
|
3423
|
+
throw new FlexHarnessValidationError('Protocol-2 finalized inspection has no outcome.');
|
|
3424
|
+
}
|
|
3425
|
+
return {
|
|
3426
|
+
status: 'finalized',
|
|
3427
|
+
outcome: this.normalizeReversionOutcome(inspection.outcome),
|
|
3428
|
+
};
|
|
3429
|
+
}
|
|
3430
|
+
if (!('reference' in inspection) || inspection.reference === undefined) {
|
|
3431
|
+
throw new FlexHarnessValidationError('Protocol-1 finalized inspection has no reference.');
|
|
3432
|
+
}
|
|
3433
|
+
return {
|
|
3434
|
+
status: 'finalized',
|
|
3435
|
+
outcome: {
|
|
3436
|
+
disposition: 'revertible',
|
|
3437
|
+
reference: this.normalizeReversionReference(inspection.reference),
|
|
3438
|
+
affectedWorkspaces: [],
|
|
3439
|
+
},
|
|
3440
|
+
};
|
|
3441
|
+
});
|
|
3442
|
+
}
|
|
3443
|
+
finalizeReversionCapture(scopeId, scope, storageKey, sessionId, runId, captureId) {
|
|
3444
|
+
return this.withReversionMaintenanceSignal(async (signal) => {
|
|
3445
|
+
const result = await this.turnReversionProvider.finalize(Object.freeze({
|
|
3446
|
+
scopeId,
|
|
3447
|
+
scope,
|
|
3448
|
+
storageKey,
|
|
3449
|
+
sessionId,
|
|
3450
|
+
runId,
|
|
3451
|
+
captureId,
|
|
3452
|
+
signal,
|
|
3453
|
+
}));
|
|
3454
|
+
return this.reversionProviderProtocolVersion() === 2
|
|
3455
|
+
? this.normalizeReversionOutcome(result)
|
|
3456
|
+
: {
|
|
3457
|
+
disposition: 'revertible',
|
|
3458
|
+
reference: this.normalizeReversionReference(result),
|
|
3459
|
+
affectedWorkspaces: [],
|
|
3460
|
+
};
|
|
3461
|
+
});
|
|
3462
|
+
}
|
|
3463
|
+
async resolveReversionCaptureOutcome(state, scopeId, scope, sessionId, runId, captureId, durableState) {
|
|
3464
|
+
let inspection;
|
|
3465
|
+
try {
|
|
3466
|
+
inspection = await this.inspectReversionCapture(scopeId, scope, state.storageKey, sessionId, runId, captureId);
|
|
3467
|
+
}
|
|
3468
|
+
catch (error) {
|
|
3469
|
+
state.lifecycle = 'fenced';
|
|
3470
|
+
throw this.projectOperationError(error, 'turnReversion', scopeId, sessionId, captureId);
|
|
3471
|
+
}
|
|
3472
|
+
if (inspection.status === 'unknown') {
|
|
3473
|
+
state.lifecycle = 'fenced';
|
|
3474
|
+
throw new FlexHarnessValidationError('Reversion capture outcome is unknown.');
|
|
3475
|
+
}
|
|
3476
|
+
if (inspection.status === 'missing') {
|
|
3477
|
+
if (durableState === 'preparing')
|
|
3478
|
+
return undefined;
|
|
3479
|
+
state.lifecycle = 'fenced';
|
|
3480
|
+
throw new FlexHarnessValidationError('Prepared reversion capture is missing.');
|
|
3481
|
+
}
|
|
3482
|
+
let outcome = inspection.status === 'finalized' ? inspection.outcome : undefined;
|
|
3483
|
+
if (inspection.status === 'prepared') {
|
|
3484
|
+
try {
|
|
3485
|
+
outcome = await this.finalizeReversionCapture(scopeId, scope, state.storageKey, sessionId, runId, captureId);
|
|
3486
|
+
}
|
|
3487
|
+
catch (error) {
|
|
3488
|
+
const finalInspection = await this.inspectReversionCapture(scopeId, scope, state.storageKey, sessionId, runId, captureId);
|
|
3489
|
+
if (finalInspection.status !== 'finalized') {
|
|
3490
|
+
if (finalInspection.status === 'unknown')
|
|
3491
|
+
state.lifecycle = 'fenced';
|
|
3492
|
+
throw this.projectOperationError(error, 'turnReversion', scopeId, sessionId, captureId);
|
|
3493
|
+
}
|
|
3494
|
+
outcome = finalInspection.outcome;
|
|
3495
|
+
}
|
|
3496
|
+
}
|
|
3497
|
+
if (outcome === undefined) {
|
|
3498
|
+
state.lifecycle = 'fenced';
|
|
3499
|
+
throw new FlexHarnessValidationError('Finalized reversion capture has no outcome.');
|
|
3500
|
+
}
|
|
3501
|
+
return outcome;
|
|
3502
|
+
}
|
|
3503
|
+
normalizeReversionReference(reference) {
|
|
3504
|
+
return normalizeJsonValue(reference, {
|
|
3505
|
+
maxDepth: this.toolOutputLimits.maxDepth,
|
|
3506
|
+
maxBytes: Math.min(this.toolOutputLimits.maxBytes, FLEX_REVERSION_REFERENCE_MAX_BYTES),
|
|
3507
|
+
});
|
|
3508
|
+
}
|
|
3509
|
+
normalizeReversionOutcome(value) {
|
|
3510
|
+
if (!value
|
|
3511
|
+
|| typeof value !== 'object'
|
|
3512
|
+
|| Array.isArray(value)
|
|
3513
|
+
|| (Object.getPrototypeOf(value) !== Object.prototype && Object.getPrototypeOf(value) !== null))
|
|
3514
|
+
throw new FlexHarnessValidationError('Turn reversion finalized outcome must be a plain object.');
|
|
3515
|
+
const outcome = value;
|
|
3516
|
+
const disposition = outcome.disposition;
|
|
3517
|
+
if (!['revertible', 'no-change', 'nonrevertible'].includes(String(disposition))) {
|
|
3518
|
+
throw new FlexHarnessValidationError('Turn reversion finalized outcome disposition is invalid.');
|
|
3519
|
+
}
|
|
3520
|
+
const allowedKeys = disposition === 'nonrevertible'
|
|
3521
|
+
? ['disposition', 'reference', 'reasonCode', 'affectedWorkspaces']
|
|
3522
|
+
: ['disposition', 'reference', 'affectedWorkspaces'];
|
|
3523
|
+
const unsupported = Object.keys(outcome).find((key) => !allowedKeys.includes(key));
|
|
3524
|
+
if (unsupported) {
|
|
3525
|
+
throw new FlexHarnessValidationError(`Turn reversion finalized outcome does not support "${unsupported}".`);
|
|
3526
|
+
}
|
|
3527
|
+
if (!Object.prototype.hasOwnProperty.call(outcome, 'reference')) {
|
|
3528
|
+
throw new FlexHarnessValidationError('Turn reversion finalized outcome requires a reference.');
|
|
3529
|
+
}
|
|
3530
|
+
const reference = this.normalizeReversionReference(outcome.reference);
|
|
3531
|
+
const affectedWorkspaces = outcome.affectedWorkspaces === undefined
|
|
3532
|
+
? undefined
|
|
3533
|
+
: this.normalizeAffectedWorkspaces(outcome.affectedWorkspaces);
|
|
3534
|
+
if (disposition === 'revertible') {
|
|
3535
|
+
if (affectedWorkspaces === undefined) {
|
|
3536
|
+
throw new FlexHarnessValidationError('Revertible outcome requires affectedWorkspaces.');
|
|
3537
|
+
}
|
|
3538
|
+
return { disposition, reference, affectedWorkspaces };
|
|
3539
|
+
}
|
|
3540
|
+
if (disposition === 'no-change') {
|
|
3541
|
+
if (affectedWorkspaces && affectedWorkspaces.length > 0) {
|
|
3542
|
+
throw new FlexHarnessValidationError('No-change outcome cannot affect a workspace.');
|
|
3543
|
+
}
|
|
3544
|
+
return {
|
|
3545
|
+
disposition,
|
|
3546
|
+
reference,
|
|
3547
|
+
...(affectedWorkspaces === undefined ? {} : { affectedWorkspaces: [] }),
|
|
3548
|
+
};
|
|
3549
|
+
}
|
|
3550
|
+
if (typeof outcome.reasonCode !== 'string'
|
|
3551
|
+
|| !/^[A-Za-z0-9][A-Za-z0-9._-]*$/u.test(outcome.reasonCode)
|
|
3552
|
+
|| Buffer.byteLength(outcome.reasonCode, 'utf8') > FLEX_REVERSION_REASON_CODE_MAX_BYTES)
|
|
3553
|
+
throw new FlexHarnessValidationError('Nonrevertible outcome reasonCode is invalid.');
|
|
3554
|
+
return {
|
|
3555
|
+
disposition: 'nonrevertible',
|
|
3556
|
+
reference,
|
|
3557
|
+
reasonCode: outcome.reasonCode,
|
|
3558
|
+
...(affectedWorkspaces === undefined ? {} : { affectedWorkspaces }),
|
|
3559
|
+
};
|
|
3560
|
+
}
|
|
3561
|
+
normalizeAffectedWorkspaces(value) {
|
|
3562
|
+
if (!Array.isArray(value) || value.length > FLEX_REVERSION_MAX_AFFECTED_WORKSPACES) {
|
|
3563
|
+
throw new FlexHarnessValidationError(`affectedWorkspaces must contain at most ${FLEX_REVERSION_MAX_AFFECTED_WORKSPACES} entries.`);
|
|
3564
|
+
}
|
|
3565
|
+
const ids = new Set();
|
|
3566
|
+
return value.map((entry, index) => {
|
|
3567
|
+
if (!entry
|
|
3568
|
+
|| typeof entry !== 'object'
|
|
3569
|
+
|| Array.isArray(entry)
|
|
3570
|
+
|| (Object.getPrototypeOf(entry) !== Object.prototype && Object.getPrototypeOf(entry) !== null))
|
|
3571
|
+
throw new FlexHarnessValidationError(`affectedWorkspaces[${index}] must be a plain object.`);
|
|
3572
|
+
const descriptor = entry;
|
|
3573
|
+
const unsupported = Object.keys(descriptor).find((key) => !['id', 'label'].includes(key));
|
|
3574
|
+
if (unsupported) {
|
|
3575
|
+
throw new FlexHarnessValidationError(`affectedWorkspaces[${index}] does not support "${unsupported}".`);
|
|
3576
|
+
}
|
|
3577
|
+
if (typeof descriptor.id !== 'string'
|
|
3578
|
+
|| !descriptor.id.trim()
|
|
3579
|
+
|| Buffer.byteLength(descriptor.id, 'utf8') > FLEX_REVERSION_WORKSPACE_ID_MAX_BYTES)
|
|
3580
|
+
throw new FlexHarnessValidationError(`affectedWorkspaces[${index}].id is invalid.`);
|
|
3581
|
+
if (typeof descriptor.label !== 'string'
|
|
3582
|
+
|| !descriptor.label.trim()
|
|
3583
|
+
|| Buffer.byteLength(descriptor.label, 'utf8') > FLEX_REVERSION_WORKSPACE_LABEL_MAX_BYTES)
|
|
3584
|
+
throw new FlexHarnessValidationError(`affectedWorkspaces[${index}].label is invalid.`);
|
|
3585
|
+
if (ids.has(descriptor.id)) {
|
|
3586
|
+
throw new FlexHarnessValidationError(`affectedWorkspaces contains duplicate id "${descriptor.id}".`);
|
|
3587
|
+
}
|
|
3588
|
+
ids.add(descriptor.id);
|
|
3589
|
+
return { id: descriptor.id, label: descriptor.label };
|
|
3590
|
+
});
|
|
3591
|
+
}
|
|
3592
|
+
async prepareRunReversion(run, signal) {
|
|
3593
|
+
if (run.stored.session.agent !== undefined || !this.turnReversionProvider)
|
|
3594
|
+
return;
|
|
3595
|
+
const segment = run.stored.reversionSegments.find((entry) => entry.runId === run.runId);
|
|
3596
|
+
const captureId = segment?.captureId;
|
|
3597
|
+
if (!segment || !captureId) {
|
|
3598
|
+
throw this.projectExternalError(run, new Error('Root generation is missing its durable reversion capture intent.'), 'turnReversion');
|
|
3599
|
+
}
|
|
3600
|
+
const context = this.reversionCaptureContext(run, captureId, signal);
|
|
3601
|
+
if (this.reversionProviderProtocolVersion() !== segment.protocolVersion) {
|
|
3602
|
+
throw this.projectExternalError(run, new Error(`Root generation requires reversion protocolVersion ${segment.protocolVersion}.`), 'turnReversion');
|
|
3603
|
+
}
|
|
3604
|
+
try {
|
|
3605
|
+
await this.turnReversionProvider.prepare(context);
|
|
3606
|
+
}
|
|
3607
|
+
catch (error) {
|
|
3608
|
+
let inspection;
|
|
3609
|
+
try {
|
|
3610
|
+
inspection = await this.inspectReversionCapture(run.scopeId, run.scope, run.state.storageKey, run.sessionId, run.runId, captureId);
|
|
3611
|
+
}
|
|
3612
|
+
catch (inspectionError) {
|
|
3613
|
+
run.state.lifecycle = 'fenced';
|
|
3614
|
+
throw this.projectExternalError(run, inspectionError, 'turnReversion');
|
|
3615
|
+
}
|
|
3616
|
+
if (inspection.status !== 'prepared' && inspection.status !== 'finalized') {
|
|
3617
|
+
if (inspection.status === 'unknown')
|
|
3618
|
+
run.state.lifecycle = 'fenced';
|
|
3619
|
+
throw this.projectExternalError(run, error, 'turnReversion');
|
|
3620
|
+
}
|
|
3621
|
+
}
|
|
3622
|
+
await this.mutateProjection(run.state, run.stored, () => {
|
|
3623
|
+
const pending = run.stored.pendingReversion;
|
|
3624
|
+
if (pending?.kind !== 'capture' || pending.runId !== run.runId) {
|
|
3625
|
+
throw new FlexHarnessValidationError('Reversion capture intent changed during preparation.');
|
|
3626
|
+
}
|
|
3627
|
+
pending.state = 'prepared';
|
|
3628
|
+
}, true);
|
|
3629
|
+
}
|
|
3630
|
+
async finalizeRunReversion(run, status) {
|
|
3631
|
+
if (run.stored.session.agent !== undefined)
|
|
3632
|
+
return;
|
|
3633
|
+
const segment = run.stored.reversionSegments.find((entry) => entry.runId === run.runId);
|
|
3634
|
+
if (!segment)
|
|
3635
|
+
return;
|
|
3636
|
+
const eventIds = run.stored.agentSession.getEvents()
|
|
3637
|
+
.filter((event) => event.generationId === run.runId)
|
|
3638
|
+
.map((event) => event.id);
|
|
3639
|
+
if (!this.turnReversionProvider || segment.provenance === 'transcript') {
|
|
3640
|
+
await this.mutateProjection(run.state, run.stored, () => {
|
|
3641
|
+
const wasCompleted = segment.status === 'completed';
|
|
3642
|
+
segment.status = status;
|
|
3643
|
+
segment.eventIds = eventIds;
|
|
3644
|
+
if (!wasCompleted && status === 'completed')
|
|
3645
|
+
run.stored.revertCursor++;
|
|
3646
|
+
else if (wasCompleted && status !== 'completed')
|
|
3647
|
+
run.stored.revertCursor--;
|
|
3648
|
+
delete run.stored.pendingReversion;
|
|
3649
|
+
this.pruneReversionState(run.stored);
|
|
3650
|
+
}, true);
|
|
3651
|
+
return;
|
|
3652
|
+
}
|
|
3653
|
+
if (!segment.captureId) {
|
|
3654
|
+
throw new FlexHarnessValidationError('Workspace reversion segment has no capture ownership.');
|
|
3655
|
+
}
|
|
3656
|
+
const captureId = segment.captureId;
|
|
3657
|
+
if (segment.workspaceReference !== undefined) {
|
|
3658
|
+
await this.mutateProjection(run.state, run.stored, () => {
|
|
3659
|
+
const wasCompleted = segment.status === 'completed';
|
|
3660
|
+
segment.status = status;
|
|
3661
|
+
segment.eventIds = eventIds;
|
|
3662
|
+
if (!wasCompleted && status === 'completed')
|
|
3663
|
+
run.stored.revertCursor++;
|
|
3664
|
+
else if (wasCompleted && status !== 'completed')
|
|
3665
|
+
run.stored.revertCursor--;
|
|
3666
|
+
delete run.stored.pendingReversion;
|
|
3667
|
+
}, true);
|
|
3668
|
+
return;
|
|
3669
|
+
}
|
|
3670
|
+
const pending = run.stored.pendingReversion;
|
|
3671
|
+
if (pending?.kind !== 'capture' || pending.runId !== run.runId) {
|
|
3672
|
+
throw new FlexHarnessValidationError('Reversion capture intent changed before finalization.');
|
|
3673
|
+
}
|
|
3674
|
+
if (this.reversionProviderProtocolVersion() !== pending.protocolVersion) {
|
|
3675
|
+
throw new FlexHarnessValidationError(`Reversion capture finalization requires protocolVersion ${pending.protocolVersion}.`);
|
|
3676
|
+
}
|
|
3677
|
+
if (pending.state === 'prepared') {
|
|
3678
|
+
await this.mutateProjection(run.state, run.stored, () => {
|
|
3679
|
+
const current = run.stored.pendingReversion;
|
|
3680
|
+
if (current?.kind !== 'capture' || current.captureId !== captureId) {
|
|
3681
|
+
throw new FlexHarnessValidationError('Reversion capture changed before finalization.');
|
|
3682
|
+
}
|
|
3683
|
+
current.state = 'finalizing';
|
|
3684
|
+
}, true);
|
|
3685
|
+
}
|
|
3686
|
+
const outcome = await this.resolveReversionCaptureOutcome(run.state, run.scopeId, run.scope, run.sessionId, run.runId, captureId, pending.state === 'prepared' ? 'finalizing' : pending.state);
|
|
3687
|
+
if (outcome === undefined) {
|
|
3688
|
+
await this.mutateProjection(run.state, run.stored, () => {
|
|
3689
|
+
run.stored.reversionSegments = run.stored.reversionSegments.filter((entry) => entry.runId !== run.runId);
|
|
3690
|
+
delete run.stored.pendingReversion;
|
|
3691
|
+
}, true);
|
|
3692
|
+
return;
|
|
3693
|
+
}
|
|
3694
|
+
await this.mutateProjection(run.state, run.stored, () => {
|
|
3695
|
+
const current = run.stored.pendingReversion;
|
|
3696
|
+
if (current?.kind !== 'capture' || current.runId !== run.runId) {
|
|
3697
|
+
throw new FlexHarnessValidationError('Reversion capture intent changed before finalization.');
|
|
3698
|
+
}
|
|
3699
|
+
const wasCompleted = segment.status === 'completed';
|
|
3700
|
+
segment.status = status;
|
|
3701
|
+
segment.eventIds = eventIds;
|
|
3702
|
+
this.applyFinalizedReversionOutcome(run.stored, segment, outcome);
|
|
3703
|
+
if (!wasCompleted && status === 'completed')
|
|
3704
|
+
run.stored.revertCursor++;
|
|
3705
|
+
else if (wasCompleted && status !== 'completed')
|
|
3706
|
+
run.stored.revertCursor--;
|
|
3707
|
+
delete run.stored.pendingReversion;
|
|
3708
|
+
this.pruneReversionState(run.stored);
|
|
3709
|
+
}, true);
|
|
3710
|
+
}
|
|
3711
|
+
applyFinalizedReversionOutcome(stored, segment, outcome) {
|
|
3712
|
+
const captureId = segment.captureId;
|
|
3713
|
+
if (!captureId) {
|
|
3714
|
+
throw new FlexHarnessValidationError('Finalized workspace outcome has no capture ownership.');
|
|
3715
|
+
}
|
|
3716
|
+
segment.disposition = outcome.disposition;
|
|
3717
|
+
delete segment.affectedWorkspaces;
|
|
3718
|
+
delete segment.reasonCode;
|
|
3719
|
+
if (segment.protocolVersion === 2) {
|
|
3720
|
+
if (outcome.affectedWorkspaces !== undefined) {
|
|
3721
|
+
segment.affectedWorkspaces = cloneSerializable([...outcome.affectedWorkspaces]);
|
|
3722
|
+
}
|
|
3723
|
+
if (outcome.disposition === 'nonrevertible')
|
|
3724
|
+
segment.reasonCode = outcome.reasonCode;
|
|
3725
|
+
}
|
|
3726
|
+
if (outcome.disposition === 'revertible') {
|
|
3727
|
+
segment.workspaceReference = cloneSerializable(outcome.reference);
|
|
3728
|
+
return;
|
|
3729
|
+
}
|
|
3730
|
+
this.enqueueReversionReleaseReference(stored, {
|
|
3731
|
+
runId: segment.runId,
|
|
3732
|
+
captureId,
|
|
3733
|
+
reference: cloneSerializable(outcome.reference),
|
|
3734
|
+
protocolVersion: segment.protocolVersion,
|
|
3735
|
+
});
|
|
3736
|
+
delete segment.captureId;
|
|
3737
|
+
delete segment.workspaceReference;
|
|
3738
|
+
}
|
|
3739
|
+
hiddenReversionSegments(stored) {
|
|
3740
|
+
const firstHidden = this.reversionGroups(stored)[stored.revertCursor]?.segments[0];
|
|
3741
|
+
if (!firstHidden)
|
|
3742
|
+
return [];
|
|
3743
|
+
const index = stored.reversionSegments.findIndex((segment) => segment.runId === firstHidden.runId);
|
|
3744
|
+
if (index < 0)
|
|
3745
|
+
return [];
|
|
3746
|
+
return stored.reversionSegments.slice(index);
|
|
3747
|
+
}
|
|
3748
|
+
enqueueReversionRelease(stored, segment) {
|
|
3749
|
+
if (segment.disposition !== 'revertible')
|
|
3750
|
+
return;
|
|
3751
|
+
if (segment.captureId === undefined || segment.workspaceReference === undefined) {
|
|
3752
|
+
throw new FlexHarnessValidationError('Capture-backed segment has no releasable workspace reference.');
|
|
3753
|
+
}
|
|
3754
|
+
this.enqueueReversionReleaseReference(stored, {
|
|
3755
|
+
runId: segment.runId,
|
|
3756
|
+
captureId: segment.captureId,
|
|
3757
|
+
reference: cloneSerializable(segment.workspaceReference),
|
|
3758
|
+
protocolVersion: segment.protocolVersion,
|
|
3759
|
+
});
|
|
3760
|
+
}
|
|
3761
|
+
enqueueReversionReleaseReference(stored, release) {
|
|
3762
|
+
if (stored.pendingReversionReleases.some((entry) => entry.captureId === release.captureId)) {
|
|
3763
|
+
return;
|
|
3764
|
+
}
|
|
3765
|
+
if (stored.pendingReversionReleases.length >= this.reversionLimits.maxPendingReversionReleases) {
|
|
3766
|
+
throw new FlexHarnessValidationError('Pending reversion release limit was reached.');
|
|
3767
|
+
}
|
|
3768
|
+
stored.pendingReversionReleases.push(cloneSerializable(release));
|
|
3769
|
+
}
|
|
3770
|
+
pruneReversionState(stored, reserveSegment = false, dropNonUndoablePrefix = false) {
|
|
3771
|
+
if (stored.pendingReversion || stored.revertCursor !== this.completedReversionCandidates(stored).length) {
|
|
3772
|
+
return;
|
|
3773
|
+
}
|
|
3774
|
+
while (stored.reversionSegments.length > 0) {
|
|
3775
|
+
const candidates = this.completedReversionCandidates(stored);
|
|
3776
|
+
const overLimit = candidates.length + (reserveSegment ? 1 : 0)
|
|
3777
|
+
> this.reversionLimits.maxCompletedTurns
|
|
3778
|
+
|| stored.reversionSegments.length + (reserveSegment ? 1 : 0)
|
|
3779
|
+
> this.reversionLimits.maxSegments;
|
|
3780
|
+
const firstCandidate = candidates[0];
|
|
3781
|
+
const nextCandidate = candidates[1];
|
|
3782
|
+
let end = 0;
|
|
3783
|
+
if (!firstCandidate) {
|
|
3784
|
+
if (dropNonUndoablePrefix)
|
|
3785
|
+
end = stored.reversionSegments.length;
|
|
3786
|
+
else if (overLimit) {
|
|
3787
|
+
end = Math.max(1, stored.reversionSegments.length + (reserveSegment ? 1 : 0)
|
|
3788
|
+
- this.reversionLimits.maxSegments);
|
|
3789
|
+
}
|
|
3790
|
+
else
|
|
3791
|
+
break;
|
|
3792
|
+
}
|
|
3793
|
+
else if (!firstCandidate.contextAvailable) {
|
|
3794
|
+
end = nextCandidate
|
|
3795
|
+
? stored.reversionSegments.findIndex((segment) => segment.runId === nextCandidate.runId)
|
|
3796
|
+
: stored.reversionSegments.length;
|
|
3797
|
+
}
|
|
3798
|
+
else if (overLimit) {
|
|
3799
|
+
end = nextCandidate
|
|
3800
|
+
? stored.reversionSegments.findIndex((segment) => segment.runId === nextCandidate.runId)
|
|
3801
|
+
: stored.reversionSegments.length;
|
|
3802
|
+
}
|
|
3803
|
+
else {
|
|
3804
|
+
break;
|
|
3805
|
+
}
|
|
3806
|
+
if (end <= 0)
|
|
3807
|
+
break;
|
|
3808
|
+
const prefix = stored.reversionSegments.slice(0, end);
|
|
3809
|
+
if (prefix.some((segment) => segment.disposition === 'revertible' && segment.workspaceReference === undefined))
|
|
3810
|
+
break;
|
|
3811
|
+
for (const segment of prefix)
|
|
3812
|
+
this.enqueueReversionRelease(stored, segment);
|
|
3813
|
+
stored.reversionSegments.splice(0, end);
|
|
3814
|
+
stored.revertCursor = Math.max(0, stored.revertCursor - prefix.filter((segment) => segment.status === 'completed').length);
|
|
3815
|
+
}
|
|
3816
|
+
if (stored.excludedRunIds.length > this.reversionLimits.maxExcludedRunIds) {
|
|
3817
|
+
throw new FlexHarnessValidationError('Excluded reversion run limit was reached.');
|
|
3818
|
+
}
|
|
3819
|
+
}
|
|
3820
|
+
async commitRevertedBranch(state, stored, scopeId, scope) {
|
|
3821
|
+
if (stored.pendingReversionReleases.length > 0) {
|
|
3822
|
+
await this.drainReversionReleases(state, stored, scopeId, scope, false);
|
|
3823
|
+
this.assertStateAcceptingWork(state);
|
|
3824
|
+
}
|
|
3825
|
+
if (this.hiddenReversionSegments(stored).length === 0) {
|
|
3826
|
+
return;
|
|
3827
|
+
}
|
|
3828
|
+
await this.mutateProjection(state, stored, () => this.commitRevertedBranchState(stored), true);
|
|
3829
|
+
this.emitEvent(scopeId, stored.session.sessionId, {
|
|
3830
|
+
type: 'session.history.changed',
|
|
3831
|
+
direction: 'branch',
|
|
3832
|
+
});
|
|
3833
|
+
await this.drainReversionReleases(state, stored, scopeId, scope, false);
|
|
3834
|
+
}
|
|
3835
|
+
commitRevertedBranchState(stored) {
|
|
3836
|
+
const hidden = this.hiddenReversionSegments(stored);
|
|
3837
|
+
if (hidden.length === 0)
|
|
3838
|
+
return false;
|
|
3839
|
+
const hiddenRunIds = new Set(hidden.map((segment) => segment.runId));
|
|
3840
|
+
stored.messages = stored.messages.filter((message) => !hiddenRunIds.has(message.runId));
|
|
3841
|
+
stored.stagedTerminals = stored.stagedTerminals.filter((terminal) => !hiddenRunIds.has(terminal.runId));
|
|
3842
|
+
for (const segment of hidden) {
|
|
3843
|
+
this.enqueueReversionRelease(stored, segment);
|
|
3844
|
+
if (!stored.excludedRunIds.includes(segment.runId))
|
|
3845
|
+
stored.excludedRunIds.push(segment.runId);
|
|
3846
|
+
}
|
|
3847
|
+
stored.reversionSegments = stored.reversionSegments.filter((segment) => !hiddenRunIds.has(segment.runId));
|
|
3848
|
+
stored.revertCursor = this.completedReversionCandidates(stored).length;
|
|
3849
|
+
this.pruneReversionState(stored);
|
|
3850
|
+
return true;
|
|
3851
|
+
}
|
|
3852
|
+
commitArchivedHiddenBranchState(stored) {
|
|
3853
|
+
const hidden = this.hiddenReversionSegments(stored);
|
|
3854
|
+
return hidden.some((segment) => !segment.contextAvailable)
|
|
3855
|
+
? this.commitRevertedBranchState(stored)
|
|
3856
|
+
: false;
|
|
3857
|
+
}
|
|
3858
|
+
filterReversionContextEvents(stored, events) {
|
|
3859
|
+
const hiddenRunIds = new Set([
|
|
3860
|
+
...this.hiddenReversionSegments(stored).map((segment) => segment.runId),
|
|
3861
|
+
...stored.excludedRunIds,
|
|
3862
|
+
]);
|
|
3863
|
+
const hiddenRawIds = new Set([
|
|
3864
|
+
...this.hiddenReversionSegments(stored).flatMap((segment) => segment.eventIds),
|
|
3865
|
+
...events.filter((event) => event.generationId && hiddenRunIds.has(event.generationId))
|
|
3866
|
+
.map((event) => event.id),
|
|
3867
|
+
]);
|
|
3868
|
+
const taintedCompactionIds = new Set();
|
|
3869
|
+
let changed = true;
|
|
3870
|
+
while (changed) {
|
|
3871
|
+
changed = false;
|
|
3872
|
+
for (const event of events) {
|
|
3873
|
+
if (event.type !== 'context-compaction' || taintedCompactionIds.has(event.id))
|
|
3874
|
+
continue;
|
|
3875
|
+
if (event.coveredEventIds.some((id) => hiddenRawIds.has(id) || taintedCompactionIds.has(id))
|
|
3876
|
+
|| event.archivedTransactions?.some((transaction) => hiddenRunIds.has(transaction.generationId))) {
|
|
3877
|
+
taintedCompactionIds.add(event.id);
|
|
3878
|
+
changed = true;
|
|
3879
|
+
}
|
|
3880
|
+
}
|
|
3881
|
+
}
|
|
3882
|
+
return events.filter((event) => !(event.generationId && hiddenRunIds.has(event.generationId))
|
|
3883
|
+
&& !taintedCompactionIds.has(event.id));
|
|
3884
|
+
}
|
|
3885
|
+
async drainReversionReleases(state, stored, scopeId, scope, throwOnFailure) {
|
|
3886
|
+
await this.reconcileProjectionFromStore(stored);
|
|
3887
|
+
if (!this.turnReversionProvider) {
|
|
3888
|
+
if (stored.pendingReversionReleases.length > 0) {
|
|
3889
|
+
throw new FlexHarnessValidationError('Pending workspace capture releases require their turn reversion provider.');
|
|
3890
|
+
}
|
|
3891
|
+
return;
|
|
3892
|
+
}
|
|
3893
|
+
while (stored.pendingReversionReleases.length > 0) {
|
|
3894
|
+
const release = stored.pendingReversionReleases[0];
|
|
3895
|
+
if (this.reversionProviderProtocolVersion() !== release.protocolVersion) {
|
|
3896
|
+
throw new FlexHarnessValidationError(`Pending workspace release requires protocolVersion ${release.protocolVersion}.`);
|
|
3897
|
+
}
|
|
3898
|
+
try {
|
|
3899
|
+
await this.withReversionMaintenanceSignal((signal) => this.turnReversionProvider.release(Object.freeze({
|
|
3900
|
+
scopeId,
|
|
3901
|
+
scope,
|
|
3902
|
+
storageKey: state.storageKey,
|
|
3903
|
+
sessionId: stored.session.sessionId,
|
|
3904
|
+
runId: release.runId,
|
|
3905
|
+
captureId: release.captureId,
|
|
3906
|
+
reference: cloneSerializable(release.reference),
|
|
3907
|
+
signal,
|
|
3908
|
+
})));
|
|
3909
|
+
}
|
|
3910
|
+
catch (error) {
|
|
3911
|
+
if (throwOnFailure) {
|
|
3912
|
+
throw this.projectOperationError(error, 'turnReversion', scopeId, stored.session.sessionId, `release:${release.captureId}`);
|
|
3913
|
+
}
|
|
3914
|
+
return;
|
|
3915
|
+
}
|
|
3916
|
+
try {
|
|
3917
|
+
await this.mutateProjection(state, stored, () => {
|
|
3918
|
+
if (stored.pendingReversionReleases[0]?.captureId === release.captureId) {
|
|
3919
|
+
stored.pendingReversionReleases.shift();
|
|
3920
|
+
}
|
|
3921
|
+
}, true);
|
|
3922
|
+
}
|
|
3923
|
+
catch (error) {
|
|
3924
|
+
if (!throwOnFailure && state.lifecycle === 'fenced') {
|
|
3925
|
+
this.deferReversionReleaseDrain(state, stored, scopeId, scope);
|
|
3926
|
+
}
|
|
3927
|
+
if (throwOnFailure)
|
|
3928
|
+
throw error;
|
|
3929
|
+
return;
|
|
3930
|
+
}
|
|
3931
|
+
if (stored.projectionReconciliationRequired)
|
|
3932
|
+
return;
|
|
3933
|
+
}
|
|
2234
3934
|
}
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
3935
|
+
async releaseDeletedSessionReversions(state, storageKey, sessionId, scopeId, scope, stored) {
|
|
3936
|
+
if (stored)
|
|
3937
|
+
await stored.projectionQueue;
|
|
3938
|
+
let durableProjection = await this.stores.projections.load(storageKey, sessionId);
|
|
3939
|
+
if (!durableProjection)
|
|
3940
|
+
return;
|
|
3941
|
+
let projection = this.upgradeProjectionSnapshot(durableProjection);
|
|
3942
|
+
const persistDirect = async (next) => {
|
|
3943
|
+
const before = durableProjection;
|
|
3944
|
+
try {
|
|
3945
|
+
await this.stores.projections.save(storageKey, sessionId, next, projection.revision);
|
|
3946
|
+
durableProjection = next;
|
|
3947
|
+
projection = next;
|
|
3948
|
+
}
|
|
3949
|
+
catch (error) {
|
|
3950
|
+
let current;
|
|
3951
|
+
let reconciliationError;
|
|
3952
|
+
try {
|
|
3953
|
+
current = await this.stores.projections.load(storageKey, sessionId);
|
|
2247
3954
|
}
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
status: 'streaming',
|
|
2262
|
-
createdAt: timestamp,
|
|
2263
|
-
parts: [],
|
|
3955
|
+
catch (loadError) {
|
|
3956
|
+
reconciliationError = loadError;
|
|
3957
|
+
}
|
|
3958
|
+
if (current && JSON.stringify(current) === JSON.stringify(next)) {
|
|
3959
|
+
durableProjection = current;
|
|
3960
|
+
projection = next;
|
|
3961
|
+
return;
|
|
3962
|
+
}
|
|
3963
|
+
if (current && before && JSON.stringify(current) === JSON.stringify(before))
|
|
3964
|
+
throw error;
|
|
3965
|
+
state.lifecycle = 'fenced';
|
|
3966
|
+
throw reconciliationError === undefined ? error : combineErrors([error, reconciliationError]);
|
|
3967
|
+
}
|
|
2264
3968
|
};
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
const timestamp = new Date().toISOString();
|
|
2269
|
-
const userMessage = cloneSerializable(run.reservedUserMessage
|
|
2270
|
-
?? run.stored.messages.find((message) => message.messageId === run.userMessageId)
|
|
2271
|
-
?? {
|
|
2272
|
-
messageId: run.userMessageId,
|
|
2273
|
-
sessionId: run.sessionId,
|
|
2274
|
-
runId: run.runId,
|
|
2275
|
-
role: 'user',
|
|
2276
|
-
status: 'streaming',
|
|
2277
|
-
createdAt: timestamp,
|
|
2278
|
-
parts: [],
|
|
2279
|
-
});
|
|
2280
|
-
const assistantMessage = cloneSerializable(run.reservedAssistantMessage
|
|
2281
|
-
?? run.stored.messages.find((message) => message.messageId === run.assistantMessageId)
|
|
2282
|
-
?? {
|
|
2283
|
-
messageId: run.assistantMessageId,
|
|
2284
|
-
sessionId: run.sessionId,
|
|
2285
|
-
runId: run.runId,
|
|
2286
|
-
role: 'assistant',
|
|
2287
|
-
status: 'streaming',
|
|
2288
|
-
createdAt: timestamp,
|
|
2289
|
-
parts: [],
|
|
2290
|
-
});
|
|
2291
|
-
assistantMessage.parts = cloneSerializable(run.callbackParts);
|
|
2292
|
-
const terminalParts = assistantMessage.parts;
|
|
2293
|
-
for (const part of terminalParts) {
|
|
2294
|
-
if (part.type === 'reasoning' && part.status === 'running') {
|
|
2295
|
-
part.status = status === 'completed' ? 'completed' : 'cancelled';
|
|
3969
|
+
if (projection.pendingReversion?.kind === 'apply') {
|
|
3970
|
+
if (stored) {
|
|
3971
|
+
await this.resumePendingApply(state, stored, scopeId, scope);
|
|
2296
3972
|
}
|
|
2297
|
-
else
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
?
|
|
2301
|
-
:
|
|
3973
|
+
else {
|
|
3974
|
+
const pending = projection.pendingReversion;
|
|
3975
|
+
const orderedRunIds = pending.direction === 'undo'
|
|
3976
|
+
? [...pending.segmentRunIds].reverse()
|
|
3977
|
+
: [...pending.segmentRunIds];
|
|
3978
|
+
for (const runId of orderedRunIds) {
|
|
3979
|
+
if (pending.appliedRunIds.includes(runId))
|
|
3980
|
+
continue;
|
|
3981
|
+
const segment = projection.reversionSegments.find((entry) => entry.runId === runId);
|
|
3982
|
+
if (segment.disposition === 'revertible') {
|
|
3983
|
+
if (!this.turnReversionProvider || !segment.captureId || segment.workspaceReference === undefined) {
|
|
3984
|
+
throw new FlexHarnessValidationError('Pending workspace reversion deletion requires its turn reversion provider.');
|
|
3985
|
+
}
|
|
3986
|
+
if (this.reversionProviderProtocolVersion() !== segment.protocolVersion) {
|
|
3987
|
+
throw new FlexHarnessValidationError(`Pending workspace reversion deletion requires protocolVersion ${segment.protocolVersion}.`);
|
|
3988
|
+
}
|
|
3989
|
+
const captureId = segment.captureId;
|
|
3990
|
+
const reference = segment.workspaceReference;
|
|
3991
|
+
const operationId = `${pending.operationId}:${sha256Hex(runId).slice(0, 16)}`;
|
|
3992
|
+
const createContext = (signal) => Object.freeze({
|
|
3993
|
+
scopeId,
|
|
3994
|
+
scope,
|
|
3995
|
+
storageKey,
|
|
3996
|
+
sessionId,
|
|
3997
|
+
runId,
|
|
3998
|
+
captureId,
|
|
3999
|
+
reference: cloneSerializable(reference),
|
|
4000
|
+
operationId,
|
|
4001
|
+
direction: pending.direction,
|
|
4002
|
+
signal,
|
|
4003
|
+
});
|
|
4004
|
+
let inspection = await this.withReversionMaintenanceSignal((signal) => this.turnReversionProvider.inspectApply(createContext(signal)));
|
|
4005
|
+
if (inspection.status === 'unknown') {
|
|
4006
|
+
state.lifecycle = 'fenced';
|
|
4007
|
+
throw new FlexHarnessValidationError('Workspace reversion apply outcome is unknown.');
|
|
4008
|
+
}
|
|
4009
|
+
if (inspection.status === 'not-applied') {
|
|
4010
|
+
try {
|
|
4011
|
+
await this.withReversionMaintenanceSignal((signal) => this.turnReversionProvider.apply(createContext(signal)));
|
|
4012
|
+
}
|
|
4013
|
+
catch (error) {
|
|
4014
|
+
inspection = await this.withReversionMaintenanceSignal((signal) => this.turnReversionProvider.inspectApply(createContext(signal)));
|
|
4015
|
+
if (inspection.status !== 'applied') {
|
|
4016
|
+
if (inspection.status === 'unknown')
|
|
4017
|
+
state.lifecycle = 'fenced';
|
|
4018
|
+
throw error;
|
|
4019
|
+
}
|
|
4020
|
+
}
|
|
4021
|
+
}
|
|
4022
|
+
}
|
|
4023
|
+
pending.appliedRunIds.push(runId);
|
|
4024
|
+
await persistDirect({ ...projection, revision: projection.revision + 1 });
|
|
4025
|
+
}
|
|
4026
|
+
const { pendingReversion: _pendingReversion, ...completedProjection } = projection;
|
|
4027
|
+
const completed = {
|
|
4028
|
+
...completedProjection,
|
|
4029
|
+
revision: projection.revision + 1,
|
|
4030
|
+
revertCursor: pending.toCursor,
|
|
4031
|
+
};
|
|
4032
|
+
await persistDirect(completed);
|
|
4033
|
+
}
|
|
4034
|
+
const recoveredProjection = await this.stores.projections.load(storageKey, sessionId);
|
|
4035
|
+
if (!recoveredProjection)
|
|
4036
|
+
return;
|
|
4037
|
+
durableProjection = recoveredProjection;
|
|
4038
|
+
projection = this.upgradeProjectionSnapshot(recoveredProjection);
|
|
4039
|
+
}
|
|
4040
|
+
const releases = new Map();
|
|
4041
|
+
for (const release of projection.pendingReversionReleases) {
|
|
4042
|
+
releases.set(release.captureId, cloneSerializable(release));
|
|
4043
|
+
}
|
|
4044
|
+
for (const segment of projection.reversionSegments) {
|
|
4045
|
+
if (segment.captureId && segment.workspaceReference !== undefined) {
|
|
4046
|
+
releases.set(segment.captureId, {
|
|
4047
|
+
runId: segment.runId,
|
|
4048
|
+
captureId: segment.captureId,
|
|
4049
|
+
reference: cloneSerializable(segment.workspaceReference),
|
|
4050
|
+
protocolVersion: segment.protocolVersion,
|
|
4051
|
+
});
|
|
2302
4052
|
}
|
|
2303
4053
|
}
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
if (!assistantMessage.parts.some((part) => part.type === 'text')) {
|
|
2312
|
-
assistantMessage.parts.push({
|
|
2313
|
-
partId: plugins.crypto.randomUUID(),
|
|
2314
|
-
type: 'text',
|
|
2315
|
-
text: truncateUtf8(result.text, this.callbackLimits.maxOutputBytes),
|
|
4054
|
+
const unresolvedCaptures = new Map();
|
|
4055
|
+
for (const segment of projection.reversionSegments) {
|
|
4056
|
+
if (segment.captureId && !releases.has(segment.captureId)) {
|
|
4057
|
+
unresolvedCaptures.set(segment.captureId, {
|
|
4058
|
+
runId: segment.runId,
|
|
4059
|
+
captureId: segment.captureId,
|
|
4060
|
+
protocolVersion: segment.protocolVersion,
|
|
2316
4061
|
});
|
|
2317
4062
|
}
|
|
2318
|
-
assistantMessage.usage = cloneSerializable(result.usage);
|
|
2319
4063
|
}
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
4064
|
+
if (projection.pendingReversion?.kind === 'capture') {
|
|
4065
|
+
unresolvedCaptures.set(projection.pendingReversion.captureId, {
|
|
4066
|
+
runId: projection.pendingReversion.runId,
|
|
4067
|
+
captureId: projection.pendingReversion.captureId,
|
|
4068
|
+
protocolVersion: projection.pendingReversion.protocolVersion,
|
|
4069
|
+
durableState: projection.pendingReversion.state,
|
|
4070
|
+
});
|
|
2324
4071
|
}
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
4072
|
+
if (unresolvedCaptures.size > 0 && !this.turnReversionProvider) {
|
|
4073
|
+
throw new FlexHarnessValidationError('Capture-backed session deletion requires its turn reversion provider.');
|
|
4074
|
+
}
|
|
4075
|
+
for (const capture of unresolvedCaptures.values()) {
|
|
4076
|
+
if (this.reversionProviderProtocolVersion() !== capture.protocolVersion) {
|
|
4077
|
+
throw new FlexHarnessValidationError(`Deleted session capture requires protocolVersion ${capture.protocolVersion}.`);
|
|
4078
|
+
}
|
|
4079
|
+
if (capture.durableState === 'prepared') {
|
|
4080
|
+
if (stored) {
|
|
4081
|
+
await this.mutateProjection(state, stored, () => {
|
|
4082
|
+
const pending = stored.pendingReversion;
|
|
4083
|
+
if (pending?.kind !== 'capture' || pending.captureId !== capture.captureId) {
|
|
4084
|
+
throw new FlexHarnessValidationError('Deleted session capture changed before finalization.');
|
|
4085
|
+
}
|
|
4086
|
+
pending.state = 'finalizing';
|
|
4087
|
+
}, true);
|
|
2336
4088
|
}
|
|
2337
|
-
|
|
2338
|
-
|
|
4089
|
+
else if (projection.pendingReversion?.kind === 'capture') {
|
|
4090
|
+
projection.pendingReversion.state = 'finalizing';
|
|
4091
|
+
await persistDirect({ ...projection, revision: projection.revision + 1 });
|
|
4092
|
+
}
|
|
4093
|
+
capture.durableState = 'finalizing';
|
|
4094
|
+
}
|
|
4095
|
+
let inspection;
|
|
4096
|
+
try {
|
|
4097
|
+
inspection = await this.inspectReversionCapture(scopeId, scope, storageKey, sessionId, capture.runId, capture.captureId);
|
|
4098
|
+
}
|
|
4099
|
+
catch (error) {
|
|
4100
|
+
throw this.projectOperationError(error, 'turnReversion', scopeId, sessionId, `release:${capture.captureId}`);
|
|
4101
|
+
}
|
|
4102
|
+
if (inspection.status === 'unknown') {
|
|
4103
|
+
state.lifecycle = 'fenced';
|
|
4104
|
+
throw new FlexHarnessValidationError('Deleted session capture outcome is unknown.');
|
|
4105
|
+
}
|
|
4106
|
+
if (inspection.status === 'missing') {
|
|
4107
|
+
if (capture.durableState === 'preparing')
|
|
4108
|
+
continue;
|
|
4109
|
+
state.lifecycle = 'fenced';
|
|
4110
|
+
throw new FlexHarnessValidationError('Prepared deleted-session capture is missing.');
|
|
4111
|
+
}
|
|
4112
|
+
let outcome = inspection.status === 'finalized' ? inspection.outcome : undefined;
|
|
4113
|
+
if (inspection.status === 'prepared') {
|
|
4114
|
+
try {
|
|
4115
|
+
outcome = await this.finalizeReversionCapture(scopeId, scope, storageKey, sessionId, capture.runId, capture.captureId);
|
|
4116
|
+
}
|
|
4117
|
+
catch (error) {
|
|
4118
|
+
const finalInspection = await this.inspectReversionCapture(scopeId, scope, storageKey, sessionId, capture.runId, capture.captureId);
|
|
4119
|
+
if (finalInspection.status !== 'finalized') {
|
|
4120
|
+
if (finalInspection.status === 'unknown')
|
|
4121
|
+
state.lifecycle = 'fenced';
|
|
4122
|
+
throw this.projectOperationError(error, 'turnReversion', scopeId, sessionId, `release:${capture.captureId}`);
|
|
4123
|
+
}
|
|
4124
|
+
outcome = finalInspection.outcome;
|
|
4125
|
+
}
|
|
4126
|
+
}
|
|
4127
|
+
if (outcome === undefined) {
|
|
4128
|
+
throw new FlexHarnessValidationError('Deleted session capture has no release reference.');
|
|
4129
|
+
}
|
|
4130
|
+
releases.set(capture.captureId, {
|
|
4131
|
+
runId: capture.runId,
|
|
4132
|
+
captureId: capture.captureId,
|
|
4133
|
+
reference: cloneSerializable(outcome.reference),
|
|
4134
|
+
protocolVersion: capture.protocolVersion,
|
|
4135
|
+
});
|
|
4136
|
+
}
|
|
4137
|
+
if (releases.size === 0)
|
|
4138
|
+
return;
|
|
4139
|
+
if (!this.turnReversionProvider) {
|
|
4140
|
+
throw new FlexHarnessValidationError('Capture-backed session deletion requires its turn reversion provider.');
|
|
4141
|
+
}
|
|
4142
|
+
if (stored) {
|
|
4143
|
+
await this.mutateProjection(state, stored, () => {
|
|
4144
|
+
stored.reversionSegments = [];
|
|
4145
|
+
stored.revertCursor = 0;
|
|
4146
|
+
delete stored.pendingReversion;
|
|
4147
|
+
stored.pendingReversionReleases = [...releases.values()].map((release) => cloneSerializable(release));
|
|
4148
|
+
}, true);
|
|
4149
|
+
await this.drainReversionReleases(state, stored, scopeId, scope, true);
|
|
4150
|
+
}
|
|
4151
|
+
else {
|
|
4152
|
+
const { pendingReversion: _pendingReversion, ...withoutPending } = projection;
|
|
4153
|
+
await persistDirect({
|
|
4154
|
+
...withoutPending,
|
|
4155
|
+
revision: projection.revision + 1,
|
|
4156
|
+
reversionSegments: [],
|
|
4157
|
+
revertCursor: 0,
|
|
4158
|
+
pendingReversionReleases: [...releases.values()].map((release) => cloneSerializable(release)),
|
|
4159
|
+
});
|
|
4160
|
+
while (projection.pendingReversionReleases.length > 0) {
|
|
4161
|
+
const release = projection.pendingReversionReleases[0];
|
|
4162
|
+
if (this.reversionProviderProtocolVersion() !== release.protocolVersion) {
|
|
4163
|
+
throw new FlexHarnessValidationError(`Deleted session release requires protocolVersion ${release.protocolVersion}.`);
|
|
4164
|
+
}
|
|
4165
|
+
try {
|
|
4166
|
+
await this.withReversionMaintenanceSignal((signal) => this.turnReversionProvider.release(Object.freeze({
|
|
4167
|
+
scopeId,
|
|
4168
|
+
scope,
|
|
4169
|
+
storageKey,
|
|
4170
|
+
sessionId,
|
|
4171
|
+
runId: release.runId,
|
|
4172
|
+
captureId: release.captureId,
|
|
4173
|
+
reference: cloneSerializable(release.reference),
|
|
4174
|
+
signal,
|
|
4175
|
+
})));
|
|
4176
|
+
}
|
|
4177
|
+
catch (error) {
|
|
4178
|
+
throw this.projectOperationError(error, 'turnReversion', scopeId, sessionId, `release:${release.captureId}`);
|
|
4179
|
+
}
|
|
4180
|
+
await persistDirect({
|
|
4181
|
+
...projection,
|
|
4182
|
+
revision: projection.revision + 1,
|
|
4183
|
+
pendingReversionReleases: projection.pendingReversionReleases.slice(1),
|
|
4184
|
+
});
|
|
4185
|
+
}
|
|
4186
|
+
}
|
|
2339
4187
|
}
|
|
2340
4188
|
async promoteCompletedTerminal(run, terminal) {
|
|
2341
4189
|
await this.mutateProjection(run.state, run.stored, () => {
|
|
@@ -2880,6 +4728,10 @@ export class FlexHarness {
|
|
|
2880
4728
|
await this.mutateProjection(run.state, run.stored, () => {
|
|
2881
4729
|
run.stored.messages = run.stored.messages.filter((message) => message.runId !== run.runId);
|
|
2882
4730
|
run.stored.stagedTerminals = run.stored.stagedTerminals.filter((entry) => entry.runId !== run.runId);
|
|
4731
|
+
run.stored.reversionSegments = run.stored.reversionSegments.filter((segment) => segment.runId !== run.runId);
|
|
4732
|
+
if (run.stored.pendingReversion?.kind === 'capture'
|
|
4733
|
+
&& run.stored.pendingReversion.runId === run.runId)
|
|
4734
|
+
delete run.stored.pendingReversion;
|
|
2883
4735
|
}, true);
|
|
2884
4736
|
}
|
|
2885
4737
|
catch (error) {
|
|
@@ -3196,6 +5048,7 @@ export class FlexHarness {
|
|
|
3196
5048
|
storageKey,
|
|
3197
5049
|
compactorLifecycleController,
|
|
3198
5050
|
scopeIdHint: scopeId,
|
|
5051
|
+
scopeContext: { scopeId, scope },
|
|
3199
5052
|
revision: snapshot.revision,
|
|
3200
5053
|
sessions: new Map(),
|
|
3201
5054
|
retainedSessionCleanups: new Map(),
|
|
@@ -3221,7 +5074,8 @@ export class FlexHarness {
|
|
|
3221
5074
|
const stored = await this.loadSessionRuntime(state, metadata, scopeId, scope);
|
|
3222
5075
|
state.sessions.set(metadata.sessionId, stored);
|
|
3223
5076
|
loadedSessions.push(stored);
|
|
3224
|
-
scopeChanged = (await this.repairLoadedSession(state.storageKey, stored)) || scopeChanged;
|
|
5077
|
+
scopeChanged = (await this.repairLoadedSession(state.storageKey, stored, state, scopeId, scope)) || scopeChanged;
|
|
5078
|
+
await this.drainReversionReleases(state, stored, scopeId, scope, false);
|
|
3225
5079
|
if (stored.projectionRevision < 0)
|
|
3226
5080
|
throw new Error('Invalid projection revision.');
|
|
3227
5081
|
}
|
|
@@ -3246,14 +5100,19 @@ export class FlexHarness {
|
|
|
3246
5100
|
try {
|
|
3247
5101
|
const group = this.tombstoneGroup(state, rootSessionId);
|
|
3248
5102
|
for (const tombstone of group) {
|
|
5103
|
+
await this.releaseDeletedSessionReversions(state, storageKey, tombstone.sessionId, scopeId, scope);
|
|
3249
5104
|
await this.cleanupSessionDomains(storageKey, tombstone.sessionId);
|
|
3250
5105
|
}
|
|
3251
5106
|
for (const tombstone of group)
|
|
3252
5107
|
state.tombstones.delete(tombstone.sessionId);
|
|
3253
5108
|
scopeChanged = true;
|
|
3254
5109
|
}
|
|
3255
|
-
catch {
|
|
5110
|
+
catch (error) {
|
|
3256
5111
|
// A retained tombstone is retried by the next load or explicit delete call.
|
|
5112
|
+
if (state.lifecycle === 'fenced') {
|
|
5113
|
+
this.deferNamespaceDrain(state, error, { scopeId, scope });
|
|
5114
|
+
break;
|
|
5115
|
+
}
|
|
3257
5116
|
}
|
|
3258
5117
|
}
|
|
3259
5118
|
if (scopeChanged) {
|
|
@@ -3264,6 +5123,15 @@ export class FlexHarness {
|
|
|
3264
5123
|
return state;
|
|
3265
5124
|
}
|
|
3266
5125
|
catch (error) {
|
|
5126
|
+
for (const rootSessionId of new Set([...state.tombstones.values()].map((tombstone) => tombstone.rootSessionId ?? tombstone.sessionId))) {
|
|
5127
|
+
const key = JSON.stringify([storageKey, rootSessionId]);
|
|
5128
|
+
this.orphanedTombstoneOwners.set(key, {
|
|
5129
|
+
state,
|
|
5130
|
+
rootSessionId,
|
|
5131
|
+
scopeId,
|
|
5132
|
+
scope,
|
|
5133
|
+
});
|
|
5134
|
+
}
|
|
3267
5135
|
const closeResults = await Promise.allSettled(loadedSessions.map((stored) => this.closeStoredSession(stored)));
|
|
3268
5136
|
const errors = [error];
|
|
3269
5137
|
for (let index = 0; index < closeResults.length; index++) {
|
|
@@ -3289,6 +5157,12 @@ export class FlexHarness {
|
|
|
3289
5157
|
session,
|
|
3290
5158
|
messages: [],
|
|
3291
5159
|
stagedTerminals: [],
|
|
5160
|
+
reversionSegments: [],
|
|
5161
|
+
revertCursor: 0,
|
|
5162
|
+
excludedRunIds: [],
|
|
5163
|
+
pendingReversionReleases: [],
|
|
5164
|
+
projectionSchemaVersion: 3,
|
|
5165
|
+
projectionReconciliationRequired: false,
|
|
3292
5166
|
projectionRevision: 0,
|
|
3293
5167
|
projectionQueue: Promise.resolve(),
|
|
3294
5168
|
rememberedPermissionKeys: new Set(),
|
|
@@ -3343,6 +5217,28 @@ export class FlexHarness {
|
|
|
3343
5217
|
throw combineErrors(acquisitionErrors);
|
|
3344
5218
|
}
|
|
3345
5219
|
const projection = projectionResult.value;
|
|
5220
|
+
const legacyProjection = projection?.schemaVersion === 2 ? projection : undefined;
|
|
5221
|
+
const currentProjection = projection?.schemaVersion === 3 ? projection : undefined;
|
|
5222
|
+
const reversionSegments = currentProjection
|
|
5223
|
+
? cloneSerializable(currentProjection.reversionSegments)
|
|
5224
|
+
: (legacyProjection?.reversionSegments ?? []).map((segment) => ({
|
|
5225
|
+
...cloneSerializable(segment),
|
|
5226
|
+
protocolVersion: 1,
|
|
5227
|
+
provenance: segment.workspaceCaptured ? 'workspace' : 'transcript',
|
|
5228
|
+
...(segment.workspaceCaptured
|
|
5229
|
+
? { disposition: segment.status === 'capturing' ? 'pending' : 'revertible' }
|
|
5230
|
+
: {}),
|
|
5231
|
+
}));
|
|
5232
|
+
const pendingReversion = currentProjection?.pendingReversion
|
|
5233
|
+
?? (legacyProjection?.pendingReversion?.kind === 'capture'
|
|
5234
|
+
? { ...legacyProjection.pendingReversion, protocolVersion: 1 }
|
|
5235
|
+
: legacyProjection?.pendingReversion);
|
|
5236
|
+
const pendingReversionReleases = currentProjection
|
|
5237
|
+
? cloneSerializable(currentProjection.pendingReversionReleases)
|
|
5238
|
+
: (legacyProjection?.pendingReversionReleases ?? []).map((release) => ({
|
|
5239
|
+
...cloneSerializable(release),
|
|
5240
|
+
protocolVersion: 1,
|
|
5241
|
+
}));
|
|
3346
5242
|
const permission = permissionResult.value;
|
|
3347
5243
|
const eventStore = eventStoreResult.value;
|
|
3348
5244
|
const jobStore = jobStoreResult.value;
|
|
@@ -3368,6 +5264,18 @@ export class FlexHarness {
|
|
|
3368
5264
|
session: cloneSerializable(metadata),
|
|
3369
5265
|
messages: cloneSerializable(projection?.messages ?? []),
|
|
3370
5266
|
stagedTerminals: cloneSerializable(projection?.stagedTerminals ?? []),
|
|
5267
|
+
reversionSegments,
|
|
5268
|
+
revertCursor: currentProjection?.revertCursor ?? legacyProjection?.revertCursor ?? 0,
|
|
5269
|
+
excludedRunIds: cloneSerializable(currentProjection?.excludedRunIds ?? legacyProjection?.excludedRunIds ?? []),
|
|
5270
|
+
...(pendingReversion === undefined
|
|
5271
|
+
? {}
|
|
5272
|
+
: { pendingReversion: cloneSerializable(pendingReversion) }),
|
|
5273
|
+
pendingReversionReleases,
|
|
5274
|
+
projectionSchemaVersion: projection?.schemaVersion ?? 3,
|
|
5275
|
+
projectionReconciliationRequired: false,
|
|
5276
|
+
...(projection && projection.schemaVersion !== 3
|
|
5277
|
+
? { projectionBaseline: cloneSerializable(projection) }
|
|
5278
|
+
: {}),
|
|
3371
5279
|
projectionRevision: projection?.revision ?? 0,
|
|
3372
5280
|
projectionQueue: Promise.resolve(),
|
|
3373
5281
|
rememberedPermissionKeys: new Set(permission?.rememberedPermissionKeys ?? []),
|
|
@@ -3408,7 +5316,9 @@ export class FlexHarness {
|
|
|
3408
5316
|
sessionId,
|
|
3409
5317
|
eventStore,
|
|
3410
5318
|
executionContext: contextualExecutionContext,
|
|
3411
|
-
contextBuilder: ({ events }) => hydrateAgentMessages((this.agentSessionPolicy.contextBuilder ?? ((options) => plugins.buildModelMessages(options.events)))({
|
|
5319
|
+
contextBuilder: ({ events }) => hydrateAgentMessages((this.agentSessionPolicy.contextBuilder ?? ((options) => plugins.buildModelMessages(options.events)))({
|
|
5320
|
+
events: this.filterReversionContextEvents(stored, events),
|
|
5321
|
+
})),
|
|
3412
5322
|
...(contextCompactor
|
|
3413
5323
|
? {
|
|
3414
5324
|
contextCompactor: async (messages, events, options) => {
|
|
@@ -3421,7 +5331,12 @@ export class FlexHarness {
|
|
|
3421
5331
|
|| invocationContext.sessionId !== sessionId) {
|
|
3422
5332
|
throw new Error('Agent context compaction is missing its exact FlexHarness invocation context.');
|
|
3423
5333
|
}
|
|
3424
|
-
|
|
5334
|
+
const filteredEvents = this.filterReversionContextEvents(stored, events);
|
|
5335
|
+
const filteredMessages = hydrateAgentMessages((this.agentSessionPolicy.contextBuilder
|
|
5336
|
+
?? ((contextOptions) => plugins.buildModelMessages(contextOptions.events)))({
|
|
5337
|
+
events: filteredEvents,
|
|
5338
|
+
}));
|
|
5339
|
+
return contextCompactor(filteredMessages, filteredEvents, {
|
|
3425
5340
|
...options,
|
|
3426
5341
|
...invocationContext,
|
|
3427
5342
|
scope: invocationContext.scope,
|
|
@@ -3486,13 +5401,49 @@ export class FlexHarness {
|
|
|
3486
5401
|
throw cleanupErrors.length === 0 ? error : combineErrors([error, ...cleanupErrors]);
|
|
3487
5402
|
}
|
|
3488
5403
|
}
|
|
3489
|
-
async repairLoadedSession(storageKey, stored) {
|
|
5404
|
+
async repairLoadedSession(storageKey, stored, state, scopeId, scope) {
|
|
3490
5405
|
const beforeProjection = JSON.stringify({
|
|
3491
5406
|
messages: stored.messages,
|
|
3492
5407
|
stagedTerminals: stored.stagedTerminals,
|
|
5408
|
+
reversionSegments: stored.reversionSegments,
|
|
5409
|
+
revertCursor: stored.revertCursor,
|
|
5410
|
+
excludedRunIds: stored.excludedRunIds,
|
|
5411
|
+
pendingReversion: stored.pendingReversion,
|
|
5412
|
+
pendingReversionReleases: stored.pendingReversionReleases,
|
|
3493
5413
|
});
|
|
3494
5414
|
const beforeSession = JSON.stringify(stored.session);
|
|
5415
|
+
if (!this.turnReversionProvider
|
|
5416
|
+
&& (stored.reversionSegments.some((segment) => segment.captureId)
|
|
5417
|
+
|| stored.pendingReversionReleases.length > 0
|
|
5418
|
+
|| stored.pendingReversion?.kind === 'capture')) {
|
|
5419
|
+
throw new FlexHarnessValidationError('Capture-backed session recovery requires its turn reversion provider.');
|
|
5420
|
+
}
|
|
5421
|
+
const requiredProtocols = new Set([
|
|
5422
|
+
...stored.reversionSegments
|
|
5423
|
+
.filter((segment) => segment.captureId !== undefined)
|
|
5424
|
+
.map((segment) => segment.protocolVersion),
|
|
5425
|
+
...stored.pendingReversionReleases.map((release) => release.protocolVersion),
|
|
5426
|
+
...(stored.pendingReversion?.kind === 'capture'
|
|
5427
|
+
? [stored.pendingReversion.protocolVersion]
|
|
5428
|
+
: []),
|
|
5429
|
+
]);
|
|
5430
|
+
const providerProtocol = this.reversionProviderProtocolVersion();
|
|
5431
|
+
if (requiredProtocols.size > 0 && (requiredProtocols.size !== 1
|
|
5432
|
+
|| !requiredProtocols.has(providerProtocol ?? 0))) {
|
|
5433
|
+
throw new FlexHarnessValidationError(`Capture-backed session recovery requires protocolVersion ${[...requiredProtocols].join(', ')}.`);
|
|
5434
|
+
}
|
|
5435
|
+
if (stored.pendingReversion?.kind === 'capture' && stored.pendingReversionReleases.length > 0) {
|
|
5436
|
+
if (!state || scopeId === undefined || scope === undefined) {
|
|
5437
|
+
throw new FlexHarnessValidationError('Pending capture recovery is missing its scope context.');
|
|
5438
|
+
}
|
|
5439
|
+
await this.drainReversionReleases(state, stored, scopeId, scope, false);
|
|
5440
|
+
this.assertStateAcceptingWork(state);
|
|
5441
|
+
}
|
|
3495
5442
|
const outcomes = this.canonicalOutcomes(stored.agentSession.getEvents());
|
|
5443
|
+
const firstHiddenCandidate = this.completedReversionCandidates(stored)[stored.revertCursor];
|
|
5444
|
+
const reversionVisibilityBoundary = firstHiddenCandidate
|
|
5445
|
+
? stored.reversionSegments.findIndex((segment) => segment.runId === firstHiddenCandidate.runId)
|
|
5446
|
+
: stored.reversionSegments.length;
|
|
3496
5447
|
const stages = new Map(stored.stagedTerminals.map((terminal) => [terminal.runId, terminal]));
|
|
3497
5448
|
const runIds = new Set([
|
|
3498
5449
|
...stored.messages.map((message) => message.runId),
|
|
@@ -3525,6 +5476,41 @@ export class FlexHarness {
|
|
|
3525
5476
|
stored.stagedTerminals = stored.stagedTerminals.filter((terminal) => !outcomes.has(terminal.runId));
|
|
3526
5477
|
if (stored.stagedTerminals.length > 0)
|
|
3527
5478
|
stored.stagedTerminals = [];
|
|
5479
|
+
const activeEvents = stored.agentSession.getEvents();
|
|
5480
|
+
const activeEventIds = new Set(activeEvents.map((event) => event.id));
|
|
5481
|
+
for (let index = 0; index < stored.reversionSegments.length; index++) {
|
|
5482
|
+
const segment = stored.reversionSegments[index];
|
|
5483
|
+
if (segment.eventIds.length > 0 && !segment.eventIds.some((id) => activeEventIds.has(id))) {
|
|
5484
|
+
segment.contextAvailable = false;
|
|
5485
|
+
}
|
|
5486
|
+
if (segment.status !== 'capturing') {
|
|
5487
|
+
const outcome = outcomes.get(segment.runId);
|
|
5488
|
+
if (outcome === 'accepted')
|
|
5489
|
+
segment.status = 'completed';
|
|
5490
|
+
else if (outcome === 'rejected')
|
|
5491
|
+
segment.status = 'failed';
|
|
5492
|
+
else if (outcome === 'interrupted' || segment.contextAvailable)
|
|
5493
|
+
segment.status = 'cancelled';
|
|
5494
|
+
}
|
|
5495
|
+
}
|
|
5496
|
+
stored.revertCursor = stored.reversionSegments
|
|
5497
|
+
.slice(0, reversionVisibilityBoundary)
|
|
5498
|
+
.filter((segment) => segment.status === 'completed')
|
|
5499
|
+
.length;
|
|
5500
|
+
this.commitArchivedHiddenBranchState(stored);
|
|
5501
|
+
this.pruneReversionState(stored, false, true);
|
|
5502
|
+
if (stored.pendingReversion?.kind === 'apply') {
|
|
5503
|
+
if (!state || scopeId === undefined || scope === undefined) {
|
|
5504
|
+
throw new FlexHarnessValidationError('Pending reversion recovery is missing its scope context.');
|
|
5505
|
+
}
|
|
5506
|
+
await this.resumePendingApply(state, stored, scopeId, scope);
|
|
5507
|
+
}
|
|
5508
|
+
else if (stored.pendingReversion?.kind === 'capture') {
|
|
5509
|
+
if (!this.turnReversionProvider || !state || scopeId === undefined || scope === undefined) {
|
|
5510
|
+
throw new FlexHarnessValidationError('Pending capture recovery requires its reversion provider.');
|
|
5511
|
+
}
|
|
5512
|
+
await this.recoverPendingCapture(state, stored, scopeId, scope, outcomes);
|
|
5513
|
+
}
|
|
3528
5514
|
if (latestTerminal) {
|
|
3529
5515
|
const completedAt = latestTerminal.assistantMessage.completedAt ?? new Date().toISOString();
|
|
3530
5516
|
stored.session.status = latestTerminal.status === 'completed' ? 'idle' : latestTerminal.status;
|
|
@@ -3552,11 +5538,19 @@ export class FlexHarness {
|
|
|
3552
5538
|
const projectionChanged = beforeProjection !== JSON.stringify({
|
|
3553
5539
|
messages: stored.messages,
|
|
3554
5540
|
stagedTerminals: stored.stagedTerminals,
|
|
5541
|
+
reversionSegments: stored.reversionSegments,
|
|
5542
|
+
revertCursor: stored.revertCursor,
|
|
5543
|
+
excludedRunIds: stored.excludedRunIds,
|
|
5544
|
+
pendingReversion: stored.pendingReversion,
|
|
5545
|
+
pendingReversionReleases: stored.pendingReversionReleases,
|
|
3555
5546
|
});
|
|
3556
5547
|
if (projectionChanged) {
|
|
3557
5548
|
const expected = stored.projectionRevision;
|
|
3558
5549
|
const snapshot = this.createProjectionSnapshot(stored, expected + 1);
|
|
3559
5550
|
await this.stores.projections.save(storageKey, stored.session.sessionId, snapshot, expected);
|
|
5551
|
+
stored.projectionSchemaVersion = 3;
|
|
5552
|
+
delete stored.projectionBaseline;
|
|
5553
|
+
stored.projectionReconciliationRequired = false;
|
|
3560
5554
|
stored.projectionRevision = snapshot.revision;
|
|
3561
5555
|
}
|
|
3562
5556
|
return beforeSession !== JSON.stringify(stored.session);
|
|
@@ -3702,18 +5696,51 @@ export class FlexHarness {
|
|
|
3702
5696
|
mutateProjection(state, stored, mutation, _allowDuringDrain = false) {
|
|
3703
5697
|
const operation = stored.projectionQueue.then(async () => {
|
|
3704
5698
|
const beforeRevision = stored.projectionRevision;
|
|
5699
|
+
const beforeSchemaVersion = stored.projectionSchemaVersion;
|
|
5700
|
+
const beforeReconciliationRequired = stored.projectionReconciliationRequired;
|
|
5701
|
+
const beforeBaseline = stored.projectionBaseline === undefined
|
|
5702
|
+
? undefined
|
|
5703
|
+
: cloneSerializable(stored.projectionBaseline);
|
|
3705
5704
|
const beforeMessages = cloneSerializable(stored.messages);
|
|
3706
5705
|
const beforeStages = cloneSerializable(stored.stagedTerminals);
|
|
3707
|
-
const
|
|
3708
|
-
|
|
5706
|
+
const beforeSegments = cloneSerializable(stored.reversionSegments);
|
|
5707
|
+
const beforeCursor = stored.revertCursor;
|
|
5708
|
+
const beforeExcludedRunIds = cloneSerializable(stored.excludedRunIds);
|
|
5709
|
+
const beforePendingReversion = stored.pendingReversion === undefined
|
|
5710
|
+
? undefined
|
|
5711
|
+
: cloneSerializable(stored.pendingReversion);
|
|
5712
|
+
const beforePendingReversionReleases = cloneSerializable(stored.pendingReversionReleases);
|
|
5713
|
+
const beforeSnapshot = beforeBaseline ?? {
|
|
5714
|
+
schemaVersion: 3,
|
|
3709
5715
|
revision: beforeRevision,
|
|
3710
5716
|
messages: cloneSerializable(beforeMessages),
|
|
3711
5717
|
stagedTerminals: cloneSerializable(beforeStages),
|
|
5718
|
+
reversionSegments: cloneSerializable(beforeSegments),
|
|
5719
|
+
revertCursor: beforeCursor,
|
|
5720
|
+
excludedRunIds: cloneSerializable(beforeExcludedRunIds),
|
|
5721
|
+
...(beforePendingReversion === undefined
|
|
5722
|
+
? {}
|
|
5723
|
+
: { pendingReversion: cloneSerializable(beforePendingReversion) }),
|
|
5724
|
+
pendingReversionReleases: cloneSerializable(beforePendingReversionReleases),
|
|
3712
5725
|
};
|
|
3713
5726
|
const restore = () => {
|
|
5727
|
+
stored.projectionSchemaVersion = beforeSchemaVersion;
|
|
5728
|
+
stored.projectionReconciliationRequired = beforeReconciliationRequired;
|
|
5729
|
+
if (beforeBaseline === undefined)
|
|
5730
|
+
delete stored.projectionBaseline;
|
|
5731
|
+
else
|
|
5732
|
+
stored.projectionBaseline = beforeBaseline;
|
|
3714
5733
|
stored.projectionRevision = beforeRevision;
|
|
3715
5734
|
stored.messages = beforeMessages;
|
|
3716
5735
|
stored.stagedTerminals = beforeStages;
|
|
5736
|
+
stored.reversionSegments = beforeSegments;
|
|
5737
|
+
stored.revertCursor = beforeCursor;
|
|
5738
|
+
stored.excludedRunIds = beforeExcludedRunIds;
|
|
5739
|
+
if (beforePendingReversion === undefined)
|
|
5740
|
+
delete stored.pendingReversion;
|
|
5741
|
+
else
|
|
5742
|
+
stored.pendingReversion = beforePendingReversion;
|
|
5743
|
+
stored.pendingReversionReleases = beforePendingReversionReleases;
|
|
3717
5744
|
};
|
|
3718
5745
|
let result;
|
|
3719
5746
|
try {
|
|
@@ -3726,6 +5753,9 @@ export class FlexHarness {
|
|
|
3726
5753
|
const snapshot = this.createProjectionSnapshot(stored, beforeRevision + 1);
|
|
3727
5754
|
try {
|
|
3728
5755
|
await this.stores.projections.save(state.storageKey, stored.session.sessionId, snapshot, beforeRevision);
|
|
5756
|
+
stored.projectionSchemaVersion = 3;
|
|
5757
|
+
delete stored.projectionBaseline;
|
|
5758
|
+
stored.projectionReconciliationRequired = false;
|
|
3729
5759
|
stored.projectionRevision = snapshot.revision;
|
|
3730
5760
|
return result;
|
|
3731
5761
|
}
|
|
@@ -3735,6 +5765,8 @@ export class FlexHarness {
|
|
|
3735
5765
|
throw error;
|
|
3736
5766
|
}
|
|
3737
5767
|
if (error instanceof FlexHarnessStoreCommitUncertainError) {
|
|
5768
|
+
stored.projectionSchemaVersion = 3;
|
|
5769
|
+
stored.projectionReconciliationRequired = true;
|
|
3738
5770
|
stored.projectionRevision = snapshot.revision;
|
|
3739
5771
|
state.lifecycle = 'fenced';
|
|
3740
5772
|
throw error;
|
|
@@ -3748,6 +5780,9 @@ export class FlexHarness {
|
|
|
3748
5780
|
reconciliationError = loadError;
|
|
3749
5781
|
}
|
|
3750
5782
|
if (current && JSON.stringify(current) === JSON.stringify(snapshot)) {
|
|
5783
|
+
stored.projectionSchemaVersion = 3;
|
|
5784
|
+
delete stored.projectionBaseline;
|
|
5785
|
+
stored.projectionReconciliationRequired = false;
|
|
3751
5786
|
stored.projectionRevision = snapshot.revision;
|
|
3752
5787
|
throw error;
|
|
3753
5788
|
}
|
|
@@ -3756,6 +5791,8 @@ export class FlexHarness {
|
|
|
3756
5791
|
restore();
|
|
3757
5792
|
throw error;
|
|
3758
5793
|
}
|
|
5794
|
+
stored.projectionSchemaVersion = 3;
|
|
5795
|
+
stored.projectionReconciliationRequired = true;
|
|
3759
5796
|
stored.projectionRevision = snapshot.revision;
|
|
3760
5797
|
state.lifecycle = 'fenced';
|
|
3761
5798
|
throw reconciliationError === undefined
|
|
@@ -3848,12 +5885,88 @@ export class FlexHarness {
|
|
|
3848
5885
|
}
|
|
3849
5886
|
createProjectionSnapshot(stored, revision) {
|
|
3850
5887
|
return {
|
|
3851
|
-
schemaVersion:
|
|
5888
|
+
schemaVersion: 3,
|
|
3852
5889
|
revision,
|
|
3853
5890
|
messages: cloneSerializable(stored.messages),
|
|
3854
5891
|
stagedTerminals: cloneSerializable(stored.stagedTerminals),
|
|
5892
|
+
reversionSegments: cloneSerializable(stored.reversionSegments),
|
|
5893
|
+
revertCursor: stored.revertCursor,
|
|
5894
|
+
excludedRunIds: cloneSerializable(stored.excludedRunIds),
|
|
5895
|
+
...(stored.pendingReversion === undefined
|
|
5896
|
+
? {}
|
|
5897
|
+
: { pendingReversion: cloneSerializable(stored.pendingReversion) }),
|
|
5898
|
+
pendingReversionReleases: cloneSerializable(stored.pendingReversionReleases),
|
|
5899
|
+
};
|
|
5900
|
+
}
|
|
5901
|
+
upgradeProjectionSnapshot(projection) {
|
|
5902
|
+
if (projection.schemaVersion === 3)
|
|
5903
|
+
return cloneSerializable(projection);
|
|
5904
|
+
if (projection.schemaVersion === 1) {
|
|
5905
|
+
return {
|
|
5906
|
+
schemaVersion: 3,
|
|
5907
|
+
revision: projection.revision,
|
|
5908
|
+
messages: cloneSerializable(projection.messages),
|
|
5909
|
+
stagedTerminals: cloneSerializable(projection.stagedTerminals),
|
|
5910
|
+
reversionSegments: [],
|
|
5911
|
+
revertCursor: 0,
|
|
5912
|
+
excludedRunIds: [],
|
|
5913
|
+
pendingReversionReleases: [],
|
|
5914
|
+
};
|
|
5915
|
+
}
|
|
5916
|
+
return {
|
|
5917
|
+
schemaVersion: 3,
|
|
5918
|
+
revision: projection.revision,
|
|
5919
|
+
messages: cloneSerializable(projection.messages),
|
|
5920
|
+
stagedTerminals: cloneSerializable(projection.stagedTerminals),
|
|
5921
|
+
reversionSegments: projection.reversionSegments.map((segment) => ({
|
|
5922
|
+
...cloneSerializable(segment),
|
|
5923
|
+
protocolVersion: 1,
|
|
5924
|
+
provenance: segment.workspaceCaptured ? 'workspace' : 'transcript',
|
|
5925
|
+
...(segment.workspaceCaptured
|
|
5926
|
+
? { disposition: segment.status === 'capturing' ? 'pending' : 'revertible' }
|
|
5927
|
+
: {}),
|
|
5928
|
+
})),
|
|
5929
|
+
revertCursor: projection.revertCursor,
|
|
5930
|
+
excludedRunIds: cloneSerializable(projection.excludedRunIds),
|
|
5931
|
+
...(projection.pendingReversion === undefined
|
|
5932
|
+
? {}
|
|
5933
|
+
: {
|
|
5934
|
+
pendingReversion: projection.pendingReversion.kind === 'capture'
|
|
5935
|
+
? { ...cloneSerializable(projection.pendingReversion), protocolVersion: 1 }
|
|
5936
|
+
: cloneSerializable(projection.pendingReversion),
|
|
5937
|
+
}),
|
|
5938
|
+
pendingReversionReleases: projection.pendingReversionReleases.map((release) => ({
|
|
5939
|
+
...cloneSerializable(release),
|
|
5940
|
+
protocolVersion: 1,
|
|
5941
|
+
})),
|
|
3855
5942
|
};
|
|
3856
5943
|
}
|
|
5944
|
+
async reconcileProjectionFromStore(stored) {
|
|
5945
|
+
if (!stored.projectionReconciliationRequired)
|
|
5946
|
+
return;
|
|
5947
|
+
const projection = await this.stores.projections.load(stored.storageKey, stored.session.sessionId);
|
|
5948
|
+
if (!projection) {
|
|
5949
|
+
throw new FlexHarnessValidationError('Uncertain projection persistence could not be reloaded.');
|
|
5950
|
+
}
|
|
5951
|
+
const current = this.upgradeProjectionSnapshot(projection);
|
|
5952
|
+
stored.messages = current.messages;
|
|
5953
|
+
stored.stagedTerminals = current.stagedTerminals;
|
|
5954
|
+
stored.reversionSegments = current.reversionSegments;
|
|
5955
|
+
stored.revertCursor = current.revertCursor;
|
|
5956
|
+
stored.excludedRunIds = current.excludedRunIds;
|
|
5957
|
+
if (current.pendingReversion === undefined)
|
|
5958
|
+
delete stored.pendingReversion;
|
|
5959
|
+
else
|
|
5960
|
+
stored.pendingReversion = current.pendingReversion;
|
|
5961
|
+
stored.pendingReversionReleases = current.pendingReversionReleases;
|
|
5962
|
+
if (projection.schemaVersion === 3)
|
|
5963
|
+
delete stored.projectionBaseline;
|
|
5964
|
+
else
|
|
5965
|
+
stored.projectionBaseline = cloneSerializable(projection);
|
|
5966
|
+
stored.projectionSchemaVersion = projection.schemaVersion;
|
|
5967
|
+
stored.projectionRevision = projection.revision;
|
|
5968
|
+
stored.projectionReconciliationRequired = false;
|
|
5969
|
+
}
|
|
3857
5970
|
async cleanupSessionDomains(storageKey, sessionId) {
|
|
3858
5971
|
const results = await Promise.allSettled([
|
|
3859
5972
|
this.stores.agentEvents.deleteSession(storageKey, sessionId),
|
|
@@ -3928,10 +6041,14 @@ export class FlexHarness {
|
|
|
3928
6041
|
const group = this.tombstoneGroup(state, rootSessionId);
|
|
3929
6042
|
if (group.length === 0)
|
|
3930
6043
|
return;
|
|
6044
|
+
const exactInvocation = invocation ?? {
|
|
6045
|
+
scopeId: state.scopeContext.scopeId,
|
|
6046
|
+
scope: state.scopeContext.scope,
|
|
6047
|
+
};
|
|
3931
6048
|
const groupIds = new Set(group.map((tombstone) => tombstone.sessionId));
|
|
3932
6049
|
const reason = this.trustInternalError(new FlexHarnessAbortError('The session subtree was deleted.'));
|
|
3933
|
-
const contextFor = (sessionId, retained) =>
|
|
3934
|
-
? this.createCompactorContext(
|
|
6050
|
+
const contextFor = (sessionId, retained) => exactInvocation
|
|
6051
|
+
? this.createCompactorContext(exactInvocation.scopeId, exactInvocation.scope, state.storageKey, sessionId)
|
|
3935
6052
|
: retained?.stored.compactorContext;
|
|
3936
6053
|
for (const sessionId of groupIds) {
|
|
3937
6054
|
const retained = state.retainedSessionCleanups.get(sessionId);
|
|
@@ -3993,6 +6110,11 @@ export class FlexHarness {
|
|
|
3993
6110
|
if (this.hasOrphanedSessionResources(state.storageKey, sessionId)) {
|
|
3994
6111
|
throw new Error(`Session "${sessionId}" still has runtime cleanup ownership.`);
|
|
3995
6112
|
}
|
|
6113
|
+
const releaseContext = exactInvocation ?? retained?.stored.compactorContext;
|
|
6114
|
+
if (!releaseContext) {
|
|
6115
|
+
throw new FlexHarnessValidationError('Tombstone cleanup requires its exact scope context before deleting projection data.');
|
|
6116
|
+
}
|
|
6117
|
+
await this.releaseDeletedSessionReversions(state, state.storageKey, sessionId, releaseContext.scopeId, releaseContext.scope, retained?.stored);
|
|
3996
6118
|
await this.cleanupSessionDomains(state.storageKey, sessionId);
|
|
3997
6119
|
if (retained)
|
|
3998
6120
|
retained.domainsCompleted = true;
|
|
@@ -4138,6 +6260,16 @@ export class FlexHarness {
|
|
|
4138
6260
|
const drain = this.drainStorage(state.storageKey, stateLoad, this.trustInternalError(new FlexHarnessAbortError('The session namespace was fenced.')), invocation);
|
|
4139
6261
|
void drain.catch(() => undefined);
|
|
4140
6262
|
}
|
|
6263
|
+
deferReversionReleaseDrain(state, stored, scopeId, scope) {
|
|
6264
|
+
state.lifecycle = 'fenced';
|
|
6265
|
+
const reason = this.trustInternalError(new FlexHarnessAbortError('The session namespace was fenced.'));
|
|
6266
|
+
this.abortCompactorLifecycle(stored, reason);
|
|
6267
|
+
const stateLoad = this.stateLoads.get(state.storageKey);
|
|
6268
|
+
if (!stateLoad)
|
|
6269
|
+
return;
|
|
6270
|
+
const drain = this.drainStorage(state.storageKey, stateLoad, reason, { scopeId, scope });
|
|
6271
|
+
void drain.catch(() => undefined);
|
|
6272
|
+
}
|
|
4141
6273
|
sessionsAreDependencyRelated(state, leftSessionId, rightSessionId) {
|
|
4142
6274
|
return this.isSessionAncestor(state, leftSessionId, rightSessionId)
|
|
4143
6275
|
|| this.isSessionAncestor(state, rightSessionId, leftSessionId);
|
|
@@ -4301,6 +6433,17 @@ export class FlexHarness {
|
|
|
4301
6433
|
}
|
|
4302
6434
|
async closeOrphanedResourcesInternal(storageKey) {
|
|
4303
6435
|
const errors = [];
|
|
6436
|
+
for (const [key, owner] of [...this.orphanedTombstoneOwners]) {
|
|
6437
|
+
if (storageKey !== undefined && owner.state.storageKey !== storageKey)
|
|
6438
|
+
continue;
|
|
6439
|
+
try {
|
|
6440
|
+
await this.finishTombstoneCleanup(owner.state, owner.rootSessionId, owner.scopeId, { scopeId: owner.scopeId, scope: owner.scope });
|
|
6441
|
+
this.orphanedTombstoneOwners.delete(key);
|
|
6442
|
+
}
|
|
6443
|
+
catch (error) {
|
|
6444
|
+
errors.push(error);
|
|
6445
|
+
}
|
|
6446
|
+
}
|
|
4304
6447
|
const tombstoneCleanups = [...this.orphanedTombstoneCleanups.values()]
|
|
4305
6448
|
.filter((retained) => storageKey === undefined || retained.storageKey === storageKey);
|
|
4306
6449
|
const tombstoneResults = await Promise.allSettled(tombstoneCleanups.map((retained) => retained.completion));
|
|
@@ -4352,13 +6495,19 @@ export class FlexHarness {
|
|
|
4352
6495
|
...[...this.orphanedExecutionContexts.values()].map((owner) => owner.storageKey),
|
|
4353
6496
|
...[...this.orphanedProviderReleases.values()].map((retained) => retained.storageKey),
|
|
4354
6497
|
...[...this.orphanedTombstoneCleanups.values()].map((retained) => retained.storageKey),
|
|
6498
|
+
...[...this.orphanedTombstoneOwners.values()].map((owner) => owner.state.storageKey),
|
|
4355
6499
|
]);
|
|
4356
6500
|
}
|
|
4357
6501
|
async retireScopeInternal(scopeId) {
|
|
4358
6502
|
const scope = await this.scopeResolver.resolveScope(scopeId);
|
|
4359
6503
|
this.assertOpen();
|
|
4360
6504
|
validateIdentifier(scope.storageKey, 'resolved storageKey');
|
|
6505
|
+
this.assertNoAmbientSlashCommandTeardown({ storageKey: scope.storageKey });
|
|
4361
6506
|
const errors = [];
|
|
6507
|
+
const listingSettlement = this.abortSlashCommandListings(scope.storageKey, this.trustInternalError(new FlexHarnessAbortError(scopeRetirementMessage)));
|
|
6508
|
+
if (listingSettlement)
|
|
6509
|
+
await listingSettlement;
|
|
6510
|
+
await this.abortSlashCommandExecutions(scope.storageKey, this.trustInternalError(new FlexHarnessAbortError(scopeRetirementMessage)), errors);
|
|
4362
6511
|
const stateLoad = this.stateLoads.get(scope.storageKey);
|
|
4363
6512
|
if (!stateLoad) {
|
|
4364
6513
|
const drain = this.storageDrains.get(scope.storageKey);
|
|
@@ -4423,8 +6572,12 @@ export class FlexHarness {
|
|
|
4423
6572
|
}
|
|
4424
6573
|
if (state.lifecycle !== 'fenced')
|
|
4425
6574
|
state.lifecycle = 'retiring';
|
|
4426
|
-
const detachedCleanupAttempts = this.beginDetachedCleanupSettlement(state);
|
|
4427
6575
|
const errors = [];
|
|
6576
|
+
const listingSettlement = this.abortSlashCommandListings(storageKey, reason);
|
|
6577
|
+
if (listingSettlement)
|
|
6578
|
+
await listingSettlement;
|
|
6579
|
+
await this.abortSlashCommandExecutions(storageKey, reason, errors);
|
|
6580
|
+
const detachedCleanupAttempts = this.beginDetachedCleanupSettlement(state);
|
|
4428
6581
|
const contextFor = (sessionId) => invocation
|
|
4429
6582
|
? this.createCompactorContext(invocation.scopeId, invocation.scope, storageKey, sessionId)
|
|
4430
6583
|
: undefined;
|
|
@@ -4475,6 +6628,15 @@ export class FlexHarness {
|
|
|
4475
6628
|
catch (error) {
|
|
4476
6629
|
this.appendUnexpectedErrors(errors, this.projectOperationError(error, 'toolCleanup', stored.session.scopeId, stored.session.sessionId, 'lifecycle-close'));
|
|
4477
6630
|
}
|
|
6631
|
+
const releaseContext = invocation ?? stored.compactorContext;
|
|
6632
|
+
if (releaseContext) {
|
|
6633
|
+
try {
|
|
6634
|
+
await this.drainReversionReleases(state, stored, releaseContext.scopeId, releaseContext.scope, true);
|
|
6635
|
+
}
|
|
6636
|
+
catch (error) {
|
|
6637
|
+
errors.push(error);
|
|
6638
|
+
}
|
|
6639
|
+
}
|
|
4478
6640
|
this.purgeStoredPromptQueue(stored);
|
|
4479
6641
|
}
|
|
4480
6642
|
const roots = this.orderTombstoneRootsChildFirst(state, [...new Set([...state.tombstones.values()].map((tombstone) => tombstone.rootSessionId ?? tombstone.sessionId))]);
|
|
@@ -4512,9 +6674,13 @@ export class FlexHarness {
|
|
|
4512
6674
|
pending.controller.abort(pendingAdmissionReason);
|
|
4513
6675
|
}
|
|
4514
6676
|
await Promise.all(pendingAdmissions.map((pending) => pending.settled));
|
|
6677
|
+
const errors = [];
|
|
6678
|
+
const listingSettlement = this.abortSlashCommandListings(undefined, this.trustInternalError(new FlexHarnessAbortError('The slash command listing was aborted because FlexHarness was disposed.')));
|
|
6679
|
+
if (listingSettlement)
|
|
6680
|
+
await listingSettlement;
|
|
6681
|
+
await this.abortSlashCommandExecutions(undefined, this.trustInternalError(new FlexHarnessAbortError('The slash command was aborted because FlexHarness was disposed.')), errors);
|
|
4515
6682
|
const loads = [...this.stateLoads.entries()];
|
|
4516
6683
|
const results = await Promise.allSettled(loads.map(([storageKey, stateLoad]) => this.drainStorage(storageKey, stateLoad, this.trustInternalError(new FlexHarnessAbortError('The run was aborted because FlexHarness was disposed.')))));
|
|
4517
|
-
const errors = [];
|
|
4518
6684
|
for (const result of results) {
|
|
4519
6685
|
if (result.status === 'rejected')
|
|
4520
6686
|
this.appendUnexpectedErrors(errors, result.reason);
|
|
@@ -4529,12 +6695,43 @@ export class FlexHarness {
|
|
|
4529
6695
|
if (errors.length > 0)
|
|
4530
6696
|
throw combineErrors(errors);
|
|
4531
6697
|
this.compactorInvocationContext.disable();
|
|
6698
|
+
this.slashCommandInvocationContext.disable();
|
|
6699
|
+
this.slashCommandActivityContext.disable();
|
|
4532
6700
|
this.stateLoads.clear();
|
|
4533
6701
|
this.scopeAdmissions.clear();
|
|
4534
6702
|
this.scopeRetirements.clear();
|
|
4535
6703
|
this.storageDrains.clear();
|
|
4536
6704
|
this.storageCompactorLifecycleControllers.clear();
|
|
4537
6705
|
}
|
|
6706
|
+
async abortSlashCommandExecutions(storageKey, reason, errors, sessionId) {
|
|
6707
|
+
const active = [...this.activeSlashCommandExecutions.values()]
|
|
6708
|
+
.filter((execution) => (storageKey === undefined || execution.storageKey === storageKey)
|
|
6709
|
+
&& (sessionId === undefined || execution.sessionId === sessionId));
|
|
6710
|
+
for (const execution of active) {
|
|
6711
|
+
if (!execution.controller.signal.aborted)
|
|
6712
|
+
execution.controller.abort(reason);
|
|
6713
|
+
}
|
|
6714
|
+
const awaited = active.filter((execution) => execution.kind !== 'prompt-admission');
|
|
6715
|
+
const results = await Promise.allSettled(awaited.map((execution) => execution.completion));
|
|
6716
|
+
for (let index = 0; index < results.length; index++) {
|
|
6717
|
+
const result = results[index];
|
|
6718
|
+
if (result.status === 'rejected' && awaited[index].kind === 'handler') {
|
|
6719
|
+
this.appendUnexpectedErrors(errors, result.reason);
|
|
6720
|
+
}
|
|
6721
|
+
}
|
|
6722
|
+
}
|
|
6723
|
+
abortSlashCommandListings(storageKey, reason, sessionId) {
|
|
6724
|
+
const active = [...this.activeSlashCommandListings]
|
|
6725
|
+
.filter((listing) => (storageKey === undefined || listing.storageKey === storageKey)
|
|
6726
|
+
&& (sessionId === undefined || listing.sessionId === sessionId));
|
|
6727
|
+
if (active.length === 0)
|
|
6728
|
+
return undefined;
|
|
6729
|
+
for (const listing of active) {
|
|
6730
|
+
if (!listing.controller.signal.aborted)
|
|
6731
|
+
listing.controller.abort(reason);
|
|
6732
|
+
}
|
|
6733
|
+
return Promise.allSettled(active.map((listing) => listing.completion)).then(() => undefined);
|
|
6734
|
+
}
|
|
4538
6735
|
appendUnexpectedErrors(target, error) {
|
|
4539
6736
|
if (error instanceof FlexHarnessRunError) {
|
|
4540
6737
|
for (const nested of error.errors)
|
|
@@ -4592,6 +6789,19 @@ export class FlexHarness {
|
|
|
4592
6789
|
}
|
|
4593
6790
|
const state = await stateLoad;
|
|
4594
6791
|
this.assertOpen();
|
|
6792
|
+
if (state.lifecycle === 'fenced') {
|
|
6793
|
+
const drain = this.storageDrains.get(scope.storageKey) ?? this.drainStorage(scope.storageKey, stateLoad, this.trustInternalError(new FlexHarnessAbortError('The session namespace was fenced.')), { scopeId, scope: scope.scope });
|
|
6794
|
+
if (this.ambientSlashCommandOwner({ storageKey: scope.storageKey })) {
|
|
6795
|
+
throw this.createScopeRetirementError();
|
|
6796
|
+
}
|
|
6797
|
+
try {
|
|
6798
|
+
await drain;
|
|
6799
|
+
}
|
|
6800
|
+
catch {
|
|
6801
|
+
// Fenced cleanup ownership remains available to explicit retirement or disposal.
|
|
6802
|
+
}
|
|
6803
|
+
throw this.createScopeRetirementError();
|
|
6804
|
+
}
|
|
4595
6805
|
if (admission.retiring
|
|
4596
6806
|
|| admission.generation !== generation
|
|
4597
6807
|
|| this.storageDrains.has(scope.storageKey)
|
|
@@ -4621,6 +6831,22 @@ export class FlexHarness {
|
|
|
4621
6831
|
createScopeRetirementError() {
|
|
4622
6832
|
return this.trustInternalError(new FlexHarnessAbortError(scopeRetirementMessage));
|
|
4623
6833
|
}
|
|
6834
|
+
ambientSlashCommandOwner(criteria = {}) {
|
|
6835
|
+
const matches = (owner) => ((criteria.scopeId === undefined || owner.scopeId === criteria.scopeId)
|
|
6836
|
+
&& (criteria.storageKey === undefined || owner.storageKey === criteria.storageKey)
|
|
6837
|
+
&& (criteria.sessionId === undefined || owner.sessionId === criteria.sessionId));
|
|
6838
|
+
const invocationOwner = this.slashCommandInvocationContext.getStore();
|
|
6839
|
+
if (invocationOwner && matches(invocationOwner))
|
|
6840
|
+
return invocationOwner;
|
|
6841
|
+
const activityOwner = this.slashCommandActivityContext.getStore();
|
|
6842
|
+
return activityOwner && matches(activityOwner) ? activityOwner : undefined;
|
|
6843
|
+
}
|
|
6844
|
+
assertNoAmbientSlashCommandTeardown(criteria = {}) {
|
|
6845
|
+
const owner = this.ambientSlashCommandOwner(criteria);
|
|
6846
|
+
if (owner) {
|
|
6847
|
+
throw this.trustInternalError(new FlexHarnessSlashCommandReentryError(owner.sessionId));
|
|
6848
|
+
}
|
|
6849
|
+
}
|
|
4624
6850
|
assertStateAcceptingWork(state) {
|
|
4625
6851
|
if (state.lifecycle !== 'active' || this.storageDrains.has(state.storageKey)) {
|
|
4626
6852
|
throw this.createScopeRetirementError();
|
|
@@ -4654,6 +6880,16 @@ export class FlexHarness {
|
|
|
4654
6880
|
throw new FlexHarnessNotFoundError('Session', sessionId);
|
|
4655
6881
|
return stored;
|
|
4656
6882
|
}
|
|
6883
|
+
completedReversionCandidates(stored) {
|
|
6884
|
+
return stored.reversionSegments.filter((segment) => segment.status === 'completed');
|
|
6885
|
+
}
|
|
6886
|
+
visibleMessages(stored) {
|
|
6887
|
+
const firstHiddenSegment = this.reversionGroups(stored)[stored.revertCursor]?.segments[0];
|
|
6888
|
+
if (!firstHiddenSegment)
|
|
6889
|
+
return stored.messages;
|
|
6890
|
+
const boundary = stored.messages.findIndex((message) => message.runId === firstHiddenSegment.runId);
|
|
6891
|
+
return boundary < 0 ? stored.messages : stored.messages.slice(0, boundary);
|
|
6892
|
+
}
|
|
4657
6893
|
requireMutableSession(state, sessionId) {
|
|
4658
6894
|
const stored = this.requireSession(state, sessionId);
|
|
4659
6895
|
const pending = [...state.pendingPermissions.values()].some((entry) => !entry.settled && entry.request.sessionId === sessionId);
|
|
@@ -4663,7 +6899,7 @@ export class FlexHarness {
|
|
|
4663
6899
|
return stored;
|
|
4664
6900
|
}
|
|
4665
6901
|
requireMessage(stored, messageId) {
|
|
4666
|
-
const message = stored.
|
|
6902
|
+
const message = this.visibleMessages(stored).find((entry) => entry.messageId === messageId);
|
|
4667
6903
|
if (!message)
|
|
4668
6904
|
throw new FlexHarnessNotFoundError('Message', messageId);
|
|
4669
6905
|
return message;
|
|
@@ -4805,4 +7041,4 @@ export class FlexHarness {
|
|
|
4805
7041
|
throw new FlexHarnessClosedError();
|
|
4806
7042
|
}
|
|
4807
7043
|
}
|
|
4808
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5mbGV4aGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2NsYXNzZXMuZmxleGhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixnQ0FBZ0MsRUFDaEMsc0JBQXNCLEVBQ3RCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsa0NBQWtDLEVBQ2xDLCtCQUErQixFQUMvQix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLDJCQUEyQixFQUMzQiw2QkFBNkIsRUFDN0Isb0NBQW9DLEVBQ3BDLDBCQUEwQixFQUMxQixXQUFXLEdBQ1osTUFBTSxhQUFhLENBQUM7QUE2RHJCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixtQkFBbUIsR0FFcEIsTUFBTSxtQkFBbUIsQ0FBQztBQXVOM0IsTUFBTSx1QkFBdUIsR0FBa0M7SUFDN0QsU0FBUyxFQUFFLE1BQU07SUFDakIsY0FBYyxFQUFFLElBQUksR0FBRyxJQUFJO0lBQzNCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUM7QUFDRixNQUFNLDJCQUEyQixHQUFxQztJQUNwRSwrQkFBK0IsRUFBRSxFQUFFO0lBQ25DLDZCQUE2QixFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUMvQyxvQkFBb0IsRUFBRSxFQUFFO0lBQ3hCLHdCQUF3QixFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUMzQyw0QkFBNEIsRUFBRSxFQUFFO0NBQ2pDLENBQUM7QUFDRixNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FB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
|
|
7044
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5mbGV4aGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2NsYXNzZXMuZmxleGhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixnQ0FBZ0MsRUFDaEMsc0JBQXNCLEVBQ3RCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsa0NBQWtDLEVBQ2xDLCtCQUErQixFQUMvQix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLDJCQUEyQixFQUMzQixtQ0FBbUMsRUFDbkMsdUNBQXVDLEVBQ3ZDLDZCQUE2QixFQUM3QixvQ0FBb0MsRUFDcEMsMEJBQTBCLEVBQzFCLFdBQVcsR0FDWixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0Isb0NBQW9DLEVBQ3BDLGtDQUFrQyxFQUNsQyxxQ0FBcUMsRUFDckMsd0NBQXdDLEdBQ3pDLE1BQU0saUJBQWlCLENBQUM7QUFpRnpCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixtQkFBbUIsR0FFcEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLGtDQUFrQyxFQUNsQywwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQix5QkFBeUIsR0FDMUIsTUFBTSwwQkFBMEIsQ0FBQztBQW1SbEMsTUFBTSx1QkFBdUIsR0FBa0M7SUFDN0QsU0FBUyxFQUFFLE1BQU07SUFDakIsY0FBYyxFQUFFLElBQUks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
|