@agent-plan/core 0.2.22-next.2 → 0.2.22-next.4
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/plan-store.d.ts.map +1 -1
- package/dist/plan-store.js +2 -1
- package/dist/planner-rules.js +3 -3
- package/dist/read-tracking.d.ts +30 -39
- package/dist/read-tracking.d.ts.map +1 -1
- package/dist/read-tracking.js +70 -51
- package/dist/recap.js +2 -2
- package/dist/task-selection.d.ts +1 -1
- package/dist/task-selection.d.ts.map +1 -1
- package/dist/task-selection.js +11 -1
- package/package.json +1 -1
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":"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
|
|
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
|
@@ -1277,12 +1277,13 @@ export class PlanStore {
|
|
|
1277
1277
|
async refreshResume(notes, lastSessionSummary) {
|
|
1278
1278
|
const workspace = await this.loadAll();
|
|
1279
1279
|
const inProgressPhases = workspace.phases.filter((p) => p.status === "in-progress");
|
|
1280
|
+
const activePhase = workspace.phases.find((phase) => phase.tasks.some((task) => task.status === "in-progress"));
|
|
1280
1281
|
const inProgressTasks = workspace.phases.flatMap((p) => p.tasks.filter((t) => t.status === "in-progress"));
|
|
1281
1282
|
const blockedTasks = workspace.phases.flatMap((p) => p.tasks.filter((t) => t.status === "blocked"));
|
|
1282
1283
|
const existing = await this.loadResume();
|
|
1283
1284
|
const resume = {
|
|
1284
1285
|
updatedAt: nowISO(),
|
|
1285
|
-
currentPhaseId:
|
|
1286
|
+
currentPhaseId: activePhase?.id ?? (existing?.currentPhaseId || inProgressPhases[0]?.id || ""),
|
|
1286
1287
|
inProgressTaskIds: inProgressTasks.map((t) => t.id),
|
|
1287
1288
|
nextSteps: existing?.nextSteps ?? [],
|
|
1288
1289
|
nextStepsUpdatedAt: existing?.nextStepsUpdatedAt ?? "",
|
package/dist/planner-rules.js
CHANGED
|
@@ -34,9 +34,9 @@ export const PLANNER_EXTENSION_RULES = [
|
|
|
34
34
|
// Avvio del planner
|
|
35
35
|
"The planner and Web UI never start automatically. Do not start the Web UI or show its URL unless the user runs load/recap/web-status. The Web UI URL appears only in the recap after load, or on explicit web status.",
|
|
36
36
|
// Regola dettagli
|
|
37
|
-
"Write relevant points (decisions, constraints, current state, file:line refs, edge cases) into the task/phase/feature description or notes as soon as they emerge
|
|
38
|
-
//
|
|
39
|
-
"When you begin work
|
|
37
|
+
"Write relevant points (decisions, constraints, current state, file:line refs, edge cases) into the task/phase/feature description or notes as soon as they emerge. Before starting, resuming, or switching to a task, read task_get(full=true), then its parent phase_get(full=true), then its parent feature_get(full=true), in that exact order; read linked requirements explicitly when present. Cite entities with composite IDs, not bare UUIDs.",
|
|
38
|
+
// Expected operational behavior
|
|
39
|
+
"When you begin work, task_start and task_switch enforce the required ordered full reads. Read any relevant phase handoff as additional context, then update the planner before and after significant changes. If you change an architectural decision, document it explicitly.",
|
|
40
40
|
];
|
|
41
41
|
/**
|
|
42
42
|
* Load the effective extension rules for a planner root. Returns the project's
|
package/dist/read-tracking.d.ts
CHANGED
|
@@ -1,55 +1,46 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Per-session, ordered context-read enforcement for agent lifecycle operations.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* read yields an unavoidable (non-blocking) advisory instead of a silent skip.
|
|
4
|
+
* An agent must read the exact task, then its parent phase, then its parent
|
|
5
|
+
* feature with full=true before it can start, resume, or switch to that task.
|
|
6
|
+
* Compact list/identity reads never count. The state is process-local and is
|
|
7
|
+
* cleared on pause, switch, and session startup by the harness adapters.
|
|
9
8
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* a different phase/feature naturally fails (that phase is not recorded). A
|
|
13
|
-
* pause invalidates the set, so resuming forces a fresh read.
|
|
14
|
-
*
|
|
15
|
-
* T319 (P072/F005) extends the set with requirements: starting/resuming/switching
|
|
16
|
-
* also requires the requirements linked to the phase (and, when present, the
|
|
17
|
-
* feature) to have been explicitly read. Requirements are NOT auto-recorded by a
|
|
18
|
-
* phase/feature/task read (per project decision: explicit separate read); they
|
|
19
|
-
* are recorded only via the requirement list tool (markRequirementRead). An empty
|
|
20
|
-
* linked-requirement list means nothing is required.
|
|
9
|
+
* Linked requirements remain a separate explicit-read gate. They are recorded
|
|
10
|
+
* only through the requirement list tool and never by an entity read.
|
|
21
11
|
*/
|
|
22
|
-
|
|
12
|
+
export type ContextReadEligibility = {
|
|
13
|
+
eligible: boolean;
|
|
14
|
+
reason: string;
|
|
15
|
+
};
|
|
16
|
+
/** Record a full feature read. */
|
|
23
17
|
export declare function markFeatureRead(featureId: string): void;
|
|
24
|
-
/** Record
|
|
25
|
-
export declare function markPhaseRead(phaseId: string,
|
|
26
|
-
/** Record
|
|
27
|
-
export declare function markTaskRead(
|
|
28
|
-
/** Record that a requirement was explicitly read
|
|
18
|
+
/** Record a full phase read. The parent feature is intentionally not implied. */
|
|
19
|
+
export declare function markPhaseRead(phaseId: string, _featureId?: string): void;
|
|
20
|
+
/** Record a full task read. Its parent phase and feature are intentionally not implied. */
|
|
21
|
+
export declare function markTaskRead(taskId: string, _phaseId?: string, _featureId?: string): void;
|
|
22
|
+
/** Record that a requirement was explicitly read via the requirement list tool. */
|
|
29
23
|
export declare function markRequirementRead(requirementId: string): void;
|
|
30
24
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
25
|
+
* Verify the required task(full) → phase(full) → feature(full) order for one
|
|
26
|
+
* exact task lineage. Orphan phases do not require a feature read.
|
|
27
|
+
*/
|
|
28
|
+
export declare function contextReadEligibility(taskId: string, phaseId: string, featureId?: string): ContextReadEligibility;
|
|
29
|
+
/**
|
|
30
|
+
* Legacy parent-read check retained for callers that only need to know whether
|
|
31
|
+
* both parent entities have been read. Lifecycle gates must use
|
|
32
|
+
* contextReadEligibility so the task and ordering cannot be bypassed.
|
|
33
33
|
*/
|
|
34
34
|
export declare function hasReadParents(featureId: string | undefined, phaseId: string): boolean;
|
|
35
|
-
/** Whether every linked requirement
|
|
35
|
+
/** Whether every linked requirement has been explicitly read. */
|
|
36
36
|
export declare function hasReadRequirements(requirementIds: string[]): boolean;
|
|
37
|
-
/** Clear
|
|
37
|
+
/** Clear all read state so later lifecycle work requires fresh context. */
|
|
38
38
|
export declare function invalidateReads(): void;
|
|
39
|
-
/**
|
|
40
|
-
* Non-blocking advisory (mirrors the NO ACTIVE TASK pattern): empty when the
|
|
41
|
-
* target's parent feature + phase have both been read, otherwise a loud
|
|
42
|
-
* READ REQUIRED notice the agent cannot silently skip.
|
|
43
|
-
*/
|
|
39
|
+
/** Compatibility advisory for non-lifecycle callers. */
|
|
44
40
|
export declare function parentReadAdvisory(featureId: string | undefined, phaseId: string): string;
|
|
45
|
-
/**
|
|
46
|
-
* Non-blocking advisory (mirrors parentReadAdvisory): empty when every linked
|
|
47
|
-
* requirement (phase + feature) has been explicitly read, otherwise a loud
|
|
48
|
-
* REQUIREMENTS READ REQUIRED notice. An empty list means the phase/feature has
|
|
49
|
-
* no linked requirements, so nothing is required.
|
|
50
|
-
*/
|
|
41
|
+
/** Advisory text for the separate linked-requirements gate. */
|
|
51
42
|
export declare function requirementReadAdvisory(requirementIds: string[]): string;
|
|
52
|
-
/** Snapshot for diagnostics
|
|
43
|
+
/** Snapshot for diagnostics and tests. */
|
|
53
44
|
export declare function readTrackingSnapshot(): {
|
|
54
45
|
features: string[];
|
|
55
46
|
phases: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-tracking.d.ts","sourceRoot":"","sources":["../src/read-tracking.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"read-tracking.d.ts","sourceRoot":"","sources":["../src/read-tracking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAeF,kCAAkC;AAClC,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAExE;AAED,2FAA2F;AAC3F,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAEzF;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAmBlH;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAItF;AAED,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAErE;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,IAAI,CAQtC;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGzF;AAED,+DAA+D;AAC/D,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAKxE;AAED,0CAA0C;AAC1C,wBAAgB,oBAAoB,IAAI;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAMvG"}
|
package/dist/read-tracking.js
CHANGED
|
@@ -1,87 +1,106 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Per-session, ordered context-read enforcement for agent lifecycle operations.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* read yields an unavoidable (non-blocking) advisory instead of a silent skip.
|
|
4
|
+
* An agent must read the exact task, then its parent phase, then its parent
|
|
5
|
+
* feature with full=true before it can start, resume, or switch to that task.
|
|
6
|
+
* Compact list/identity reads never count. The state is process-local and is
|
|
7
|
+
* cleared on pause, switch, and session startup by the harness adapters.
|
|
9
8
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* a different phase/feature naturally fails (that phase is not recorded). A
|
|
13
|
-
* pause invalidates the set, so resuming forces a fresh read.
|
|
14
|
-
*
|
|
15
|
-
* T319 (P072/F005) extends the set with requirements: starting/resuming/switching
|
|
16
|
-
* also requires the requirements linked to the phase (and, when present, the
|
|
17
|
-
* feature) to have been explicitly read. Requirements are NOT auto-recorded by a
|
|
18
|
-
* phase/feature/task read (per project decision: explicit separate read); they
|
|
19
|
-
* are recorded only via the requirement list tool (markRequirementRead). An empty
|
|
20
|
-
* linked-requirement list means nothing is required.
|
|
9
|
+
* Linked requirements remain a separate explicit-read gate. They are recorded
|
|
10
|
+
* only through the requirement list tool and never by an entity read.
|
|
21
11
|
*/
|
|
22
|
-
let state = {
|
|
23
|
-
|
|
12
|
+
let state = {
|
|
13
|
+
tasks: new Map(),
|
|
14
|
+
phases: new Map(),
|
|
15
|
+
features: new Map(),
|
|
16
|
+
requirements: new Set(),
|
|
17
|
+
nextSequence: 0,
|
|
18
|
+
};
|
|
19
|
+
function record(map, id) {
|
|
20
|
+
state.nextSequence += 1;
|
|
21
|
+
map.set(id, state.nextSequence);
|
|
22
|
+
}
|
|
23
|
+
/** Record a full feature read. */
|
|
24
24
|
export function markFeatureRead(featureId) {
|
|
25
|
-
state.features
|
|
25
|
+
record(state.features, featureId);
|
|
26
26
|
}
|
|
27
|
-
/** Record
|
|
28
|
-
export function markPhaseRead(phaseId,
|
|
29
|
-
state.phases
|
|
30
|
-
if (featureId)
|
|
31
|
-
state.features.add(featureId);
|
|
27
|
+
/** Record a full phase read. The parent feature is intentionally not implied. */
|
|
28
|
+
export function markPhaseRead(phaseId, _featureId) {
|
|
29
|
+
record(state.phases, phaseId);
|
|
32
30
|
}
|
|
33
|
-
/** Record
|
|
34
|
-
export function markTaskRead(
|
|
35
|
-
state.
|
|
36
|
-
if (featureId)
|
|
37
|
-
state.features.add(featureId);
|
|
31
|
+
/** Record a full task read. Its parent phase and feature are intentionally not implied. */
|
|
32
|
+
export function markTaskRead(taskId, _phaseId, _featureId) {
|
|
33
|
+
record(state.tasks, taskId);
|
|
38
34
|
}
|
|
39
|
-
/** Record that a requirement was explicitly read
|
|
35
|
+
/** Record that a requirement was explicitly read via the requirement list tool. */
|
|
40
36
|
export function markRequirementRead(requirementId) {
|
|
41
37
|
state.requirements.add(requirementId);
|
|
42
38
|
}
|
|
43
39
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
40
|
+
* Verify the required task(full) → phase(full) → feature(full) order for one
|
|
41
|
+
* exact task lineage. Orphan phases do not require a feature read.
|
|
42
|
+
*/
|
|
43
|
+
export function contextReadEligibility(taskId, phaseId, featureId) {
|
|
44
|
+
const taskSequence = state.tasks.get(taskId);
|
|
45
|
+
if (taskSequence === undefined) {
|
|
46
|
+
return { eligible: false, reason: "Read this exact task with full=true first." };
|
|
47
|
+
}
|
|
48
|
+
const phaseSequence = state.phases.get(phaseId);
|
|
49
|
+
if (phaseSequence === undefined || phaseSequence <= taskSequence) {
|
|
50
|
+
return { eligible: false, reason: "After reading the task, read its parent phase with full=true." };
|
|
51
|
+
}
|
|
52
|
+
if (!featureId)
|
|
53
|
+
return { eligible: true, reason: "" };
|
|
54
|
+
const featureSequence = state.features.get(featureId);
|
|
55
|
+
if (featureSequence === undefined || featureSequence <= phaseSequence) {
|
|
56
|
+
return { eligible: false, reason: "After reading the phase, read its parent feature with full=true." };
|
|
57
|
+
}
|
|
58
|
+
return { eligible: true, reason: "" };
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Legacy parent-read check retained for callers that only need to know whether
|
|
62
|
+
* both parent entities have been read. Lifecycle gates must use
|
|
63
|
+
* contextReadEligibility so the task and ordering cannot be bypassed.
|
|
46
64
|
*/
|
|
47
65
|
export function hasReadParents(featureId, phaseId) {
|
|
48
66
|
const phaseOk = state.phases.has(phaseId);
|
|
49
67
|
const featureOk = featureId ? state.features.has(featureId) : true;
|
|
50
68
|
return phaseOk && featureOk;
|
|
51
69
|
}
|
|
52
|
-
/** Whether every linked requirement
|
|
70
|
+
/** Whether every linked requirement has been explicitly read. */
|
|
53
71
|
export function hasReadRequirements(requirementIds) {
|
|
54
72
|
return requirementIds.every((id) => state.requirements.has(id));
|
|
55
73
|
}
|
|
56
|
-
/** Clear
|
|
74
|
+
/** Clear all read state so later lifecycle work requires fresh context. */
|
|
57
75
|
export function invalidateReads() {
|
|
58
|
-
state = {
|
|
76
|
+
state = {
|
|
77
|
+
tasks: new Map(),
|
|
78
|
+
phases: new Map(),
|
|
79
|
+
features: new Map(),
|
|
80
|
+
requirements: new Set(),
|
|
81
|
+
nextSequence: 0,
|
|
82
|
+
};
|
|
59
83
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Non-blocking advisory (mirrors the NO ACTIVE TASK pattern): empty when the
|
|
62
|
-
* target's parent feature + phase have both been read, otherwise a loud
|
|
63
|
-
* READ REQUIRED notice the agent cannot silently skip.
|
|
64
|
-
*/
|
|
84
|
+
/** Compatibility advisory for non-lifecycle callers. */
|
|
65
85
|
export function parentReadAdvisory(featureId, phaseId) {
|
|
66
86
|
if (hasReadParents(featureId, phaseId))
|
|
67
87
|
return "";
|
|
68
|
-
return "\n\n⚠️ READ REQUIRED before proceeding: read the parent
|
|
88
|
+
return "\n\n⚠️ READ REQUIRED before proceeding: read the parent phase and feature with full=true.";
|
|
69
89
|
}
|
|
70
|
-
/**
|
|
71
|
-
* Non-blocking advisory (mirrors parentReadAdvisory): empty when every linked
|
|
72
|
-
* requirement (phase + feature) has been explicitly read, otherwise a loud
|
|
73
|
-
* REQUIREMENTS READ REQUIRED notice. An empty list means the phase/feature has
|
|
74
|
-
* no linked requirements, so nothing is required.
|
|
75
|
-
*/
|
|
90
|
+
/** Advisory text for the separate linked-requirements gate. */
|
|
76
91
|
export function requirementReadAdvisory(requirementIds) {
|
|
77
92
|
if (requirementIds.length === 0)
|
|
78
93
|
return "";
|
|
79
94
|
const unread = requirementIds.filter((id) => !state.requirements.has(id));
|
|
80
95
|
if (unread.length === 0)
|
|
81
96
|
return "";
|
|
82
|
-
return "\n\n⚠️ REQUIREMENTS READ REQUIRED before proceeding: read the requirements linked to this phase
|
|
97
|
+
return "\n\n⚠️ REQUIREMENTS READ REQUIRED before proceeding: read the requirements linked to this phase and feature.";
|
|
83
98
|
}
|
|
84
|
-
/** Snapshot for diagnostics
|
|
99
|
+
/** Snapshot for diagnostics and tests. */
|
|
85
100
|
export function readTrackingSnapshot() {
|
|
86
|
-
return {
|
|
101
|
+
return {
|
|
102
|
+
features: [...state.features.keys()],
|
|
103
|
+
phases: [...state.phases.keys()],
|
|
104
|
+
requirements: [...state.requirements],
|
|
105
|
+
};
|
|
87
106
|
}
|
package/dist/recap.js
CHANGED
|
@@ -79,8 +79,8 @@ export async function buildRecap(st, web = {}, opts = {}) {
|
|
|
79
79
|
const tr = tref(focusTask.task.number);
|
|
80
80
|
lines.push(`${italian ? "Focus corrente" : "Current focus"}: ${fr} — ${focusFeature?.name ?? "?"} / ${pr} — ${focusPhase.title} / ${tr} — ${focusTask.task.title} (in-progress)`);
|
|
81
81
|
lines.push("", italian
|
|
82
|
-
? `Questo task è in-progress (lavoro iniziato in una sessione precedente). Prima di continuare, rileggi il contesto completo: ${
|
|
83
|
-
: `⚠️ This task is in-progress (work started in a previous session). Before continuing, re-read the full context: ${
|
|
82
|
+
? `Questo task è in-progress (lavoro iniziato in una sessione precedente). Prima di continuare, rileggi il contesto completo: ${taskShowCmd} ${tr} (full=true), ${phaseShowCmd} ${pr} (full=true), ${featureShowCmd} ${fr} (full=true).`
|
|
83
|
+
: `⚠️ This task is in-progress (work started in a previous session). Before continuing, re-read the full context in this order: ${taskShowCmd} ${tr} (full=true), ${phaseShowCmd} ${pr} (full=true), ${featureShowCmd} ${fr} (full=true).`);
|
|
84
84
|
}
|
|
85
85
|
else if (pendingResume) {
|
|
86
86
|
const feature = feats.find((entry) => entry.id === pendingResume.phase.featureId);
|
package/dist/task-selection.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export declare function checkExplicitTaskStart(features: Feature[], phases: Phas
|
|
|
30
30
|
* may use its recommendation as a default while still allowing an explicitly
|
|
31
31
|
* approved temporary deviation.
|
|
32
32
|
*/
|
|
33
|
-
export declare function recommendNextTask(features: Feature[], phases: Phase[], deviations?: WorkDeviation[]): TaskRecommendation;
|
|
33
|
+
export declare function recommendNextTask(features: Feature[], phases: Phase[], deviations?: WorkDeviation[], currentPhaseId?: string): TaskRecommendation;
|
|
34
34
|
/**
|
|
35
35
|
* Snapshot fields surfaced in the explicit resume-required proposal. Derived
|
|
36
36
|
* from {@link TaskPauseSnapshot}; kept structural so adapters can build it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-selection.d.ts","sourceRoot":"","sources":["../src/task-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5F,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC;IACnC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,mFAAmF;AACnF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AASD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,KAAK,EAAE,EACf,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,aAAa,EAAO,GAC/B,4BAA4B,CA+B9B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,KAAK,EAAE,EACf,UAAU,GAAE,aAAa,EAAO,
|
|
1
|
+
{"version":3,"file":"task-selection.d.ts","sourceRoot":"","sources":["../src/task-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5F,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC;IACnC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,mFAAmF;AACnF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AASD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,KAAK,EAAE,EACf,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,aAAa,EAAO,GAC/B,4BAA4B,CA+B9B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,KAAK,EAAE,EACf,UAAU,GAAE,aAAa,EAAO,EAChC,cAAc,SAAK,GAClB,kBAAkB,CAoEpB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;KACzC,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACzC,GAAG,sBAAsB,CAuBzB"}
|
package/dist/task-selection.js
CHANGED
|
@@ -41,7 +41,7 @@ export function checkExplicitTaskStart(features, phases, taskId, deviations = []
|
|
|
41
41
|
* may use its recommendation as a default while still allowing an explicitly
|
|
42
42
|
* approved temporary deviation.
|
|
43
43
|
*/
|
|
44
|
-
export function recommendNextTask(features, phases, deviations = []) {
|
|
44
|
+
export function recommendNextTask(features, phases, deviations = [], currentPhaseId = "") {
|
|
45
45
|
const featureById = new Map(features.map((feature) => [feature.id, feature]));
|
|
46
46
|
const candidates = phases.flatMap((phase) => phase.tasks.map((task) => ({ feature: phase.featureId ? featureById.get(phase.featureId) : undefined, phase, task })));
|
|
47
47
|
const byTaskId = new Map(candidates.map((candidate) => [candidate.task.id, candidate]));
|
|
@@ -95,6 +95,16 @@ export function recommendNextTask(features, phases, deviations = []) {
|
|
|
95
95
|
return false;
|
|
96
96
|
return task.dependsOn.every((id) => byTaskId.get(id)?.task.status === "done");
|
|
97
97
|
});
|
|
98
|
+
const currentPhaseReady = currentPhaseId
|
|
99
|
+
? ready.filter(({ phase }) => phase.id === currentPhaseId).sort((a, b) => compare(a.task, b.task))
|
|
100
|
+
: [];
|
|
101
|
+
if (currentPhaseReady[0]) {
|
|
102
|
+
return {
|
|
103
|
+
kind: "priority",
|
|
104
|
+
candidate: currentPhaseReady[0],
|
|
105
|
+
reason: "Continue the current phase before selecting new work elsewhere.",
|
|
106
|
+
};
|
|
107
|
+
}
|
|
98
108
|
ready.sort((a, b) => compare(a.feature ?? { priority: 0, number: 0 }, b.feature ?? { priority: 0, number: 0 }) || compare(a.phase, b.phase) || compare(a.task, b.task));
|
|
99
109
|
return ready[0]
|
|
100
110
|
? { kind: "priority", candidate: ready[0], reason: "Highest-priority ready task by feature, phase, then task." }
|
package/package.json
CHANGED