@outbuild-company/schedule-core 1.7.0 → 1.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/dist/index.d.cts CHANGED
@@ -153,6 +153,8 @@ interface Link {
153
153
  target: ActivityId;
154
154
  type: LinkType;
155
155
  lag: number;
156
+ freeSlackHours: number | null;
157
+ isCritical: boolean;
156
158
  ganttId?: number;
157
159
  sectorId?: number;
158
160
  proplannerId?: number;
@@ -377,7 +379,7 @@ interface ActivityBatchItem {
377
379
  readonly parent: ActivityBatchParentReference;
378
380
  readonly index?: number;
379
381
  readonly activityId?: ActivityId;
380
- readonly overrides?: CreationOverrides;
382
+ readonly overrides?: ActivityCreationOverrides;
381
383
  }
382
384
  interface ActivityBatchLinkInput {
383
385
  readonly source: ActivityBatchReference;
@@ -469,7 +471,7 @@ type DispatchAction = {
469
471
  parentId: ActivityId | '0';
470
472
  afterSiblingId?: ActivityId | undefined;
471
473
  beforeSiblingId?: ActivityId | undefined;
472
- overrides?: CreationOverrides;
474
+ overrides?: ActivityCreationOverrides;
473
475
  activityId?: ActivityId;
474
476
  eventSource?: string | undefined;
475
477
  } | {
@@ -496,8 +498,8 @@ type DispatchAction = {
496
498
  activityId: ActivityId;
497
499
  newValue: 0 | 100;
498
500
  /**
499
- * CP15 (ISSUE-066): el origen se DECLARA, no se adivina (mismo patron
500
- * que inputUnit). 'action-button' es el unico origen con salvoconducto
501
+ * CP15 (ISSUE-066): el origen se DECLARA, no se adivina. 'action-button'
502
+ * es el unico origen con salvoconducto
501
503
  * de negocio para actividades en Lookahead (espejo del flag
502
504
  * progressChangedByActionButton que consume parseToUpdate en el
503
505
  * backend; guia agents/progreso-lookahead.md). Sin origen declarado
@@ -535,46 +537,22 @@ type DispatchAction = {
535
537
  activityId: ActivityId;
536
538
  pendingRequests: ReadonlyArray<PendingRequest>;
537
539
  eventSource?: string;
538
- } | {
539
- kind: 'sir-approve';
540
- activityId: ActivityId;
541
- approvedRequestId: string;
542
- startDate: unknown;
543
- endDate: unknown;
544
- eventSource?: string;
545
540
  } | {
546
541
  kind: 'activity-lookahead-sync';
547
542
  activityIds: ReadonlyArray<ActivityId>;
548
543
  isLookahead: boolean;
549
544
  hasLookaheadTasks: boolean;
545
+ persistedProgress?: number;
550
546
  acknowledgePersistedLookahead?: boolean;
551
547
  eventSource?: string;
552
548
  };
549
+ type ActivityCreationOverrides = Omit<CreationOverrides, 'durationHours'> & {
550
+ readonly durationDays?: number;
551
+ };
553
552
  type InternalDispatchAction = DispatchAction | ActivityBatchAction;
554
553
  interface DispatchOptions {
555
554
  skipAutoSchedule?: boolean;
556
555
  skipCriticalPath?: boolean;
557
- inputUnit?: 'days' | 'hours';
558
- /**
559
- * Reversible preview mode (SIR). The edit mutates internal state with the
560
- * exact same scheduling rules as a real edit (calendar, link/autoschedule
561
- * propagation, parents, derived fields), but leaves no session trace: no
562
- * save-tracker dirty, no undo entry, no SIR auto-reject effect or
563
- * pendingRequestIds mutation, and the schedule revision does not move.
564
- * The result carries `preview` with the exact inverse ChangeSet; exiting
565
- * the preview is `ScheduleCore.applyPreviewInverse(inverse)`.
566
- */
567
- preview?: boolean;
568
- }
569
- interface PreviewDispatchInfo {
570
- /**
571
- * Exact inverse of `changes`. Note its `after` images were captured while
572
- * the preview edit was still applied; project the ChangeSet RETURNED by
573
- * `applyPreviewInverse`, which re-reads them from the restored state.
574
- */
575
- inverse: ChangeSet;
576
- /** `getScheduleRevision()` at the time the preview was computed. */
577
- revision: number;
578
556
  }
579
557
  type DispatchResult = {
580
558
  ok: true;
@@ -582,8 +560,6 @@ type DispatchResult = {
582
560
  verdicts?: ReadonlyArray<DatesBatchVerdict>;
583
561
  activityVerdicts?: ReadonlyArray<DatesBatchVerdict>;
584
562
  linkVerdicts?: ReadonlyArray<LinkBatchVerdict>;
585
- /** Present only when dispatched with `DispatchOptions.preview`. */
586
- preview?: PreviewDispatchInfo;
587
563
  } | {
588
564
  ok: false;
589
565
  reason: string;
@@ -834,6 +810,7 @@ declare class ScheduleCore {
834
810
  private readonly _activityClipboard;
835
811
  private _status;
836
812
  private readonly coreRuntime;
813
+ private readonly _isFork;
837
814
  private readonly _undo;
838
815
  private _opQueue;
839
816
  private _scheduleRevision;
@@ -865,6 +842,7 @@ declare class ScheduleCore {
865
842
  private _activeCriticalPath;
866
843
  constructor(input: ScheduleCoreInput);
867
844
  get ready(): Promise<void>;
845
+ fork(): Promise<ScheduleCore>;
868
846
  get criticalPathReady(): Promise<{
869
847
  changes: ChangeSet;
870
848
  } | null>;
@@ -883,6 +861,7 @@ declare class ScheduleCore {
883
861
  getIndentTargetParentIds(activityIds: ReadonlyArray<ActivityId | string>): readonly string[];
884
862
  getChildrenView(parentId: ActivityId | '0'): ReadonlyArray<Readonly<CoreActivity>>;
885
863
  getLinkView(id: LinkId): Readonly<Link> | null;
864
+ getLinksForActivityView(activityId: ActivityId): ReadonlyArray<Readonly<Link>>;
886
865
  getAllLinksView(): ReadonlyArray<Readonly<Link>>;
887
866
  auditEffectiveGraph(): EffectiveGraphAudit;
888
867
  getProperty<Property extends keyof CoreActivity>(activityId: ActivityId, property: Property): CoreActivity[Property] | null;
@@ -901,28 +880,14 @@ declare class ScheduleCore {
901
880
  isCustomIdInUse(customId: string, currentCustomId?: string | null): boolean;
902
881
  getProjectWorkHours(): ProjectWorkHours | null;
903
882
  getModifiedLinks(): ReadonlyArray<Readonly<Link>>;
883
+ getNewLinks(): ReadonlyArray<Readonly<Link>>;
904
884
  getModifiedActivities(): ReadonlyArray<Readonly<CoreActivity>>;
885
+ getNewActivities(): ReadonlyArray<Readonly<CoreActivity>>;
905
886
  hasUnsavedChanges(): boolean;
906
- /**
907
- * Read-only view of the internal schedule revision. It moves once per
908
- * substantive CANONICAL mutation (dispatch, undo, redo). It does NOT move
909
- * for a preview dispatch nor for `applyPreviewInverse`: comparing the value
910
- * captured in `PreviewDispatchInfo.revision` against the current one
911
- * answers "did the schedule change while the preview was open".
912
- */
887
+ /** Read-only revision; moves once per substantive mutation. */
913
888
  getScheduleRevision(): number;
914
- /**
915
- * Exit channel for a preview dispatch (`DispatchOptions.preview`): applies
916
- * the inverse ChangeSet the preview returned, restoring the canonical
917
- * state exactly. Like the preview itself it leaves no session trace: no
918
- * save-tracker dirty, no undo entry, no effects, and the schedule revision
919
- * does not move (see `getScheduleRevision`).
920
- *
921
- * Returns the ChangeSet to project to the view layer: the same changes as
922
- * `inverse`, but with `after` images re-read from the restored state (the
923
- * ones inside `inverse` were captured while the preview edit was applied).
924
- */
925
- applyPreviewInverse(inverse: ChangeSet): Promise<ChangeSet>;
889
+ getCanonicalDigest(): string;
890
+ createProjectionChangeSetFrom(source: ScheduleCore): ChangeSet;
926
891
  getDeletedActivitiesSinceLastSave(): ReadonlyArray<Readonly<DeletedActivitySnapshot>>;
927
892
  getDeletedLinksSinceLastSave(): ReadonlyArray<Readonly<DeletedLinkSnapshot>>;
928
893
  private _enqueue;
@@ -1146,7 +1111,6 @@ declare const DISPATCH_ACTION_KIND: {
1146
1111
  readonly FILTER_SET: "filter-set";
1147
1112
  readonly SORT_SET: "sort-set";
1148
1113
  readonly SIR_SYNC: "sir-sync";
1149
- readonly SIR_APPROVE: "sir-approve";
1150
1114
  readonly ACTIVITY_LOOKAHEAD_SYNC: "activity-lookahead-sync";
1151
1115
  };
1152
1116
  declare const DISPATCH_ACTION_KINDS: ReadonlyArray<DispatchActionKind>;
@@ -1178,12 +1142,11 @@ declare const REJECTION_REASON: {
1178
1142
  readonly ANCHOR_SIBLING_NOT_FOUND: "anchor_sibling_not_found";
1179
1143
  readonly ANCHOR_SIBLING_WRONG_PARENT: "anchor_sibling_wrong_parent";
1180
1144
  readonly PARENT_FROZEN_BY_SIR: "parent_frozen_by_sir";
1181
- readonly SIR_REQUEST_NOT_PENDING: "sir_request_not_pending";
1182
- readonly PREVIEW_UNSUPPORTED_ACTION: "preview_unsupported_action";
1183
1145
  readonly CANNOT_MOVE_INTO_OWN_DESCENDANT: "cannot_move_into_own_descendant";
1184
1146
  readonly INDENT_NO_ELIGIBLE_SIBLING: "indent_no_eligible_sibling";
1185
1147
  readonly OUTDENT_ROOT_LEVEL_NOT_EDITABLE: "outdent_root_level_not_editable";
1186
1148
  readonly HIERARCHY_CYCLE: "hierarchy_cycle";
1149
+ readonly SANDBOX_PERSISTENCE_FORBIDDEN: "sandbox_persistence_forbidden";
1187
1150
  readonly INVALID_PROGRESS_VALUE: "invalid_progress_value_must_be_0_or_100";
1188
1151
  };
1189
1152
  type DispatchRejectReason = (typeof REJECTION_REASON)[keyof typeof REJECTION_REASON];
@@ -1197,4 +1160,4 @@ declare const DISPATCH_TRACK_EVENT: {
1197
1160
  };
1198
1161
  type DispatchTrackEvent = (typeof DISPATCH_TRACK_EVENT)[keyof typeof DISPATCH_TRACK_EVENT];
1199
1162
 
1200
- export { ACTIVITY_TYPE, type ActivityBaselineSnapshot, type ActivityBatchAction, type ActivityBatchItem, type ActivityBatchLinkInput, type ActivityBatchMode, type ActivityBatchParentReference, type ActivityBatchReference, type ActivityCreter, type ActivityId, type ActivityStatus, type ActivityType, type BackendActivityInput, type BackendCalendarExceptionInput, type BackendCalendarInput, type BackendLinkInput, type BackendScheduleInput, type BackendSectorInput, type BackendShiftInput, type BaselinePoint, type BaselineVersion, type BranchOrderChange, CALENDAR_UNIT, COLUMN, CONSTRAINT_TYPE, CONSTRAINT_TYPE_TO_LABEL, CREATION_KIND, type Calendar, type CalendarId, type CalendarLike, type CalendarUnit, type CalendarWorktime, type ChangeSet, type ChangeSetSource, type ColumnName, type ConstraintType, type ConstraintWarning, type CoreActivity, type CoreBaselinePoint, type CreationKind, type CreationOverrides, type CriticalPathResult, DEFAULT_HOURS_PER_DAY, DISPATCH_ACTION_KIND, DISPATCH_ACTION_KINDS, DISPATCH_TRACK_EVENT, type DateGesture, type DateGesturePreview, type DatesBatchVerdict, type DeletedActivitySnapshot, type DeletedLinkSnapshot, type DispatchAction, type DispatchActionKind, type DispatchOptions, type DispatchRejectReason, type DispatchResult, type DispatchTrackEvent, type EditableColumnName, type EffectiveGraphAudit, type EntityChange, type ExpectedProgressAdapter, type FilterCriterion, type FilterCriterionValue, type FilterDateRange, type FilterField, type FilterOperator, type FilterState, LINK_CODE_TO_TYPE, LINK_TYPE, LINK_TYPE_CODE, type Link, type LinkBatchVerdict, type LinkId, type LinkType, type LinkTypeCode, type LinksBatchOperation, NEW_ACTIVITY_DEFAULTS, type OrderRule, type OrderState, type ParsedInput, type PendingRequest, type PersistedEntityIdentity, type PipelineColumnName, type PreviewDispatchInfo, type ProjectWorkHours, REJECTION_REASON, ROOT_PARENT_ID, SCHEDULE_CORE_STATUS, STATUS, ScheduleCore, type ScheduleCoreInput, type ScheduleCoreReporter, type ScheduleCoreStatus, type ScheduleEffect, type SectorMetadata, type StaticActivityDefaults, type StatusCriteria, type TrackingEvent, type UndoOptions, type ViewStateChange, type ViewStatePropChange, WORK_TIME_DIRECTION, type WithProplannerId, type WorkTimeDirection, checkNoUpdatedLinks, computeExpectedProgress, expectedProgressFromBaseline, getActiveBaseline, getUnsavedActivities, isRootParent, normalizeParentKey, parseFromBackend, willRunCriticalPath, yieldToBrowser };
1163
+ export { ACTIVITY_TYPE, type ActivityBaselineSnapshot, type ActivityBatchAction, type ActivityBatchItem, type ActivityBatchLinkInput, type ActivityBatchMode, type ActivityBatchParentReference, type ActivityBatchReference, type ActivityCreationOverrides, type ActivityCreter, type ActivityId, type ActivityStatus, type ActivityType, type BackendActivityInput, type BackendCalendarExceptionInput, type BackendCalendarInput, type BackendLinkInput, type BackendScheduleInput, type BackendSectorInput, type BackendShiftInput, type BaselinePoint, type BaselineVersion, type BranchOrderChange, CALENDAR_UNIT, COLUMN, CONSTRAINT_TYPE, CONSTRAINT_TYPE_TO_LABEL, CREATION_KIND, type Calendar, type CalendarId, type CalendarLike, type CalendarUnit, type CalendarWorktime, type ChangeSet, type ChangeSetSource, type ColumnName, type ConstraintType, type ConstraintWarning, type CoreActivity, type CoreBaselinePoint, type CreationKind, type CriticalPathResult, DEFAULT_HOURS_PER_DAY, DISPATCH_ACTION_KIND, DISPATCH_ACTION_KINDS, DISPATCH_TRACK_EVENT, type DateGesture, type DateGesturePreview, type DatesBatchVerdict, type DeletedActivitySnapshot, type DeletedLinkSnapshot, type DispatchAction, type DispatchActionKind, type DispatchOptions, type DispatchRejectReason, type DispatchResult, type DispatchTrackEvent, type EditableColumnName, type EffectiveGraphAudit, type EntityChange, type ExpectedProgressAdapter, type FilterCriterion, type FilterCriterionValue, type FilterDateRange, type FilterField, type FilterOperator, type FilterState, LINK_CODE_TO_TYPE, LINK_TYPE, LINK_TYPE_CODE, type Link, type LinkBatchVerdict, type LinkId, type LinkType, type LinkTypeCode, type LinksBatchOperation, NEW_ACTIVITY_DEFAULTS, type OrderRule, type OrderState, type ParsedInput, type PendingRequest, type PersistedEntityIdentity, type PipelineColumnName, type ProjectWorkHours, REJECTION_REASON, ROOT_PARENT_ID, SCHEDULE_CORE_STATUS, STATUS, ScheduleCore, type ScheduleCoreInput, type ScheduleCoreReporter, type ScheduleCoreStatus, type ScheduleEffect, type SectorMetadata, type StaticActivityDefaults, type StatusCriteria, type TrackingEvent, type UndoOptions, type ViewStateChange, type ViewStatePropChange, WORK_TIME_DIRECTION, type WithProplannerId, type WorkTimeDirection, checkNoUpdatedLinks, computeExpectedProgress, expectedProgressFromBaseline, getActiveBaseline, getUnsavedActivities, isRootParent, normalizeParentKey, parseFromBackend, willRunCriticalPath, yieldToBrowser };
package/dist/index.d.ts CHANGED
@@ -153,6 +153,8 @@ interface Link {
153
153
  target: ActivityId;
154
154
  type: LinkType;
155
155
  lag: number;
156
+ freeSlackHours: number | null;
157
+ isCritical: boolean;
156
158
  ganttId?: number;
157
159
  sectorId?: number;
158
160
  proplannerId?: number;
@@ -377,7 +379,7 @@ interface ActivityBatchItem {
377
379
  readonly parent: ActivityBatchParentReference;
378
380
  readonly index?: number;
379
381
  readonly activityId?: ActivityId;
380
- readonly overrides?: CreationOverrides;
382
+ readonly overrides?: ActivityCreationOverrides;
381
383
  }
382
384
  interface ActivityBatchLinkInput {
383
385
  readonly source: ActivityBatchReference;
@@ -469,7 +471,7 @@ type DispatchAction = {
469
471
  parentId: ActivityId | '0';
470
472
  afterSiblingId?: ActivityId | undefined;
471
473
  beforeSiblingId?: ActivityId | undefined;
472
- overrides?: CreationOverrides;
474
+ overrides?: ActivityCreationOverrides;
473
475
  activityId?: ActivityId;
474
476
  eventSource?: string | undefined;
475
477
  } | {
@@ -496,8 +498,8 @@ type DispatchAction = {
496
498
  activityId: ActivityId;
497
499
  newValue: 0 | 100;
498
500
  /**
499
- * CP15 (ISSUE-066): el origen se DECLARA, no se adivina (mismo patron
500
- * que inputUnit). 'action-button' es el unico origen con salvoconducto
501
+ * CP15 (ISSUE-066): el origen se DECLARA, no se adivina. 'action-button'
502
+ * es el unico origen con salvoconducto
501
503
  * de negocio para actividades en Lookahead (espejo del flag
502
504
  * progressChangedByActionButton que consume parseToUpdate en el
503
505
  * backend; guia agents/progreso-lookahead.md). Sin origen declarado
@@ -535,46 +537,22 @@ type DispatchAction = {
535
537
  activityId: ActivityId;
536
538
  pendingRequests: ReadonlyArray<PendingRequest>;
537
539
  eventSource?: string;
538
- } | {
539
- kind: 'sir-approve';
540
- activityId: ActivityId;
541
- approvedRequestId: string;
542
- startDate: unknown;
543
- endDate: unknown;
544
- eventSource?: string;
545
540
  } | {
546
541
  kind: 'activity-lookahead-sync';
547
542
  activityIds: ReadonlyArray<ActivityId>;
548
543
  isLookahead: boolean;
549
544
  hasLookaheadTasks: boolean;
545
+ persistedProgress?: number;
550
546
  acknowledgePersistedLookahead?: boolean;
551
547
  eventSource?: string;
552
548
  };
549
+ type ActivityCreationOverrides = Omit<CreationOverrides, 'durationHours'> & {
550
+ readonly durationDays?: number;
551
+ };
553
552
  type InternalDispatchAction = DispatchAction | ActivityBatchAction;
554
553
  interface DispatchOptions {
555
554
  skipAutoSchedule?: boolean;
556
555
  skipCriticalPath?: boolean;
557
- inputUnit?: 'days' | 'hours';
558
- /**
559
- * Reversible preview mode (SIR). The edit mutates internal state with the
560
- * exact same scheduling rules as a real edit (calendar, link/autoschedule
561
- * propagation, parents, derived fields), but leaves no session trace: no
562
- * save-tracker dirty, no undo entry, no SIR auto-reject effect or
563
- * pendingRequestIds mutation, and the schedule revision does not move.
564
- * The result carries `preview` with the exact inverse ChangeSet; exiting
565
- * the preview is `ScheduleCore.applyPreviewInverse(inverse)`.
566
- */
567
- preview?: boolean;
568
- }
569
- interface PreviewDispatchInfo {
570
- /**
571
- * Exact inverse of `changes`. Note its `after` images were captured while
572
- * the preview edit was still applied; project the ChangeSet RETURNED by
573
- * `applyPreviewInverse`, which re-reads them from the restored state.
574
- */
575
- inverse: ChangeSet;
576
- /** `getScheduleRevision()` at the time the preview was computed. */
577
- revision: number;
578
556
  }
579
557
  type DispatchResult = {
580
558
  ok: true;
@@ -582,8 +560,6 @@ type DispatchResult = {
582
560
  verdicts?: ReadonlyArray<DatesBatchVerdict>;
583
561
  activityVerdicts?: ReadonlyArray<DatesBatchVerdict>;
584
562
  linkVerdicts?: ReadonlyArray<LinkBatchVerdict>;
585
- /** Present only when dispatched with `DispatchOptions.preview`. */
586
- preview?: PreviewDispatchInfo;
587
563
  } | {
588
564
  ok: false;
589
565
  reason: string;
@@ -834,6 +810,7 @@ declare class ScheduleCore {
834
810
  private readonly _activityClipboard;
835
811
  private _status;
836
812
  private readonly coreRuntime;
813
+ private readonly _isFork;
837
814
  private readonly _undo;
838
815
  private _opQueue;
839
816
  private _scheduleRevision;
@@ -865,6 +842,7 @@ declare class ScheduleCore {
865
842
  private _activeCriticalPath;
866
843
  constructor(input: ScheduleCoreInput);
867
844
  get ready(): Promise<void>;
845
+ fork(): Promise<ScheduleCore>;
868
846
  get criticalPathReady(): Promise<{
869
847
  changes: ChangeSet;
870
848
  } | null>;
@@ -883,6 +861,7 @@ declare class ScheduleCore {
883
861
  getIndentTargetParentIds(activityIds: ReadonlyArray<ActivityId | string>): readonly string[];
884
862
  getChildrenView(parentId: ActivityId | '0'): ReadonlyArray<Readonly<CoreActivity>>;
885
863
  getLinkView(id: LinkId): Readonly<Link> | null;
864
+ getLinksForActivityView(activityId: ActivityId): ReadonlyArray<Readonly<Link>>;
886
865
  getAllLinksView(): ReadonlyArray<Readonly<Link>>;
887
866
  auditEffectiveGraph(): EffectiveGraphAudit;
888
867
  getProperty<Property extends keyof CoreActivity>(activityId: ActivityId, property: Property): CoreActivity[Property] | null;
@@ -901,28 +880,14 @@ declare class ScheduleCore {
901
880
  isCustomIdInUse(customId: string, currentCustomId?: string | null): boolean;
902
881
  getProjectWorkHours(): ProjectWorkHours | null;
903
882
  getModifiedLinks(): ReadonlyArray<Readonly<Link>>;
883
+ getNewLinks(): ReadonlyArray<Readonly<Link>>;
904
884
  getModifiedActivities(): ReadonlyArray<Readonly<CoreActivity>>;
885
+ getNewActivities(): ReadonlyArray<Readonly<CoreActivity>>;
905
886
  hasUnsavedChanges(): boolean;
906
- /**
907
- * Read-only view of the internal schedule revision. It moves once per
908
- * substantive CANONICAL mutation (dispatch, undo, redo). It does NOT move
909
- * for a preview dispatch nor for `applyPreviewInverse`: comparing the value
910
- * captured in `PreviewDispatchInfo.revision` against the current one
911
- * answers "did the schedule change while the preview was open".
912
- */
887
+ /** Read-only revision; moves once per substantive mutation. */
913
888
  getScheduleRevision(): number;
914
- /**
915
- * Exit channel for a preview dispatch (`DispatchOptions.preview`): applies
916
- * the inverse ChangeSet the preview returned, restoring the canonical
917
- * state exactly. Like the preview itself it leaves no session trace: no
918
- * save-tracker dirty, no undo entry, no effects, and the schedule revision
919
- * does not move (see `getScheduleRevision`).
920
- *
921
- * Returns the ChangeSet to project to the view layer: the same changes as
922
- * `inverse`, but with `after` images re-read from the restored state (the
923
- * ones inside `inverse` were captured while the preview edit was applied).
924
- */
925
- applyPreviewInverse(inverse: ChangeSet): Promise<ChangeSet>;
889
+ getCanonicalDigest(): string;
890
+ createProjectionChangeSetFrom(source: ScheduleCore): ChangeSet;
926
891
  getDeletedActivitiesSinceLastSave(): ReadonlyArray<Readonly<DeletedActivitySnapshot>>;
927
892
  getDeletedLinksSinceLastSave(): ReadonlyArray<Readonly<DeletedLinkSnapshot>>;
928
893
  private _enqueue;
@@ -1146,7 +1111,6 @@ declare const DISPATCH_ACTION_KIND: {
1146
1111
  readonly FILTER_SET: "filter-set";
1147
1112
  readonly SORT_SET: "sort-set";
1148
1113
  readonly SIR_SYNC: "sir-sync";
1149
- readonly SIR_APPROVE: "sir-approve";
1150
1114
  readonly ACTIVITY_LOOKAHEAD_SYNC: "activity-lookahead-sync";
1151
1115
  };
1152
1116
  declare const DISPATCH_ACTION_KINDS: ReadonlyArray<DispatchActionKind>;
@@ -1178,12 +1142,11 @@ declare const REJECTION_REASON: {
1178
1142
  readonly ANCHOR_SIBLING_NOT_FOUND: "anchor_sibling_not_found";
1179
1143
  readonly ANCHOR_SIBLING_WRONG_PARENT: "anchor_sibling_wrong_parent";
1180
1144
  readonly PARENT_FROZEN_BY_SIR: "parent_frozen_by_sir";
1181
- readonly SIR_REQUEST_NOT_PENDING: "sir_request_not_pending";
1182
- readonly PREVIEW_UNSUPPORTED_ACTION: "preview_unsupported_action";
1183
1145
  readonly CANNOT_MOVE_INTO_OWN_DESCENDANT: "cannot_move_into_own_descendant";
1184
1146
  readonly INDENT_NO_ELIGIBLE_SIBLING: "indent_no_eligible_sibling";
1185
1147
  readonly OUTDENT_ROOT_LEVEL_NOT_EDITABLE: "outdent_root_level_not_editable";
1186
1148
  readonly HIERARCHY_CYCLE: "hierarchy_cycle";
1149
+ readonly SANDBOX_PERSISTENCE_FORBIDDEN: "sandbox_persistence_forbidden";
1187
1150
  readonly INVALID_PROGRESS_VALUE: "invalid_progress_value_must_be_0_or_100";
1188
1151
  };
1189
1152
  type DispatchRejectReason = (typeof REJECTION_REASON)[keyof typeof REJECTION_REASON];
@@ -1197,4 +1160,4 @@ declare const DISPATCH_TRACK_EVENT: {
1197
1160
  };
1198
1161
  type DispatchTrackEvent = (typeof DISPATCH_TRACK_EVENT)[keyof typeof DISPATCH_TRACK_EVENT];
1199
1162
 
1200
- export { ACTIVITY_TYPE, type ActivityBaselineSnapshot, type ActivityBatchAction, type ActivityBatchItem, type ActivityBatchLinkInput, type ActivityBatchMode, type ActivityBatchParentReference, type ActivityBatchReference, type ActivityCreter, type ActivityId, type ActivityStatus, type ActivityType, type BackendActivityInput, type BackendCalendarExceptionInput, type BackendCalendarInput, type BackendLinkInput, type BackendScheduleInput, type BackendSectorInput, type BackendShiftInput, type BaselinePoint, type BaselineVersion, type BranchOrderChange, CALENDAR_UNIT, COLUMN, CONSTRAINT_TYPE, CONSTRAINT_TYPE_TO_LABEL, CREATION_KIND, type Calendar, type CalendarId, type CalendarLike, type CalendarUnit, type CalendarWorktime, type ChangeSet, type ChangeSetSource, type ColumnName, type ConstraintType, type ConstraintWarning, type CoreActivity, type CoreBaselinePoint, type CreationKind, type CreationOverrides, type CriticalPathResult, DEFAULT_HOURS_PER_DAY, DISPATCH_ACTION_KIND, DISPATCH_ACTION_KINDS, DISPATCH_TRACK_EVENT, type DateGesture, type DateGesturePreview, type DatesBatchVerdict, type DeletedActivitySnapshot, type DeletedLinkSnapshot, type DispatchAction, type DispatchActionKind, type DispatchOptions, type DispatchRejectReason, type DispatchResult, type DispatchTrackEvent, type EditableColumnName, type EffectiveGraphAudit, type EntityChange, type ExpectedProgressAdapter, type FilterCriterion, type FilterCriterionValue, type FilterDateRange, type FilterField, type FilterOperator, type FilterState, LINK_CODE_TO_TYPE, LINK_TYPE, LINK_TYPE_CODE, type Link, type LinkBatchVerdict, type LinkId, type LinkType, type LinkTypeCode, type LinksBatchOperation, NEW_ACTIVITY_DEFAULTS, type OrderRule, type OrderState, type ParsedInput, type PendingRequest, type PersistedEntityIdentity, type PipelineColumnName, type PreviewDispatchInfo, type ProjectWorkHours, REJECTION_REASON, ROOT_PARENT_ID, SCHEDULE_CORE_STATUS, STATUS, ScheduleCore, type ScheduleCoreInput, type ScheduleCoreReporter, type ScheduleCoreStatus, type ScheduleEffect, type SectorMetadata, type StaticActivityDefaults, type StatusCriteria, type TrackingEvent, type UndoOptions, type ViewStateChange, type ViewStatePropChange, WORK_TIME_DIRECTION, type WithProplannerId, type WorkTimeDirection, checkNoUpdatedLinks, computeExpectedProgress, expectedProgressFromBaseline, getActiveBaseline, getUnsavedActivities, isRootParent, normalizeParentKey, parseFromBackend, willRunCriticalPath, yieldToBrowser };
1163
+ export { ACTIVITY_TYPE, type ActivityBaselineSnapshot, type ActivityBatchAction, type ActivityBatchItem, type ActivityBatchLinkInput, type ActivityBatchMode, type ActivityBatchParentReference, type ActivityBatchReference, type ActivityCreationOverrides, type ActivityCreter, type ActivityId, type ActivityStatus, type ActivityType, type BackendActivityInput, type BackendCalendarExceptionInput, type BackendCalendarInput, type BackendLinkInput, type BackendScheduleInput, type BackendSectorInput, type BackendShiftInput, type BaselinePoint, type BaselineVersion, type BranchOrderChange, CALENDAR_UNIT, COLUMN, CONSTRAINT_TYPE, CONSTRAINT_TYPE_TO_LABEL, CREATION_KIND, type Calendar, type CalendarId, type CalendarLike, type CalendarUnit, type CalendarWorktime, type ChangeSet, type ChangeSetSource, type ColumnName, type ConstraintType, type ConstraintWarning, type CoreActivity, type CoreBaselinePoint, type CreationKind, type CriticalPathResult, DEFAULT_HOURS_PER_DAY, DISPATCH_ACTION_KIND, DISPATCH_ACTION_KINDS, DISPATCH_TRACK_EVENT, type DateGesture, type DateGesturePreview, type DatesBatchVerdict, type DeletedActivitySnapshot, type DeletedLinkSnapshot, type DispatchAction, type DispatchActionKind, type DispatchOptions, type DispatchRejectReason, type DispatchResult, type DispatchTrackEvent, type EditableColumnName, type EffectiveGraphAudit, type EntityChange, type ExpectedProgressAdapter, type FilterCriterion, type FilterCriterionValue, type FilterDateRange, type FilterField, type FilterOperator, type FilterState, LINK_CODE_TO_TYPE, LINK_TYPE, LINK_TYPE_CODE, type Link, type LinkBatchVerdict, type LinkId, type LinkType, type LinkTypeCode, type LinksBatchOperation, NEW_ACTIVITY_DEFAULTS, type OrderRule, type OrderState, type ParsedInput, type PendingRequest, type PersistedEntityIdentity, type PipelineColumnName, type ProjectWorkHours, REJECTION_REASON, ROOT_PARENT_ID, SCHEDULE_CORE_STATUS, STATUS, ScheduleCore, type ScheduleCoreInput, type ScheduleCoreReporter, type ScheduleCoreStatus, type ScheduleEffect, type SectorMetadata, type StaticActivityDefaults, type StatusCriteria, type TrackingEvent, type UndoOptions, type ViewStateChange, type ViewStatePropChange, WORK_TIME_DIRECTION, type WithProplannerId, type WorkTimeDirection, checkNoUpdatedLinks, computeExpectedProgress, expectedProgressFromBaseline, getActiveBaseline, getUnsavedActivities, isRootParent, normalizeParentKey, parseFromBackend, willRunCriticalPath, yieldToBrowser };