@outbuild-company/schedule-core 1.12.0 → 1.13.2
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/cdn/schedule-core.global.js +1 -1
- package/dist/cdn/schedule-core.global.js.map +1 -1
- package/dist/index.cjs +1298 -642
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +168 -32
- package/dist/index.d.ts +168 -32
- package/dist/index.js +1294 -643
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,28 +1,43 @@
|
|
|
1
|
+
/** Canonical normalized activity shape categories. */
|
|
2
|
+
declare const ACTIVITY_TYPE: {
|
|
3
|
+
readonly TASK: "task";
|
|
4
|
+
readonly PROJECT: "project";
|
|
5
|
+
readonly MILESTONE: "milestone";
|
|
6
|
+
};
|
|
7
|
+
/** Canonical normalized activity shape. */
|
|
8
|
+
type ActivityType = (typeof ACTIVITY_TYPE)[keyof typeof ACTIVITY_TYPE];
|
|
9
|
+
|
|
10
|
+
/** Canonical stored dependency relationship codes. */
|
|
11
|
+
declare const LINK_TYPE: {
|
|
12
|
+
readonly FINISH_TO_START: "0";
|
|
13
|
+
readonly START_TO_START: "1";
|
|
14
|
+
readonly FINISH_TO_FINISH: "2";
|
|
15
|
+
readonly START_TO_FINISH: "3";
|
|
16
|
+
};
|
|
17
|
+
/** Canonical stored dependency relationship. */
|
|
18
|
+
type LinkType = (typeof LINK_TYPE)[keyof typeof LINK_TYPE];
|
|
19
|
+
|
|
1
20
|
/** Canonical activity identifier inside a schedule. */
|
|
2
21
|
type ActivityId = string;
|
|
3
22
|
/** Canonical dependency-link identifier inside a schedule. */
|
|
4
23
|
type LinkId = string;
|
|
5
24
|
/** Canonical calendar identifier inside a schedule. */
|
|
6
25
|
type CalendarId = string;
|
|
7
|
-
/** Normalized activity shape category. */
|
|
8
|
-
type ActivityType = 'project' | 'task' | 'milestone';
|
|
9
26
|
|
|
10
|
-
/** Stored dependency relationship code. */
|
|
11
|
-
type LinkType = '0' | '1' | '2' | '3';
|
|
12
|
-
/** Direction used for calendar-aware work-time traversal. */
|
|
13
|
-
type WorkTimeDirection = 'future' | 'past';
|
|
14
27
|
/** Named work-time traversal directions. */
|
|
15
28
|
declare const WORK_TIME_DIRECTION: {
|
|
16
29
|
readonly FUTURE: "future";
|
|
17
30
|
readonly PAST: "past";
|
|
18
31
|
};
|
|
19
|
-
/**
|
|
20
|
-
type
|
|
32
|
+
/** Direction used for calendar-aware work-time traversal. */
|
|
33
|
+
type WorkTimeDirection = (typeof WORK_TIME_DIRECTION)[keyof typeof WORK_TIME_DIRECTION];
|
|
21
34
|
/** Named units accepted by calendar duration operations. */
|
|
22
35
|
declare const CALENDAR_UNIT: {
|
|
23
36
|
readonly HOUR: "hour";
|
|
24
37
|
readonly DAY: "day";
|
|
25
38
|
};
|
|
39
|
+
/** Unit accepted by calendar duration operations. */
|
|
40
|
+
type CalendarUnit = (typeof CALENDAR_UNIT)[keyof typeof CALENDAR_UNIT];
|
|
26
41
|
/** Criteria available for schedule-wide activity weighting. */
|
|
27
42
|
declare const ACTIVITY_PONDERATOR_CRITERION: {
|
|
28
43
|
readonly DURATION: "DURATION";
|
|
@@ -252,10 +267,17 @@ interface SectorMetadata {
|
|
|
252
267
|
statusCriteria: StatusCriteria;
|
|
253
268
|
ganttId: number | null;
|
|
254
269
|
}
|
|
270
|
+
/** Canonical entity-change operations in consumer projections. */
|
|
271
|
+
declare const ENTITY_CHANGE_KIND: {
|
|
272
|
+
readonly CREATED: "created";
|
|
273
|
+
readonly UPDATED: "updated";
|
|
274
|
+
readonly DELETED: "deleted";
|
|
275
|
+
};
|
|
276
|
+
type EntityChangeKind = (typeof ENTITY_CHANGE_KIND)[keyof typeof ENTITY_CHANGE_KIND];
|
|
255
277
|
/** One created, updated, or deleted entity in a consumer projection. */
|
|
256
278
|
interface EntityChange<T> {
|
|
257
279
|
id: string;
|
|
258
|
-
kind:
|
|
280
|
+
kind: EntityChangeKind;
|
|
259
281
|
fields?: Record<string, {
|
|
260
282
|
before: unknown;
|
|
261
283
|
after: unknown;
|
|
@@ -264,8 +286,6 @@ interface EntityChange<T> {
|
|
|
264
286
|
after: Readonly<T> | null;
|
|
265
287
|
}
|
|
266
288
|
|
|
267
|
-
/** Normalized activity scheduling constraint. */
|
|
268
|
-
type ConstraintType = 'asap' | 'alap' | 'snet' | 'snlt' | 'fnet' | 'fnlt' | 'mso' | 'mfo';
|
|
269
289
|
/** Named normalized activity scheduling constraints. */
|
|
270
290
|
declare const CONSTRAINT_TYPE: {
|
|
271
291
|
readonly ASAP: "asap";
|
|
@@ -277,13 +297,12 @@ declare const CONSTRAINT_TYPE: {
|
|
|
277
297
|
readonly MSO: "mso";
|
|
278
298
|
readonly MFO: "mfo";
|
|
279
299
|
};
|
|
300
|
+
/** Normalized activity scheduling constraint. */
|
|
301
|
+
type ConstraintType = (typeof CONSTRAINT_TYPE)[keyof typeof CONSTRAINT_TYPE];
|
|
280
302
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
readonly
|
|
284
|
-
readonly START_TO_START: "1";
|
|
285
|
-
readonly FINISH_TO_FINISH: "2";
|
|
286
|
-
readonly START_TO_FINISH: "3";
|
|
303
|
+
declare const SAVE_FIELD_POLICY: {
|
|
304
|
+
readonly TRACKED: "tracked";
|
|
305
|
+
readonly IGNORED: "ignored";
|
|
287
306
|
};
|
|
288
307
|
|
|
289
308
|
declare const ACTIVITY_SAVE_FIELD_POLICY: {
|
|
@@ -340,7 +359,7 @@ declare const ACTIVITY_SAVE_FIELD_POLICY: {
|
|
|
340
359
|
* intentionally excluded.
|
|
341
360
|
*/
|
|
342
361
|
type PersistableActivityField = {
|
|
343
|
-
[Field in keyof typeof ACTIVITY_SAVE_FIELD_POLICY]: (typeof ACTIVITY_SAVE_FIELD_POLICY)[Field] extends
|
|
362
|
+
[Field in keyof typeof ACTIVITY_SAVE_FIELD_POLICY]: (typeof ACTIVITY_SAVE_FIELD_POLICY)[Field] extends typeof SAVE_FIELD_POLICY.TRACKED ? Field : never;
|
|
344
363
|
}[keyof typeof ACTIVITY_SAVE_FIELD_POLICY];
|
|
345
364
|
|
|
346
365
|
/** Progress percentage representing a not-started activity. */
|
|
@@ -348,6 +367,36 @@ declare const NOT_STARTED_PROGRESS = 0;
|
|
|
348
367
|
/** Progress percentage representing a completed activity. */
|
|
349
368
|
declare const COMPLETED_PROGRESS = 100;
|
|
350
369
|
|
|
370
|
+
/** Canonical reasons why an activity field edit may be blocked. */
|
|
371
|
+
declare const EDIT_DENIAL_REASON: {
|
|
372
|
+
readonly COMPLETED: "completed";
|
|
373
|
+
readonly SUMMARY: "summary";
|
|
374
|
+
readonly HAS_PROGRESS: "has_progress";
|
|
375
|
+
readonly HAS_LOOKAHEAD_TASKS: "has_lookahead_tasks";
|
|
376
|
+
readonly SIR_START_AFTER_PROGRESS: "sir_start_after_progress";
|
|
377
|
+
};
|
|
378
|
+
/** Reason code returned when an activity field edit is blocked. */
|
|
379
|
+
type EditDenialReason = (typeof EDIT_DENIAL_REASON)[keyof typeof EDIT_DENIAL_REASON];
|
|
380
|
+
/** Canonical presentation keys associated with blocked activity edits. */
|
|
381
|
+
declare const EDIT_ALERT_KEY: {
|
|
382
|
+
readonly CANT_EDIT_COMPLETED: "cant_edit_completed_activity";
|
|
383
|
+
readonly SUMMARY_COLUMN_VALUE: "summary_column_value";
|
|
384
|
+
readonly CANT_EDIT_WITH_PROGRESS: "cant_edit_activity_with_progress";
|
|
385
|
+
readonly SIR_CANT_MOVE_START_AFTER_PROGRESS: "sir_cant_move_start_after_progress";
|
|
386
|
+
readonly CANT_EDIT_WITH_TASK: "cant_edit_actvity_with_task";
|
|
387
|
+
};
|
|
388
|
+
/** Presentation key optionally returned with a blocked activity edit. */
|
|
389
|
+
type EditAlertKey = (typeof EDIT_ALERT_KEY)[keyof typeof EDIT_ALERT_KEY];
|
|
390
|
+
|
|
391
|
+
/** Describes whether a column value can be edited and why it may be blocked. */
|
|
392
|
+
type EditResult = {
|
|
393
|
+
readonly allowed: true;
|
|
394
|
+
} | {
|
|
395
|
+
readonly allowed: false;
|
|
396
|
+
readonly reason: EditDenialReason;
|
|
397
|
+
readonly alertKey?: EditAlertKey;
|
|
398
|
+
};
|
|
399
|
+
|
|
351
400
|
declare const EDITABLE: {
|
|
352
401
|
readonly TEXT: "text";
|
|
353
402
|
readonly DESCRIPTION: "description";
|
|
@@ -445,6 +494,7 @@ declare const DISPATCH_ACTION_KIND: {
|
|
|
445
494
|
readonly ACTIVITY_INDENT: "activity-indent";
|
|
446
495
|
readonly ACTIVITY_OUTDENT: "activity-outdent";
|
|
447
496
|
readonly ACTIVITY_SET_PROGRESS: "activity-set-progress";
|
|
497
|
+
readonly ACTIVITY_LOOKAHEAD_CONVERT: "activity-lookahead-convert";
|
|
448
498
|
readonly SELECTION_TOGGLE: "selection-toggle";
|
|
449
499
|
readonly SELECTION_REPLACE: "selection-replace";
|
|
450
500
|
readonly VISIBILITY_SET: "visibility-set";
|
|
@@ -642,6 +692,40 @@ type LinksBatchOperation = {
|
|
|
642
692
|
kind: typeof DISPATCH_LINK_OPERATION_KIND.DELETE;
|
|
643
693
|
linkId: LinkId;
|
|
644
694
|
};
|
|
695
|
+
/** Roots selected for one canonical Schedule-to-Lookahead conversion. */
|
|
696
|
+
interface LookaheadConversionInput {
|
|
697
|
+
readonly conversionRootIds: ReadonlyArray<ActivityId | number>;
|
|
698
|
+
}
|
|
699
|
+
/** Conversion intent guarded by the revision returned from planning. */
|
|
700
|
+
interface ApplyLookaheadConversionInput extends LookaheadConversionInput {
|
|
701
|
+
readonly expectedStateRevision: number;
|
|
702
|
+
}
|
|
703
|
+
/** Stable milestone placement produced by the conversion planner. */
|
|
704
|
+
interface LookaheadConversionMilestoneMove {
|
|
705
|
+
readonly activityId: ActivityId;
|
|
706
|
+
readonly parentId: ActivityId | typeof ROOT_PARENT_ID;
|
|
707
|
+
readonly afterSiblingId: ActivityId;
|
|
708
|
+
}
|
|
709
|
+
/** Former-parent snapshot and whether its branch creates Lookahead activities. */
|
|
710
|
+
interface LookaheadConversionFormerParent {
|
|
711
|
+
readonly activity: Readonly<CoreActivity>;
|
|
712
|
+
readonly hasConvertedActivities: boolean;
|
|
713
|
+
}
|
|
714
|
+
/** Converted activity snapshots belonging to one canonical conversion root. */
|
|
715
|
+
interface LookaheadConversionGroup {
|
|
716
|
+
readonly conversionRootId: ActivityId;
|
|
717
|
+
readonly convertedActivities: ReadonlyArray<Readonly<CoreActivity>>;
|
|
718
|
+
}
|
|
719
|
+
/** Complete immutable intent shared by preview and apply. */
|
|
720
|
+
interface LookaheadConversionPlan {
|
|
721
|
+
readonly sourceStateRevision: number;
|
|
722
|
+
readonly conversionRootIds: ReadonlyArray<ActivityId>;
|
|
723
|
+
readonly conversionGroups: ReadonlyArray<LookaheadConversionGroup>;
|
|
724
|
+
readonly milestoneMoves: ReadonlyArray<LookaheadConversionMilestoneMove>;
|
|
725
|
+
readonly activityIdsToDelete: ReadonlyArray<ActivityId>;
|
|
726
|
+
readonly linkIdsToDelete: ReadonlyArray<LinkId>;
|
|
727
|
+
readonly formerParents: ReadonlyArray<LookaheadConversionFormerParent>;
|
|
728
|
+
}
|
|
645
729
|
/** Backend identity used to acknowledge an entity as persisted. */
|
|
646
730
|
interface PersistedEntityIdentity {
|
|
647
731
|
readonly id: string;
|
|
@@ -663,6 +747,10 @@ declare const ACTIVITY_BATCH_MODE: {
|
|
|
663
747
|
readonly APPEND: "append";
|
|
664
748
|
readonly REPLACE: "replace";
|
|
665
749
|
};
|
|
750
|
+
/** Explicit consumer origin allowed to override the progress edit gate. */
|
|
751
|
+
declare const ACTIVITY_PROGRESS_ORIGIN: {
|
|
752
|
+
readonly ACTION_BUTTON: "action-button";
|
|
753
|
+
};
|
|
666
754
|
/** Activity-batch append or replace policy. */
|
|
667
755
|
type ActivityBatchMode = (typeof ACTIVITY_BATCH_MODE)[keyof typeof ACTIVITY_BATCH_MODE];
|
|
668
756
|
/** Existing activity ID or local batch-item reference. */
|
|
@@ -801,9 +889,11 @@ type DispatchAction = {
|
|
|
801
889
|
kind: typeof DISPATCH_ACTION_KIND.ACTIVITY_SET_PROGRESS;
|
|
802
890
|
activityId: ActivityId;
|
|
803
891
|
newValue: typeof NOT_STARTED_PROGRESS | typeof COMPLETED_PROGRESS;
|
|
804
|
-
origin?:
|
|
892
|
+
origin?: typeof ACTIVITY_PROGRESS_ORIGIN.ACTION_BUTTON;
|
|
805
893
|
eventSource?: string;
|
|
806
|
-
} | {
|
|
894
|
+
} | ({
|
|
895
|
+
kind: typeof DISPATCH_ACTION_KIND.ACTIVITY_LOOKAHEAD_CONVERT;
|
|
896
|
+
} & ApplyLookaheadConversionInput) | {
|
|
807
897
|
kind: typeof DISPATCH_ACTION_KIND.SELECTION_TOGGLE;
|
|
808
898
|
activityId: ActivityId;
|
|
809
899
|
isChecked: boolean;
|
|
@@ -867,6 +957,7 @@ interface DispatchOptions {
|
|
|
867
957
|
type DispatchResult = {
|
|
868
958
|
ok: true;
|
|
869
959
|
changes: ChangeSet;
|
|
960
|
+
conversionGroups?: ReadonlyArray<LookaheadConversionGroup>;
|
|
870
961
|
verdicts?: ReadonlyArray<DatesBatchVerdict>;
|
|
871
962
|
activityVerdicts?: ReadonlyArray<DatesBatchVerdict>;
|
|
872
963
|
linkVerdicts?: ReadonlyArray<LinkBatchVerdict>;
|
|
@@ -875,6 +966,14 @@ type DispatchResult = {
|
|
|
875
966
|
reason: string;
|
|
876
967
|
alertKey?: string | undefined;
|
|
877
968
|
};
|
|
969
|
+
/** Accepted conversion result always carries the snapshots planned in-queue. */
|
|
970
|
+
type LookaheadConversionResult = (Extract<DispatchResult, {
|
|
971
|
+
ok: true;
|
|
972
|
+
}> & {
|
|
973
|
+
readonly conversionGroups: ReadonlyArray<LookaheadConversionGroup>;
|
|
974
|
+
}) | Extract<DispatchResult, {
|
|
975
|
+
ok: false;
|
|
976
|
+
}>;
|
|
878
977
|
/** Per-activity acceptance result for a dates batch. */
|
|
879
978
|
type DatesBatchVerdict = {
|
|
880
979
|
activityId: string;
|
|
@@ -1322,6 +1421,10 @@ interface ScheduleActivitiesApi {
|
|
|
1322
1421
|
* @returns The complete dispatch result.
|
|
1323
1422
|
*/
|
|
1324
1423
|
remove(activityIds: ReadonlyArray<ActivityId>, context?: MutationContext): Promise<DispatchResult>;
|
|
1424
|
+
/** Plans one canonical Schedule-to-Lookahead conversion without mutation. */
|
|
1425
|
+
planLookaheadConversion(input: LookaheadConversionInput): LookaheadConversionPlan;
|
|
1426
|
+
/** Applies the same conversion intent under its planned state revision. */
|
|
1427
|
+
applyLookaheadConversion(input: ApplyLookaheadConversionInput): Promise<LookaheadConversionResult>;
|
|
1325
1428
|
/**
|
|
1326
1429
|
* Moves an activity within the hierarchy.
|
|
1327
1430
|
*
|
|
@@ -1664,6 +1767,8 @@ interface ScheduleDiagnosticsApi {
|
|
|
1664
1767
|
auditEffectiveGraph(): EffectiveGraphAudit;
|
|
1665
1768
|
/** @returns The monotonic scheduling revision; readiness is not required. */
|
|
1666
1769
|
revision(): number;
|
|
1770
|
+
/** @returns The monotonic canonical-state revision; readiness is not required. */
|
|
1771
|
+
stateRevision(): number;
|
|
1667
1772
|
/** @returns A deterministic serialization digest of canonical schedule state. */
|
|
1668
1773
|
canonicalDigest(): string;
|
|
1669
1774
|
}
|
|
@@ -1733,7 +1838,7 @@ interface BackendActivityInput {
|
|
|
1733
1838
|
correlative_id: number;
|
|
1734
1839
|
name: string;
|
|
1735
1840
|
description: string | null;
|
|
1736
|
-
type:
|
|
1841
|
+
type: ActivityType;
|
|
1737
1842
|
start_date: string;
|
|
1738
1843
|
end_date: string;
|
|
1739
1844
|
/** Duration in working days. */
|
|
@@ -1839,18 +1944,36 @@ declare const LINK_REJECTION_REASON: {
|
|
|
1839
1944
|
/** Stable validation reason for a rejected dependency operation. */
|
|
1840
1945
|
type LinkRejection = (typeof LINK_REJECTION_REASON)[keyof typeof LINK_REJECTION_REASON];
|
|
1841
1946
|
|
|
1947
|
+
declare const LOAD_DIAGNOSTIC_CODE: {
|
|
1948
|
+
readonly INVALID_BASELINE_POINT: "invalid_baseline_point";
|
|
1949
|
+
readonly UNKNOWN_CONSTRAINT: "unknown_constraint";
|
|
1950
|
+
readonly ORPHAN_ACTIVITY: "orphan_activity";
|
|
1951
|
+
readonly INVALID_LINK: "invalid_link";
|
|
1952
|
+
readonly DUPLICATE_LINK: "duplicate_link";
|
|
1953
|
+
};
|
|
1954
|
+
/** Data-quality anomaly category detected while loading a schedule. */
|
|
1955
|
+
type LoadDiagnosticCode = (typeof LOAD_DIAGNOSTIC_CODE)[keyof typeof LOAD_DIAGNOSTIC_CODE];
|
|
1956
|
+
/** Aggregated load anomaly count with bounded representative IDs. */
|
|
1957
|
+
interface LoadDiagnostic {
|
|
1958
|
+
readonly code: LoadDiagnosticCode;
|
|
1959
|
+
readonly count: number;
|
|
1960
|
+
readonly sampleIds: readonly string[];
|
|
1961
|
+
}
|
|
1962
|
+
type LoadDiagnosticRecorder = (code: LoadDiagnosticCode, sampleId: string) => void;
|
|
1963
|
+
|
|
1842
1964
|
/**
|
|
1843
1965
|
* Lifecycle health states observable without awaiting initialization.
|
|
1844
1966
|
* `ready` means alive, not initialized; await {@link ScheduleCore.ready} before
|
|
1845
1967
|
* normal reads or commands.
|
|
1846
1968
|
*/
|
|
1847
|
-
type ScheduleCoreStatus = 'ready' | 'destroyed' | 'poisoned';
|
|
1848
1969
|
/** Named lifecycle states for integration checks. */
|
|
1849
1970
|
declare const SCHEDULE_CORE_STATUS: {
|
|
1850
1971
|
readonly READY: "ready";
|
|
1851
1972
|
readonly DESTROYED: "destroyed";
|
|
1852
1973
|
readonly POISONED: "poisoned";
|
|
1853
1974
|
};
|
|
1975
|
+
/** Lifecycle health reported by a schedule owner. */
|
|
1976
|
+
type ScheduleCoreStatus = (typeof SCHEDULE_CORE_STATUS)[keyof typeof SCHEDULE_CORE_STATUS];
|
|
1854
1977
|
/**
|
|
1855
1978
|
* Backend payload plus options used to construct a {@link ScheduleCore}.
|
|
1856
1979
|
*
|
|
@@ -1937,6 +2060,7 @@ declare class ScheduleCore {
|
|
|
1937
2060
|
private readonly _undo;
|
|
1938
2061
|
private _opQueue;
|
|
1939
2062
|
private _scheduleRevision;
|
|
2063
|
+
private _stateRevision;
|
|
1940
2064
|
private _pendingScheduleRevision;
|
|
1941
2065
|
private _criticalPathRevision;
|
|
1942
2066
|
private _activeCriticalPath;
|
|
@@ -1982,6 +2106,8 @@ declare class ScheduleCore {
|
|
|
1982
2106
|
* @returns Cloned metadata, including values available after destruction.
|
|
1983
2107
|
*/
|
|
1984
2108
|
getSector(): Readonly<SectorMetadata>;
|
|
2109
|
+
/** Returns immutable data-quality diagnostics collected during loading. */
|
|
2110
|
+
getLoadDiagnostics(): readonly LoadDiagnostic[];
|
|
1985
2111
|
/**
|
|
1986
2112
|
* Reads a defensive activity snapshot from a ready schedule.
|
|
1987
2113
|
*
|
|
@@ -1989,6 +2115,8 @@ declare class ScheduleCore {
|
|
|
1989
2115
|
* @returns The activity, or `null` when absent.
|
|
1990
2116
|
*/
|
|
1991
2117
|
getActivityView(id: ActivityId): Readonly<CoreActivity> | null;
|
|
2118
|
+
/** Returns the canonical progress editability decision without mutation. */
|
|
2119
|
+
getProgressEditability(id: ActivityId): EditResult | null;
|
|
1992
2120
|
/**
|
|
1993
2121
|
* Creates a read-only date prediction bound to the current revision.
|
|
1994
2122
|
*
|
|
@@ -2097,6 +2225,8 @@ declare class ScheduleCore {
|
|
|
2097
2225
|
hasUnsavedChanges(): boolean;
|
|
2098
2226
|
/** @returns The monotonic scheduling revision without a readiness guard. */
|
|
2099
2227
|
getScheduleRevision(): number;
|
|
2228
|
+
/** @returns The monotonic canonical-state revision without a readiness guard. */
|
|
2229
|
+
getStateRevision(): number;
|
|
2100
2230
|
/** @returns The undo-history boundary for an external save checkpoint. */
|
|
2101
2231
|
capturePersistenceHistoryBoundary(): number;
|
|
2102
2232
|
/** @returns A deterministic serialization digest of canonical schedule state. */
|
|
@@ -2136,6 +2266,10 @@ declare class ScheduleCore {
|
|
|
2136
2266
|
* @returns The complete dispatch result unchanged.
|
|
2137
2267
|
*/
|
|
2138
2268
|
applyActivityBatch(action: ActivityBatchAction, options?: DispatchOptions): Promise<DispatchResult>;
|
|
2269
|
+
/** Builds the defensive canonical conversion intent without mutating state. */
|
|
2270
|
+
planLookaheadConversion(input: LookaheadConversionInput): LookaheadConversionPlan;
|
|
2271
|
+
/** Applies one revision-guarded conversion through the serialized dispatcher. */
|
|
2272
|
+
applyLookaheadConversion(input: ApplyLookaheadConversionInput): Promise<LookaheadConversionResult>;
|
|
2139
2273
|
private _dispatchInner;
|
|
2140
2274
|
private _runDispatch;
|
|
2141
2275
|
/**
|
|
@@ -2227,9 +2361,10 @@ interface ParsedInput {
|
|
|
2227
2361
|
* throw; diagnostics are reported through the optional reporter.
|
|
2228
2362
|
* @param input - Backend schedule metadata, activities, links, and calendars.
|
|
2229
2363
|
* @param reporter - Optional normalization diagnostics sink.
|
|
2364
|
+
* @param recordDiagnostic - Optional aggregated data-quality recorder.
|
|
2230
2365
|
* @returns Normalized domain data and initial hidden-ID view state.
|
|
2231
2366
|
*/
|
|
2232
|
-
declare function parseFromBackend(input: BackendScheduleInput, reporter?: ScheduleCoreReporter): ParsedInput;
|
|
2367
|
+
declare function parseFromBackend(input: BackendScheduleInput, reporter?: ScheduleCoreReporter, recordDiagnostic?: LoadDiagnosticRecorder): ParsedInput;
|
|
2233
2368
|
|
|
2234
2369
|
/**
|
|
2235
2370
|
* Selects the normalized baseline point marked as active.
|
|
@@ -2338,15 +2473,15 @@ declare const FILTER_REJECTION_REASON: {
|
|
|
2338
2473
|
/** Stable reason returned for rejected filter input. */
|
|
2339
2474
|
type FilterRejection = (typeof FILTER_REJECTION_REASON)[keyof typeof FILTER_REJECTION_REASON];
|
|
2340
2475
|
|
|
2341
|
-
/**
|
|
2342
|
-
declare const
|
|
2343
|
-
readonly
|
|
2344
|
-
readonly
|
|
2345
|
-
readonly
|
|
2476
|
+
/** Canonical compact dependency codes used by consumer text formats. */
|
|
2477
|
+
declare const LINK_CODE: {
|
|
2478
|
+
readonly FINISH_TO_START: "fs";
|
|
2479
|
+
readonly START_TO_START: "ss";
|
|
2480
|
+
readonly FINISH_TO_FINISH: "ff";
|
|
2481
|
+
readonly START_TO_FINISH: "sf";
|
|
2346
2482
|
};
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
type LinkTypeCode = 'fs' | 'ss' | 'ff' | 'sf';
|
|
2483
|
+
/** Compact dependency relationship used by consumer text formats. */
|
|
2484
|
+
type LinkTypeCode = (typeof LINK_CODE)[keyof typeof LINK_CODE];
|
|
2350
2485
|
/** Maps stored link types to compact consumer relationship codes. */
|
|
2351
2486
|
declare const LINK_TYPE_CODE: {
|
|
2352
2487
|
readonly "0": "fs";
|
|
@@ -2403,6 +2538,7 @@ declare const REJECTION_REASON: {
|
|
|
2403
2538
|
readonly OUTDENT_ROOT_LEVEL_NOT_EDITABLE: "outdent_root_level_not_editable";
|
|
2404
2539
|
readonly HIERARCHY_CYCLE: "hierarchy_cycle";
|
|
2405
2540
|
readonly SANDBOX_PERSISTENCE_FORBIDDEN: "sandbox_persistence_forbidden";
|
|
2541
|
+
readonly STALE_STATE_REVISION: "stale-state-revision";
|
|
2406
2542
|
readonly INVALID_PROGRESS_VALUE: "invalid_progress_value_must_be_0_or_100";
|
|
2407
2543
|
};
|
|
2408
2544
|
/** Stable expected-rejection reason returned by a public command. */
|
|
@@ -2419,4 +2555,4 @@ declare const DISPATCH_TRACK_EVENT: {
|
|
|
2419
2555
|
/** Consumer analytics event name emitted by a schedule mutation. */
|
|
2420
2556
|
type DispatchTrackEvent = (typeof DISPATCH_TRACK_EVENT)[keyof typeof DISPATCH_TRACK_EVENT];
|
|
2421
2557
|
|
|
2422
|
-
export { ACTIVITY_BATCH_ACTION_KIND, ACTIVITY_BATCH_MODE, ACTIVITY_DATE_EDGE, ACTIVITY_FIELD, ACTIVITY_PONDERATOR_CRITERION, ACTIVITY_TYPE, type ActivityBaselineSnapshot, type ActivityBatchAction, type ActivityBatchInput, type ActivityBatchItem, type ActivityBatchItemInput, type ActivityBatchLinkInput$1 as ActivityBatchLinkInput, type ActivityBatchMode, type ActivityBatchParentReference, type ActivityBatchReference, type ActivityBulkEdit, type ActivityCreateInput, type ActivityCreationOverrides, type ActivityCreter, type ActivityDateEdge, type ActivityDateEdit, type ActivityField, type ActivityFieldEdit, type ActivityFieldValue, type ActivityId, type ActivityLookaheadSyncInput, type ActivityMoveInput, 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, CHANGE_SET_SOURCE_KIND, COLUMN, COMPLETED_PROGRESS, CONSTRAINT_TYPE, CONSTRAINT_TYPE_TO_LABEL, CONSTRAINT_WARNING_KIND, 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, DATE_GESTURE_KIND, DEFAULT_HOURS_PER_DAY, DISPATCH_ACTION_KIND, DISPATCH_ACTION_KINDS, DISPATCH_LINK_OPERATION_KIND, DISPATCH_TRACK_EVENT, type DateGesture, type DateGestureKind, 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 ActivityBatchLinkInput as ErgonomicActivityBatchLinkInput, type ExpectedProgressAdapter, FILTER_FIELD, FILTER_LOGIC, FILTER_OPERATOR, FILTER_REJECTION_REASON, FILTER_VALUE_KIND, type FilterCriterion, type FilterCriterionValue, type FilterDateRange, type FilterField, type FilterLogic, type FilterOperator, type FilterRejection, type FilterState, type FilterValueKind, type ImpactRequestSyncInput, LINK_BATCH_OPERATION_KIND, LINK_CODE_TO_TYPE, LINK_REJECTION_REASON, LINK_RELATIONSHIP, LINK_TYPE, LINK_TYPE_CODE, type Link, type LinkBatchOperationKind, type LinkBatchRequest, type LinkBatchVerdict, type LinkCreateRequest, type LinkId, type LinkPatchRequest, type LinkRejection, type LinkRelationship, type LinkType, type LinkTypeCode, type LinksBatchOperation, type MutationContext, NEW_ACTIVITY_DEFAULTS, NOT_STARTED_PROGRESS, ORDER_DIRECTION, type OrderDirection, type OrderRule, type OrderState, type ParsedInput, type PendingRequest, type PersistableActivityField, type PersistedEntityIdentity, type PersistenceCheckpoint, type PipelineColumnName, type ProjectWorkHours, REJECTION_REASON, ROOT_PARENT_ID, SCHEDULE_CORE_STATUS, SCHEDULE_EFFECT_KIND, SIR_AUTO_REJECT_REASON, STATUS, STATUS_CRITERIA, type ScheduleActivitiesApi, type ScheduleApiNamespaces, type ScheduleBaselinesApi, type ScheduleCalendarsApi, ScheduleCore, type ScheduleCoreInput, type ScheduleCoreReporter, type ScheduleCoreStatus, type ScheduleCriticalPathApi, type ScheduleDiagnosticsApi, type ScheduleEffect, type ScheduleHistoryApi, type ScheduleImpactRequestsApi, type ScheduleLinksApi, type SchedulePersistenceApi, type ScheduleProjectionApi, type ScheduleSelectionApi, type ScheduleViewApi, type SectorMetadata, type SelectionToggleInput, type StaticActivityDefaults, type StatusCriteria, type TrackingEvent, type UndoOptions, type ViewFilterInput, type ViewStateChange, type ViewStatePropChange, WORK_TIME_DIRECTION, type WithProplannerId, type WorkTimeDirection, checkNoUpdatedLinks, computeExpectedProgress, createSchedule, expectedProgressFromBaseline, getActiveBaseline, getUnsavedActivities, isRootParent, normalizeParentKey, parseFromBackend, willRunCriticalPath, yieldToBrowser };
|
|
2558
|
+
export { ACTIVITY_BATCH_ACTION_KIND, ACTIVITY_BATCH_MODE, ACTIVITY_DATE_EDGE, ACTIVITY_FIELD, ACTIVITY_PONDERATOR_CRITERION, ACTIVITY_PROGRESS_ORIGIN, ACTIVITY_TYPE, type ActivityBaselineSnapshot, type ActivityBatchAction, type ActivityBatchInput, type ActivityBatchItem, type ActivityBatchItemInput, type ActivityBatchLinkInput$1 as ActivityBatchLinkInput, type ActivityBatchMode, type ActivityBatchParentReference, type ActivityBatchReference, type ActivityBulkEdit, type ActivityCreateInput, type ActivityCreationOverrides, type ActivityCreter, type ActivityDateEdge, type ActivityDateEdit, type ActivityField, type ActivityFieldEdit, type ActivityFieldValue, type ActivityId, type ActivityLookaheadSyncInput, type ActivityMoveInput, type ActivityStatus, type ActivityType, type ApplyLookaheadConversionInput, type BackendActivityInput, type BackendCalendarExceptionInput, type BackendCalendarInput, type BackendLinkInput, type BackendScheduleInput, type BackendSectorInput, type BackendShiftInput, type BaselinePoint, type BaselineVersion, type BranchOrderChange, CALENDAR_UNIT, CHANGE_SET_SOURCE_KIND, COLUMN, COMPLETED_PROGRESS, CONSTRAINT_TYPE, CONSTRAINT_TYPE_TO_LABEL, CONSTRAINT_WARNING_KIND, 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, DATE_GESTURE_KIND, DEFAULT_HOURS_PER_DAY, DISPATCH_ACTION_KIND, DISPATCH_ACTION_KINDS, DISPATCH_LINK_OPERATION_KIND, DISPATCH_TRACK_EVENT, type DateGesture, type DateGestureKind, type DateGesturePreview, type DatesBatchVerdict, type DeletedActivitySnapshot, type DeletedLinkSnapshot, type DispatchAction, type DispatchActionKind, type DispatchOptions, type DispatchRejectReason, type DispatchResult, type DispatchTrackEvent, EDIT_ALERT_KEY, EDIT_DENIAL_REASON, ENTITY_CHANGE_KIND, type EditAlertKey, type EditDenialReason, type EditResult, type EditableColumnName, type EffectiveGraphAudit, type EntityChange, type ActivityBatchLinkInput as ErgonomicActivityBatchLinkInput, type ExpectedProgressAdapter, FILTER_FIELD, FILTER_LOGIC, FILTER_OPERATOR, FILTER_REJECTION_REASON, FILTER_VALUE_KIND, type FilterCriterion, type FilterCriterionValue, type FilterDateRange, type FilterField, type FilterLogic, type FilterOperator, type FilterRejection, type FilterState, type FilterValueKind, type ImpactRequestSyncInput, LINK_BATCH_OPERATION_KIND, LINK_CODE, LINK_CODE_TO_TYPE, LINK_REJECTION_REASON, LINK_RELATIONSHIP, LINK_TYPE, LINK_TYPE_CODE, type Link, type LinkBatchOperationKind, type LinkBatchRequest, type LinkBatchVerdict, type LinkCreateRequest, type LinkId, type LinkPatchRequest, type LinkRejection, type LinkRelationship, type LinkType, type LinkTypeCode, type LinksBatchOperation, type LoadDiagnostic, type LoadDiagnosticCode, type LookaheadConversionFormerParent, type LookaheadConversionGroup, type LookaheadConversionInput, type LookaheadConversionMilestoneMove, type LookaheadConversionPlan, type LookaheadConversionResult, type MutationContext, NEW_ACTIVITY_DEFAULTS, NOT_STARTED_PROGRESS, ORDER_DIRECTION, type OrderDirection, type OrderRule, type OrderState, type ParsedInput, type PendingRequest, type PersistableActivityField, type PersistedEntityIdentity, type PersistenceCheckpoint, type PipelineColumnName, type ProjectWorkHours, REJECTION_REASON, ROOT_PARENT_ID, SCHEDULE_CORE_STATUS, SCHEDULE_EFFECT_KIND, SIR_AUTO_REJECT_REASON, STATUS, STATUS_CRITERIA, type ScheduleActivitiesApi, type ScheduleApiNamespaces, type ScheduleBaselinesApi, type ScheduleCalendarsApi, ScheduleCore, type ScheduleCoreInput, type ScheduleCoreReporter, type ScheduleCoreStatus, type ScheduleCriticalPathApi, type ScheduleDiagnosticsApi, type ScheduleEffect, type ScheduleHistoryApi, type ScheduleImpactRequestsApi, type ScheduleLinksApi, type SchedulePersistenceApi, type ScheduleProjectionApi, type ScheduleSelectionApi, type ScheduleViewApi, type SectorMetadata, type SelectionToggleInput, type StaticActivityDefaults, type StatusCriteria, type TrackingEvent, type UndoOptions, type ViewFilterInput, type ViewStateChange, type ViewStatePropChange, WORK_TIME_DIRECTION, type WithProplannerId, type WorkTimeDirection, checkNoUpdatedLinks, computeExpectedProgress, createSchedule, expectedProgressFromBaseline, getActiveBaseline, getUnsavedActivities, isRootParent, normalizeParentKey, parseFromBackend, willRunCriticalPath, yieldToBrowser };
|