@agent-plan/core 0.2.19-next.2 → 0.2.19-next.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/checklist.d.ts +16 -0
- package/dist/checklist.d.ts.map +1 -0
- package/dist/checklist.js +52 -0
- package/dist/display-status.d.ts +99 -0
- package/dist/display-status.d.ts.map +1 -0
- package/dist/display-status.js +176 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/naming.d.ts +21 -3
- package/dist/naming.d.ts.map +1 -1
- package/dist/naming.js +45 -3
- package/dist/plan-store.d.ts +157 -17
- package/dist/plan-store.d.ts.map +1 -1
- package/dist/plan-store.js +833 -172
- package/dist/recap.d.ts.map +1 -1
- package/dist/recap.js +35 -9
- package/dist/refs.d.ts +23 -0
- package/dist/refs.d.ts.map +1 -1
- package/dist/refs.js +81 -0
- package/dist/schema.d.ts +477 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +55 -4
- package/dist/task-context.d.ts +16 -0
- package/dist/task-context.d.ts.map +1 -0
- package/dist/task-context.js +48 -0
- package/package.json +4 -1
package/dist/plan-store.d.ts
CHANGED
|
@@ -1,7 +1,26 @@
|
|
|
1
|
-
import { type Feature, type FeaturesDocument, type Manifest, type Phase, type PlanWorkspace, type Project, type RequirementsDocument, type ActivityEntry, type ActivityLog, type CodebaseProfile, type ResumeFocus } from "./schema.js";
|
|
1
|
+
import { type Feature, type FeaturesDocument, type Manifest, type Phase, type PlanWorkspace, type Project, type RequirementsDocument, type Requirement, type ActivityEntry, type ActivityLog, type CodebaseProfile, type ResumeFocus } from "./schema.js";
|
|
2
|
+
import { type ParentDisplay } from "./display-status.js";
|
|
3
|
+
export interface PlanStoreErrorDetails {
|
|
4
|
+
path?: string;
|
|
5
|
+
operation?: string;
|
|
6
|
+
backupTried?: boolean;
|
|
7
|
+
backupFailed?: boolean;
|
|
8
|
+
jsonParseError?: {
|
|
9
|
+
message: string;
|
|
10
|
+
line?: number;
|
|
11
|
+
column?: number;
|
|
12
|
+
};
|
|
13
|
+
validationErrors?: {
|
|
14
|
+
path: string;
|
|
15
|
+
message: string;
|
|
16
|
+
}[];
|
|
17
|
+
rawPreview?: string;
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
}
|
|
2
20
|
export declare class PlanStoreError extends Error {
|
|
3
21
|
readonly cause?: unknown | undefined;
|
|
4
|
-
|
|
22
|
+
readonly details?: PlanStoreErrorDetails | undefined;
|
|
23
|
+
constructor(message: string, cause?: unknown | undefined, details?: PlanStoreErrorDetails | undefined);
|
|
5
24
|
}
|
|
6
25
|
export declare function setWriteBusyHook(hook: ((busy: boolean) => void) | undefined): void;
|
|
7
26
|
export declare function setWriteNotifyHook(hook: (() => void) | undefined): void;
|
|
@@ -9,15 +28,53 @@ export declare function withFeatureLock<T>(featureId: string, fn: () => Promise<
|
|
|
9
28
|
/** Summary of a phase that has a non-empty handoff, for the listHandoffs() API. */
|
|
10
29
|
export interface PhaseHandoffSummary {
|
|
11
30
|
phaseId: string;
|
|
31
|
+
/** Owning feature id (for deep-linking to the phase-detail route). */
|
|
32
|
+
featureId?: string | undefined;
|
|
12
33
|
/** Human-readable composite ref, e.g. `P003` or `P003(F002)`. */
|
|
13
34
|
compositeRef: string;
|
|
14
35
|
/** handoffUpdatedAt (falls back to phase.updatedAt if unset). */
|
|
15
36
|
updatedAt: string;
|
|
16
37
|
/** First non-empty line of the handoff, leading markdown headers stripped, ~80 chars. */
|
|
17
38
|
firstLine: string;
|
|
39
|
+
/** Full handoff content (phase.handoff) — lets the /handoff viewer render
|
|
40
|
+
* inline without a per-phase fetch. */
|
|
41
|
+
content: string;
|
|
42
|
+
}
|
|
43
|
+
/** Summary of a phase file that exists on disk but no longer resolves to a
|
|
44
|
+
* valid owning feature. Missing back-links alone do NOT make a phase orphan:
|
|
45
|
+
* if `phase.featureId` still resolves to a known feature, repair can relink
|
|
46
|
+
* it. */
|
|
47
|
+
export interface OrphanPhaseSummary {
|
|
48
|
+
phaseId: string;
|
|
49
|
+
featureId?: string | undefined;
|
|
50
|
+
shortId?: string | undefined;
|
|
51
|
+
compositeRef: string;
|
|
52
|
+
title: string;
|
|
53
|
+
reason: string;
|
|
18
54
|
}
|
|
19
55
|
export declare function migrateToUuids(store: PlanStore): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* One-time idempotent migration to GLOBAL F/P/T numbering.
|
|
58
|
+
*
|
|
59
|
+
* Legacy plans assign Phase.number per-feature and Task.number per-phase, so
|
|
60
|
+
* every feature has a P001 and every phase has a T001 (ambiguous in chat/handoffs).
|
|
61
|
+
* This renumbers ALL features/phases/tasks by `createdAt` asc (stable tiebreak by
|
|
62
|
+
* id) into a single project-wide 1..N sequence and sets the monotonic project
|
|
63
|
+
* counters (nextFeatureNumber/nextPhaseNumber/nextTaskNumber).
|
|
64
|
+
*
|
|
65
|
+
* Idempotent: if no duplicate phase/task/feature numbers exist across the
|
|
66
|
+
* project, the plan is already global → no renumber writes happen (only the
|
|
67
|
+
* counters are ensured, in case project.json predates them). MUST run before
|
|
68
|
+
* ensureStructureOrdering (which no longer renumbers — numbers are stable).
|
|
69
|
+
*/
|
|
70
|
+
export declare function migrateToGlobalSequence(store: PlanStore): Promise<{
|
|
71
|
+
migrated: boolean;
|
|
72
|
+
phases: number;
|
|
73
|
+
tasks: number;
|
|
74
|
+
features: number;
|
|
75
|
+
}>;
|
|
20
76
|
export declare class PlanStore {
|
|
77
|
+
#private;
|
|
21
78
|
readonly root: string;
|
|
22
79
|
private autoSync;
|
|
23
80
|
private syncGuard;
|
|
@@ -46,6 +103,18 @@ export declare class PlanStore {
|
|
|
46
103
|
ensureStructureOrdering(): Promise<{
|
|
47
104
|
changed: boolean;
|
|
48
105
|
}>;
|
|
106
|
+
/** Rebuild each phase's `tasks` + `taskIds` from the task's OWN `phaseId`
|
|
107
|
+
* (source of truth). Heals plans where tasks got filed into the wrong phase
|
|
108
|
+
* file (e.g. the migrateToGlobalSequence index-mismatch bug, @agent-plan/core
|
|
109
|
+
* <0.2.19-next.7). Deterministic, lossless, idempotent: groups every task by
|
|
110
|
+
* its phaseId, preserves each phase's existing taskIds order, appends orphan
|
|
111
|
+
* tasks (whose phaseId dangles or is empty) by number. Writes a phase file
|
|
112
|
+
* only when its task set actually changed. */
|
|
113
|
+
rebuildContainment(): Promise<{
|
|
114
|
+
changed: number;
|
|
115
|
+
tasks: number;
|
|
116
|
+
orphan: number;
|
|
117
|
+
}>;
|
|
49
118
|
private manifestPath;
|
|
50
119
|
private projectPath;
|
|
51
120
|
private requirementsPath;
|
|
@@ -63,11 +132,45 @@ export declare class PlanStore {
|
|
|
63
132
|
private codebasePath;
|
|
64
133
|
private resumePath;
|
|
65
134
|
private activityPath;
|
|
66
|
-
private
|
|
135
|
+
private localRoot;
|
|
136
|
+
private timestampPath;
|
|
137
|
+
private backupsDir;
|
|
138
|
+
private tmpDir;
|
|
139
|
+
private handoffArchiveDir;
|
|
140
|
+
/** One-time migration for plans created before .planner/.local/ existed.
|
|
141
|
+
* Moves a legacy root-level file into .local/ if the legacy file exists and
|
|
142
|
+
* the .local/ counterpart does not. Safe to call on every load. */
|
|
143
|
+
private migrateLegacyLocalFile;
|
|
144
|
+
private migrateLegacyGeneratedDir;
|
|
145
|
+
private migrateLegacyHandoffArchive;
|
|
67
146
|
init(projectName: string): Promise<void>;
|
|
147
|
+
/** Idempotently ensure `.planner/.gitignore` ignores `.local/` (and the
|
|
148
|
+
* canonical transient/derived patterns). Projects initialized before the
|
|
149
|
+
* `.local/` move either have no `.planner/.gitignore` or one with stale
|
|
150
|
+
* root-level patterns. This upgrades them safely on load and on repair.
|
|
151
|
+
* Returns true if the file was (re)written. Safe to call on every load. */
|
|
152
|
+
ensureGitignore(): Promise<boolean>;
|
|
68
153
|
exists(): Promise<boolean>;
|
|
69
154
|
loadManifest(): Promise<Manifest>;
|
|
70
155
|
loadProject(): Promise<Project>;
|
|
156
|
+
/**
|
|
157
|
+
* Allocate the next global sequence number for a feature/phase/task.
|
|
158
|
+
* Reads the monotonic counter from project.json, increments it, persists,
|
|
159
|
+
* and returns the allocated number. MUST be called within withFeatureLock
|
|
160
|
+
* (adapters create entities inside a lock) so the counter is race-free.
|
|
161
|
+
* The counter never reuses a number — deletions leave gaps (by design:
|
|
162
|
+
* stable references survive deletion).
|
|
163
|
+
*/
|
|
164
|
+
allocFeatureNumber(): Promise<number>;
|
|
165
|
+
allocPhaseNumber(): Promise<number>;
|
|
166
|
+
allocTaskNumber(): Promise<number>;
|
|
167
|
+
/** Allocate a globally-unique sequence number. `atomicUpdateJson` already
|
|
168
|
+
* serializes concurrent calls via `withWriteLock` on the project file, so
|
|
169
|
+
* the read-modify-write is race-free in-process. The collision guard
|
|
170
|
+
* additionally skips any candidate that already exists in the data (safety
|
|
171
|
+
* net for cross-process races or manual edits) and persists the corrected
|
|
172
|
+
* counter. */
|
|
173
|
+
private allocSeqNumber;
|
|
71
174
|
loadPhase(phaseId: string): Promise<Phase>;
|
|
72
175
|
/** Read raw feature files WITHOUT the derived `status` field. Used
|
|
73
176
|
* internally so loadFeatures/loadAll can derive status from phases without
|
|
@@ -90,19 +193,25 @@ export declare class PlanStore {
|
|
|
90
193
|
/** True when a guard bypass is currently active (not expired). */
|
|
91
194
|
isGuardBypassed(): Promise<boolean>;
|
|
92
195
|
loadActivityLog(): Promise<ActivityLog>;
|
|
93
|
-
handoffExists(): Promise<boolean>;
|
|
94
|
-
loadHandoff(): Promise<{
|
|
95
|
-
content: string;
|
|
96
|
-
createdAt: string;
|
|
97
|
-
updatedAt: string;
|
|
98
|
-
} | null>;
|
|
99
|
-
saveHandoff(content: string): Promise<void>;
|
|
100
|
-
deleteHandoff(): Promise<void>;
|
|
101
196
|
appendActivity(type: string, ref: string, summary: string): Promise<ActivityEntry>;
|
|
102
197
|
/** Derive an up-to-date resume focus from the current workspace state. */
|
|
103
198
|
refreshResume(notes?: string, lastSessionSummary?: string): Promise<ResumeFocus>;
|
|
104
199
|
loadRequirements(): Promise<RequirementsDocument>;
|
|
200
|
+
linkedRequirementsForPhase(phaseId: string): Promise<Requirement[]>;
|
|
201
|
+
loadPhaseWithRequirements(phaseId: string): Promise<Phase & {
|
|
202
|
+
linkedRequirements: Requirement[];
|
|
203
|
+
}>;
|
|
204
|
+
loadAllPhasesWithRequirements(): Promise<Array<Phase & {
|
|
205
|
+
linkedRequirements: Requirement[];
|
|
206
|
+
}>>;
|
|
105
207
|
loadAllPhases(): Promise<Phase[]>;
|
|
208
|
+
/** Derive the parent display snapshot for a phase from its tasks' canonical
|
|
209
|
+
* statuses. Pure, non-persisting. */
|
|
210
|
+
loadPhaseDisplay(phaseId: string): Promise<ParentDisplay>;
|
|
211
|
+
/** Derive the parent display snapshot for a feature from its phases' DERIVED
|
|
212
|
+
* canonical statuses (each phase status is derived from its tasks at read
|
|
213
|
+
* time, then mapped via fromCanonicalStatus). Pure, non-persisting. */
|
|
214
|
+
loadFeatureDisplay(featureId: string): Promise<ParentDisplay>;
|
|
106
215
|
loadAll(): Promise<PlanWorkspace>;
|
|
107
216
|
/** Migrate legacy non-feature-scoped phase ids to feature-scoped ids and repair
|
|
108
217
|
* dangling feature.phaseIds references. Idempotent. */
|
|
@@ -148,12 +257,18 @@ export declare class PlanStore {
|
|
|
148
257
|
prioritiesAssigned: number;
|
|
149
258
|
duplicateShortIds: string[];
|
|
150
259
|
};
|
|
260
|
+
containment: {
|
|
261
|
+
changed: number;
|
|
262
|
+
tasks: number;
|
|
263
|
+
orphan: number;
|
|
264
|
+
};
|
|
151
265
|
integrity: {
|
|
152
266
|
duplicatePhaseIds: string[];
|
|
153
267
|
danglingPhaseIds: string[];
|
|
154
268
|
duplicateShortIds: string[];
|
|
155
269
|
};
|
|
156
270
|
}>;
|
|
271
|
+
private repairPhaseFeatureRefs;
|
|
157
272
|
/** Validate plan integrity: globally unique phase ids and resolvable feature.phaseIds. */
|
|
158
273
|
validateIntegrity(): Promise<{
|
|
159
274
|
duplicatePhaseIds: string[];
|
|
@@ -188,18 +303,43 @@ export declare class PlanStore {
|
|
|
188
303
|
/** Set the handoff text for a phase + stamp handoffUpdatedAt. Atomic per-file
|
|
189
304
|
* update via updatePhase (so the web UI refreshes via maybeAutoSync). */
|
|
190
305
|
setPhaseHandoff(phaseId: string, text: string): Promise<void>;
|
|
191
|
-
/**
|
|
192
|
-
*
|
|
193
|
-
|
|
306
|
+
/** Mark the phase handoff as read/acknowledged on recap (sets handoffReadAt).
|
|
307
|
+
* Does NOT clear the handoff — content is kept until a task starts or the
|
|
308
|
+
* phase completes, so a restart between read and resume does not lose it. */
|
|
309
|
+
markHandoffRead(phaseId: string): Promise<void>;
|
|
310
|
+
/** One-time import of a legacy .planner/HANDOFF.md file (file-based handoff
|
|
311
|
+
* from before F004) into the entity-scoped phase.handoff. Idempotent: if the
|
|
312
|
+
* file is absent or empty, no-op. If it exists + non-empty + the target phase
|
|
313
|
+
* has no handoff, writes the content onto the current in-progress phase (or
|
|
314
|
+
* the first phase if none in-progress) with an "imported" handoffHistory entry,
|
|
315
|
+
* then renames the file to HANDOFF.md.bak so it won't re-import. If the target
|
|
316
|
+
* already has a handoff, the entity-scoped one wins and the file is just .bak'd. */
|
|
317
|
+
importLegacyHandoffFile(): Promise<{
|
|
318
|
+
imported: boolean;
|
|
319
|
+
phaseRef?: string;
|
|
320
|
+
}>;
|
|
321
|
+
/** Clear the handoff for a phase, archiving its content first. The handoff
|
|
322
|
+
* markdown is written to .planner/handoff-archive/<phaseId>-<ISO>.md and a
|
|
323
|
+
* metadata entry { file, clearedAt, reason } is prepended to handoffHistory
|
|
324
|
+
* (capped at 5; oldest file is deleted when trimmed). handoffUpdatedAt is
|
|
325
|
+
* left unchanged as an audit trail. If the handoff is empty, this is a no-op.
|
|
326
|
+
* reason: "task-started" | "phase-done" | "manual" | "superseded" | "imported". */
|
|
327
|
+
clearPhaseHandoff(phaseId: string, reason?: string): Promise<void>;
|
|
194
328
|
/** List all phases that have a non-empty handoff, newest first, with a
|
|
195
329
|
* human-readable composite ref (P00x or P00x(F00x)) and a first-line excerpt. */
|
|
196
330
|
listHandoffs(): Promise<PhaseHandoffSummary[]>;
|
|
331
|
+
listOrphanPhases(): Promise<OrphanPhaseSummary[]>;
|
|
332
|
+
cleanupOrphanPhases(): Promise<{
|
|
333
|
+
found: OrphanPhaseSummary[];
|
|
334
|
+
removed: OrphanPhaseSummary[];
|
|
335
|
+
}>;
|
|
197
336
|
deletePhase(phaseId: string): Promise<void>;
|
|
198
337
|
/** Load the full workspace (manifest + phases + project + requirements + features) */
|
|
199
338
|
loadWorkspace(): Promise<PlanWorkspace>;
|
|
200
|
-
/** Load all data, render markdown, and write into generated/.
|
|
339
|
+
/** Load all data, render markdown, and write into generated/. Skips files
|
|
340
|
+
* whose content is unchanged to avoid unnecessary backup churn. */
|
|
201
341
|
writeGenerated(): Promise<string[]>;
|
|
202
|
-
/** Update
|
|
203
|
-
private
|
|
342
|
+
/** Update .local/timestamp.json to reflect a change. */
|
|
343
|
+
private touchTimestamp;
|
|
204
344
|
}
|
|
205
345
|
//# sourceMappingURL=plan-store.d.ts.map
|
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":"
|
|
1
|
+
{"version":3,"file":"plan-store.d.ts","sourceRoot":"","sources":["../src/plan-store.ts"],"names":[],"mappings":"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"}
|