@critical-path/core 0.15.2 → 0.16.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 +12 -0
- package/README.md +4 -0
- package/dist/domain/cpm.d.ts +10 -0
- package/dist/domain/cpm.d.ts.map +1 -0
- package/dist/domain/cpm.js +176 -0
- package/dist/domain/cpm.js.map +1 -0
- package/dist/domain/cpm.test.d.ts +2 -0
- package/dist/domain/cpm.test.d.ts.map +1 -0
- package/dist/domain/cpm.test.js +113 -0
- package/dist/domain/cpm.test.js.map +1 -0
- package/dist/domain/index.d.ts +2 -0
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +2 -0
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/ladder.d.ts +16 -0
- package/dist/domain/ladder.d.ts.map +1 -0
- package/dist/domain/ladder.js +338 -0
- package/dist/domain/ladder.js.map +1 -0
- package/dist/domain/ladder.test.d.ts +2 -0
- package/dist/domain/ladder.test.d.ts.map +1 -0
- package/dist/domain/ladder.test.js +213 -0
- package/dist/domain/ladder.test.js.map +1 -0
- package/dist/engine/index.d.ts +5 -1
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +84 -1
- package/dist/engine/index.js.map +1 -1
- package/dist/store/firebase.d.ts +3 -1
- package/dist/store/firebase.d.ts.map +1 -1
- package/dist/store/firebase.js +1 -1
- package/dist/store/firebase.js.map +1 -1
- package/dist/store/index.d.ts +6 -2
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +1 -1
- package/dist/store/index.js.map +1 -1
- package/dist/store/sqlite.d.ts +3 -1
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +1 -1
- package/dist/store/sqlite.js.map +1 -1
- package/dist/types/index.d.ts +123 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/domain/cpm.test.ts +128 -0
- package/src/domain/cpm.ts +215 -0
- package/src/domain/index.ts +3 -0
- package/src/domain/ladder.test.ts +251 -0
- package/src/domain/ladder.ts +437 -0
- package/src/engine/index.ts +110 -4
- package/src/store/firebase.ts +2 -2
- package/src/store/index.ts +3 -3
- package/src/store/sqlite.ts +2 -2
- package/src/types/index.ts +138 -0
- package/tsconfig.tsbuildinfo +1 -1
package/src/types/index.ts
CHANGED
|
@@ -424,3 +424,141 @@ export interface CriticalPathConfig {
|
|
|
424
424
|
deliverables?: Deliverable[];
|
|
425
425
|
};
|
|
426
426
|
}
|
|
427
|
+
|
|
428
|
+
// ==========================================
|
|
429
|
+
// Bret Victor's Ladder of Abstraction Types
|
|
430
|
+
// ==========================================
|
|
431
|
+
|
|
432
|
+
export type AbstractionLevel = 'macro' | 'standard' | 'concrete' | 'all';
|
|
433
|
+
|
|
434
|
+
export type MacroPhaseHealth = 'on_track' | 'at_risk' | 'blocked' | 'overdue' | 'completed';
|
|
435
|
+
|
|
436
|
+
export interface MacroPhaseRollup {
|
|
437
|
+
id: string; // containerId, iterationId, deliverableId, or 'unassigned'
|
|
438
|
+
type: 'container' | 'iteration' | 'deliverable' | 'phase';
|
|
439
|
+
name: string;
|
|
440
|
+
description?: string;
|
|
441
|
+
startDate?: string;
|
|
442
|
+
endDate?: string;
|
|
443
|
+
durationHours: number;
|
|
444
|
+
totalTasks: number;
|
|
445
|
+
completedTasks: number;
|
|
446
|
+
inProgressTasks: number;
|
|
447
|
+
blockedTasks: number;
|
|
448
|
+
progressPercentage: number;
|
|
449
|
+
totalEstimatedHours: number;
|
|
450
|
+
totalLoggedHours: number;
|
|
451
|
+
isCritical: boolean;
|
|
452
|
+
criticalTaskCount: number;
|
|
453
|
+
health: MacroPhaseHealth;
|
|
454
|
+
taskIds: string[];
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
export interface MacroTimelineSummary {
|
|
458
|
+
projectId: string;
|
|
459
|
+
projectName: string;
|
|
460
|
+
overallStartDate?: string;
|
|
461
|
+
overallEndDate?: string;
|
|
462
|
+
projectedFinishDate?: string;
|
|
463
|
+
totalDurationHours: number;
|
|
464
|
+
criticalPathDurationHours: number;
|
|
465
|
+
overallProgressPercentage: number;
|
|
466
|
+
health: MacroPhaseHealth;
|
|
467
|
+
totalTasks: number;
|
|
468
|
+
completedTasks: number;
|
|
469
|
+
inProgressTasks: number;
|
|
470
|
+
blockedTasks: number;
|
|
471
|
+
totalEstimatedHours: number;
|
|
472
|
+
totalLoggedHours: number;
|
|
473
|
+
phases: MacroPhaseRollup[];
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
export interface TaskCriticalPathSchedule {
|
|
477
|
+
taskId: string;
|
|
478
|
+
earlyStart: number;
|
|
479
|
+
earlyFinish: number;
|
|
480
|
+
lateStart: number;
|
|
481
|
+
lateFinish: number;
|
|
482
|
+
totalSlack: number;
|
|
483
|
+
isCritical: boolean;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
export interface CriticalPathAnalysis {
|
|
487
|
+
projectId: string;
|
|
488
|
+
calculatedAt: string;
|
|
489
|
+
totalDurationHours: number;
|
|
490
|
+
criticalTaskIds: string[];
|
|
491
|
+
tasks: TaskCriticalPathSchedule[];
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
export interface ConcreteEvidenceSummary {
|
|
495
|
+
attachmentCount: number;
|
|
496
|
+
deliverableCount: number;
|
|
497
|
+
todoCount: number;
|
|
498
|
+
completedTodoCount: number;
|
|
499
|
+
timeEntryCount: number;
|
|
500
|
+
totalLoggedHours: number;
|
|
501
|
+
hasVisualAsset: boolean;
|
|
502
|
+
lastActivityAt?: string;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
export interface StandardTaskTimelineItem extends Task {
|
|
506
|
+
cpm?: TaskCriticalPathSchedule;
|
|
507
|
+
blockingTaskIds: string[];
|
|
508
|
+
dependentTaskIds: string[];
|
|
509
|
+
childTaskIds: string[];
|
|
510
|
+
concreteEvidenceSummary: ConcreteEvidenceSummary;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
export interface RealityDelta {
|
|
514
|
+
plannedStartDate?: string;
|
|
515
|
+
actualStartDate?: string;
|
|
516
|
+
dueDate?: string;
|
|
517
|
+
actualEndDate?: string;
|
|
518
|
+
estimatedHours: number;
|
|
519
|
+
loggedHours: number;
|
|
520
|
+
varianceHours: number; // loggedHours - estimatedHours
|
|
521
|
+
scheduleVarianceDays?: number; // days difference between planned/due vs actual
|
|
522
|
+
isOverdue: boolean;
|
|
523
|
+
isOverEstimate: boolean;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
export interface ConcreteTaskEvidence {
|
|
527
|
+
taskId: string;
|
|
528
|
+
attachments: Attachment[];
|
|
529
|
+
deliverables: Deliverable[];
|
|
530
|
+
todos: TaskTodoItem[];
|
|
531
|
+
timeEntries: TimeEntry[];
|
|
532
|
+
dailyEffortDistribution: Array<{ date: string; hours: number }>;
|
|
533
|
+
activities: Activity[];
|
|
534
|
+
realityDelta: RealityDelta;
|
|
535
|
+
evidenceSummary: ConcreteEvidenceSummary;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
export interface TimelineLadderOptions {
|
|
539
|
+
level?: AbstractionLevel;
|
|
540
|
+
containerId?: string;
|
|
541
|
+
iterationId?: string;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
export interface TimelineLadder {
|
|
545
|
+
projectId: string;
|
|
546
|
+
generatedAt: string;
|
|
547
|
+
level: AbstractionLevel;
|
|
548
|
+
macro?: MacroTimelineSummary;
|
|
549
|
+
standard?: {
|
|
550
|
+
tasks: StandardTaskTimelineItem[];
|
|
551
|
+
criticalPathTaskIds: string[];
|
|
552
|
+
dependencies: TaskDependency[];
|
|
553
|
+
totalDurationHours: number;
|
|
554
|
+
};
|
|
555
|
+
concrete?: Record<string, ConcreteTaskEvidence>;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
export interface TaskLadderView {
|
|
559
|
+
taskId: string;
|
|
560
|
+
macroPhase?: MacroPhaseRollup;
|
|
561
|
+
standard: StandardTaskTimelineItem;
|
|
562
|
+
concrete: ConcreteTaskEvidence;
|
|
563
|
+
}
|
|
564
|
+
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./src/deliverables.test.ts","./src/index.test.ts","./src/index.ts","./src/status.test.ts","./src/task-state.test.ts","./src/use-case-validation.test.ts","./src/domain/custom-fields.ts","./src/domain/ddd.test.ts","./src/domain/entities.ts","./src/domain/events.ts","./src/domain/graph.ts","./src/domain/index.ts","./src/engine/index.ts","./src/plugins/index.ts","./src/storage/file-storage.ts","./src/storage/firebase-storage.ts","./src/storage/index.ts","./src/storage/s3.ts","./src/storage/storage.test.ts","./src/store/firebase.test.ts","./src/store/firebase.ts","./src/store/index.ts","./src/store/sqlite.test.ts","./src/store/sqlite.ts","./src/types/index.ts","./src/utils/index.ts","./src/utils/key.test.ts","./src/utils/key.ts","./src/utils/mentions.test.ts","./src/utils/mentions.ts","./src/utils/status.ts","./src/utils/workflow.ts"],"version":"5.9.3"}
|
|
1
|
+
{"root":["./src/deliverables.test.ts","./src/index.test.ts","./src/index.ts","./src/status.test.ts","./src/task-state.test.ts","./src/use-case-validation.test.ts","./src/domain/cpm.test.ts","./src/domain/cpm.ts","./src/domain/custom-fields.ts","./src/domain/ddd.test.ts","./src/domain/entities.ts","./src/domain/events.ts","./src/domain/graph.ts","./src/domain/index.ts","./src/domain/ladder.test.ts","./src/domain/ladder.ts","./src/engine/index.ts","./src/plugins/index.ts","./src/storage/file-storage.ts","./src/storage/firebase-storage.ts","./src/storage/index.ts","./src/storage/s3.ts","./src/storage/storage.test.ts","./src/store/firebase.test.ts","./src/store/firebase.ts","./src/store/index.ts","./src/store/sqlite.test.ts","./src/store/sqlite.ts","./src/types/index.ts","./src/utils/index.ts","./src/utils/key.test.ts","./src/utils/key.ts","./src/utils/mentions.test.ts","./src/utils/mentions.ts","./src/utils/status.ts","./src/utils/workflow.ts"],"version":"5.9.3"}
|