@agent-plan/core 0.2.19-next.9 → 0.2.20

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/schema.d.ts CHANGED
@@ -272,6 +272,46 @@ export declare const AcceptedDecisionSchema: z.ZodObject<{
272
272
  rationale?: string | undefined;
273
273
  implementationNotes?: string | undefined;
274
274
  }>;
275
+ export declare const WorkDeviationSchema: z.ZodObject<{
276
+ id: z.ZodString;
277
+ /** Task the priority selector recommended when the deviation was approved. */
278
+ recommendedTaskId: z.ZodString;
279
+ /** Task intentionally chosen instead of the recommendation. */
280
+ temporaryTaskId: z.ZodString;
281
+ /** Task to surface explicitly after the temporary work is resolved. */
282
+ resumeTaskId: z.ZodString;
283
+ reason: z.ZodDefault<z.ZodString>;
284
+ requestedBy: z.ZodDefault<z.ZodEnum<["agent", "user"]>>;
285
+ approvedBy: z.ZodDefault<z.ZodString>;
286
+ state: z.ZodDefault<z.ZodEnum<["approved", "active", "resolved", "canceled"]>>;
287
+ createdAt: z.ZodString;
288
+ activatedAt: z.ZodDefault<z.ZodString>;
289
+ resolvedAt: z.ZodDefault<z.ZodString>;
290
+ }, "strip", z.ZodTypeAny, {
291
+ id: string;
292
+ createdAt: string;
293
+ recommendedTaskId: string;
294
+ temporaryTaskId: string;
295
+ resumeTaskId: string;
296
+ reason: string;
297
+ requestedBy: "agent" | "user";
298
+ approvedBy: string;
299
+ state: "approved" | "active" | "resolved" | "canceled";
300
+ activatedAt: string;
301
+ resolvedAt: string;
302
+ }, {
303
+ id: string;
304
+ createdAt: string;
305
+ recommendedTaskId: string;
306
+ temporaryTaskId: string;
307
+ resumeTaskId: string;
308
+ reason?: string | undefined;
309
+ requestedBy?: "agent" | "user" | undefined;
310
+ approvedBy?: string | undefined;
311
+ state?: "approved" | "active" | "resolved" | "canceled" | undefined;
312
+ activatedAt?: string | undefined;
313
+ resolvedAt?: string | undefined;
314
+ }>;
275
315
  export declare const ProjectSchema: z.ZodObject<{
276
316
  name: z.ZodString;
277
317
  goal: z.ZodDefault<z.ZodString>;
@@ -324,6 +364,47 @@ export declare const ProjectSchema: z.ZodObject<{
324
364
  nextFeatureNumber: z.ZodDefault<z.ZodNumber>;
325
365
  nextPhaseNumber: z.ZodDefault<z.ZodNumber>;
326
366
  nextTaskNumber: z.ZodDefault<z.ZodNumber>;
367
+ /** Ordered history of approved temporary work deviations; active entries form a resumable stack. */
368
+ workDeviations: z.ZodDefault<z.ZodArray<z.ZodObject<{
369
+ id: z.ZodString;
370
+ /** Task the priority selector recommended when the deviation was approved. */
371
+ recommendedTaskId: z.ZodString;
372
+ /** Task intentionally chosen instead of the recommendation. */
373
+ temporaryTaskId: z.ZodString;
374
+ /** Task to surface explicitly after the temporary work is resolved. */
375
+ resumeTaskId: z.ZodString;
376
+ reason: z.ZodDefault<z.ZodString>;
377
+ requestedBy: z.ZodDefault<z.ZodEnum<["agent", "user"]>>;
378
+ approvedBy: z.ZodDefault<z.ZodString>;
379
+ state: z.ZodDefault<z.ZodEnum<["approved", "active", "resolved", "canceled"]>>;
380
+ createdAt: z.ZodString;
381
+ activatedAt: z.ZodDefault<z.ZodString>;
382
+ resolvedAt: z.ZodDefault<z.ZodString>;
383
+ }, "strip", z.ZodTypeAny, {
384
+ id: string;
385
+ createdAt: string;
386
+ recommendedTaskId: string;
387
+ temporaryTaskId: string;
388
+ resumeTaskId: string;
389
+ reason: string;
390
+ requestedBy: "agent" | "user";
391
+ approvedBy: string;
392
+ state: "approved" | "active" | "resolved" | "canceled";
393
+ activatedAt: string;
394
+ resolvedAt: string;
395
+ }, {
396
+ id: string;
397
+ createdAt: string;
398
+ recommendedTaskId: string;
399
+ temporaryTaskId: string;
400
+ resumeTaskId: string;
401
+ reason?: string | undefined;
402
+ requestedBy?: "agent" | "user" | undefined;
403
+ approvedBy?: string | undefined;
404
+ state?: "approved" | "active" | "resolved" | "canceled" | undefined;
405
+ activatedAt?: string | undefined;
406
+ resolvedAt?: string | undefined;
407
+ }>, "many">>;
327
408
  }, "strip", z.ZodTypeAny, {
328
409
  name: string;
329
410
  goal: string;
@@ -353,6 +434,19 @@ export declare const ProjectSchema: z.ZodObject<{
353
434
  nextFeatureNumber: number;
354
435
  nextPhaseNumber: number;
355
436
  nextTaskNumber: number;
437
+ workDeviations: {
438
+ id: string;
439
+ createdAt: string;
440
+ recommendedTaskId: string;
441
+ temporaryTaskId: string;
442
+ resumeTaskId: string;
443
+ reason: string;
444
+ requestedBy: "agent" | "user";
445
+ approvedBy: string;
446
+ state: "approved" | "active" | "resolved" | "canceled";
447
+ activatedAt: string;
448
+ resolvedAt: string;
449
+ }[];
356
450
  }, {
357
451
  name: string;
358
452
  workflowRules: {
@@ -382,6 +476,19 @@ export declare const ProjectSchema: z.ZodObject<{
382
476
  nextFeatureNumber?: number | undefined;
383
477
  nextPhaseNumber?: number | undefined;
384
478
  nextTaskNumber?: number | undefined;
479
+ workDeviations?: {
480
+ id: string;
481
+ createdAt: string;
482
+ recommendedTaskId: string;
483
+ temporaryTaskId: string;
484
+ resumeTaskId: string;
485
+ reason?: string | undefined;
486
+ requestedBy?: "agent" | "user" | undefined;
487
+ approvedBy?: string | undefined;
488
+ state?: "approved" | "active" | "resolved" | "canceled" | undefined;
489
+ activatedAt?: string | undefined;
490
+ resolvedAt?: string | undefined;
491
+ }[] | undefined;
385
492
  }>;
386
493
  export declare const SubtaskStatusSchema: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
387
494
  export declare const TaskStatusSchema: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
@@ -396,14 +503,14 @@ export declare const SubtaskSchema: z.ZodObject<{
396
503
  createdAt: z.ZodString;
397
504
  updatedAt: z.ZodString;
398
505
  }, "strip", z.ZodTypeAny, {
399
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
506
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
400
507
  updatedAt: string;
401
508
  id: string;
402
509
  createdAt: string;
403
510
  title: string;
404
511
  description: string;
405
512
  }, {
406
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
513
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
407
514
  updatedAt: string;
408
515
  id: string;
409
516
  createdAt: string;
@@ -412,15 +519,21 @@ export declare const SubtaskSchema: z.ZodObject<{
412
519
  }>;
413
520
  export declare const ChecklistItemSchema: z.ZodObject<{
414
521
  id: z.ZodString;
522
+ /** Per-task 1-based position, displayed as C{number} (C1, C2, ...). Default 0
523
+ * so legacy on-disk items without a number still parse; the TaskSchema
524
+ * transform overwrites it with the real index+1. */
525
+ number: z.ZodDefault<z.ZodNumber>;
415
526
  title: z.ZodString;
416
527
  checked: z.ZodDefault<z.ZodBoolean>;
417
528
  }, "strip", z.ZodTypeAny, {
529
+ number: number;
418
530
  id: string;
419
531
  title: string;
420
532
  checked: boolean;
421
533
  }, {
422
534
  id: string;
423
535
  title: string;
536
+ number?: number | undefined;
424
537
  checked?: boolean | undefined;
425
538
  }>;
426
539
  /** Status transitions that require a motivation note from the agent. */
@@ -444,18 +557,44 @@ export declare const StatusLogEntrySchema: z.ZodObject<{
444
557
  date: string;
445
558
  title: string;
446
559
  description: string;
447
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
448
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
560
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
561
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
449
562
  }, {
450
563
  id: string;
451
564
  date: string;
452
565
  title: string;
453
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
454
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
566
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
567
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
568
+ description?: string | undefined;
569
+ }>;
570
+ /** Like StatusLogEntrySchema but for the DERIVED PHASE status, which includes
571
+ * the "draft" and "discovery" lifecycle states absent from TaskStatus. */
572
+ export declare const PhaseStatusLogEntrySchema: z.ZodObject<{
573
+ id: z.ZodString;
574
+ date: z.ZodString;
575
+ fromStatus: z.ZodEnum<["draft", "discovery", "planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
576
+ toStatus: z.ZodEnum<["draft", "discovery", "planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
577
+ title: z.ZodString;
578
+ description: z.ZodDefault<z.ZodString>;
579
+ }, "strip", z.ZodTypeAny, {
580
+ id: string;
581
+ date: string;
582
+ title: string;
583
+ description: string;
584
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
585
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
586
+ }, {
587
+ id: string;
588
+ date: string;
589
+ title: string;
590
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
591
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
455
592
  description?: string | undefined;
456
593
  }>;
457
594
  export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
458
595
  id: z.ZodString;
596
+ /** MUST be a phase UUID (not a ref like "P003"). Validated at the schema
597
+ * layer so no adapter can persist an unresolved ref string. */
459
598
  phaseId: z.ZodString;
460
599
  /** Global project-wide task sequence (assigned once at creation from project.nextTaskNumber; stable, gaps on delete). Bare T00x is unambiguous. */
461
600
  number: z.ZodDefault<z.ZodNumber>;
@@ -465,6 +604,8 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
465
604
  title: z.ZodString;
466
605
  status: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
467
606
  description: z.ZodDefault<z.ZodString>;
607
+ /** Updated only when this task's description changes; distinct from entity updatedAt. */
608
+ descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
468
609
  notes: z.ZodDefault<z.ZodString>;
469
610
  statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
470
611
  id: z.ZodString;
@@ -478,14 +619,14 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
478
619
  date: string;
479
620
  title: string;
480
621
  description: string;
481
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
482
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
622
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
623
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
483
624
  }, {
484
625
  id: string;
485
626
  date: string;
486
627
  title: string;
487
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
488
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
628
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
629
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
489
630
  description?: string | undefined;
490
631
  }>, "many">>;
491
632
  decisions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
@@ -513,15 +654,21 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
513
654
  }>, "many">>;
514
655
  checklist: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
515
656
  id: z.ZodString;
657
+ /** Per-task 1-based position, displayed as C{number} (C1, C2, ...). Default 0
658
+ * so legacy on-disk items without a number still parse; the TaskSchema
659
+ * transform overwrites it with the real index+1. */
660
+ number: z.ZodDefault<z.ZodNumber>;
516
661
  title: z.ZodString;
517
662
  checked: z.ZodDefault<z.ZodBoolean>;
518
663
  }, "strip", z.ZodTypeAny, {
664
+ number: number;
519
665
  id: string;
520
666
  title: string;
521
667
  checked: boolean;
522
668
  }, {
523
669
  id: string;
524
670
  title: string;
671
+ number?: number | undefined;
525
672
  checked?: boolean | undefined;
526
673
  }>]>, "many">>;
527
674
  subtasks: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -532,14 +679,14 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
532
679
  createdAt: z.ZodString;
533
680
  updatedAt: z.ZodString;
534
681
  }, "strip", z.ZodTypeAny, {
535
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
682
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
536
683
  updatedAt: string;
537
684
  id: string;
538
685
  createdAt: string;
539
686
  title: string;
540
687
  description: string;
541
688
  }, {
542
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
689
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
543
690
  updatedAt: string;
544
691
  id: string;
545
692
  createdAt: string;
@@ -553,7 +700,7 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
553
700
  updatedAt: z.ZodString;
554
701
  }, "strip", z.ZodTypeAny, {
555
702
  number: number;
556
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
703
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
557
704
  updatedAt: string;
558
705
  notes: string;
559
706
  id: string;
@@ -573,21 +720,23 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
573
720
  shortId: string;
574
721
  priority: number;
575
722
  shortName: string;
723
+ descriptionUpdatedAt: string;
576
724
  statusLog: {
577
725
  id: string;
578
726
  date: string;
579
727
  title: string;
580
728
  description: string;
581
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
582
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
729
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
730
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
583
731
  }[];
584
732
  checklist: (string | {
733
+ number: number;
585
734
  id: string;
586
735
  title: string;
587
736
  checked: boolean;
588
737
  })[];
589
738
  subtasks: {
590
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
739
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
591
740
  updatedAt: string;
592
741
  id: string;
593
742
  createdAt: string;
@@ -598,7 +747,7 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
598
747
  startedAt: string;
599
748
  completedAt: string;
600
749
  }, {
601
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
750
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
602
751
  updatedAt: string;
603
752
  id: string;
604
753
  createdAt: string;
@@ -619,21 +768,23 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
619
768
  }[] | undefined;
620
769
  shortId?: string | undefined;
621
770
  priority?: number | undefined;
771
+ descriptionUpdatedAt?: string | undefined;
622
772
  statusLog?: {
623
773
  id: string;
624
774
  date: string;
625
775
  title: string;
626
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
627
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
776
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
777
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
628
778
  description?: string | undefined;
629
779
  }[] | undefined;
630
780
  checklist?: (string | {
631
781
  id: string;
632
782
  title: string;
783
+ number?: number | undefined;
633
784
  checked?: boolean | undefined;
634
785
  })[] | undefined;
635
786
  subtasks?: {
636
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
787
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
637
788
  updatedAt: string;
638
789
  id: string;
639
790
  createdAt: string;
@@ -646,11 +797,12 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
646
797
  }>, {
647
798
  checklist: {
648
799
  id: string;
800
+ number: number;
649
801
  title: string;
650
802
  checked: boolean;
651
803
  }[];
652
804
  number: number;
653
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
805
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
654
806
  updatedAt: string;
655
807
  notes: string;
656
808
  id: string;
@@ -670,16 +822,17 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
670
822
  shortId: string;
671
823
  priority: number;
672
824
  shortName: string;
825
+ descriptionUpdatedAt: string;
673
826
  statusLog: {
674
827
  id: string;
675
828
  date: string;
676
829
  title: string;
677
830
  description: string;
678
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
679
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
831
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
832
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
680
833
  }[];
681
834
  subtasks: {
682
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
835
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
683
836
  updatedAt: string;
684
837
  id: string;
685
838
  createdAt: string;
@@ -690,7 +843,7 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
690
843
  startedAt: string;
691
844
  completedAt: string;
692
845
  }, {
693
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
846
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
694
847
  updatedAt: string;
695
848
  id: string;
696
849
  createdAt: string;
@@ -711,21 +864,23 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
711
864
  }[] | undefined;
712
865
  shortId?: string | undefined;
713
866
  priority?: number | undefined;
867
+ descriptionUpdatedAt?: string | undefined;
714
868
  statusLog?: {
715
869
  id: string;
716
870
  date: string;
717
871
  title: string;
718
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
719
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
872
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
873
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
720
874
  description?: string | undefined;
721
875
  }[] | undefined;
722
876
  checklist?: (string | {
723
877
  id: string;
724
878
  title: string;
879
+ number?: number | undefined;
725
880
  checked?: boolean | undefined;
726
881
  })[] | undefined;
727
882
  subtasks?: {
728
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
883
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
729
884
  updatedAt: string;
730
885
  id: string;
731
886
  createdAt: string;
@@ -737,15 +892,15 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
737
892
  completedAt?: string | undefined;
738
893
  }>;
739
894
  export declare const HandoffHistoryEntrySchema: z.ZodObject<{
740
- /** Relative path under .planner/handoff-archive/ (e.g. <phaseId>-<ISO>.md). */
895
+ /** Relative path under .planner/.local/handoff-archive/ (e.g. <phaseId>-<ISO>.md). */
741
896
  file: z.ZodDefault<z.ZodString>;
742
897
  clearedAt: z.ZodString;
743
898
  /** Why the handoff was cleared: "task-started" | "phase-done" | "manual" | "superseded" | "imported". */
744
899
  reason: z.ZodDefault<z.ZodString>;
745
900
  }, "strip", z.ZodTypeAny, {
746
901
  file: string;
747
- clearedAt: string;
748
902
  reason: string;
903
+ clearedAt: string;
749
904
  }, {
750
905
  clearedAt: string;
751
906
  file?: string | undefined;
@@ -753,6 +908,9 @@ export declare const HandoffHistoryEntrySchema: z.ZodObject<{
753
908
  }>;
754
909
  export declare const PhaseSchema: z.ZodObject<{
755
910
  id: z.ZodString;
911
+ /** MUST be a feature UUID (not a ref like "F005"). Validated at the schema
912
+ * layer so no adapter can persist an unresolved ref string. Optional only
913
+ * for legacy pre-feature phases. */
756
914
  featureId: z.ZodOptional<z.ZodString>;
757
915
  /** Global project-wide phase sequence (assigned once at creation from project.nextPhaseNumber; stable, gaps on delete). Bare P00x is unambiguous. */
758
916
  number: z.ZodNumber;
@@ -765,6 +923,8 @@ export declare const PhaseSchema: z.ZodObject<{
765
923
  contextReadyReason: z.ZodDefault<z.ZodString>;
766
924
  summary: z.ZodDefault<z.ZodString>;
767
925
  description: z.ZodDefault<z.ZodString>;
926
+ /** Updated only when this phase's description changes; distinct from entity updatedAt. */
927
+ descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
768
928
  notes: z.ZodDefault<z.ZodString>;
769
929
  goals: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
770
930
  nonGoals: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
@@ -799,6 +959,8 @@ export declare const PhaseSchema: z.ZodObject<{
799
959
  taskIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
800
960
  tasks: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodObject<{
801
961
  id: z.ZodString;
962
+ /** MUST be a phase UUID (not a ref like "P003"). Validated at the schema
963
+ * layer so no adapter can persist an unresolved ref string. */
802
964
  phaseId: z.ZodString;
803
965
  /** Global project-wide task sequence (assigned once at creation from project.nextTaskNumber; stable, gaps on delete). Bare T00x is unambiguous. */
804
966
  number: z.ZodDefault<z.ZodNumber>;
@@ -808,6 +970,8 @@ export declare const PhaseSchema: z.ZodObject<{
808
970
  title: z.ZodString;
809
971
  status: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
810
972
  description: z.ZodDefault<z.ZodString>;
973
+ /** Updated only when this task's description changes; distinct from entity updatedAt. */
974
+ descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
811
975
  notes: z.ZodDefault<z.ZodString>;
812
976
  statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
813
977
  id: z.ZodString;
@@ -821,14 +985,14 @@ export declare const PhaseSchema: z.ZodObject<{
821
985
  date: string;
822
986
  title: string;
823
987
  description: string;
824
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
825
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
988
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
989
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
826
990
  }, {
827
991
  id: string;
828
992
  date: string;
829
993
  title: string;
830
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
831
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
994
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
995
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
832
996
  description?: string | undefined;
833
997
  }>, "many">>;
834
998
  decisions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
@@ -856,15 +1020,21 @@ export declare const PhaseSchema: z.ZodObject<{
856
1020
  }>, "many">>;
857
1021
  checklist: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
858
1022
  id: z.ZodString;
1023
+ /** Per-task 1-based position, displayed as C{number} (C1, C2, ...). Default 0
1024
+ * so legacy on-disk items without a number still parse; the TaskSchema
1025
+ * transform overwrites it with the real index+1. */
1026
+ number: z.ZodDefault<z.ZodNumber>;
859
1027
  title: z.ZodString;
860
1028
  checked: z.ZodDefault<z.ZodBoolean>;
861
1029
  }, "strip", z.ZodTypeAny, {
1030
+ number: number;
862
1031
  id: string;
863
1032
  title: string;
864
1033
  checked: boolean;
865
1034
  }, {
866
1035
  id: string;
867
1036
  title: string;
1037
+ number?: number | undefined;
868
1038
  checked?: boolean | undefined;
869
1039
  }>]>, "many">>;
870
1040
  subtasks: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -875,14 +1045,14 @@ export declare const PhaseSchema: z.ZodObject<{
875
1045
  createdAt: z.ZodString;
876
1046
  updatedAt: z.ZodString;
877
1047
  }, "strip", z.ZodTypeAny, {
878
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1048
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
879
1049
  updatedAt: string;
880
1050
  id: string;
881
1051
  createdAt: string;
882
1052
  title: string;
883
1053
  description: string;
884
1054
  }, {
885
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1055
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
886
1056
  updatedAt: string;
887
1057
  id: string;
888
1058
  createdAt: string;
@@ -896,7 +1066,7 @@ export declare const PhaseSchema: z.ZodObject<{
896
1066
  updatedAt: z.ZodString;
897
1067
  }, "strip", z.ZodTypeAny, {
898
1068
  number: number;
899
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1069
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
900
1070
  updatedAt: string;
901
1071
  notes: string;
902
1072
  id: string;
@@ -916,21 +1086,23 @@ export declare const PhaseSchema: z.ZodObject<{
916
1086
  shortId: string;
917
1087
  priority: number;
918
1088
  shortName: string;
1089
+ descriptionUpdatedAt: string;
919
1090
  statusLog: {
920
1091
  id: string;
921
1092
  date: string;
922
1093
  title: string;
923
1094
  description: string;
924
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
925
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1095
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1096
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
926
1097
  }[];
927
1098
  checklist: (string | {
1099
+ number: number;
928
1100
  id: string;
929
1101
  title: string;
930
1102
  checked: boolean;
931
1103
  })[];
932
1104
  subtasks: {
933
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1105
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
934
1106
  updatedAt: string;
935
1107
  id: string;
936
1108
  createdAt: string;
@@ -941,7 +1113,7 @@ export declare const PhaseSchema: z.ZodObject<{
941
1113
  startedAt: string;
942
1114
  completedAt: string;
943
1115
  }, {
944
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1116
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
945
1117
  updatedAt: string;
946
1118
  id: string;
947
1119
  createdAt: string;
@@ -962,21 +1134,23 @@ export declare const PhaseSchema: z.ZodObject<{
962
1134
  }[] | undefined;
963
1135
  shortId?: string | undefined;
964
1136
  priority?: number | undefined;
1137
+ descriptionUpdatedAt?: string | undefined;
965
1138
  statusLog?: {
966
1139
  id: string;
967
1140
  date: string;
968
1141
  title: string;
969
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
970
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1142
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1143
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
971
1144
  description?: string | undefined;
972
1145
  }[] | undefined;
973
1146
  checklist?: (string | {
974
1147
  id: string;
975
1148
  title: string;
1149
+ number?: number | undefined;
976
1150
  checked?: boolean | undefined;
977
1151
  })[] | undefined;
978
1152
  subtasks?: {
979
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1153
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
980
1154
  updatedAt: string;
981
1155
  id: string;
982
1156
  createdAt: string;
@@ -989,11 +1163,12 @@ export declare const PhaseSchema: z.ZodObject<{
989
1163
  }>, {
990
1164
  checklist: {
991
1165
  id: string;
1166
+ number: number;
992
1167
  title: string;
993
1168
  checked: boolean;
994
1169
  }[];
995
1170
  number: number;
996
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1171
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
997
1172
  updatedAt: string;
998
1173
  notes: string;
999
1174
  id: string;
@@ -1013,16 +1188,17 @@ export declare const PhaseSchema: z.ZodObject<{
1013
1188
  shortId: string;
1014
1189
  priority: number;
1015
1190
  shortName: string;
1191
+ descriptionUpdatedAt: string;
1016
1192
  statusLog: {
1017
1193
  id: string;
1018
1194
  date: string;
1019
1195
  title: string;
1020
1196
  description: string;
1021
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1022
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1197
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1198
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1023
1199
  }[];
1024
1200
  subtasks: {
1025
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1201
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1026
1202
  updatedAt: string;
1027
1203
  id: string;
1028
1204
  createdAt: string;
@@ -1033,7 +1209,7 @@ export declare const PhaseSchema: z.ZodObject<{
1033
1209
  startedAt: string;
1034
1210
  completedAt: string;
1035
1211
  }, {
1036
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1212
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1037
1213
  updatedAt: string;
1038
1214
  id: string;
1039
1215
  createdAt: string;
@@ -1054,21 +1230,23 @@ export declare const PhaseSchema: z.ZodObject<{
1054
1230
  }[] | undefined;
1055
1231
  shortId?: string | undefined;
1056
1232
  priority?: number | undefined;
1233
+ descriptionUpdatedAt?: string | undefined;
1057
1234
  statusLog?: {
1058
1235
  id: string;
1059
1236
  date: string;
1060
1237
  title: string;
1061
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1062
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1238
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1239
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1063
1240
  description?: string | undefined;
1064
1241
  }[] | undefined;
1065
1242
  checklist?: (string | {
1066
1243
  id: string;
1067
1244
  title: string;
1245
+ number?: number | undefined;
1068
1246
  checked?: boolean | undefined;
1069
1247
  })[] | undefined;
1070
1248
  subtasks?: {
1071
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1249
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1072
1250
  updatedAt: string;
1073
1251
  id: string;
1074
1252
  createdAt: string;
@@ -1084,29 +1262,52 @@ export declare const PhaseSchema: z.ZodObject<{
1084
1262
  handoff: z.ZodDefault<z.ZodString>;
1085
1263
  handoffUpdatedAt: z.ZodDefault<z.ZodString>;
1086
1264
  /** When the handoff was last read/acknowledged on recap (ISO). Non-empty means
1087
- * the agent has seen it; the recap won't re-prompt every turn. The handoff
1088
- * content is KEPT until a task in the phase starts (auto-clear) or the phase
1089
- * completes so a restart between read and resume does not lose context. */
1265
+ * the agent has seen it; the recap won't re-prompt every turn. Reading is
1266
+ * non-mutating: content remains until every task is done/canceled, a later
1267
+ * handoff supersedes it, or the user explicitly clears it. */
1090
1268
  handoffReadAt: z.ZodDefault<z.ZodString>;
1091
1269
  /** Metadata for recently-cleared handoffs (newest-first, capped at 5). The
1092
- * full content lives as .md files in .planner/handoff-archive/ (gitignored);
1270
+ * full content lives as .md files in .planner/.local/handoff-archive/ (gitignored);
1093
1271
  * this array only holds the pointer + clear reason + timestamp, so the phase
1094
1272
  * JSON stays lean and the archive is recoverable. */
1095
1273
  handoffHistory: z.ZodDefault<z.ZodArray<z.ZodObject<{
1096
- /** Relative path under .planner/handoff-archive/ (e.g. <phaseId>-<ISO>.md). */
1274
+ /** Relative path under .planner/.local/handoff-archive/ (e.g. <phaseId>-<ISO>.md). */
1097
1275
  file: z.ZodDefault<z.ZodString>;
1098
1276
  clearedAt: z.ZodString;
1099
1277
  /** Why the handoff was cleared: "task-started" | "phase-done" | "manual" | "superseded" | "imported". */
1100
1278
  reason: z.ZodDefault<z.ZodString>;
1101
1279
  }, "strip", z.ZodTypeAny, {
1102
1280
  file: string;
1103
- clearedAt: string;
1104
1281
  reason: string;
1282
+ clearedAt: string;
1105
1283
  }, {
1106
1284
  clearedAt: string;
1107
1285
  file?: string | undefined;
1108
1286
  reason?: string | undefined;
1109
1287
  }>, "many">>;
1288
+ /** Chronological audit trail of the DERIVED status (planned/in-progress/blocked/done/...). Appended ONLY when the derived status changes during a rollup; `status` itself is NOT persisted (still computed from child tasks at read time). Empty = no transition recorded yet (treated as "planned"). */
1289
+ statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
1290
+ id: z.ZodString;
1291
+ date: z.ZodString;
1292
+ fromStatus: z.ZodEnum<["draft", "discovery", "planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
1293
+ toStatus: z.ZodEnum<["draft", "discovery", "planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
1294
+ title: z.ZodString;
1295
+ description: z.ZodDefault<z.ZodString>;
1296
+ }, "strip", z.ZodTypeAny, {
1297
+ id: string;
1298
+ date: string;
1299
+ title: string;
1300
+ description: string;
1301
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
1302
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
1303
+ }, {
1304
+ id: string;
1305
+ date: string;
1306
+ title: string;
1307
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
1308
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
1309
+ description?: string | undefined;
1310
+ }>, "many">>;
1110
1311
  }, "strip", z.ZodTypeAny, {
1111
1312
  number: number;
1112
1313
  dependencies: string[];
@@ -1128,6 +1329,15 @@ export declare const PhaseSchema: z.ZodObject<{
1128
1329
  }[];
1129
1330
  shortId: string;
1130
1331
  priority: number;
1332
+ descriptionUpdatedAt: string;
1333
+ statusLog: {
1334
+ id: string;
1335
+ date: string;
1336
+ title: string;
1337
+ description: string;
1338
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
1339
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
1340
+ }[];
1131
1341
  dependsOn: string[];
1132
1342
  slug: string;
1133
1343
  discussedAt: string;
@@ -1142,11 +1352,12 @@ export declare const PhaseSchema: z.ZodObject<{
1142
1352
  tasks: {
1143
1353
  checklist: {
1144
1354
  id: string;
1355
+ number: number;
1145
1356
  title: string;
1146
1357
  checked: boolean;
1147
1358
  }[];
1148
1359
  number: number;
1149
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1360
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1150
1361
  updatedAt: string;
1151
1362
  notes: string;
1152
1363
  id: string;
@@ -1166,16 +1377,17 @@ export declare const PhaseSchema: z.ZodObject<{
1166
1377
  shortId: string;
1167
1378
  priority: number;
1168
1379
  shortName: string;
1380
+ descriptionUpdatedAt: string;
1169
1381
  statusLog: {
1170
1382
  id: string;
1171
1383
  date: string;
1172
1384
  title: string;
1173
1385
  description: string;
1174
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1175
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1386
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1387
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1176
1388
  }[];
1177
1389
  subtasks: {
1178
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1390
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1179
1391
  updatedAt: string;
1180
1392
  id: string;
1181
1393
  createdAt: string;
@@ -1191,8 +1403,8 @@ export declare const PhaseSchema: z.ZodObject<{
1191
1403
  handoffReadAt: string;
1192
1404
  handoffHistory: {
1193
1405
  file: string;
1194
- clearedAt: string;
1195
1406
  reason: string;
1407
+ clearedAt: string;
1196
1408
  }[];
1197
1409
  featureId?: string | undefined;
1198
1410
  }, {
@@ -1217,6 +1429,15 @@ export declare const PhaseSchema: z.ZodObject<{
1217
1429
  }[] | undefined;
1218
1430
  shortId?: string | undefined;
1219
1431
  priority?: number | undefined;
1432
+ descriptionUpdatedAt?: string | undefined;
1433
+ statusLog?: {
1434
+ id: string;
1435
+ date: string;
1436
+ title: string;
1437
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
1438
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
1439
+ description?: string | undefined;
1440
+ }[] | undefined;
1220
1441
  dependsOn?: string[] | undefined;
1221
1442
  featureId?: string | undefined;
1222
1443
  discussedAt?: string | undefined;
@@ -1229,7 +1450,7 @@ export declare const PhaseSchema: z.ZodObject<{
1229
1450
  completionCriteria?: string[] | undefined;
1230
1451
  taskIds?: string[] | undefined;
1231
1452
  tasks?: {
1232
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1453
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1233
1454
  updatedAt: string;
1234
1455
  id: string;
1235
1456
  createdAt: string;
@@ -1250,21 +1471,23 @@ export declare const PhaseSchema: z.ZodObject<{
1250
1471
  }[] | undefined;
1251
1472
  shortId?: string | undefined;
1252
1473
  priority?: number | undefined;
1474
+ descriptionUpdatedAt?: string | undefined;
1253
1475
  statusLog?: {
1254
1476
  id: string;
1255
1477
  date: string;
1256
1478
  title: string;
1257
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1258
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1479
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1480
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1259
1481
  description?: string | undefined;
1260
1482
  }[] | undefined;
1261
1483
  checklist?: (string | {
1262
1484
  id: string;
1263
1485
  title: string;
1486
+ number?: number | undefined;
1264
1487
  checked?: boolean | undefined;
1265
1488
  })[] | undefined;
1266
1489
  subtasks?: {
1267
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1490
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1268
1491
  updatedAt: string;
1269
1492
  id: string;
1270
1493
  createdAt: string;
@@ -1292,6 +1515,8 @@ export declare const FeatureSchema: z.ZodObject<{
1292
1515
  priority: z.ZodDefault<z.ZodNumber>;
1293
1516
  name: z.ZodString;
1294
1517
  description: z.ZodDefault<z.ZodString>;
1518
+ /** Updated only when this feature's description changes; distinct from entity updatedAt. */
1519
+ descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
1295
1520
  discussedAt: z.ZodDefault<z.ZodString>;
1296
1521
  contextReady: z.ZodDefault<z.ZodBoolean>;
1297
1522
  contextReadyReason: z.ZodDefault<z.ZodString>;
@@ -1323,6 +1548,29 @@ export declare const FeatureSchema: z.ZodObject<{
1323
1548
  }>, "many">>;
1324
1549
  phaseIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1325
1550
  dependsOn: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1551
+ /** Chronological audit trail of the DERIVED status (computed from child phases at read time). Appended ONLY when the derived status changes during a rollup; `status` itself is NOT persisted. Empty = no transition recorded yet (treated as "planned"). */
1552
+ statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
1553
+ id: z.ZodString;
1554
+ date: z.ZodString;
1555
+ fromStatus: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
1556
+ toStatus: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
1557
+ title: z.ZodString;
1558
+ description: z.ZodDefault<z.ZodString>;
1559
+ }, "strip", z.ZodTypeAny, {
1560
+ id: string;
1561
+ date: string;
1562
+ title: string;
1563
+ description: string;
1564
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1565
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1566
+ }, {
1567
+ id: string;
1568
+ date: string;
1569
+ title: string;
1570
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1571
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1572
+ description?: string | undefined;
1573
+ }>, "many">>;
1326
1574
  createdAt: z.ZodString;
1327
1575
  updatedAt: z.ZodString;
1328
1576
  }, "strip", z.ZodTypeAny, {
@@ -1342,6 +1590,15 @@ export declare const FeatureSchema: z.ZodObject<{
1342
1590
  }[];
1343
1591
  shortId: string;
1344
1592
  priority: number;
1593
+ descriptionUpdatedAt: string;
1594
+ statusLog: {
1595
+ id: string;
1596
+ date: string;
1597
+ title: string;
1598
+ description: string;
1599
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1600
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1601
+ }[];
1345
1602
  dependsOn: string[];
1346
1603
  discussedAt: string;
1347
1604
  contextReady: boolean;
@@ -1368,6 +1625,15 @@ export declare const FeatureSchema: z.ZodObject<{
1368
1625
  }[] | undefined;
1369
1626
  shortId?: string | undefined;
1370
1627
  priority?: number | undefined;
1628
+ descriptionUpdatedAt?: string | undefined;
1629
+ statusLog?: {
1630
+ id: string;
1631
+ date: string;
1632
+ title: string;
1633
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1634
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1635
+ description?: string | undefined;
1636
+ }[] | undefined;
1371
1637
  dependsOn?: string[] | undefined;
1372
1638
  discussedAt?: string | undefined;
1373
1639
  contextReady?: boolean | undefined;
@@ -1387,6 +1653,8 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
1387
1653
  priority: z.ZodDefault<z.ZodNumber>;
1388
1654
  name: z.ZodString;
1389
1655
  description: z.ZodDefault<z.ZodString>;
1656
+ /** Updated only when this feature's description changes; distinct from entity updatedAt. */
1657
+ descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
1390
1658
  discussedAt: z.ZodDefault<z.ZodString>;
1391
1659
  contextReady: z.ZodDefault<z.ZodBoolean>;
1392
1660
  contextReadyReason: z.ZodDefault<z.ZodString>;
@@ -1418,6 +1686,29 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
1418
1686
  }>, "many">>;
1419
1687
  phaseIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1420
1688
  dependsOn: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1689
+ /** Chronological audit trail of the DERIVED status (computed from child phases at read time). Appended ONLY when the derived status changes during a rollup; `status` itself is NOT persisted. Empty = no transition recorded yet (treated as "planned"). */
1690
+ statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
1691
+ id: z.ZodString;
1692
+ date: z.ZodString;
1693
+ fromStatus: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
1694
+ toStatus: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
1695
+ title: z.ZodString;
1696
+ description: z.ZodDefault<z.ZodString>;
1697
+ }, "strip", z.ZodTypeAny, {
1698
+ id: string;
1699
+ date: string;
1700
+ title: string;
1701
+ description: string;
1702
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1703
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1704
+ }, {
1705
+ id: string;
1706
+ date: string;
1707
+ title: string;
1708
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1709
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1710
+ description?: string | undefined;
1711
+ }>, "many">>;
1421
1712
  createdAt: z.ZodString;
1422
1713
  updatedAt: z.ZodString;
1423
1714
  }, "strip", z.ZodTypeAny, {
@@ -1437,6 +1728,15 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
1437
1728
  }[];
1438
1729
  shortId: string;
1439
1730
  priority: number;
1731
+ descriptionUpdatedAt: string;
1732
+ statusLog: {
1733
+ id: string;
1734
+ date: string;
1735
+ title: string;
1736
+ description: string;
1737
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1738
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1739
+ }[];
1440
1740
  dependsOn: string[];
1441
1741
  discussedAt: string;
1442
1742
  contextReady: boolean;
@@ -1463,6 +1763,15 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
1463
1763
  }[] | undefined;
1464
1764
  shortId?: string | undefined;
1465
1765
  priority?: number | undefined;
1766
+ descriptionUpdatedAt?: string | undefined;
1767
+ statusLog?: {
1768
+ id: string;
1769
+ date: string;
1770
+ title: string;
1771
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1772
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1773
+ description?: string | undefined;
1774
+ }[] | undefined;
1466
1775
  dependsOn?: string[] | undefined;
1467
1776
  discussedAt?: string | undefined;
1468
1777
  contextReady?: boolean | undefined;
@@ -1491,6 +1800,15 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
1491
1800
  }[];
1492
1801
  shortId: string;
1493
1802
  priority: number;
1803
+ descriptionUpdatedAt: string;
1804
+ statusLog: {
1805
+ id: string;
1806
+ date: string;
1807
+ title: string;
1808
+ description: string;
1809
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1810
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1811
+ }[];
1494
1812
  dependsOn: string[];
1495
1813
  discussedAt: string;
1496
1814
  contextReady: boolean;
@@ -1519,6 +1837,15 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
1519
1837
  }[] | undefined;
1520
1838
  shortId?: string | undefined;
1521
1839
  priority?: number | undefined;
1840
+ descriptionUpdatedAt?: string | undefined;
1841
+ statusLog?: {
1842
+ id: string;
1843
+ date: string;
1844
+ title: string;
1845
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1846
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1847
+ description?: string | undefined;
1848
+ }[] | undefined;
1522
1849
  dependsOn?: string[] | undefined;
1523
1850
  discussedAt?: string | undefined;
1524
1851
  contextReady?: boolean | undefined;
@@ -1538,14 +1865,14 @@ export declare const MacroTaskSchema: z.ZodObject<{
1538
1865
  createdAt: z.ZodString;
1539
1866
  updatedAt: z.ZodString;
1540
1867
  }, "strip", z.ZodTypeAny, {
1541
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1868
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1542
1869
  updatedAt: string;
1543
1870
  id: string;
1544
1871
  createdAt: string;
1545
1872
  title: string;
1546
1873
  description: string;
1547
1874
  }, {
1548
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1875
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1549
1876
  updatedAt: string;
1550
1877
  id: string;
1551
1878
  createdAt: string;
@@ -1565,14 +1892,14 @@ export declare const RequirementSchema: z.ZodObject<{
1565
1892
  createdAt: z.ZodString;
1566
1893
  updatedAt: z.ZodString;
1567
1894
  }, "strip", z.ZodTypeAny, {
1568
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1895
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1569
1896
  updatedAt: string;
1570
1897
  id: string;
1571
1898
  createdAt: string;
1572
1899
  title: string;
1573
1900
  description: string;
1574
1901
  }, {
1575
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1902
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1576
1903
  updatedAt: string;
1577
1904
  id: string;
1578
1905
  createdAt: string;
@@ -1583,14 +1910,14 @@ export declare const RequirementSchema: z.ZodObject<{
1583
1910
  createdAt: z.ZodString;
1584
1911
  updatedAt: z.ZodString;
1585
1912
  }, "strip", z.ZodTypeAny, {
1586
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1913
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1587
1914
  updatedAt: string;
1588
1915
  id: string;
1589
1916
  createdAt: string;
1590
1917
  title: string;
1591
1918
  description: string;
1592
1919
  macroTasks: {
1593
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1920
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1594
1921
  updatedAt: string;
1595
1922
  id: string;
1596
1923
  createdAt: string;
@@ -1599,14 +1926,14 @@ export declare const RequirementSchema: z.ZodObject<{
1599
1926
  }[];
1600
1927
  linkedPhaseIds: string[];
1601
1928
  }, {
1602
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1929
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1603
1930
  updatedAt: string;
1604
1931
  id: string;
1605
1932
  createdAt: string;
1606
1933
  title: string;
1607
1934
  description?: string | undefined;
1608
1935
  macroTasks?: {
1609
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1936
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1610
1937
  updatedAt: string;
1611
1938
  id: string;
1612
1939
  createdAt: string;
@@ -1629,14 +1956,14 @@ export declare const RequirementsDocumentSchema: z.ZodObject<{
1629
1956
  createdAt: z.ZodString;
1630
1957
  updatedAt: z.ZodString;
1631
1958
  }, "strip", z.ZodTypeAny, {
1632
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1959
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1633
1960
  updatedAt: string;
1634
1961
  id: string;
1635
1962
  createdAt: string;
1636
1963
  title: string;
1637
1964
  description: string;
1638
1965
  }, {
1639
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1966
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1640
1967
  updatedAt: string;
1641
1968
  id: string;
1642
1969
  createdAt: string;
@@ -1647,14 +1974,14 @@ export declare const RequirementsDocumentSchema: z.ZodObject<{
1647
1974
  createdAt: z.ZodString;
1648
1975
  updatedAt: z.ZodString;
1649
1976
  }, "strip", z.ZodTypeAny, {
1650
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1977
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1651
1978
  updatedAt: string;
1652
1979
  id: string;
1653
1980
  createdAt: string;
1654
1981
  title: string;
1655
1982
  description: string;
1656
1983
  macroTasks: {
1657
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1984
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1658
1985
  updatedAt: string;
1659
1986
  id: string;
1660
1987
  createdAt: string;
@@ -1663,14 +1990,14 @@ export declare const RequirementsDocumentSchema: z.ZodObject<{
1663
1990
  }[];
1664
1991
  linkedPhaseIds: string[];
1665
1992
  }, {
1666
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
1993
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1667
1994
  updatedAt: string;
1668
1995
  id: string;
1669
1996
  createdAt: string;
1670
1997
  title: string;
1671
1998
  description?: string | undefined;
1672
1999
  macroTasks?: {
1673
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2000
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1674
2001
  updatedAt: string;
1675
2002
  id: string;
1676
2003
  createdAt: string;
@@ -1681,14 +2008,14 @@ export declare const RequirementsDocumentSchema: z.ZodObject<{
1681
2008
  }>, "many">;
1682
2009
  }, "strip", z.ZodTypeAny, {
1683
2010
  requirements: {
1684
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2011
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1685
2012
  updatedAt: string;
1686
2013
  id: string;
1687
2014
  createdAt: string;
1688
2015
  title: string;
1689
2016
  description: string;
1690
2017
  macroTasks: {
1691
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2018
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1692
2019
  updatedAt: string;
1693
2020
  id: string;
1694
2021
  createdAt: string;
@@ -1699,14 +2026,14 @@ export declare const RequirementsDocumentSchema: z.ZodObject<{
1699
2026
  }[];
1700
2027
  }, {
1701
2028
  requirements: {
1702
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2029
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1703
2030
  updatedAt: string;
1704
2031
  id: string;
1705
2032
  createdAt: string;
1706
2033
  title: string;
1707
2034
  description?: string | undefined;
1708
2035
  macroTasks?: {
1709
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2036
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
1710
2037
  updatedAt: string;
1711
2038
  id: string;
1712
2039
  createdAt: string;
@@ -1788,6 +2115,47 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
1788
2115
  nextFeatureNumber: z.ZodDefault<z.ZodNumber>;
1789
2116
  nextPhaseNumber: z.ZodDefault<z.ZodNumber>;
1790
2117
  nextTaskNumber: z.ZodDefault<z.ZodNumber>;
2118
+ /** Ordered history of approved temporary work deviations; active entries form a resumable stack. */
2119
+ workDeviations: z.ZodDefault<z.ZodArray<z.ZodObject<{
2120
+ id: z.ZodString;
2121
+ /** Task the priority selector recommended when the deviation was approved. */
2122
+ recommendedTaskId: z.ZodString;
2123
+ /** Task intentionally chosen instead of the recommendation. */
2124
+ temporaryTaskId: z.ZodString;
2125
+ /** Task to surface explicitly after the temporary work is resolved. */
2126
+ resumeTaskId: z.ZodString;
2127
+ reason: z.ZodDefault<z.ZodString>;
2128
+ requestedBy: z.ZodDefault<z.ZodEnum<["agent", "user"]>>;
2129
+ approvedBy: z.ZodDefault<z.ZodString>;
2130
+ state: z.ZodDefault<z.ZodEnum<["approved", "active", "resolved", "canceled"]>>;
2131
+ createdAt: z.ZodString;
2132
+ activatedAt: z.ZodDefault<z.ZodString>;
2133
+ resolvedAt: z.ZodDefault<z.ZodString>;
2134
+ }, "strip", z.ZodTypeAny, {
2135
+ id: string;
2136
+ createdAt: string;
2137
+ recommendedTaskId: string;
2138
+ temporaryTaskId: string;
2139
+ resumeTaskId: string;
2140
+ reason: string;
2141
+ requestedBy: "agent" | "user";
2142
+ approvedBy: string;
2143
+ state: "approved" | "active" | "resolved" | "canceled";
2144
+ activatedAt: string;
2145
+ resolvedAt: string;
2146
+ }, {
2147
+ id: string;
2148
+ createdAt: string;
2149
+ recommendedTaskId: string;
2150
+ temporaryTaskId: string;
2151
+ resumeTaskId: string;
2152
+ reason?: string | undefined;
2153
+ requestedBy?: "agent" | "user" | undefined;
2154
+ approvedBy?: string | undefined;
2155
+ state?: "approved" | "active" | "resolved" | "canceled" | undefined;
2156
+ activatedAt?: string | undefined;
2157
+ resolvedAt?: string | undefined;
2158
+ }>, "many">>;
1791
2159
  }, "strip", z.ZodTypeAny, {
1792
2160
  name: string;
1793
2161
  goal: string;
@@ -1817,6 +2185,19 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
1817
2185
  nextFeatureNumber: number;
1818
2186
  nextPhaseNumber: number;
1819
2187
  nextTaskNumber: number;
2188
+ workDeviations: {
2189
+ id: string;
2190
+ createdAt: string;
2191
+ recommendedTaskId: string;
2192
+ temporaryTaskId: string;
2193
+ resumeTaskId: string;
2194
+ reason: string;
2195
+ requestedBy: "agent" | "user";
2196
+ approvedBy: string;
2197
+ state: "approved" | "active" | "resolved" | "canceled";
2198
+ activatedAt: string;
2199
+ resolvedAt: string;
2200
+ }[];
1820
2201
  }, {
1821
2202
  name: string;
1822
2203
  workflowRules: {
@@ -1846,6 +2227,19 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
1846
2227
  nextFeatureNumber?: number | undefined;
1847
2228
  nextPhaseNumber?: number | undefined;
1848
2229
  nextTaskNumber?: number | undefined;
2230
+ workDeviations?: {
2231
+ id: string;
2232
+ createdAt: string;
2233
+ recommendedTaskId: string;
2234
+ temporaryTaskId: string;
2235
+ resumeTaskId: string;
2236
+ reason?: string | undefined;
2237
+ requestedBy?: "agent" | "user" | undefined;
2238
+ approvedBy?: string | undefined;
2239
+ state?: "approved" | "active" | "resolved" | "canceled" | undefined;
2240
+ activatedAt?: string | undefined;
2241
+ resolvedAt?: string | undefined;
2242
+ }[] | undefined;
1849
2243
  }>;
1850
2244
  features: z.ZodObject<{
1851
2245
  features: z.ZodArray<z.ZodObject<{
@@ -1856,6 +2250,8 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
1856
2250
  priority: z.ZodDefault<z.ZodNumber>;
1857
2251
  name: z.ZodString;
1858
2252
  description: z.ZodDefault<z.ZodString>;
2253
+ /** Updated only when this feature's description changes; distinct from entity updatedAt. */
2254
+ descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
1859
2255
  discussedAt: z.ZodDefault<z.ZodString>;
1860
2256
  contextReady: z.ZodDefault<z.ZodBoolean>;
1861
2257
  contextReadyReason: z.ZodDefault<z.ZodString>;
@@ -1887,6 +2283,29 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
1887
2283
  }>, "many">>;
1888
2284
  phaseIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1889
2285
  dependsOn: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2286
+ /** Chronological audit trail of the DERIVED status (computed from child phases at read time). Appended ONLY when the derived status changes during a rollup; `status` itself is NOT persisted. Empty = no transition recorded yet (treated as "planned"). */
2287
+ statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
2288
+ id: z.ZodString;
2289
+ date: z.ZodString;
2290
+ fromStatus: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
2291
+ toStatus: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
2292
+ title: z.ZodString;
2293
+ description: z.ZodDefault<z.ZodString>;
2294
+ }, "strip", z.ZodTypeAny, {
2295
+ id: string;
2296
+ date: string;
2297
+ title: string;
2298
+ description: string;
2299
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2300
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2301
+ }, {
2302
+ id: string;
2303
+ date: string;
2304
+ title: string;
2305
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2306
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2307
+ description?: string | undefined;
2308
+ }>, "many">>;
1890
2309
  createdAt: z.ZodString;
1891
2310
  updatedAt: z.ZodString;
1892
2311
  }, "strip", z.ZodTypeAny, {
@@ -1906,6 +2325,15 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
1906
2325
  }[];
1907
2326
  shortId: string;
1908
2327
  priority: number;
2328
+ descriptionUpdatedAt: string;
2329
+ statusLog: {
2330
+ id: string;
2331
+ date: string;
2332
+ title: string;
2333
+ description: string;
2334
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2335
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2336
+ }[];
1909
2337
  dependsOn: string[];
1910
2338
  discussedAt: string;
1911
2339
  contextReady: boolean;
@@ -1932,6 +2360,15 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
1932
2360
  }[] | undefined;
1933
2361
  shortId?: string | undefined;
1934
2362
  priority?: number | undefined;
2363
+ descriptionUpdatedAt?: string | undefined;
2364
+ statusLog?: {
2365
+ id: string;
2366
+ date: string;
2367
+ title: string;
2368
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2369
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2370
+ description?: string | undefined;
2371
+ }[] | undefined;
1935
2372
  dependsOn?: string[] | undefined;
1936
2373
  discussedAt?: string | undefined;
1937
2374
  contextReady?: boolean | undefined;
@@ -1960,6 +2397,15 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
1960
2397
  }[];
1961
2398
  shortId: string;
1962
2399
  priority: number;
2400
+ descriptionUpdatedAt: string;
2401
+ statusLog: {
2402
+ id: string;
2403
+ date: string;
2404
+ title: string;
2405
+ description: string;
2406
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2407
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2408
+ }[];
1963
2409
  dependsOn: string[];
1964
2410
  discussedAt: string;
1965
2411
  contextReady: boolean;
@@ -1988,6 +2434,15 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
1988
2434
  }[] | undefined;
1989
2435
  shortId?: string | undefined;
1990
2436
  priority?: number | undefined;
2437
+ descriptionUpdatedAt?: string | undefined;
2438
+ statusLog?: {
2439
+ id: string;
2440
+ date: string;
2441
+ title: string;
2442
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2443
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2444
+ description?: string | undefined;
2445
+ }[] | undefined;
1991
2446
  dependsOn?: string[] | undefined;
1992
2447
  discussedAt?: string | undefined;
1993
2448
  contextReady?: boolean | undefined;
@@ -2013,14 +2468,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2013
2468
  createdAt: z.ZodString;
2014
2469
  updatedAt: z.ZodString;
2015
2470
  }, "strip", z.ZodTypeAny, {
2016
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2471
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2017
2472
  updatedAt: string;
2018
2473
  id: string;
2019
2474
  createdAt: string;
2020
2475
  title: string;
2021
2476
  description: string;
2022
2477
  }, {
2023
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2478
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2024
2479
  updatedAt: string;
2025
2480
  id: string;
2026
2481
  createdAt: string;
@@ -2031,14 +2486,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2031
2486
  createdAt: z.ZodString;
2032
2487
  updatedAt: z.ZodString;
2033
2488
  }, "strip", z.ZodTypeAny, {
2034
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2489
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2035
2490
  updatedAt: string;
2036
2491
  id: string;
2037
2492
  createdAt: string;
2038
2493
  title: string;
2039
2494
  description: string;
2040
2495
  macroTasks: {
2041
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2496
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2042
2497
  updatedAt: string;
2043
2498
  id: string;
2044
2499
  createdAt: string;
@@ -2047,14 +2502,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2047
2502
  }[];
2048
2503
  linkedPhaseIds: string[];
2049
2504
  }, {
2050
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2505
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2051
2506
  updatedAt: string;
2052
2507
  id: string;
2053
2508
  createdAt: string;
2054
2509
  title: string;
2055
2510
  description?: string | undefined;
2056
2511
  macroTasks?: {
2057
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2512
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2058
2513
  updatedAt: string;
2059
2514
  id: string;
2060
2515
  createdAt: string;
@@ -2065,14 +2520,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2065
2520
  }>, "many">;
2066
2521
  }, "strip", z.ZodTypeAny, {
2067
2522
  requirements: {
2068
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2523
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2069
2524
  updatedAt: string;
2070
2525
  id: string;
2071
2526
  createdAt: string;
2072
2527
  title: string;
2073
2528
  description: string;
2074
2529
  macroTasks: {
2075
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2530
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2076
2531
  updatedAt: string;
2077
2532
  id: string;
2078
2533
  createdAt: string;
@@ -2083,14 +2538,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2083
2538
  }[];
2084
2539
  }, {
2085
2540
  requirements: {
2086
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2541
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2087
2542
  updatedAt: string;
2088
2543
  id: string;
2089
2544
  createdAt: string;
2090
2545
  title: string;
2091
2546
  description?: string | undefined;
2092
2547
  macroTasks?: {
2093
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2548
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2094
2549
  updatedAt: string;
2095
2550
  id: string;
2096
2551
  createdAt: string;
@@ -2102,6 +2557,9 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2102
2557
  }>;
2103
2558
  phases: z.ZodArray<z.ZodObject<{
2104
2559
  id: z.ZodString;
2560
+ /** MUST be a feature UUID (not a ref like "F005"). Validated at the schema
2561
+ * layer so no adapter can persist an unresolved ref string. Optional only
2562
+ * for legacy pre-feature phases. */
2105
2563
  featureId: z.ZodOptional<z.ZodString>;
2106
2564
  /** Global project-wide phase sequence (assigned once at creation from project.nextPhaseNumber; stable, gaps on delete). Bare P00x is unambiguous. */
2107
2565
  number: z.ZodNumber;
@@ -2114,6 +2572,8 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2114
2572
  contextReadyReason: z.ZodDefault<z.ZodString>;
2115
2573
  summary: z.ZodDefault<z.ZodString>;
2116
2574
  description: z.ZodDefault<z.ZodString>;
2575
+ /** Updated only when this phase's description changes; distinct from entity updatedAt. */
2576
+ descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
2117
2577
  notes: z.ZodDefault<z.ZodString>;
2118
2578
  goals: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2119
2579
  nonGoals: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
@@ -2148,6 +2608,8 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2148
2608
  taskIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2149
2609
  tasks: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodObject<{
2150
2610
  id: z.ZodString;
2611
+ /** MUST be a phase UUID (not a ref like "P003"). Validated at the schema
2612
+ * layer so no adapter can persist an unresolved ref string. */
2151
2613
  phaseId: z.ZodString;
2152
2614
  /** Global project-wide task sequence (assigned once at creation from project.nextTaskNumber; stable, gaps on delete). Bare T00x is unambiguous. */
2153
2615
  number: z.ZodDefault<z.ZodNumber>;
@@ -2157,6 +2619,8 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2157
2619
  title: z.ZodString;
2158
2620
  status: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
2159
2621
  description: z.ZodDefault<z.ZodString>;
2622
+ /** Updated only when this task's description changes; distinct from entity updatedAt. */
2623
+ descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
2160
2624
  notes: z.ZodDefault<z.ZodString>;
2161
2625
  statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
2162
2626
  id: z.ZodString;
@@ -2170,14 +2634,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2170
2634
  date: string;
2171
2635
  title: string;
2172
2636
  description: string;
2173
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2174
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2637
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2638
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2175
2639
  }, {
2176
2640
  id: string;
2177
2641
  date: string;
2178
2642
  title: string;
2179
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2180
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2643
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2644
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2181
2645
  description?: string | undefined;
2182
2646
  }>, "many">>;
2183
2647
  decisions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
@@ -2205,15 +2669,21 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2205
2669
  }>, "many">>;
2206
2670
  checklist: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
2207
2671
  id: z.ZodString;
2672
+ /** Per-task 1-based position, displayed as C{number} (C1, C2, ...). Default 0
2673
+ * so legacy on-disk items without a number still parse; the TaskSchema
2674
+ * transform overwrites it with the real index+1. */
2675
+ number: z.ZodDefault<z.ZodNumber>;
2208
2676
  title: z.ZodString;
2209
2677
  checked: z.ZodDefault<z.ZodBoolean>;
2210
2678
  }, "strip", z.ZodTypeAny, {
2679
+ number: number;
2211
2680
  id: string;
2212
2681
  title: string;
2213
2682
  checked: boolean;
2214
2683
  }, {
2215
2684
  id: string;
2216
2685
  title: string;
2686
+ number?: number | undefined;
2217
2687
  checked?: boolean | undefined;
2218
2688
  }>]>, "many">>;
2219
2689
  subtasks: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -2224,14 +2694,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2224
2694
  createdAt: z.ZodString;
2225
2695
  updatedAt: z.ZodString;
2226
2696
  }, "strip", z.ZodTypeAny, {
2227
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2697
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2228
2698
  updatedAt: string;
2229
2699
  id: string;
2230
2700
  createdAt: string;
2231
2701
  title: string;
2232
2702
  description: string;
2233
2703
  }, {
2234
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2704
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2235
2705
  updatedAt: string;
2236
2706
  id: string;
2237
2707
  createdAt: string;
@@ -2245,7 +2715,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2245
2715
  updatedAt: z.ZodString;
2246
2716
  }, "strip", z.ZodTypeAny, {
2247
2717
  number: number;
2248
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2718
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2249
2719
  updatedAt: string;
2250
2720
  notes: string;
2251
2721
  id: string;
@@ -2265,21 +2735,23 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2265
2735
  shortId: string;
2266
2736
  priority: number;
2267
2737
  shortName: string;
2738
+ descriptionUpdatedAt: string;
2268
2739
  statusLog: {
2269
2740
  id: string;
2270
2741
  date: string;
2271
2742
  title: string;
2272
2743
  description: string;
2273
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2274
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2744
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2745
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2275
2746
  }[];
2276
2747
  checklist: (string | {
2748
+ number: number;
2277
2749
  id: string;
2278
2750
  title: string;
2279
2751
  checked: boolean;
2280
2752
  })[];
2281
2753
  subtasks: {
2282
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2754
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2283
2755
  updatedAt: string;
2284
2756
  id: string;
2285
2757
  createdAt: string;
@@ -2290,7 +2762,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2290
2762
  startedAt: string;
2291
2763
  completedAt: string;
2292
2764
  }, {
2293
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2765
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2294
2766
  updatedAt: string;
2295
2767
  id: string;
2296
2768
  createdAt: string;
@@ -2311,21 +2783,23 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2311
2783
  }[] | undefined;
2312
2784
  shortId?: string | undefined;
2313
2785
  priority?: number | undefined;
2786
+ descriptionUpdatedAt?: string | undefined;
2314
2787
  statusLog?: {
2315
2788
  id: string;
2316
2789
  date: string;
2317
2790
  title: string;
2318
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2319
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2791
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2792
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2320
2793
  description?: string | undefined;
2321
2794
  }[] | undefined;
2322
2795
  checklist?: (string | {
2323
2796
  id: string;
2324
2797
  title: string;
2798
+ number?: number | undefined;
2325
2799
  checked?: boolean | undefined;
2326
2800
  })[] | undefined;
2327
2801
  subtasks?: {
2328
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2802
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2329
2803
  updatedAt: string;
2330
2804
  id: string;
2331
2805
  createdAt: string;
@@ -2338,11 +2812,12 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2338
2812
  }>, {
2339
2813
  checklist: {
2340
2814
  id: string;
2815
+ number: number;
2341
2816
  title: string;
2342
2817
  checked: boolean;
2343
2818
  }[];
2344
2819
  number: number;
2345
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2820
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2346
2821
  updatedAt: string;
2347
2822
  notes: string;
2348
2823
  id: string;
@@ -2362,16 +2837,17 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2362
2837
  shortId: string;
2363
2838
  priority: number;
2364
2839
  shortName: string;
2840
+ descriptionUpdatedAt: string;
2365
2841
  statusLog: {
2366
2842
  id: string;
2367
2843
  date: string;
2368
2844
  title: string;
2369
2845
  description: string;
2370
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2371
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2846
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2847
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2372
2848
  }[];
2373
2849
  subtasks: {
2374
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2850
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2375
2851
  updatedAt: string;
2376
2852
  id: string;
2377
2853
  createdAt: string;
@@ -2382,7 +2858,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2382
2858
  startedAt: string;
2383
2859
  completedAt: string;
2384
2860
  }, {
2385
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2861
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2386
2862
  updatedAt: string;
2387
2863
  id: string;
2388
2864
  createdAt: string;
@@ -2403,21 +2879,23 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2403
2879
  }[] | undefined;
2404
2880
  shortId?: string | undefined;
2405
2881
  priority?: number | undefined;
2882
+ descriptionUpdatedAt?: string | undefined;
2406
2883
  statusLog?: {
2407
2884
  id: string;
2408
2885
  date: string;
2409
2886
  title: string;
2410
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2411
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2887
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2888
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2412
2889
  description?: string | undefined;
2413
2890
  }[] | undefined;
2414
2891
  checklist?: (string | {
2415
2892
  id: string;
2416
2893
  title: string;
2894
+ number?: number | undefined;
2417
2895
  checked?: boolean | undefined;
2418
2896
  })[] | undefined;
2419
2897
  subtasks?: {
2420
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2898
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2421
2899
  updatedAt: string;
2422
2900
  id: string;
2423
2901
  createdAt: string;
@@ -2433,29 +2911,52 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2433
2911
  handoff: z.ZodDefault<z.ZodString>;
2434
2912
  handoffUpdatedAt: z.ZodDefault<z.ZodString>;
2435
2913
  /** When the handoff was last read/acknowledged on recap (ISO). Non-empty means
2436
- * the agent has seen it; the recap won't re-prompt every turn. The handoff
2437
- * content is KEPT until a task in the phase starts (auto-clear) or the phase
2438
- * completes so a restart between read and resume does not lose context. */
2914
+ * the agent has seen it; the recap won't re-prompt every turn. Reading is
2915
+ * non-mutating: content remains until every task is done/canceled, a later
2916
+ * handoff supersedes it, or the user explicitly clears it. */
2439
2917
  handoffReadAt: z.ZodDefault<z.ZodString>;
2440
2918
  /** Metadata for recently-cleared handoffs (newest-first, capped at 5). The
2441
- * full content lives as .md files in .planner/handoff-archive/ (gitignored);
2919
+ * full content lives as .md files in .planner/.local/handoff-archive/ (gitignored);
2442
2920
  * this array only holds the pointer + clear reason + timestamp, so the phase
2443
2921
  * JSON stays lean and the archive is recoverable. */
2444
2922
  handoffHistory: z.ZodDefault<z.ZodArray<z.ZodObject<{
2445
- /** Relative path under .planner/handoff-archive/ (e.g. <phaseId>-<ISO>.md). */
2923
+ /** Relative path under .planner/.local/handoff-archive/ (e.g. <phaseId>-<ISO>.md). */
2446
2924
  file: z.ZodDefault<z.ZodString>;
2447
2925
  clearedAt: z.ZodString;
2448
2926
  /** Why the handoff was cleared: "task-started" | "phase-done" | "manual" | "superseded" | "imported". */
2449
2927
  reason: z.ZodDefault<z.ZodString>;
2450
2928
  }, "strip", z.ZodTypeAny, {
2451
2929
  file: string;
2452
- clearedAt: string;
2453
2930
  reason: string;
2931
+ clearedAt: string;
2454
2932
  }, {
2455
2933
  clearedAt: string;
2456
2934
  file?: string | undefined;
2457
2935
  reason?: string | undefined;
2458
2936
  }>, "many">>;
2937
+ /** Chronological audit trail of the DERIVED status (planned/in-progress/blocked/done/...). Appended ONLY when the derived status changes during a rollup; `status` itself is NOT persisted (still computed from child tasks at read time). Empty = no transition recorded yet (treated as "planned"). */
2938
+ statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
2939
+ id: z.ZodString;
2940
+ date: z.ZodString;
2941
+ fromStatus: z.ZodEnum<["draft", "discovery", "planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
2942
+ toStatus: z.ZodEnum<["draft", "discovery", "planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
2943
+ title: z.ZodString;
2944
+ description: z.ZodDefault<z.ZodString>;
2945
+ }, "strip", z.ZodTypeAny, {
2946
+ id: string;
2947
+ date: string;
2948
+ title: string;
2949
+ description: string;
2950
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
2951
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
2952
+ }, {
2953
+ id: string;
2954
+ date: string;
2955
+ title: string;
2956
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
2957
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
2958
+ description?: string | undefined;
2959
+ }>, "many">>;
2459
2960
  }, "strip", z.ZodTypeAny, {
2460
2961
  number: number;
2461
2962
  dependencies: string[];
@@ -2477,6 +2978,15 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2477
2978
  }[];
2478
2979
  shortId: string;
2479
2980
  priority: number;
2981
+ descriptionUpdatedAt: string;
2982
+ statusLog: {
2983
+ id: string;
2984
+ date: string;
2985
+ title: string;
2986
+ description: string;
2987
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
2988
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
2989
+ }[];
2480
2990
  dependsOn: string[];
2481
2991
  slug: string;
2482
2992
  discussedAt: string;
@@ -2491,11 +3001,12 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2491
3001
  tasks: {
2492
3002
  checklist: {
2493
3003
  id: string;
3004
+ number: number;
2494
3005
  title: string;
2495
3006
  checked: boolean;
2496
3007
  }[];
2497
3008
  number: number;
2498
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3009
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2499
3010
  updatedAt: string;
2500
3011
  notes: string;
2501
3012
  id: string;
@@ -2515,16 +3026,17 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2515
3026
  shortId: string;
2516
3027
  priority: number;
2517
3028
  shortName: string;
3029
+ descriptionUpdatedAt: string;
2518
3030
  statusLog: {
2519
3031
  id: string;
2520
3032
  date: string;
2521
3033
  title: string;
2522
3034
  description: string;
2523
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2524
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3035
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
3036
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2525
3037
  }[];
2526
3038
  subtasks: {
2527
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3039
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2528
3040
  updatedAt: string;
2529
3041
  id: string;
2530
3042
  createdAt: string;
@@ -2540,8 +3052,8 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2540
3052
  handoffReadAt: string;
2541
3053
  handoffHistory: {
2542
3054
  file: string;
2543
- clearedAt: string;
2544
3055
  reason: string;
3056
+ clearedAt: string;
2545
3057
  }[];
2546
3058
  featureId?: string | undefined;
2547
3059
  }, {
@@ -2566,6 +3078,15 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2566
3078
  }[] | undefined;
2567
3079
  shortId?: string | undefined;
2568
3080
  priority?: number | undefined;
3081
+ descriptionUpdatedAt?: string | undefined;
3082
+ statusLog?: {
3083
+ id: string;
3084
+ date: string;
3085
+ title: string;
3086
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
3087
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
3088
+ description?: string | undefined;
3089
+ }[] | undefined;
2569
3090
  dependsOn?: string[] | undefined;
2570
3091
  featureId?: string | undefined;
2571
3092
  discussedAt?: string | undefined;
@@ -2578,7 +3099,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2578
3099
  completionCriteria?: string[] | undefined;
2579
3100
  taskIds?: string[] | undefined;
2580
3101
  tasks?: {
2581
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3102
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2582
3103
  updatedAt: string;
2583
3104
  id: string;
2584
3105
  createdAt: string;
@@ -2599,21 +3120,23 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2599
3120
  }[] | undefined;
2600
3121
  shortId?: string | undefined;
2601
3122
  priority?: number | undefined;
3123
+ descriptionUpdatedAt?: string | undefined;
2602
3124
  statusLog?: {
2603
3125
  id: string;
2604
3126
  date: string;
2605
3127
  title: string;
2606
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2607
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3128
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
3129
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2608
3130
  description?: string | undefined;
2609
3131
  }[] | undefined;
2610
3132
  checklist?: (string | {
2611
3133
  id: string;
2612
3134
  title: string;
3135
+ number?: number | undefined;
2613
3136
  checked?: boolean | undefined;
2614
3137
  })[] | undefined;
2615
3138
  subtasks?: {
2616
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3139
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2617
3140
  updatedAt: string;
2618
3141
  id: string;
2619
3142
  createdAt: string;
@@ -2652,6 +3175,15 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2652
3175
  }[];
2653
3176
  shortId: string;
2654
3177
  priority: number;
3178
+ descriptionUpdatedAt: string;
3179
+ statusLog: {
3180
+ id: string;
3181
+ date: string;
3182
+ title: string;
3183
+ description: string;
3184
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
3185
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
3186
+ }[];
2655
3187
  dependsOn: string[];
2656
3188
  discussedAt: string;
2657
3189
  contextReady: boolean;
@@ -2665,14 +3197,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2665
3197
  };
2666
3198
  requirements: {
2667
3199
  requirements: {
2668
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3200
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2669
3201
  updatedAt: string;
2670
3202
  id: string;
2671
3203
  createdAt: string;
2672
3204
  title: string;
2673
3205
  description: string;
2674
3206
  macroTasks: {
2675
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3207
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2676
3208
  updatedAt: string;
2677
3209
  id: string;
2678
3210
  createdAt: string;
@@ -2718,6 +3250,19 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2718
3250
  nextFeatureNumber: number;
2719
3251
  nextPhaseNumber: number;
2720
3252
  nextTaskNumber: number;
3253
+ workDeviations: {
3254
+ id: string;
3255
+ createdAt: string;
3256
+ recommendedTaskId: string;
3257
+ temporaryTaskId: string;
3258
+ resumeTaskId: string;
3259
+ reason: string;
3260
+ requestedBy: "agent" | "user";
3261
+ approvedBy: string;
3262
+ state: "approved" | "active" | "resolved" | "canceled";
3263
+ activatedAt: string;
3264
+ resolvedAt: string;
3265
+ }[];
2721
3266
  };
2722
3267
  phases: {
2723
3268
  number: number;
@@ -2740,6 +3285,15 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2740
3285
  }[];
2741
3286
  shortId: string;
2742
3287
  priority: number;
3288
+ descriptionUpdatedAt: string;
3289
+ statusLog: {
3290
+ id: string;
3291
+ date: string;
3292
+ title: string;
3293
+ description: string;
3294
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
3295
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
3296
+ }[];
2743
3297
  dependsOn: string[];
2744
3298
  slug: string;
2745
3299
  discussedAt: string;
@@ -2754,11 +3308,12 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2754
3308
  tasks: {
2755
3309
  checklist: {
2756
3310
  id: string;
3311
+ number: number;
2757
3312
  title: string;
2758
3313
  checked: boolean;
2759
3314
  }[];
2760
3315
  number: number;
2761
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3316
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2762
3317
  updatedAt: string;
2763
3318
  notes: string;
2764
3319
  id: string;
@@ -2778,16 +3333,17 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2778
3333
  shortId: string;
2779
3334
  priority: number;
2780
3335
  shortName: string;
3336
+ descriptionUpdatedAt: string;
2781
3337
  statusLog: {
2782
3338
  id: string;
2783
3339
  date: string;
2784
3340
  title: string;
2785
3341
  description: string;
2786
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2787
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3342
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
3343
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2788
3344
  }[];
2789
3345
  subtasks: {
2790
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3346
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2791
3347
  updatedAt: string;
2792
3348
  id: string;
2793
3349
  createdAt: string;
@@ -2803,8 +3359,8 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2803
3359
  handoffReadAt: string;
2804
3360
  handoffHistory: {
2805
3361
  file: string;
2806
- clearedAt: string;
2807
3362
  reason: string;
3363
+ clearedAt: string;
2808
3364
  }[];
2809
3365
  featureId?: string | undefined;
2810
3366
  }[];
@@ -2827,6 +3383,15 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2827
3383
  }[] | undefined;
2828
3384
  shortId?: string | undefined;
2829
3385
  priority?: number | undefined;
3386
+ descriptionUpdatedAt?: string | undefined;
3387
+ statusLog?: {
3388
+ id: string;
3389
+ date: string;
3390
+ title: string;
3391
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
3392
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
3393
+ description?: string | undefined;
3394
+ }[] | undefined;
2830
3395
  dependsOn?: string[] | undefined;
2831
3396
  discussedAt?: string | undefined;
2832
3397
  contextReady?: boolean | undefined;
@@ -2840,14 +3405,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2840
3405
  };
2841
3406
  requirements: {
2842
3407
  requirements: {
2843
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3408
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2844
3409
  updatedAt: string;
2845
3410
  id: string;
2846
3411
  createdAt: string;
2847
3412
  title: string;
2848
3413
  description?: string | undefined;
2849
3414
  macroTasks?: {
2850
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3415
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2851
3416
  updatedAt: string;
2852
3417
  id: string;
2853
3418
  createdAt: string;
@@ -2893,6 +3458,19 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2893
3458
  nextFeatureNumber?: number | undefined;
2894
3459
  nextPhaseNumber?: number | undefined;
2895
3460
  nextTaskNumber?: number | undefined;
3461
+ workDeviations?: {
3462
+ id: string;
3463
+ createdAt: string;
3464
+ recommendedTaskId: string;
3465
+ temporaryTaskId: string;
3466
+ resumeTaskId: string;
3467
+ reason?: string | undefined;
3468
+ requestedBy?: "agent" | "user" | undefined;
3469
+ approvedBy?: string | undefined;
3470
+ state?: "approved" | "active" | "resolved" | "canceled" | undefined;
3471
+ activatedAt?: string | undefined;
3472
+ resolvedAt?: string | undefined;
3473
+ }[] | undefined;
2896
3474
  };
2897
3475
  phases: {
2898
3476
  number: number;
@@ -2916,6 +3494,15 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2916
3494
  }[] | undefined;
2917
3495
  shortId?: string | undefined;
2918
3496
  priority?: number | undefined;
3497
+ descriptionUpdatedAt?: string | undefined;
3498
+ statusLog?: {
3499
+ id: string;
3500
+ date: string;
3501
+ title: string;
3502
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
3503
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
3504
+ description?: string | undefined;
3505
+ }[] | undefined;
2919
3506
  dependsOn?: string[] | undefined;
2920
3507
  featureId?: string | undefined;
2921
3508
  discussedAt?: string | undefined;
@@ -2928,7 +3515,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2928
3515
  completionCriteria?: string[] | undefined;
2929
3516
  taskIds?: string[] | undefined;
2930
3517
  tasks?: {
2931
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3518
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2932
3519
  updatedAt: string;
2933
3520
  id: string;
2934
3521
  createdAt: string;
@@ -2949,21 +3536,23 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
2949
3536
  }[] | undefined;
2950
3537
  shortId?: string | undefined;
2951
3538
  priority?: number | undefined;
3539
+ descriptionUpdatedAt?: string | undefined;
2952
3540
  statusLog?: {
2953
3541
  id: string;
2954
3542
  date: string;
2955
3543
  title: string;
2956
- fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
2957
- toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3544
+ fromStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
3545
+ toStatus: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2958
3546
  description?: string | undefined;
2959
3547
  }[] | undefined;
2960
3548
  checklist?: (string | {
2961
3549
  id: string;
2962
3550
  title: string;
3551
+ number?: number | undefined;
2963
3552
  checked?: boolean | undefined;
2964
3553
  })[] | undefined;
2965
3554
  subtasks?: {
2966
- status: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
3555
+ status: "canceled" | "planned" | "in-progress" | "done" | "blocked" | "rejected" | "deferred" | "waiting";
2967
3556
  updatedAt: string;
2968
3557
  id: string;
2969
3558
  createdAt: string;
@@ -3006,9 +3595,11 @@ export type Manifest = z.infer<typeof ManifestSchema>;
3006
3595
  export type WorkflowRules = z.infer<typeof WorkflowRulesSchema>;
3007
3596
  export type AcceptedDecision = z.infer<typeof AcceptedDecisionSchema>;
3008
3597
  export type Project = z.infer<typeof ProjectSchema>;
3598
+ export type WorkDeviation = z.infer<typeof WorkDeviationSchema>;
3009
3599
  export type Subtask = z.infer<typeof SubtaskSchema>;
3010
3600
  export type ChecklistItem = z.infer<typeof ChecklistItemSchema>;
3011
3601
  export type StatusLogEntry = z.infer<typeof StatusLogEntrySchema>;
3602
+ export type PhaseStatusLogEntry = z.infer<typeof PhaseStatusLogEntrySchema>;
3012
3603
  export type Task = z.infer<typeof TaskSchema>;
3013
3604
  export type Phase = z.infer<typeof PhaseSchema> & {
3014
3605
  status: PhaseStatus;