@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.
@@ -1,4 +1,5 @@
1
1
  import { FlexHarnessStoreFormatError, FlexHarnessValidationError } from './errors.js';
2
+ import { FLEX_REVERSION_MAX_AFFECTED_WORKSPACES, 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';
2
3
  const DEFAULT_MAX_DEPTH = 12;
3
4
  const DEFAULT_MAX_BYTES = 256 * 1024;
4
5
  const MIN_MAX_BYTES = 128;
@@ -294,8 +295,7 @@ function requireString(value, path) {
294
295
  return value;
295
296
  }
296
297
  function requireOptionalString(value, path) {
297
- if (value !== undefined)
298
- requireString(value, path);
298
+ return value === undefined ? undefined : requireString(value, path);
299
299
  }
300
300
  function requireNonNegativeNumber(value, path) {
301
301
  if (typeof value !== 'number' || !Number.isFinite(value) || value < 0) {
@@ -707,13 +707,7 @@ export function assertFlexScopeSnapshot(value) {
707
707
  }
708
708
  }
709
709
  }
710
- export function assertFlexProjectionSnapshot(value) {
711
- const snapshot = validateSnapshotHeader(value, [
712
- 'schemaVersion',
713
- 'revision',
714
- 'messages',
715
- 'stagedTerminals',
716
- ]);
710
+ function validateProjectionBody(snapshot) {
717
711
  const visibleMessages = validateMessages(snapshot.messages, '$snapshot.messages');
718
712
  let projectionSessionId = visibleMessages[0]?.sessionId;
719
713
  if (visibleMessages.some((message) => message.sessionId !== projectionSessionId)) {
@@ -724,6 +718,7 @@ export function assertFlexProjectionSnapshot(value) {
724
718
  }
725
719
  const runIds = new Set();
726
720
  const stagedMessageIds = new Set();
721
+ const stagedUsers = [];
727
722
  for (let index = 0; index < snapshot.stagedTerminals.length; index++) {
728
723
  const path = `$snapshot.stagedTerminals[${index}]`;
729
724
  const terminal = requireRecord(snapshot.stagedTerminals[index], path);
@@ -756,6 +751,10 @@ export function assertFlexProjectionSnapshot(value) {
756
751
  if (assistant.status !== terminal.status) {
757
752
  throw new FlexHarnessStoreFormatError(`${path}.status does not match its assistant message.`);
758
753
  }
754
+ if (user.status !== terminal.status) {
755
+ throw new FlexHarnessStoreFormatError(`${path}.status does not match its user message.`);
756
+ }
757
+ stagedUsers.push(user);
759
758
  projectionSessionId ??= user.sessionId;
760
759
  if (user.sessionId !== projectionSessionId) {
761
760
  throw new FlexHarnessStoreFormatError(`${path} belongs to another session.`);
@@ -774,6 +773,482 @@ export function assertFlexProjectionSnapshot(value) {
774
773
  if (terminal.steps !== undefined)
775
774
  requireNonNegativeInteger(terminal.steps, `${path}.steps`);
776
775
  }
776
+ return { messages: visibleMessages, stagedUsers };
777
+ }
778
+ export function assertFlexProjectionSnapshotV1(value) {
779
+ const snapshot = validateSnapshotHeader(value, [
780
+ 'schemaVersion',
781
+ 'revision',
782
+ 'messages',
783
+ 'stagedTerminals',
784
+ ]);
785
+ validateProjectionBody(snapshot);
786
+ }
787
+ export function assertFlexProjectionSnapshotV2(value) {
788
+ assertJsonSerializable(value, '$snapshot');
789
+ const snapshot = requireRecord(value, '$snapshot');
790
+ requireOnlyKeys(snapshot, [
791
+ 'schemaVersion',
792
+ 'revision',
793
+ 'messages',
794
+ 'stagedTerminals',
795
+ 'reversionSegments',
796
+ 'revertCursor',
797
+ 'excludedRunIds',
798
+ 'pendingReversion',
799
+ 'pendingReversionReleases',
800
+ ], '$snapshot');
801
+ if (snapshot.schemaVersion !== 2) {
802
+ throw new FlexHarnessStoreFormatError('Projection snapshot schemaVersion must be 2.');
803
+ }
804
+ requireNonNegativeInteger(snapshot.revision, 'Snapshot revision');
805
+ const projectionBody = validateProjectionBody(snapshot);
806
+ const segments = Array.isArray(snapshot.reversionSegments)
807
+ ? snapshot.reversionSegments
808
+ : (() => { throw new FlexHarnessStoreFormatError('Snapshot reversionSegments must be an array.'); })();
809
+ if (segments.length > FLEX_REVERSION_MAXIMUM_LIMITS.maxSegments) {
810
+ throw new FlexHarnessStoreFormatError('Snapshot reversionSegments exceeds its hard limit.');
811
+ }
812
+ const segmentRunIds = new Set();
813
+ const segmentCaptureIds = new Set();
814
+ const segmentEventIds = new Set();
815
+ const capturingWorkspaceSegments = new Map();
816
+ for (let index = 0; index < segments.length; index++) {
817
+ const path = `$snapshot.reversionSegments[${index}]`;
818
+ const segment = requireRecord(segments[index], path);
819
+ requireOnlyKeys(segment, [
820
+ 'runId',
821
+ 'userMessageId',
822
+ 'status',
823
+ 'contextAvailable',
824
+ 'eventIds',
825
+ 'workspaceCaptured',
826
+ 'captureId',
827
+ 'workspaceReference',
828
+ ], path);
829
+ const runId = requireString(segment.runId, `${path}.runId`);
830
+ const userMessageId = requireString(segment.userMessageId, `${path}.userMessageId`);
831
+ if (segmentRunIds.has(runId)) {
832
+ throw new FlexHarnessStoreFormatError(`Snapshot contains duplicate reversion run "${runId}".`);
833
+ }
834
+ segmentRunIds.add(runId);
835
+ if (!['capturing', 'completed', 'failed', 'cancelled'].includes(String(segment.status))) {
836
+ throw new FlexHarnessStoreFormatError(`${path}.status is invalid.`);
837
+ }
838
+ if (typeof segment.contextAvailable !== 'boolean') {
839
+ throw new FlexHarnessStoreFormatError(`${path}.contextAvailable must be a boolean.`);
840
+ }
841
+ const eventIds = requireStringArray(segment.eventIds, `${path}.eventIds`);
842
+ if (eventIds.some((id) => !id) || new Set(eventIds).size !== eventIds.length) {
843
+ throw new FlexHarnessStoreFormatError(`${path}.eventIds is invalid.`);
844
+ }
845
+ for (const eventId of eventIds) {
846
+ if (segmentEventIds.has(eventId)) {
847
+ throw new FlexHarnessStoreFormatError(`Snapshot reuses reversion event "${eventId}".`);
848
+ }
849
+ segmentEventIds.add(eventId);
850
+ }
851
+ if (typeof segment.workspaceCaptured !== 'boolean') {
852
+ throw new FlexHarnessStoreFormatError(`${path}.workspaceCaptured must be a boolean.`);
853
+ }
854
+ const captureId = requireOptionalString(segment.captureId, `${path}.captureId`);
855
+ if (segment.workspaceCaptured && captureId === undefined) {
856
+ throw new FlexHarnessStoreFormatError(`${path} is capture-backed without a capture ID.`);
857
+ }
858
+ if (captureId !== undefined) {
859
+ if (segmentCaptureIds.has(captureId)) {
860
+ throw new FlexHarnessStoreFormatError(`Snapshot contains duplicate capture "${captureId}".`);
861
+ }
862
+ segmentCaptureIds.add(captureId);
863
+ if (segment.status === 'capturing')
864
+ capturingWorkspaceSegments.set(runId, captureId);
865
+ }
866
+ if (!segment.workspaceCaptured && (captureId !== undefined || segment.workspaceReference !== undefined)) {
867
+ throw new FlexHarnessStoreFormatError(`${path} is transcript-only but contains workspace capture data.`);
868
+ }
869
+ if (segment.workspaceCaptured
870
+ && segment.status !== 'capturing'
871
+ && segment.workspaceReference === undefined) {
872
+ throw new FlexHarnessStoreFormatError(`${path} is terminal but has no workspace reference.`);
873
+ }
874
+ if (segment.status === 'capturing' && segment.workspaceReference !== undefined) {
875
+ throw new FlexHarnessStoreFormatError(`${path} is capturing but already has a workspace reference.`);
876
+ }
877
+ if (segment.workspaceReference !== undefined) {
878
+ if (captureId === undefined) {
879
+ throw new FlexHarnessStoreFormatError(`${path} has a workspace reference without a capture ID.`);
880
+ }
881
+ if (Buffer.byteLength(JSON.stringify(segment.workspaceReference)) > FLEX_REVERSION_REFERENCE_MAX_BYTES) {
882
+ throw new FlexHarnessStoreFormatError(`${path}.workspaceReference exceeds its byte limit.`);
883
+ }
884
+ }
885
+ const correlatedUsers = new Set([...projectionBody.messages, ...projectionBody.stagedUsers]
886
+ .filter((message) => message.role === 'user' && message.runId === runId && message.messageId === userMessageId)
887
+ .map((message) => `${message.runId}:${message.messageId}`));
888
+ if (correlatedUsers.size !== 1) {
889
+ throw new FlexHarnessStoreFormatError(`${path} does not match exactly one projected user message.`);
890
+ }
891
+ }
892
+ requireNonNegativeInteger(snapshot.revertCursor, '$snapshot.revertCursor');
893
+ const candidateCount = segments.filter((segment) => {
894
+ const record = segment;
895
+ return record.status === 'completed';
896
+ }).length;
897
+ if (candidateCount > FLEX_REVERSION_MAXIMUM_LIMITS.maxCompletedTurns) {
898
+ throw new FlexHarnessStoreFormatError('Snapshot completed reversion turns exceed their hard limit.');
899
+ }
900
+ if (Number(snapshot.revertCursor) > candidateCount) {
901
+ throw new FlexHarnessStoreFormatError('Snapshot revertCursor exceeds its candidate count.');
902
+ }
903
+ const excludedRunIds = requireStringArray(snapshot.excludedRunIds, '$snapshot.excludedRunIds');
904
+ if (excludedRunIds.some((id) => !id)
905
+ || new Set(excludedRunIds).size !== excludedRunIds.length)
906
+ throw new FlexHarnessStoreFormatError('Snapshot excludedRunIds is invalid.');
907
+ if (excludedRunIds.length > FLEX_REVERSION_MAXIMUM_LIMITS.maxExcludedRunIds) {
908
+ throw new FlexHarnessStoreFormatError('Snapshot excludedRunIds exceeds its hard limit.');
909
+ }
910
+ if (snapshot.pendingReversion !== undefined) {
911
+ const pending = requireRecord(snapshot.pendingReversion, '$snapshot.pendingReversion');
912
+ if (pending.kind === 'capture') {
913
+ requireOnlyKeys(pending, ['kind', 'runId', 'captureId', 'state'], '$snapshot.pendingReversion');
914
+ const pendingRunId = requireString(pending.runId, '$snapshot.pendingReversion.runId');
915
+ const pendingCaptureId = requireString(pending.captureId, '$snapshot.pendingReversion.captureId');
916
+ if (!['preparing', 'prepared', 'finalizing'].includes(String(pending.state))) {
917
+ throw new FlexHarnessStoreFormatError('Snapshot pending capture state is invalid.');
918
+ }
919
+ const matches = segments.filter((segment) => {
920
+ const record = segment;
921
+ return record.runId === pendingRunId
922
+ && record.captureId === pendingCaptureId
923
+ && record.workspaceCaptured === true
924
+ && record.status === 'capturing';
925
+ });
926
+ if (matches.length !== 1) {
927
+ throw new FlexHarnessStoreFormatError('Snapshot pending capture does not match exactly one segment.');
928
+ }
929
+ capturingWorkspaceSegments.delete(pendingRunId);
930
+ }
931
+ else if (pending.kind === 'apply') {
932
+ requireOnlyKeys(pending, [
933
+ 'kind',
934
+ 'operationId',
935
+ 'direction',
936
+ 'fromCursor',
937
+ 'toCursor',
938
+ 'segmentRunIds',
939
+ 'appliedRunIds',
940
+ ], '$snapshot.pendingReversion');
941
+ requireString(pending.operationId, '$snapshot.pendingReversion.operationId');
942
+ if (!['undo', 'redo'].includes(String(pending.direction))) {
943
+ throw new FlexHarnessStoreFormatError('Snapshot pending apply direction is invalid.');
944
+ }
945
+ requireNonNegativeInteger(pending.fromCursor, '$snapshot.pendingReversion.fromCursor');
946
+ requireNonNegativeInteger(pending.toCursor, '$snapshot.pendingReversion.toCursor');
947
+ const pendingRuns = requireStringArray(pending.segmentRunIds, '$snapshot.pendingReversion.segmentRunIds');
948
+ const appliedRuns = requireStringArray(pending.appliedRunIds, '$snapshot.pendingReversion.appliedRunIds');
949
+ if (new Set(pendingRuns).size !== pendingRuns.length || new Set(appliedRuns).size !== appliedRuns.length) {
950
+ throw new FlexHarnessStoreFormatError('Snapshot pending apply run IDs are invalid.');
951
+ }
952
+ if (appliedRuns.some((runId) => !pendingRuns.includes(runId))) {
953
+ throw new FlexHarnessStoreFormatError('Snapshot pending apply progress is invalid.');
954
+ }
955
+ const fromCursor = Number(pending.fromCursor);
956
+ const toCursor = Number(pending.toCursor);
957
+ const direction = pending.direction;
958
+ const completed = segments.filter((segment) => segment.status === 'completed');
959
+ if (fromCursor !== Number(snapshot.revertCursor)
960
+ || (direction === 'undo' && !(toCursor >= 0 && toCursor < fromCursor))
961
+ || (direction === 'redo' && !(toCursor > fromCursor && toCursor <= completed.length))) {
962
+ throw new FlexHarnessStoreFormatError('Snapshot pending apply cursor movement is invalid.');
963
+ }
964
+ const rangeStart = Math.min(fromCursor, toCursor);
965
+ const rangeEnd = Math.max(fromCursor, toCursor);
966
+ const first = completed[rangeStart];
967
+ if (!first)
968
+ throw new FlexHarnessStoreFormatError('Snapshot pending apply has no target candidate.');
969
+ const firstRunId = first.runId;
970
+ const start = rangeStart === 0
971
+ ? 0
972
+ : segments.findIndex((segment) => segment.runId === firstRunId);
973
+ const next = completed[rangeEnd];
974
+ const end = next
975
+ ? segments.findIndex((segment) => segment.runId === next.runId)
976
+ : segments.length;
977
+ const exactRuns = segments.slice(start, end).map((segment) => String(segment.runId));
978
+ if (JSON.stringify(pendingRuns) !== JSON.stringify(exactRuns)) {
979
+ throw new FlexHarnessStoreFormatError('Snapshot pending apply segment unit is invalid.');
980
+ }
981
+ const applyOrder = direction === 'undo' ? [...exactRuns].reverse() : exactRuns;
982
+ if (JSON.stringify(appliedRuns) !== JSON.stringify(applyOrder.slice(0, appliedRuns.length))) {
983
+ throw new FlexHarnessStoreFormatError('Snapshot pending apply progress is out of order.');
984
+ }
985
+ }
986
+ else {
987
+ throw new FlexHarnessStoreFormatError('Snapshot pendingReversion kind is invalid.');
988
+ }
989
+ }
990
+ if (capturingWorkspaceSegments.size > 0) {
991
+ throw new FlexHarnessStoreFormatError('Snapshot contains a capture-backed capturing segment without exact pending ownership.');
992
+ }
993
+ if (!Array.isArray(snapshot.pendingReversionReleases)) {
994
+ throw new FlexHarnessStoreFormatError('Snapshot pendingReversionReleases must be an array.');
995
+ }
996
+ if (snapshot.pendingReversionReleases.length
997
+ > FLEX_REVERSION_MAXIMUM_LIMITS.maxPendingReversionReleases) {
998
+ throw new FlexHarnessStoreFormatError('Snapshot pending reversion releases exceed their hard limit.');
999
+ }
1000
+ const releaseCaptureIds = new Set();
1001
+ for (let index = 0; index < snapshot.pendingReversionReleases.length; index++) {
1002
+ const path = `$snapshot.pendingReversionReleases[${index}]`;
1003
+ const release = requireRecord(snapshot.pendingReversionReleases[index], path);
1004
+ requireOnlyKeys(release, ['runId', 'captureId', 'reference'], path);
1005
+ requireString(release.runId, `${path}.runId`);
1006
+ const captureId = requireString(release.captureId, `${path}.captureId`);
1007
+ if (releaseCaptureIds.has(captureId)) {
1008
+ throw new FlexHarnessStoreFormatError(`Snapshot contains duplicate release capture "${captureId}".`);
1009
+ }
1010
+ releaseCaptureIds.add(captureId);
1011
+ if (!Object.prototype.hasOwnProperty.call(release, 'reference')) {
1012
+ throw new FlexHarnessStoreFormatError(`${path}.reference is required.`);
1013
+ }
1014
+ if (Buffer.byteLength(JSON.stringify(release.reference)) > FLEX_REVERSION_REFERENCE_MAX_BYTES) {
1015
+ throw new FlexHarnessStoreFormatError(`${path}.reference exceeds its byte limit.`);
1016
+ }
1017
+ }
1018
+ }
1019
+ function requireBoundedString(value, path, maxBytes) {
1020
+ const result = requireString(value, path);
1021
+ if (Buffer.byteLength(result, 'utf8') > maxBytes) {
1022
+ throw new FlexHarnessStoreFormatError(`${path} exceeds its byte limit.`);
1023
+ }
1024
+ return result;
1025
+ }
1026
+ function validateAffectedWorkspaces(value, path) {
1027
+ if (!Array.isArray(value)) {
1028
+ throw new FlexHarnessStoreFormatError(`${path} must be an array.`);
1029
+ }
1030
+ if (value.length > FLEX_REVERSION_MAX_AFFECTED_WORKSPACES) {
1031
+ throw new FlexHarnessStoreFormatError(`${path} exceeds its item limit.`);
1032
+ }
1033
+ const ids = new Set();
1034
+ for (let index = 0; index < value.length; index++) {
1035
+ const workspacePath = `${path}[${index}]`;
1036
+ const workspace = requireRecord(value[index], workspacePath);
1037
+ requireOnlyKeys(workspace, ['id', 'label'], workspacePath);
1038
+ const id = requireBoundedString(workspace.id, `${workspacePath}.id`, FLEX_REVERSION_WORKSPACE_ID_MAX_BYTES);
1039
+ if (!id.trim()) {
1040
+ throw new FlexHarnessStoreFormatError(`${workspacePath}.id must contain non-whitespace characters.`);
1041
+ }
1042
+ const label = requireBoundedString(workspace.label, `${workspacePath}.label`, FLEX_REVERSION_WORKSPACE_LABEL_MAX_BYTES);
1043
+ if (!label.trim()) {
1044
+ throw new FlexHarnessStoreFormatError(`${workspacePath}.label must contain non-whitespace characters.`);
1045
+ }
1046
+ if (ids.has(id)) {
1047
+ throw new FlexHarnessStoreFormatError(`${path} contains duplicate workspace "${id}".`);
1048
+ }
1049
+ ids.add(id);
1050
+ }
1051
+ }
1052
+ export function assertFlexProjectionSnapshotV3(value) {
1053
+ assertJsonSerializable(value, '$snapshot');
1054
+ const snapshot = requireRecord(value, '$snapshot');
1055
+ requireOnlyKeys(snapshot, [
1056
+ 'schemaVersion',
1057
+ 'revision',
1058
+ 'messages',
1059
+ 'stagedTerminals',
1060
+ 'reversionSegments',
1061
+ 'revertCursor',
1062
+ 'excludedRunIds',
1063
+ 'pendingReversion',
1064
+ 'pendingReversionReleases',
1065
+ ], '$snapshot');
1066
+ if (snapshot.schemaVersion !== 3) {
1067
+ throw new FlexHarnessStoreFormatError('Projection snapshot schemaVersion must be 3.');
1068
+ }
1069
+ if (!Array.isArray(snapshot.reversionSegments)) {
1070
+ throw new FlexHarnessStoreFormatError('Snapshot reversionSegments must be an array.');
1071
+ }
1072
+ const retainedCaptureIds = new Set();
1073
+ for (let index = 0; index < snapshot.reversionSegments.length; index++) {
1074
+ const path = `$snapshot.reversionSegments[${index}]`;
1075
+ const segment = requireRecord(snapshot.reversionSegments[index], path);
1076
+ requireOnlyKeys(segment, [
1077
+ 'runId',
1078
+ 'userMessageId',
1079
+ 'status',
1080
+ 'contextAvailable',
1081
+ 'eventIds',
1082
+ 'workspaceCaptured',
1083
+ 'captureId',
1084
+ 'workspaceReference',
1085
+ 'protocolVersion',
1086
+ 'provenance',
1087
+ 'disposition',
1088
+ 'affectedWorkspaces',
1089
+ 'reasonCode',
1090
+ ], path);
1091
+ const protocolVersion = segment.protocolVersion;
1092
+ if (protocolVersion !== 1 && protocolVersion !== 2) {
1093
+ throw new FlexHarnessStoreFormatError(`${path}.protocolVersion is invalid.`);
1094
+ }
1095
+ if (segment.provenance !== 'transcript' && segment.provenance !== 'workspace') {
1096
+ throw new FlexHarnessStoreFormatError(`${path}.provenance is invalid.`);
1097
+ }
1098
+ if (segment.workspaceCaptured !== (segment.provenance === 'workspace')) {
1099
+ throw new FlexHarnessStoreFormatError(`${path}.workspaceCaptured does not match its provenance.`);
1100
+ }
1101
+ if (protocolVersion === 2 && segment.provenance !== 'workspace') {
1102
+ throw new FlexHarnessStoreFormatError(`${path} uses protocol 2 without workspace provenance.`);
1103
+ }
1104
+ if (protocolVersion === 1 && segment.affectedWorkspaces !== undefined) {
1105
+ throw new FlexHarnessStoreFormatError(`${path} protocol 1 contains affected workspace metadata.`);
1106
+ }
1107
+ const status = String(segment.status);
1108
+ const disposition = segment.disposition;
1109
+ const captureId = segment.captureId;
1110
+ if (captureId !== undefined)
1111
+ retainedCaptureIds.add(String(captureId));
1112
+ if (segment.affectedWorkspaces !== undefined) {
1113
+ validateAffectedWorkspaces(segment.affectedWorkspaces, `${path}.affectedWorkspaces`);
1114
+ }
1115
+ if (segment.reasonCode !== undefined) {
1116
+ const reasonCode = requireBoundedString(segment.reasonCode, `${path}.reasonCode`, FLEX_REVERSION_REASON_CODE_MAX_BYTES);
1117
+ if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/u.test(reasonCode)) {
1118
+ throw new FlexHarnessStoreFormatError(`${path}.reasonCode is invalid.`);
1119
+ }
1120
+ }
1121
+ if (segment.provenance === 'transcript') {
1122
+ if (disposition !== undefined
1123
+ || captureId !== undefined
1124
+ || segment.workspaceReference !== undefined
1125
+ || segment.affectedWorkspaces !== undefined
1126
+ || segment.reasonCode !== undefined)
1127
+ throw new FlexHarnessStoreFormatError(`${path} transcript provenance contains workspace data.`);
1128
+ continue;
1129
+ }
1130
+ if (status === 'capturing') {
1131
+ if (disposition !== 'pending' || captureId === undefined || segment.workspaceReference !== undefined) {
1132
+ throw new FlexHarnessStoreFormatError(`${path} has invalid pending workspace ownership.`);
1133
+ }
1134
+ if (segment.affectedWorkspaces !== undefined || segment.reasonCode !== undefined) {
1135
+ throw new FlexHarnessStoreFormatError(`${path} pending workspace capture has terminal metadata.`);
1136
+ }
1137
+ continue;
1138
+ }
1139
+ if (protocolVersion === 1 && disposition !== 'revertible') {
1140
+ throw new FlexHarnessStoreFormatError(`${path} terminal protocol-1 workspace capture is not revertible.`);
1141
+ }
1142
+ if (protocolVersion === 2 && !['revertible', 'no-change', 'nonrevertible'].includes(String(disposition))) {
1143
+ throw new FlexHarnessStoreFormatError(`${path} terminal protocol-2 capture lacks a conclusive disposition.`);
1144
+ }
1145
+ if (disposition === 'revertible') {
1146
+ if (captureId === undefined || segment.workspaceReference === undefined) {
1147
+ throw new FlexHarnessStoreFormatError(`${path} revertible capture lacks retained ownership.`);
1148
+ }
1149
+ if (protocolVersion === 2 && segment.affectedWorkspaces === undefined) {
1150
+ throw new FlexHarnessStoreFormatError(`${path} revertible protocol-2 capture lacks affected workspaces.`);
1151
+ }
1152
+ if (segment.reasonCode !== undefined) {
1153
+ throw new FlexHarnessStoreFormatError(`${path} revertible capture has a reason code.`);
1154
+ }
1155
+ }
1156
+ else {
1157
+ if (captureId !== undefined || segment.workspaceReference !== undefined) {
1158
+ throw new FlexHarnessStoreFormatError(`${path} terminal disposition retains segment ownership.`);
1159
+ }
1160
+ if (disposition === 'no-change') {
1161
+ if (Array.isArray(segment.affectedWorkspaces) && segment.affectedWorkspaces.length > 0) {
1162
+ throw new FlexHarnessStoreFormatError(`${path} no-change capture affects a workspace.`);
1163
+ }
1164
+ if (segment.reasonCode !== undefined) {
1165
+ throw new FlexHarnessStoreFormatError(`${path} no-change capture has a reason code.`);
1166
+ }
1167
+ }
1168
+ if (disposition === 'nonrevertible' && segment.reasonCode === undefined) {
1169
+ throw new FlexHarnessStoreFormatError(`${path} nonrevertible capture lacks a reason code.`);
1170
+ }
1171
+ }
1172
+ }
1173
+ if (snapshot.pendingReversion !== undefined) {
1174
+ const pending = requireRecord(snapshot.pendingReversion, '$snapshot.pendingReversion');
1175
+ if (pending.kind === 'capture') {
1176
+ requireOnlyKeys(pending, ['kind', 'runId', 'captureId', 'state', 'protocolVersion'], '$snapshot.pendingReversion');
1177
+ if (pending.protocolVersion !== 1 && pending.protocolVersion !== 2) {
1178
+ throw new FlexHarnessStoreFormatError('$snapshot.pendingReversion.protocolVersion is invalid.');
1179
+ }
1180
+ const matching = snapshot.reversionSegments.filter((entry) => {
1181
+ const segment = entry;
1182
+ return segment.runId === pending.runId
1183
+ && segment.captureId === pending.captureId
1184
+ && segment.protocolVersion === pending.protocolVersion
1185
+ && segment.status === 'capturing'
1186
+ && segment.disposition === 'pending';
1187
+ });
1188
+ if (matching.length !== 1) {
1189
+ throw new FlexHarnessStoreFormatError('Snapshot pending capture does not match exactly one segment.');
1190
+ }
1191
+ }
1192
+ }
1193
+ if (!Array.isArray(snapshot.pendingReversionReleases)) {
1194
+ throw new FlexHarnessStoreFormatError('Snapshot pendingReversionReleases must be an array.');
1195
+ }
1196
+ const releaseCaptureIds = new Set();
1197
+ for (let index = 0; index < snapshot.pendingReversionReleases.length; index++) {
1198
+ const path = `$snapshot.pendingReversionReleases[${index}]`;
1199
+ const release = requireRecord(snapshot.pendingReversionReleases[index], path);
1200
+ requireOnlyKeys(release, ['runId', 'captureId', 'reference', 'protocolVersion'], path);
1201
+ const captureId = requireString(release.captureId, `${path}.captureId`);
1202
+ if (release.protocolVersion !== 1 && release.protocolVersion !== 2) {
1203
+ throw new FlexHarnessStoreFormatError(`${path}.protocolVersion is invalid.`);
1204
+ }
1205
+ if (releaseCaptureIds.has(captureId) || retainedCaptureIds.has(captureId)) {
1206
+ throw new FlexHarnessStoreFormatError(`${path} has duplicate durable capture ownership.`);
1207
+ }
1208
+ releaseCaptureIds.add(captureId);
1209
+ }
1210
+ const compatibleV2 = {
1211
+ ...snapshot,
1212
+ schemaVersion: 2,
1213
+ reversionSegments: snapshot.reversionSegments.map((entry) => {
1214
+ const segment = entry;
1215
+ return {
1216
+ runId: segment.runId,
1217
+ userMessageId: segment.userMessageId,
1218
+ status: segment.status,
1219
+ contextAvailable: segment.contextAvailable,
1220
+ eventIds: segment.eventIds,
1221
+ workspaceCaptured: segment.provenance === 'workspace'
1222
+ && (segment.status === 'capturing' || segment.disposition === 'revertible'),
1223
+ ...(segment.captureId === undefined ? {} : { captureId: segment.captureId }),
1224
+ ...(segment.workspaceReference === undefined
1225
+ ? {}
1226
+ : { workspaceReference: segment.workspaceReference }),
1227
+ };
1228
+ }),
1229
+ ...(snapshot.pendingReversion === undefined
1230
+ ? {}
1231
+ : {
1232
+ pendingReversion: (() => {
1233
+ const { protocolVersion: _protocolVersion, ...pending } = snapshot.pendingReversion;
1234
+ return pending;
1235
+ })(),
1236
+ }),
1237
+ pendingReversionReleases: snapshot.pendingReversionReleases.map((entry) => {
1238
+ const { protocolVersion: _protocolVersion, ...release } = entry;
1239
+ return release;
1240
+ }),
1241
+ };
1242
+ assertFlexProjectionSnapshotV2(compatibleV2);
1243
+ }
1244
+ export function assertFlexProjectionSnapshot(value) {
1245
+ const record = requireRecord(value, '$snapshot');
1246
+ if (record.schemaVersion === 1)
1247
+ assertFlexProjectionSnapshotV1(value);
1248
+ else if (record.schemaVersion === 2)
1249
+ assertFlexProjectionSnapshotV2(value);
1250
+ else
1251
+ assertFlexProjectionSnapshotV3(value);
777
1252
  }
778
1253
  export function assertFlexPermissionSnapshot(value) {
779
1254
  const snapshot = validateSnapshotHeader(value, [
@@ -849,4 +1324,4 @@ export function serializeAgentMessages(messages) {
849
1324
  assertJsonSerializable(serialized, '$messages');
850
1325
  return serialized;
851
1326
  }
852
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3V0aWxzLmpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBVXRGLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBQzdCLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztBQUNyQyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUM7QUFFMUIsU0FBUyxhQUFhLENBQUMsS0FBYTtJQUNsQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLE9BQU8sU0FBUyxLQUFLLE1BQU0sQ0FBQyxTQUFTLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQztBQUM5RCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsSUFBWSxFQUFFLFNBQXFDLEVBQUU7SUFDNUUsT0FBTztRQUNMLFNBQVMsRUFBRSxJQUFJO1FBQ2YsR0FBRyxNQUFNO0tBQ1YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFhO0lBQ2hDLElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxTQUEwQixFQUFFO0lBQzVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFR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
1327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3V0aWxzLmpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RGLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdEMsNkJBQTZCLEVBQzdCLG9DQUFvQyxFQUNwQyxrQ0FBa0MsRUFDbEMscUNBQXFDLEVBQ3JDLHdDQUF3QyxHQUN6QyxNQUFNLGlCQUFpQixDQUFDO0FBWXpCLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBQzdCLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztBQUNyQyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUM7QUFFMUIsU0FBUyxhQUFhLENBQUMsS0FBYTtJQUNsQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLE9BQU8sU0FBUyxLQUFLLE1BQU0sQ0FBQyxTQUFTLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQztBQUM5RCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsSUFBWSxFQUFFLFNBQXFDLEVBQUU7SUFDNUUsT0FBTztRQUNMLFNBQVMsRUFBRSxJQUFJO1FBQ2YsR0FBRyxNQUFNO0tBQ1YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFhO0lBQ2hDLElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMx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