@agent-plan/core 0.2.19-next.11 → 0.2.19-next.13
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/naming.d.ts +1 -0
- package/dist/naming.d.ts.map +1 -1
- package/dist/naming.js +3 -0
- package/dist/plan-store.d.ts +1 -0
- package/dist/plan-store.d.ts.map +1 -1
- package/dist/plan-store.js +54 -1
- package/dist/schema.d.ts +326 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +20 -2
- package/package.json +1 -1
package/dist/naming.d.ts
CHANGED
|
@@ -39,4 +39,5 @@ export declare function createRequirementId(): string;
|
|
|
39
39
|
export declare function createMacroTaskId(): string;
|
|
40
40
|
export declare function createFeatureId(): string;
|
|
41
41
|
export declare function createChecklistItemId(taskId: string, number: number, title: string): string;
|
|
42
|
+
export declare function createStatusLogEntryId(): string;
|
|
42
43
|
//# sourceMappingURL=naming.d.ts.map
|
package/dist/naming.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAKA;iFACiF;AACjF,eAAO,MAAM,kBAAkB,qCAAqC,CAAC;AAErE,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,gBAAgB,QAAkB,CAAC;AAEhD;;qFAEqF;AACrF,wBAAgB,aAAa,CAAC,QAAQ,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,MAAM,CAUvE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOnD;AAED;;;;8BAI8B;AAC9B,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAK,EAAE,QAAQ,SAAa,GAAG,MAAM,CAGnF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;iBAEiB;AACjB,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,EAChD,QAAQ,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GACzC,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtF;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3F"}
|
|
1
|
+
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAKA;iFACiF;AACjF,eAAO,MAAM,kBAAkB,qCAAqC,CAAC;AAErE,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,gBAAgB,QAAkB,CAAC;AAEhD;;qFAEqF;AACrF,wBAAgB,aAAa,CAAC,QAAQ,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,MAAM,CAUvE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOnD;AAED;;;;8BAI8B;AAC9B,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAK,EAAE,QAAQ,SAAa,GAAG,MAAM,CAGnF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;iBAEiB;AACjB,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,EAChD,QAAQ,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GACzC,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtF;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3F;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C"}
|
package/dist/naming.js
CHANGED
|
@@ -86,3 +86,6 @@ export function createFeatureId() {
|
|
|
86
86
|
export function createChecklistItemId(taskId, number, title) {
|
|
87
87
|
return `${taskId}-check-${formatThreeDigitNumber(number)}-${normalizeSlug(title)}`;
|
|
88
88
|
}
|
|
89
|
+
export function createStatusLogEntryId() {
|
|
90
|
+
return randomUUID();
|
|
91
|
+
}
|
package/dist/plan-store.d.ts
CHANGED
package/dist/plan-store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-store.d.ts","sourceRoot":"","sources":["../src/plan-store.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,gBAAgB,EAGrB,KAAK,QAAQ,EAEb,KAAK,KAAK,EAEV,KAAK,aAAa,EAElB,KAAK,OAAO,EAEZ,KAAK,oBAAoB,EAIzB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAOrB,qBAAa,cAAe,SAAQ,KAAK;aAGrB,KAAK,CAAC,EAAE,OAAO;gBAD/B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,OAAO,YAAA;CAKlC;AAeD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAElF;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAEvE;AAaD,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAStF;AAmDD,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAC;IAClB;4CACwC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AASD,wBAAsB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAsEpE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAyE/I;AA4BD,qBAAa,SAAS
|
|
1
|
+
{"version":3,"file":"plan-store.d.ts","sourceRoot":"","sources":["../src/plan-store.ts"],"names":[],"mappings":"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"}
|
package/dist/plan-store.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { access, copyFile, mkdir, readdir, readFile, rename, unlink, writeFile } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { CodebaseProfileSchema, FeatureSchema, FeaturesDocumentSchema, ManifestSchema, PhaseSchema, ProjectSchema, RequirementsDocumentSchema, ResumeFocusSchema, ActivityLogSchema, } from "./schema.js";
|
|
4
|
-
import { createFeatureId, createPhaseId, createRequirementId, createShortId, createTaskId, formatPhaseRef, isLegacyPhaseId } from "./naming.js";
|
|
4
|
+
import { createFeatureId, createPhaseId, createRequirementId, createShortId, createStatusLogEntryId, createTaskId, formatPhaseRef, isLegacyPhaseId } from "./naming.js";
|
|
5
5
|
function nowISO() {
|
|
6
6
|
return new Date().toISOString();
|
|
7
7
|
}
|
|
@@ -1243,9 +1243,62 @@ export class PlanStore {
|
|
|
1243
1243
|
const feature = features.features.find((f) => f.id === phase.featureId);
|
|
1244
1244
|
cleared = formatPhaseRef(phase.number, feature?.number);
|
|
1245
1245
|
}
|
|
1246
|
+
// Append a statusLog entry to the phase when its DERIVED status changed
|
|
1247
|
+
// (audit trail; status itself is NOT persisted). Idempotent: only appends
|
|
1248
|
+
// when the new derived status differs from the last recorded toStatus.
|
|
1249
|
+
await this.#appendPhaseStatusLog(phaseId);
|
|
1250
|
+
// Roll up to the parent feature's statusLog too.
|
|
1251
|
+
if (phase.featureId)
|
|
1252
|
+
await this.#appendFeatureStatusLog(phase.featureId);
|
|
1246
1253
|
await this.refreshResume();
|
|
1247
1254
|
return cleared;
|
|
1248
1255
|
}
|
|
1256
|
+
/** Append a PhaseStatusLogEntry to the phase when its derived status changed
|
|
1257
|
+
* vs. the last recorded toStatus (baseline "draft" when empty, matching the
|
|
1258
|
+
* phase-creation literal). Idempotent across repeated reads of the same state. */
|
|
1259
|
+
async #appendPhaseStatusLog(phaseId) {
|
|
1260
|
+
await this.updatePhase(phaseId, (p) => {
|
|
1261
|
+
const last = p.statusLog.at(-1)?.toStatus ?? "draft";
|
|
1262
|
+
if (p.status !== last) {
|
|
1263
|
+
p.statusLog = [...p.statusLog, {
|
|
1264
|
+
id: createStatusLogEntryId(),
|
|
1265
|
+
date: nowISO(),
|
|
1266
|
+
fromStatus: last,
|
|
1267
|
+
toStatus: p.status,
|
|
1268
|
+
title: `${last} → ${p.status}`,
|
|
1269
|
+
description: "",
|
|
1270
|
+
}];
|
|
1271
|
+
}
|
|
1272
|
+
return p;
|
|
1273
|
+
});
|
|
1274
|
+
}
|
|
1275
|
+
/** Append a StatusLogEntry to the feature when its derived status changed
|
|
1276
|
+
* vs. the last recorded toStatus (baseline "planned" when empty, matching
|
|
1277
|
+
* the feature-creation/empty-phases derivation). Idempotent. */
|
|
1278
|
+
async #appendFeatureStatusLog(featureId) {
|
|
1279
|
+
const features = await this.loadFeatures();
|
|
1280
|
+
const feature = features.features.find((f) => f.id === featureId);
|
|
1281
|
+
if (!feature)
|
|
1282
|
+
return;
|
|
1283
|
+
const last = feature.statusLog.at(-1)?.toStatus ?? "planned";
|
|
1284
|
+
if (feature.status !== last) {
|
|
1285
|
+
await this.updateFeatures((doc) => {
|
|
1286
|
+
const target = doc.features.find((f) => f.id === featureId);
|
|
1287
|
+
if (target && target.statusLog.at(-1)?.toStatus !== feature.status) {
|
|
1288
|
+
const baseline = target.statusLog.at(-1)?.toStatus ?? "planned";
|
|
1289
|
+
target.statusLog = [...target.statusLog, {
|
|
1290
|
+
id: createStatusLogEntryId(),
|
|
1291
|
+
date: nowISO(),
|
|
1292
|
+
fromStatus: baseline,
|
|
1293
|
+
toStatus: feature.status,
|
|
1294
|
+
title: `${baseline} → ${feature.status}`,
|
|
1295
|
+
description: "",
|
|
1296
|
+
}];
|
|
1297
|
+
}
|
|
1298
|
+
return doc;
|
|
1299
|
+
});
|
|
1300
|
+
}
|
|
1301
|
+
}
|
|
1249
1302
|
// ── Savers ───────────────────────────────────────────────────────────
|
|
1250
1303
|
async updateProject(updater) {
|
|
1251
1304
|
const updated = await atomicUpdateJson(this.projectPath(), ProjectSchema, updater);
|
package/dist/schema.d.ts
CHANGED
|
@@ -412,15 +412,21 @@ export declare const SubtaskSchema: z.ZodObject<{
|
|
|
412
412
|
}>;
|
|
413
413
|
export declare const ChecklistItemSchema: z.ZodObject<{
|
|
414
414
|
id: z.ZodString;
|
|
415
|
+
/** Per-task 1-based position, displayed as C{number} (C1, C2, ...). Default 0
|
|
416
|
+
* so legacy on-disk items without a number still parse; the TaskSchema
|
|
417
|
+
* transform overwrites it with the real index+1. */
|
|
418
|
+
number: z.ZodDefault<z.ZodNumber>;
|
|
415
419
|
title: z.ZodString;
|
|
416
420
|
checked: z.ZodDefault<z.ZodBoolean>;
|
|
417
421
|
}, "strip", z.ZodTypeAny, {
|
|
422
|
+
number: number;
|
|
418
423
|
id: string;
|
|
419
424
|
title: string;
|
|
420
425
|
checked: boolean;
|
|
421
426
|
}, {
|
|
422
427
|
id: string;
|
|
423
428
|
title: string;
|
|
429
|
+
number?: number | undefined;
|
|
424
430
|
checked?: boolean | undefined;
|
|
425
431
|
}>;
|
|
426
432
|
/** Status transitions that require a motivation note from the agent. */
|
|
@@ -454,6 +460,30 @@ export declare const StatusLogEntrySchema: z.ZodObject<{
|
|
|
454
460
|
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
455
461
|
description?: string | undefined;
|
|
456
462
|
}>;
|
|
463
|
+
/** Like StatusLogEntrySchema but for the DERIVED PHASE status, which includes
|
|
464
|
+
* the "draft" and "discovery" lifecycle states absent from TaskStatus. */
|
|
465
|
+
export declare const PhaseStatusLogEntrySchema: z.ZodObject<{
|
|
466
|
+
id: z.ZodString;
|
|
467
|
+
date: z.ZodString;
|
|
468
|
+
fromStatus: z.ZodEnum<["draft", "discovery", "planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
469
|
+
toStatus: z.ZodEnum<["draft", "discovery", "planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
470
|
+
title: z.ZodString;
|
|
471
|
+
description: z.ZodDefault<z.ZodString>;
|
|
472
|
+
}, "strip", z.ZodTypeAny, {
|
|
473
|
+
id: string;
|
|
474
|
+
date: string;
|
|
475
|
+
title: string;
|
|
476
|
+
description: string;
|
|
477
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
478
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
479
|
+
}, {
|
|
480
|
+
id: string;
|
|
481
|
+
date: string;
|
|
482
|
+
title: string;
|
|
483
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
484
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
485
|
+
description?: string | undefined;
|
|
486
|
+
}>;
|
|
457
487
|
export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
|
|
458
488
|
id: z.ZodString;
|
|
459
489
|
phaseId: z.ZodString;
|
|
@@ -513,15 +543,21 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
|
|
|
513
543
|
}>, "many">>;
|
|
514
544
|
checklist: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
515
545
|
id: z.ZodString;
|
|
546
|
+
/** Per-task 1-based position, displayed as C{number} (C1, C2, ...). Default 0
|
|
547
|
+
* so legacy on-disk items without a number still parse; the TaskSchema
|
|
548
|
+
* transform overwrites it with the real index+1. */
|
|
549
|
+
number: z.ZodDefault<z.ZodNumber>;
|
|
516
550
|
title: z.ZodString;
|
|
517
551
|
checked: z.ZodDefault<z.ZodBoolean>;
|
|
518
552
|
}, "strip", z.ZodTypeAny, {
|
|
553
|
+
number: number;
|
|
519
554
|
id: string;
|
|
520
555
|
title: string;
|
|
521
556
|
checked: boolean;
|
|
522
557
|
}, {
|
|
523
558
|
id: string;
|
|
524
559
|
title: string;
|
|
560
|
+
number?: number | undefined;
|
|
525
561
|
checked?: boolean | undefined;
|
|
526
562
|
}>]>, "many">>;
|
|
527
563
|
subtasks: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -582,6 +618,7 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
|
|
|
582
618
|
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
583
619
|
}[];
|
|
584
620
|
checklist: (string | {
|
|
621
|
+
number: number;
|
|
585
622
|
id: string;
|
|
586
623
|
title: string;
|
|
587
624
|
checked: boolean;
|
|
@@ -630,6 +667,7 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
|
|
|
630
667
|
checklist?: (string | {
|
|
631
668
|
id: string;
|
|
632
669
|
title: string;
|
|
670
|
+
number?: number | undefined;
|
|
633
671
|
checked?: boolean | undefined;
|
|
634
672
|
})[] | undefined;
|
|
635
673
|
subtasks?: {
|
|
@@ -646,6 +684,7 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
|
|
|
646
684
|
}>, {
|
|
647
685
|
checklist: {
|
|
648
686
|
id: string;
|
|
687
|
+
number: number;
|
|
649
688
|
title: string;
|
|
650
689
|
checked: boolean;
|
|
651
690
|
}[];
|
|
@@ -722,6 +761,7 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
|
|
|
722
761
|
checklist?: (string | {
|
|
723
762
|
id: string;
|
|
724
763
|
title: string;
|
|
764
|
+
number?: number | undefined;
|
|
725
765
|
checked?: boolean | undefined;
|
|
726
766
|
})[] | undefined;
|
|
727
767
|
subtasks?: {
|
|
@@ -856,15 +896,21 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
856
896
|
}>, "many">>;
|
|
857
897
|
checklist: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
858
898
|
id: z.ZodString;
|
|
899
|
+
/** Per-task 1-based position, displayed as C{number} (C1, C2, ...). Default 0
|
|
900
|
+
* so legacy on-disk items without a number still parse; the TaskSchema
|
|
901
|
+
* transform overwrites it with the real index+1. */
|
|
902
|
+
number: z.ZodDefault<z.ZodNumber>;
|
|
859
903
|
title: z.ZodString;
|
|
860
904
|
checked: z.ZodDefault<z.ZodBoolean>;
|
|
861
905
|
}, "strip", z.ZodTypeAny, {
|
|
906
|
+
number: number;
|
|
862
907
|
id: string;
|
|
863
908
|
title: string;
|
|
864
909
|
checked: boolean;
|
|
865
910
|
}, {
|
|
866
911
|
id: string;
|
|
867
912
|
title: string;
|
|
913
|
+
number?: number | undefined;
|
|
868
914
|
checked?: boolean | undefined;
|
|
869
915
|
}>]>, "many">>;
|
|
870
916
|
subtasks: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -925,6 +971,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
925
971
|
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
926
972
|
}[];
|
|
927
973
|
checklist: (string | {
|
|
974
|
+
number: number;
|
|
928
975
|
id: string;
|
|
929
976
|
title: string;
|
|
930
977
|
checked: boolean;
|
|
@@ -973,6 +1020,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
973
1020
|
checklist?: (string | {
|
|
974
1021
|
id: string;
|
|
975
1022
|
title: string;
|
|
1023
|
+
number?: number | undefined;
|
|
976
1024
|
checked?: boolean | undefined;
|
|
977
1025
|
})[] | undefined;
|
|
978
1026
|
subtasks?: {
|
|
@@ -989,6 +1037,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
989
1037
|
}>, {
|
|
990
1038
|
checklist: {
|
|
991
1039
|
id: string;
|
|
1040
|
+
number: number;
|
|
992
1041
|
title: string;
|
|
993
1042
|
checked: boolean;
|
|
994
1043
|
}[];
|
|
@@ -1065,6 +1114,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1065
1114
|
checklist?: (string | {
|
|
1066
1115
|
id: string;
|
|
1067
1116
|
title: string;
|
|
1117
|
+
number?: number | undefined;
|
|
1068
1118
|
checked?: boolean | undefined;
|
|
1069
1119
|
})[] | undefined;
|
|
1070
1120
|
subtasks?: {
|
|
@@ -1107,6 +1157,29 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1107
1157
|
file?: string | undefined;
|
|
1108
1158
|
reason?: string | undefined;
|
|
1109
1159
|
}>, "many">>;
|
|
1160
|
+
/** 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"). */
|
|
1161
|
+
statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1162
|
+
id: z.ZodString;
|
|
1163
|
+
date: z.ZodString;
|
|
1164
|
+
fromStatus: z.ZodEnum<["draft", "discovery", "planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
1165
|
+
toStatus: z.ZodEnum<["draft", "discovery", "planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
1166
|
+
title: z.ZodString;
|
|
1167
|
+
description: z.ZodDefault<z.ZodString>;
|
|
1168
|
+
}, "strip", z.ZodTypeAny, {
|
|
1169
|
+
id: string;
|
|
1170
|
+
date: string;
|
|
1171
|
+
title: string;
|
|
1172
|
+
description: string;
|
|
1173
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
1174
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
1175
|
+
}, {
|
|
1176
|
+
id: string;
|
|
1177
|
+
date: string;
|
|
1178
|
+
title: string;
|
|
1179
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
1180
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
1181
|
+
description?: string | undefined;
|
|
1182
|
+
}>, "many">>;
|
|
1110
1183
|
}, "strip", z.ZodTypeAny, {
|
|
1111
1184
|
number: number;
|
|
1112
1185
|
dependencies: string[];
|
|
@@ -1128,6 +1201,14 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1128
1201
|
}[];
|
|
1129
1202
|
shortId: string;
|
|
1130
1203
|
priority: number;
|
|
1204
|
+
statusLog: {
|
|
1205
|
+
id: string;
|
|
1206
|
+
date: string;
|
|
1207
|
+
title: string;
|
|
1208
|
+
description: string;
|
|
1209
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
1210
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
1211
|
+
}[];
|
|
1131
1212
|
dependsOn: string[];
|
|
1132
1213
|
slug: string;
|
|
1133
1214
|
discussedAt: string;
|
|
@@ -1142,6 +1223,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1142
1223
|
tasks: {
|
|
1143
1224
|
checklist: {
|
|
1144
1225
|
id: string;
|
|
1226
|
+
number: number;
|
|
1145
1227
|
title: string;
|
|
1146
1228
|
checked: boolean;
|
|
1147
1229
|
}[];
|
|
@@ -1217,6 +1299,14 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1217
1299
|
}[] | undefined;
|
|
1218
1300
|
shortId?: string | undefined;
|
|
1219
1301
|
priority?: number | undefined;
|
|
1302
|
+
statusLog?: {
|
|
1303
|
+
id: string;
|
|
1304
|
+
date: string;
|
|
1305
|
+
title: string;
|
|
1306
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
1307
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
1308
|
+
description?: string | undefined;
|
|
1309
|
+
}[] | undefined;
|
|
1220
1310
|
dependsOn?: string[] | undefined;
|
|
1221
1311
|
featureId?: string | undefined;
|
|
1222
1312
|
discussedAt?: string | undefined;
|
|
@@ -1261,6 +1351,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1261
1351
|
checklist?: (string | {
|
|
1262
1352
|
id: string;
|
|
1263
1353
|
title: string;
|
|
1354
|
+
number?: number | undefined;
|
|
1264
1355
|
checked?: boolean | undefined;
|
|
1265
1356
|
})[] | undefined;
|
|
1266
1357
|
subtasks?: {
|
|
@@ -1323,6 +1414,29 @@ export declare const FeatureSchema: z.ZodObject<{
|
|
|
1323
1414
|
}>, "many">>;
|
|
1324
1415
|
phaseIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
1325
1416
|
dependsOn: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
1417
|
+
/** 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"). */
|
|
1418
|
+
statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1419
|
+
id: z.ZodString;
|
|
1420
|
+
date: z.ZodString;
|
|
1421
|
+
fromStatus: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
1422
|
+
toStatus: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
1423
|
+
title: z.ZodString;
|
|
1424
|
+
description: z.ZodDefault<z.ZodString>;
|
|
1425
|
+
}, "strip", z.ZodTypeAny, {
|
|
1426
|
+
id: string;
|
|
1427
|
+
date: string;
|
|
1428
|
+
title: string;
|
|
1429
|
+
description: string;
|
|
1430
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1431
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1432
|
+
}, {
|
|
1433
|
+
id: string;
|
|
1434
|
+
date: string;
|
|
1435
|
+
title: string;
|
|
1436
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1437
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1438
|
+
description?: string | undefined;
|
|
1439
|
+
}>, "many">>;
|
|
1326
1440
|
createdAt: z.ZodString;
|
|
1327
1441
|
updatedAt: z.ZodString;
|
|
1328
1442
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -1342,6 +1456,14 @@ export declare const FeatureSchema: z.ZodObject<{
|
|
|
1342
1456
|
}[];
|
|
1343
1457
|
shortId: string;
|
|
1344
1458
|
priority: number;
|
|
1459
|
+
statusLog: {
|
|
1460
|
+
id: string;
|
|
1461
|
+
date: string;
|
|
1462
|
+
title: string;
|
|
1463
|
+
description: string;
|
|
1464
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1465
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1466
|
+
}[];
|
|
1345
1467
|
dependsOn: string[];
|
|
1346
1468
|
discussedAt: string;
|
|
1347
1469
|
contextReady: boolean;
|
|
@@ -1368,6 +1490,14 @@ export declare const FeatureSchema: z.ZodObject<{
|
|
|
1368
1490
|
}[] | undefined;
|
|
1369
1491
|
shortId?: string | undefined;
|
|
1370
1492
|
priority?: number | undefined;
|
|
1493
|
+
statusLog?: {
|
|
1494
|
+
id: string;
|
|
1495
|
+
date: string;
|
|
1496
|
+
title: string;
|
|
1497
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1498
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1499
|
+
description?: string | undefined;
|
|
1500
|
+
}[] | undefined;
|
|
1371
1501
|
dependsOn?: string[] | undefined;
|
|
1372
1502
|
discussedAt?: string | undefined;
|
|
1373
1503
|
contextReady?: boolean | undefined;
|
|
@@ -1418,6 +1548,29 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
|
|
|
1418
1548
|
}>, "many">>;
|
|
1419
1549
|
phaseIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
1420
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: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1565
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1566
|
+
}, {
|
|
1567
|
+
id: string;
|
|
1568
|
+
date: string;
|
|
1569
|
+
title: string;
|
|
1570
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1571
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1572
|
+
description?: string | undefined;
|
|
1573
|
+
}>, "many">>;
|
|
1421
1574
|
createdAt: z.ZodString;
|
|
1422
1575
|
updatedAt: z.ZodString;
|
|
1423
1576
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -1437,6 +1590,14 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
|
|
|
1437
1590
|
}[];
|
|
1438
1591
|
shortId: string;
|
|
1439
1592
|
priority: number;
|
|
1593
|
+
statusLog: {
|
|
1594
|
+
id: string;
|
|
1595
|
+
date: string;
|
|
1596
|
+
title: string;
|
|
1597
|
+
description: string;
|
|
1598
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1599
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1600
|
+
}[];
|
|
1440
1601
|
dependsOn: string[];
|
|
1441
1602
|
discussedAt: string;
|
|
1442
1603
|
contextReady: boolean;
|
|
@@ -1463,6 +1624,14 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
|
|
|
1463
1624
|
}[] | undefined;
|
|
1464
1625
|
shortId?: string | undefined;
|
|
1465
1626
|
priority?: number | undefined;
|
|
1627
|
+
statusLog?: {
|
|
1628
|
+
id: string;
|
|
1629
|
+
date: string;
|
|
1630
|
+
title: string;
|
|
1631
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1632
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1633
|
+
description?: string | undefined;
|
|
1634
|
+
}[] | undefined;
|
|
1466
1635
|
dependsOn?: string[] | undefined;
|
|
1467
1636
|
discussedAt?: string | undefined;
|
|
1468
1637
|
contextReady?: boolean | undefined;
|
|
@@ -1491,6 +1660,14 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
|
|
|
1491
1660
|
}[];
|
|
1492
1661
|
shortId: string;
|
|
1493
1662
|
priority: number;
|
|
1663
|
+
statusLog: {
|
|
1664
|
+
id: string;
|
|
1665
|
+
date: string;
|
|
1666
|
+
title: string;
|
|
1667
|
+
description: string;
|
|
1668
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1669
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1670
|
+
}[];
|
|
1494
1671
|
dependsOn: string[];
|
|
1495
1672
|
discussedAt: string;
|
|
1496
1673
|
contextReady: boolean;
|
|
@@ -1519,6 +1696,14 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
|
|
|
1519
1696
|
}[] | undefined;
|
|
1520
1697
|
shortId?: string | undefined;
|
|
1521
1698
|
priority?: number | undefined;
|
|
1699
|
+
statusLog?: {
|
|
1700
|
+
id: string;
|
|
1701
|
+
date: string;
|
|
1702
|
+
title: string;
|
|
1703
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1704
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
1705
|
+
description?: string | undefined;
|
|
1706
|
+
}[] | undefined;
|
|
1522
1707
|
dependsOn?: string[] | undefined;
|
|
1523
1708
|
discussedAt?: string | undefined;
|
|
1524
1709
|
contextReady?: boolean | undefined;
|
|
@@ -1887,6 +2072,29 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
1887
2072
|
}>, "many">>;
|
|
1888
2073
|
phaseIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
1889
2074
|
dependsOn: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
2075
|
+
/** 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"). */
|
|
2076
|
+
statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
2077
|
+
id: z.ZodString;
|
|
2078
|
+
date: z.ZodString;
|
|
2079
|
+
fromStatus: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
2080
|
+
toStatus: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
2081
|
+
title: z.ZodString;
|
|
2082
|
+
description: z.ZodDefault<z.ZodString>;
|
|
2083
|
+
}, "strip", z.ZodTypeAny, {
|
|
2084
|
+
id: string;
|
|
2085
|
+
date: string;
|
|
2086
|
+
title: string;
|
|
2087
|
+
description: string;
|
|
2088
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2089
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2090
|
+
}, {
|
|
2091
|
+
id: string;
|
|
2092
|
+
date: string;
|
|
2093
|
+
title: string;
|
|
2094
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2095
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2096
|
+
description?: string | undefined;
|
|
2097
|
+
}>, "many">>;
|
|
1890
2098
|
createdAt: z.ZodString;
|
|
1891
2099
|
updatedAt: z.ZodString;
|
|
1892
2100
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -1906,6 +2114,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
1906
2114
|
}[];
|
|
1907
2115
|
shortId: string;
|
|
1908
2116
|
priority: number;
|
|
2117
|
+
statusLog: {
|
|
2118
|
+
id: string;
|
|
2119
|
+
date: string;
|
|
2120
|
+
title: string;
|
|
2121
|
+
description: string;
|
|
2122
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2123
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2124
|
+
}[];
|
|
1909
2125
|
dependsOn: string[];
|
|
1910
2126
|
discussedAt: string;
|
|
1911
2127
|
contextReady: boolean;
|
|
@@ -1932,6 +2148,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
1932
2148
|
}[] | undefined;
|
|
1933
2149
|
shortId?: string | undefined;
|
|
1934
2150
|
priority?: number | undefined;
|
|
2151
|
+
statusLog?: {
|
|
2152
|
+
id: string;
|
|
2153
|
+
date: string;
|
|
2154
|
+
title: string;
|
|
2155
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2156
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2157
|
+
description?: string | undefined;
|
|
2158
|
+
}[] | undefined;
|
|
1935
2159
|
dependsOn?: string[] | undefined;
|
|
1936
2160
|
discussedAt?: string | undefined;
|
|
1937
2161
|
contextReady?: boolean | undefined;
|
|
@@ -1960,6 +2184,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
1960
2184
|
}[];
|
|
1961
2185
|
shortId: string;
|
|
1962
2186
|
priority: number;
|
|
2187
|
+
statusLog: {
|
|
2188
|
+
id: string;
|
|
2189
|
+
date: string;
|
|
2190
|
+
title: string;
|
|
2191
|
+
description: string;
|
|
2192
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2193
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2194
|
+
}[];
|
|
1963
2195
|
dependsOn: string[];
|
|
1964
2196
|
discussedAt: string;
|
|
1965
2197
|
contextReady: boolean;
|
|
@@ -1988,6 +2220,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
1988
2220
|
}[] | undefined;
|
|
1989
2221
|
shortId?: string | undefined;
|
|
1990
2222
|
priority?: number | undefined;
|
|
2223
|
+
statusLog?: {
|
|
2224
|
+
id: string;
|
|
2225
|
+
date: string;
|
|
2226
|
+
title: string;
|
|
2227
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2228
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2229
|
+
description?: string | undefined;
|
|
2230
|
+
}[] | undefined;
|
|
1991
2231
|
dependsOn?: string[] | undefined;
|
|
1992
2232
|
discussedAt?: string | undefined;
|
|
1993
2233
|
contextReady?: boolean | undefined;
|
|
@@ -2205,15 +2445,21 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2205
2445
|
}>, "many">>;
|
|
2206
2446
|
checklist: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
2207
2447
|
id: z.ZodString;
|
|
2448
|
+
/** Per-task 1-based position, displayed as C{number} (C1, C2, ...). Default 0
|
|
2449
|
+
* so legacy on-disk items without a number still parse; the TaskSchema
|
|
2450
|
+
* transform overwrites it with the real index+1. */
|
|
2451
|
+
number: z.ZodDefault<z.ZodNumber>;
|
|
2208
2452
|
title: z.ZodString;
|
|
2209
2453
|
checked: z.ZodDefault<z.ZodBoolean>;
|
|
2210
2454
|
}, "strip", z.ZodTypeAny, {
|
|
2455
|
+
number: number;
|
|
2211
2456
|
id: string;
|
|
2212
2457
|
title: string;
|
|
2213
2458
|
checked: boolean;
|
|
2214
2459
|
}, {
|
|
2215
2460
|
id: string;
|
|
2216
2461
|
title: string;
|
|
2462
|
+
number?: number | undefined;
|
|
2217
2463
|
checked?: boolean | undefined;
|
|
2218
2464
|
}>]>, "many">>;
|
|
2219
2465
|
subtasks: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -2274,6 +2520,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2274
2520
|
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2275
2521
|
}[];
|
|
2276
2522
|
checklist: (string | {
|
|
2523
|
+
number: number;
|
|
2277
2524
|
id: string;
|
|
2278
2525
|
title: string;
|
|
2279
2526
|
checked: boolean;
|
|
@@ -2322,6 +2569,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2322
2569
|
checklist?: (string | {
|
|
2323
2570
|
id: string;
|
|
2324
2571
|
title: string;
|
|
2572
|
+
number?: number | undefined;
|
|
2325
2573
|
checked?: boolean | undefined;
|
|
2326
2574
|
})[] | undefined;
|
|
2327
2575
|
subtasks?: {
|
|
@@ -2338,6 +2586,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2338
2586
|
}>, {
|
|
2339
2587
|
checklist: {
|
|
2340
2588
|
id: string;
|
|
2589
|
+
number: number;
|
|
2341
2590
|
title: string;
|
|
2342
2591
|
checked: boolean;
|
|
2343
2592
|
}[];
|
|
@@ -2414,6 +2663,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2414
2663
|
checklist?: (string | {
|
|
2415
2664
|
id: string;
|
|
2416
2665
|
title: string;
|
|
2666
|
+
number?: number | undefined;
|
|
2417
2667
|
checked?: boolean | undefined;
|
|
2418
2668
|
})[] | undefined;
|
|
2419
2669
|
subtasks?: {
|
|
@@ -2456,6 +2706,29 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2456
2706
|
file?: string | undefined;
|
|
2457
2707
|
reason?: string | undefined;
|
|
2458
2708
|
}>, "many">>;
|
|
2709
|
+
/** 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"). */
|
|
2710
|
+
statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
2711
|
+
id: z.ZodString;
|
|
2712
|
+
date: z.ZodString;
|
|
2713
|
+
fromStatus: z.ZodEnum<["draft", "discovery", "planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
2714
|
+
toStatus: z.ZodEnum<["draft", "discovery", "planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
2715
|
+
title: z.ZodString;
|
|
2716
|
+
description: z.ZodDefault<z.ZodString>;
|
|
2717
|
+
}, "strip", z.ZodTypeAny, {
|
|
2718
|
+
id: string;
|
|
2719
|
+
date: string;
|
|
2720
|
+
title: string;
|
|
2721
|
+
description: string;
|
|
2722
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
2723
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
2724
|
+
}, {
|
|
2725
|
+
id: string;
|
|
2726
|
+
date: string;
|
|
2727
|
+
title: string;
|
|
2728
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
2729
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
2730
|
+
description?: string | undefined;
|
|
2731
|
+
}>, "many">>;
|
|
2459
2732
|
}, "strip", z.ZodTypeAny, {
|
|
2460
2733
|
number: number;
|
|
2461
2734
|
dependencies: string[];
|
|
@@ -2477,6 +2750,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2477
2750
|
}[];
|
|
2478
2751
|
shortId: string;
|
|
2479
2752
|
priority: number;
|
|
2753
|
+
statusLog: {
|
|
2754
|
+
id: string;
|
|
2755
|
+
date: string;
|
|
2756
|
+
title: string;
|
|
2757
|
+
description: string;
|
|
2758
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
2759
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
2760
|
+
}[];
|
|
2480
2761
|
dependsOn: string[];
|
|
2481
2762
|
slug: string;
|
|
2482
2763
|
discussedAt: string;
|
|
@@ -2491,6 +2772,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2491
2772
|
tasks: {
|
|
2492
2773
|
checklist: {
|
|
2493
2774
|
id: string;
|
|
2775
|
+
number: number;
|
|
2494
2776
|
title: string;
|
|
2495
2777
|
checked: boolean;
|
|
2496
2778
|
}[];
|
|
@@ -2566,6 +2848,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2566
2848
|
}[] | undefined;
|
|
2567
2849
|
shortId?: string | undefined;
|
|
2568
2850
|
priority?: number | undefined;
|
|
2851
|
+
statusLog?: {
|
|
2852
|
+
id: string;
|
|
2853
|
+
date: string;
|
|
2854
|
+
title: string;
|
|
2855
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
2856
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
2857
|
+
description?: string | undefined;
|
|
2858
|
+
}[] | undefined;
|
|
2569
2859
|
dependsOn?: string[] | undefined;
|
|
2570
2860
|
featureId?: string | undefined;
|
|
2571
2861
|
discussedAt?: string | undefined;
|
|
@@ -2610,6 +2900,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2610
2900
|
checklist?: (string | {
|
|
2611
2901
|
id: string;
|
|
2612
2902
|
title: string;
|
|
2903
|
+
number?: number | undefined;
|
|
2613
2904
|
checked?: boolean | undefined;
|
|
2614
2905
|
})[] | undefined;
|
|
2615
2906
|
subtasks?: {
|
|
@@ -2652,6 +2943,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2652
2943
|
}[];
|
|
2653
2944
|
shortId: string;
|
|
2654
2945
|
priority: number;
|
|
2946
|
+
statusLog: {
|
|
2947
|
+
id: string;
|
|
2948
|
+
date: string;
|
|
2949
|
+
title: string;
|
|
2950
|
+
description: string;
|
|
2951
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2952
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
2953
|
+
}[];
|
|
2655
2954
|
dependsOn: string[];
|
|
2656
2955
|
discussedAt: string;
|
|
2657
2956
|
contextReady: boolean;
|
|
@@ -2740,6 +3039,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2740
3039
|
}[];
|
|
2741
3040
|
shortId: string;
|
|
2742
3041
|
priority: number;
|
|
3042
|
+
statusLog: {
|
|
3043
|
+
id: string;
|
|
3044
|
+
date: string;
|
|
3045
|
+
title: string;
|
|
3046
|
+
description: string;
|
|
3047
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
3048
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
3049
|
+
}[];
|
|
2743
3050
|
dependsOn: string[];
|
|
2744
3051
|
slug: string;
|
|
2745
3052
|
discussedAt: string;
|
|
@@ -2754,6 +3061,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2754
3061
|
tasks: {
|
|
2755
3062
|
checklist: {
|
|
2756
3063
|
id: string;
|
|
3064
|
+
number: number;
|
|
2757
3065
|
title: string;
|
|
2758
3066
|
checked: boolean;
|
|
2759
3067
|
}[];
|
|
@@ -2827,6 +3135,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2827
3135
|
}[] | undefined;
|
|
2828
3136
|
shortId?: string | undefined;
|
|
2829
3137
|
priority?: number | undefined;
|
|
3138
|
+
statusLog?: {
|
|
3139
|
+
id: string;
|
|
3140
|
+
date: string;
|
|
3141
|
+
title: string;
|
|
3142
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
3143
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting";
|
|
3144
|
+
description?: string | undefined;
|
|
3145
|
+
}[] | undefined;
|
|
2830
3146
|
dependsOn?: string[] | undefined;
|
|
2831
3147
|
discussedAt?: string | undefined;
|
|
2832
3148
|
contextReady?: boolean | undefined;
|
|
@@ -2916,6 +3232,14 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2916
3232
|
}[] | undefined;
|
|
2917
3233
|
shortId?: string | undefined;
|
|
2918
3234
|
priority?: number | undefined;
|
|
3235
|
+
statusLog?: {
|
|
3236
|
+
id: string;
|
|
3237
|
+
date: string;
|
|
3238
|
+
title: string;
|
|
3239
|
+
fromStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
3240
|
+
toStatus: "planned" | "in-progress" | "done" | "blocked" | "canceled" | "rejected" | "deferred" | "waiting" | "draft" | "discovery";
|
|
3241
|
+
description?: string | undefined;
|
|
3242
|
+
}[] | undefined;
|
|
2919
3243
|
dependsOn?: string[] | undefined;
|
|
2920
3244
|
featureId?: string | undefined;
|
|
2921
3245
|
discussedAt?: string | undefined;
|
|
@@ -2960,6 +3284,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2960
3284
|
checklist?: (string | {
|
|
2961
3285
|
id: string;
|
|
2962
3286
|
title: string;
|
|
3287
|
+
number?: number | undefined;
|
|
2963
3288
|
checked?: boolean | undefined;
|
|
2964
3289
|
})[] | undefined;
|
|
2965
3290
|
subtasks?: {
|
|
@@ -3009,6 +3334,7 @@ export type Project = z.infer<typeof ProjectSchema>;
|
|
|
3009
3334
|
export type Subtask = z.infer<typeof SubtaskSchema>;
|
|
3010
3335
|
export type ChecklistItem = z.infer<typeof ChecklistItemSchema>;
|
|
3011
3336
|
export type StatusLogEntry = z.infer<typeof StatusLogEntrySchema>;
|
|
3337
|
+
export type PhaseStatusLogEntry = z.infer<typeof PhaseStatusLogEntrySchema>;
|
|
3012
3338
|
export type Task = z.infer<typeof TaskSchema>;
|
|
3013
3339
|
export type Phase = z.infer<typeof PhaseSchema> & {
|
|
3014
3340
|
status: PhaseStatus;
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe,aAAwB,CAAC;AACrD,eAAO,MAAM,UAAU,aAAiD,CAAC;AAEzE,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBhC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;IAK5B;;mFAE+E;;;;;;;;;;;;;;;;;;;;;;;;;;EAM/E,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE5B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;EAMzB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAOjC,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAexB,gGAAgG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIhG,CAAC;AAEH,eAAO,MAAM,mBAAmB,yGAAuG,CAAC;AACxI,eAAO,MAAM,gBAAgB,yGAAuG,CAAC;AACrI,eAAO,MAAM,iBAAiB,+HAA6H,CAAC;AAC5J,eAAO,MAAM,uBAAuB,yGAAuG,CAAC;AAC5I,eAAO,MAAM,mBAAmB,yGAAuG,CAAC;AAExI,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAC;AAEH,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.js
CHANGED
|
@@ -111,6 +111,10 @@ export const SubtaskSchema = z.object({
|
|
|
111
111
|
});
|
|
112
112
|
export const ChecklistItemSchema = z.object({
|
|
113
113
|
id: z.string().min(1),
|
|
114
|
+
/** Per-task 1-based position, displayed as C{number} (C1, C2, ...). Default 0
|
|
115
|
+
* so legacy on-disk items without a number still parse; the TaskSchema
|
|
116
|
+
* transform overwrites it with the real index+1. */
|
|
117
|
+
number: z.number().int().nonnegative().default(0),
|
|
114
118
|
title: z.string().min(1),
|
|
115
119
|
checked: z.boolean().default(false),
|
|
116
120
|
});
|
|
@@ -142,6 +146,16 @@ export const StatusLogEntrySchema = z.object({
|
|
|
142
146
|
title: z.string().min(1),
|
|
143
147
|
description: z.string().default(""),
|
|
144
148
|
});
|
|
149
|
+
/** Like StatusLogEntrySchema but for the DERIVED PHASE status, which includes
|
|
150
|
+
* the "draft" and "discovery" lifecycle states absent from TaskStatus. */
|
|
151
|
+
export const PhaseStatusLogEntrySchema = z.object({
|
|
152
|
+
id: z.string().min(1),
|
|
153
|
+
date: TimestampSchema,
|
|
154
|
+
fromStatus: PhaseStatusSchema,
|
|
155
|
+
toStatus: PhaseStatusSchema,
|
|
156
|
+
title: z.string().min(1),
|
|
157
|
+
description: z.string().default(""),
|
|
158
|
+
});
|
|
145
159
|
export const TaskSchema = z.object({
|
|
146
160
|
id: z.string(),
|
|
147
161
|
phaseId: z.string(),
|
|
@@ -168,8 +182,8 @@ export const TaskSchema = z.object({
|
|
|
168
182
|
...task,
|
|
169
183
|
checklist: task.checklist
|
|
170
184
|
.map((item, index) => typeof item === "string"
|
|
171
|
-
? { id: createChecklistItemId(task.id, index + 1, item), title: item.trim(), checked: false }
|
|
172
|
-
: { ...item, id: item.id || createChecklistItemId(task.id, index + 1, item.title), title: item.title.trim(), checked: item.checked ?? false })
|
|
185
|
+
? { id: createChecklistItemId(task.id, index + 1, item), number: index + 1, title: item.trim(), checked: false }
|
|
186
|
+
: { ...item, id: item.id || createChecklistItemId(task.id, index + 1, item.title), number: index + 1, title: item.title.trim(), checked: item.checked ?? false })
|
|
173
187
|
.filter((item) => item.title.length > 0),
|
|
174
188
|
}));
|
|
175
189
|
export const HandoffHistoryEntrySchema = z.object({
|
|
@@ -222,6 +236,8 @@ export const PhaseSchema = z.object({
|
|
|
222
236
|
* this array only holds the pointer + clear reason + timestamp, so the phase
|
|
223
237
|
* JSON stays lean and the archive is recoverable. */
|
|
224
238
|
handoffHistory: z.array(HandoffHistoryEntrySchema).default([]),
|
|
239
|
+
/** 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"). */
|
|
240
|
+
statusLog: z.array(PhaseStatusLogEntrySchema).default([]),
|
|
225
241
|
});
|
|
226
242
|
export const FeatureSchema = z.object({
|
|
227
243
|
id: z.string(),
|
|
@@ -243,6 +259,8 @@ export const FeatureSchema = z.object({
|
|
|
243
259
|
acceptedDecisions: z.array(AcceptedDecisionSchema).default([]),
|
|
244
260
|
phaseIds: z.array(z.string().min(1)).default([]),
|
|
245
261
|
dependsOn: z.array(z.string().min(1)).default([]),
|
|
262
|
+
/** 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"). */
|
|
263
|
+
statusLog: z.array(StatusLogEntrySchema).default([]),
|
|
246
264
|
createdAt: TimestampSchema,
|
|
247
265
|
updatedAt: TimestampSchema,
|
|
248
266
|
});
|
package/package.json
CHANGED