@lumenflow/initiatives 4.21.0 → 4.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,245 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ /**
4
+ * Evidence-based initiative reconciliation and advancement.
5
+ *
6
+ * WU-2619: Portable control-plane state machine for orchestration decisions.
7
+ * Callers provide durable execution evidence; the engine returns reconciled WU
8
+ * states, next-safe actions, and launch eligibility without assuming a specific
9
+ * local or cloud launcher implementation.
10
+ *
11
+ * @module orchestrator/reconciliation
12
+ */
13
+ import { ORCHESTRATION_NEXT_SAFE_ACTION_TYPES, ORCHESTRATION_STATUS_VALUES, } from '@lumenflow/control-plane-sdk';
14
+ import { getAllDependencies } from './shared.js';
15
+ const ACTION_PRIORITY = {
16
+ [ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.RECOVER_WU]: 0,
17
+ [ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.FINISH_WU]: 1,
18
+ [ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.RELAUNCH_WU]: 2,
19
+ [ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.LAUNCH_WU]: 3,
20
+ [ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.WAIT]: 4,
21
+ };
22
+ function normalizeStatus(value) {
23
+ return typeof value === 'string' ? value.trim().toLowerCase() : '';
24
+ }
25
+ function calculateLogicalWaveMap(wus) {
26
+ const logicalWaveMap = new Map();
27
+ const allWuIds = new Set(wus.map((wu) => wu.id));
28
+ const adjacency = new Map();
29
+ const inDegree = new Map();
30
+ for (const wu of wus) {
31
+ adjacency.set(wu.id, []);
32
+ inDegree.set(wu.id, 0);
33
+ }
34
+ for (const wu of wus) {
35
+ const internalDeps = getAllDependencies(wu.doc).filter((depId) => allWuIds.has(depId));
36
+ inDegree.set(wu.id, internalDeps.length);
37
+ for (const depId of internalDeps) {
38
+ const children = adjacency.get(depId);
39
+ if (!children) {
40
+ continue;
41
+ }
42
+ children.push(wu.id);
43
+ }
44
+ }
45
+ const queue = wus
46
+ .filter((wu) => (inDegree.get(wu.id) ?? 0) === 0)
47
+ .sort((left, right) => left.id.localeCompare(right.id))
48
+ .map((wu) => wu.id);
49
+ while (queue.length > 0) {
50
+ const currentId = queue.shift();
51
+ const currentWave = logicalWaveMap.get(currentId) ?? 0;
52
+ const children = adjacency.get(currentId) ?? [];
53
+ for (const childId of children) {
54
+ const nextWave = currentWave + 1;
55
+ logicalWaveMap.set(childId, Math.max(logicalWaveMap.get(childId) ?? 0, nextWave));
56
+ const remainingInDegree = (inDegree.get(childId) ?? 0) - 1;
57
+ inDegree.set(childId, remainingInDegree);
58
+ if (remainingInDegree === 0) {
59
+ queue.push(childId);
60
+ }
61
+ }
62
+ }
63
+ for (const wu of wus) {
64
+ if (!logicalWaveMap.has(wu.id)) {
65
+ logicalWaveMap.set(wu.id, 0);
66
+ }
67
+ }
68
+ return logicalWaveMap;
69
+ }
70
+ function buildAction(type, wuId, reason, logicalWave) {
71
+ return { type, wu_id: wuId, reason, logical_wave: logicalWave };
72
+ }
73
+ function deriveExecutionState(wu, evidence, logicalWave) {
74
+ const yamlStatus = normalizeStatus(wu.doc.status);
75
+ if (evidence.stampPresent || yamlStatus === 'done') {
76
+ return {
77
+ state: ORCHESTRATION_STATUS_VALUES.DONE,
78
+ reason: evidence.stampPresent ? 'done stamp present' : 'WU YAML status is done',
79
+ };
80
+ }
81
+ if ((evidence.contaminatedPaths?.length ?? 0) > 0) {
82
+ return {
83
+ state: ORCHESTRATION_STATUS_VALUES.CONTAMINATED,
84
+ reason: `main checkout contamination detected (${evidence.contaminatedPaths.length} path${evidence.contaminatedPaths.length === 1 ? '' : 's'})`,
85
+ nextAction: buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.RECOVER_WU, wu.id, 'Recover contaminated work before advancing.', logicalWave),
86
+ };
87
+ }
88
+ if (evidence.stalled) {
89
+ return {
90
+ state: ORCHESTRATION_STATUS_VALUES.STALLED,
91
+ reason: 'delegated work appears stalled',
92
+ nextAction: buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.RECOVER_WU, wu.id, 'Recover or inspect stalled delegated work.', logicalWave),
93
+ };
94
+ }
95
+ if (yamlStatus === 'blocked' || evidence.blockedReason) {
96
+ return {
97
+ state: ORCHESTRATION_STATUS_VALUES.BLOCKED,
98
+ reason: evidence.blockedReason || 'WU YAML status is blocked',
99
+ nextAction: buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.WAIT, wu.id, evidence.blockedReason || 'Waiting for blocker resolution.', logicalWave),
100
+ };
101
+ }
102
+ if (evidence.readyForFinish || (evidence.workerReturned && evidence.worktreePresent)) {
103
+ return {
104
+ state: ORCHESTRATION_STATUS_VALUES.READY_FOR_FINISH,
105
+ reason: evidence.readyForFinish
106
+ ? 'durable evidence marks the WU ready for finish'
107
+ : 'worker returned with worktree present',
108
+ nextAction: buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.FINISH_WU, wu.id, 'Inspect the worktree and run wu:prep/wu:done if ready.', logicalWave),
109
+ };
110
+ }
111
+ if (evidence.needsRelaunch || (evidence.workerReturned && evidence.worktreePresent === false)) {
112
+ return {
113
+ state: ORCHESTRATION_STATUS_VALUES.NEEDS_RELAUNCH,
114
+ reason: evidence.needsRelaunch
115
+ ? 'durable evidence marks the WU for relaunch'
116
+ : 'worker returned without a surviving worktree',
117
+ nextAction: buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.RELAUNCH_WU, wu.id, 'Relaunch delegated work because no finishable worktree remains.', logicalWave),
118
+ };
119
+ }
120
+ if (evidence.workerReturned) {
121
+ return {
122
+ state: ORCHESTRATION_STATUS_VALUES.WORKER_RETURNED,
123
+ reason: 'worker returned without terminal completion evidence',
124
+ nextAction: buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.WAIT, wu.id, 'Inspect returned work before advancing.', logicalWave),
125
+ };
126
+ }
127
+ if (evidence.active || evidence.worktreePresent || yamlStatus === 'in_progress') {
128
+ return {
129
+ state: ORCHESTRATION_STATUS_VALUES.ACTIVE,
130
+ reason: evidence.worktreePresent ? 'worktree present' : 'WU YAML status is in_progress',
131
+ nextAction: buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.WAIT, wu.id, 'Work is still active.', logicalWave),
132
+ };
133
+ }
134
+ if (evidence.handoffEmitted) {
135
+ return {
136
+ state: ORCHESTRATION_STATUS_VALUES.HANDOFF_EMITTED,
137
+ reason: 'handoff emitted but launch not yet confirmed',
138
+ nextAction: buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.WAIT, wu.id, 'Await launch pickup or relaunch if it stalls.', logicalWave),
139
+ };
140
+ }
141
+ return {
142
+ state: ORCHESTRATION_STATUS_VALUES.ELIGIBLE,
143
+ reason: 'eligible for orchestration',
144
+ };
145
+ }
146
+ const DEFAULT_ACTION_PRIORITY = 4;
147
+ function resolveActionPriority(type) {
148
+ return ACTION_PRIORITY[type] ?? DEFAULT_ACTION_PRIORITY;
149
+ }
150
+ function sortActions(actions) {
151
+ return [...actions].sort((left, right) => {
152
+ const byPriority = resolveActionPriority(left.type) - resolveActionPriority(right.type);
153
+ if (byPriority !== 0) {
154
+ return byPriority;
155
+ }
156
+ return (left.wu_id ?? '').localeCompare(right.wu_id ?? '');
157
+ });
158
+ }
159
+ export function reconcileInitiativeExecution(wus, evidence = [], options = {}) {
160
+ const logicalWaveMap = calculateLogicalWaveMap(wus);
161
+ const allWuIds = new Set(wus.map((wu) => wu.id));
162
+ const evidenceByWu = new Map(evidence.map((entry) => [entry.wuId, entry]));
163
+ const reconciled = wus.map((wu) => {
164
+ const wuEvidence = evidenceByWu.get(wu.id) ?? { wuId: wu.id };
165
+ const logicalWave = wuEvidence.logicalWave ?? logicalWaveMap.get(wu.id) ?? 0;
166
+ const derived = deriveExecutionState(wu, wuEvidence, logicalWave);
167
+ return {
168
+ wuId: wu.id,
169
+ title: wu.doc.title ?? wu.id,
170
+ lane: wu.doc.lane ?? 'unknown',
171
+ yamlStatus: normalizeStatus(wu.doc.status),
172
+ logicalWave,
173
+ launchAttempt: wuEvidence.launchAttempt,
174
+ state: derived.state,
175
+ reason: derived.reason,
176
+ dependencies: getAllDependencies(wu.doc).filter((depId) => allWuIds.has(depId)),
177
+ launchBlockedBy: [],
178
+ launchEligible: false,
179
+ nextAction: derived.nextAction,
180
+ evidence: wuEvidence,
181
+ };
182
+ });
183
+ const doneWuIds = new Set(reconciled.filter((wu) => wu.state === ORCHESTRATION_STATUS_VALUES.DONE).map((wu) => wu.wuId));
184
+ const blockedByIntegrity = reconciled.some((wu) => wu.state === ORCHESTRATION_STATUS_VALUES.CONTAMINATED ||
185
+ (options.blockOnIntegrity !== false && wu.state === ORCHESTRATION_STATUS_VALUES.STALLED));
186
+ const activeWorkerCount = reconciled.filter((wu) => wu.state === ORCHESTRATION_STATUS_VALUES.ACTIVE ||
187
+ wu.state === ORCHESTRATION_STATUS_VALUES.HANDOFF_EMITTED).length;
188
+ const maxActiveWorkers = typeof options.maxActiveWorkers === 'number' ? options.maxActiveWorkers : null;
189
+ const availableCapacity = maxActiveWorkers === null ? null : Math.max(maxActiveWorkers - activeWorkerCount, 0);
190
+ const launchableWuIds = [];
191
+ const queuedDueToCapacity = [];
192
+ const launchLanes = new Set();
193
+ for (const wu of [...reconciled].sort((left, right) => {
194
+ if (left.logicalWave !== right.logicalWave) {
195
+ return left.logicalWave - right.logicalWave;
196
+ }
197
+ return left.wuId.localeCompare(right.wuId);
198
+ })) {
199
+ if (wu.state !== ORCHESTRATION_STATUS_VALUES.ELIGIBLE) {
200
+ continue;
201
+ }
202
+ if (blockedByIntegrity) {
203
+ wu.launchBlockedBy = ['integrity'];
204
+ wu.nextAction = buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.WAIT, wu.wuId, 'Unsafe to advance while orchestration integrity issues remain.', wu.logicalWave);
205
+ continue;
206
+ }
207
+ const unmetDependencies = wu.dependencies.filter((depId) => !doneWuIds.has(depId));
208
+ if (unmetDependencies.length > 0) {
209
+ wu.launchBlockedBy = unmetDependencies;
210
+ wu.nextAction = buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.WAIT, wu.wuId, `Waiting for ${unmetDependencies.join(', ')} to complete.`, wu.logicalWave);
211
+ continue;
212
+ }
213
+ if (launchLanes.has(wu.lane)) {
214
+ wu.launchBlockedBy = ['lane'];
215
+ wu.nextAction = buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.WAIT, wu.wuId, `Queued behind another launch in lane ${wu.lane}.`, wu.logicalWave);
216
+ continue;
217
+ }
218
+ if (availableCapacity !== null && launchableWuIds.length >= availableCapacity) {
219
+ wu.launchBlockedBy = ['capacity'];
220
+ queuedDueToCapacity.push(wu.wuId);
221
+ wu.nextAction = buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.WAIT, wu.wuId, `Queued until worker capacity frees (remaining capacity: ${availableCapacity}).`, wu.logicalWave);
222
+ continue;
223
+ }
224
+ wu.launchEligible = true;
225
+ wu.nextAction = buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.LAUNCH_WU, wu.wuId, 'Ready to launch.', wu.logicalWave);
226
+ launchableWuIds.push(wu.wuId);
227
+ launchLanes.add(wu.lane);
228
+ }
229
+ const nextSafeActions = sortActions(reconciled
230
+ .map((wu) => wu.nextAction)
231
+ .filter((action) => action !== undefined));
232
+ if (queuedDueToCapacity.length > 0 && availableCapacity === 0) {
233
+ nextSafeActions.push(buildAction(ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.WAIT, undefined, `Worker capacity is exhausted; queued WUs: ${queuedDueToCapacity.join(', ')}`));
234
+ }
235
+ return {
236
+ activeWorkerCount,
237
+ availableCapacity,
238
+ maxActiveWorkers,
239
+ blockedByIntegrity,
240
+ launchableWuIds,
241
+ nextSafeActions: sortActions(nextSafeActions),
242
+ wus: reconciled,
243
+ };
244
+ }
245
+ //# sourceMappingURL=reconciliation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconciliation.js","sourceRoot":"","sources":["../../src/orchestrator/reconciliation.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,10 @@
2
2
  * Wave manifest directory path (gitignored).
3
3
  */
4
4
  export declare const WAVE_MANIFEST_DIR = ".lumenflow/artifacts/waves";
5
+ /**
6
+ * Primary orchestration artifact directory path (gitignored).
7
+ */
8
+ export declare const ORCHESTRATION_ARTIFACT_DIR = ".lumenflow/artifacts/orchestration";
5
9
  /**
6
10
  * Stamps directory path.
7
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/orchestrator/shared.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,UAAU,6BAA6B,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IACtC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,MAAM,EAAE,CAOX"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/orchestrator/shared.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,0BAA0B,uCAAuC,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,UAAU,6BAA6B,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IACtC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,MAAM,EAAE,CAOX"}
@@ -13,6 +13,10 @@ import { join } from 'node:path';
13
13
  * Wave manifest directory path (gitignored).
14
14
  */
15
15
  export const WAVE_MANIFEST_DIR = '.lumenflow/artifacts/waves';
16
+ /**
17
+ * Primary orchestration artifact directory path (gitignored).
18
+ */
19
+ export const ORCHESTRATION_ARTIFACT_DIR = '.lumenflow/artifacts/orchestration';
16
20
  /**
17
21
  * Stamps directory path.
18
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/orchestrator/shared.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IACnD,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAGlC;IACC,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;IAE5C,0BAA0B;IAC1B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/orchestrator/shared.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,oCAAoC,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IACnD,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAGlC;IACC,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;IAE5C,0BAA0B;IAC1B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
@@ -5,7 +5,9 @@
5
5
  *
6
6
  * @module orchestrator/types
7
7
  */
8
+ import { ORCHESTRATION_NEXT_SAFE_ACTION_TYPES, ORCHESTRATION_STATUS_VALUES, type OrchestrationHandoffFormat, type OrchestrationLaunchReceipt, type OrchestrationNextSafeAction, type OrchestrationNextSafeActionType, type OrchestrationStatusValue } from '@lumenflow/control-plane-sdk';
8
9
  import type { WUEntry } from '../initiative-yaml.js';
10
+ export { ORCHESTRATION_NEXT_SAFE_ACTION_TYPES, ORCHESTRATION_STATUS_VALUES, type OrchestrationHandoffFormat, type OrchestrationLaunchReceipt, type OrchestrationNextSafeAction, type OrchestrationNextSafeActionType, type OrchestrationStatusValue, };
9
11
  /**
10
12
  * Options for checkpoint mode resolution.
11
13
  */
@@ -13,6 +15,11 @@ export interface CheckpointOptions {
13
15
  checkpointPerWave?: boolean;
14
16
  noCheckpoint?: boolean;
15
17
  dryRun?: boolean;
18
+ clientName?: string;
19
+ executionEvidence?: WuExecutionEvidence[];
20
+ maxActiveWorkers?: number;
21
+ blockOnIntegrity?: boolean;
22
+ executionSummary?: InitiativeExecutionSummary;
16
23
  }
17
24
  /**
18
25
  * Result of checkpoint mode resolution.
@@ -75,38 +82,125 @@ export interface BottleneckWU {
75
82
  blocksCount: number;
76
83
  }
77
84
  /**
78
- * Wave manifest WU entry.
85
+ * Handoff artifact format. Legacy alias for the SDK's {@link OrchestrationHandoffFormat}.
79
86
  */
80
- export interface WaveManifestWU {
81
- id: string;
82
- lane?: string;
83
- status?: string;
87
+ export type HandoffFormat = OrchestrationHandoffFormat;
88
+ /**
89
+ * Receipt written for each emitted orchestration handoff. Alias of the SDK
90
+ * {@link OrchestrationLaunchReceipt} contract for intra-package readability.
91
+ */
92
+ export type HandoffReceipt = OrchestrationLaunchReceipt;
93
+ /**
94
+ * Durable orchestration artifact bundle for one launch attempt.
95
+ */
96
+ export interface OrchestrationArtifactBundle {
97
+ artifactDir: string;
98
+ planPath: string;
99
+ launchPath: string;
100
+ statusPath: string;
101
+ logicalWaves: number[];
102
+ launchAttempt: number;
103
+ handoffReceipts: OrchestrationLaunchReceipt[];
84
104
  }
85
105
  /**
86
- * Wave manifest structure.
106
+ * Per-WU entry in a checkpoint wave result.
87
107
  */
88
- export interface WaveManifest {
89
- initiative: string;
90
- wave: number;
91
- created_at?: string;
92
- wus: WaveManifestWU[];
93
- lane_validation?: string;
94
- done_criteria?: string;
108
+ export interface CheckpointWaveWU {
109
+ id: string;
110
+ lane?: string;
111
+ status?: string;
112
+ logical_wave?: number;
113
+ handoff_artifact_path?: string;
114
+ handoff_format?: HandoffFormat;
95
115
  }
96
116
  /**
97
117
  * Checkpoint wave result.
98
118
  */
99
- export interface CheckpointWaveResult {
119
+ export interface CheckpointWaveResult extends OrchestrationArtifactBundle {
100
120
  initiative: string;
101
121
  wave: number;
102
- wus: WaveManifestWU[];
122
+ wus: CheckpointWaveWU[];
103
123
  manifestPath: string | null;
104
124
  blockedBy?: string[];
105
125
  waitingMessage?: string;
126
+ availableCapacity?: number | null;
127
+ nextSafeActions?: OrchestrationNextSafeAction[];
128
+ executionSummary?: InitiativeExecutionSummary;
106
129
  dryRun?: boolean;
107
130
  /** WU-2375: Client name for output format selection */
108
131
  clientName?: string;
109
132
  }
133
+ /**
134
+ * Internal alias of the SDK {@link ORCHESTRATION_STATUS_VALUES} constant so existing
135
+ * callsites keep the `ORCHESTRATION_EXECUTION_STATES` name while sharing one vocabulary
136
+ * with the control-plane contract.
137
+ */
138
+ export declare const ORCHESTRATION_EXECUTION_STATES: {
139
+ readonly PLANNED: "planned";
140
+ readonly ELIGIBLE: "eligible";
141
+ readonly HANDOFF_EMITTED: "handoff_emitted";
142
+ readonly CLAIMED: "claimed";
143
+ readonly ACTIVE: "active";
144
+ readonly WORKER_RETURNED: "worker_returned";
145
+ readonly READY_FOR_FINISH: "ready_for_finish";
146
+ readonly AWAITING_MERGE: "awaiting_merge";
147
+ readonly BLOCKED: "blocked";
148
+ readonly CONTAMINATED: "contaminated";
149
+ readonly STALLED: "stalled";
150
+ readonly NEEDS_RELAUNCH: "needs_relaunch";
151
+ readonly DONE: "done";
152
+ };
153
+ export type OrchestrationExecutionState = OrchestrationStatusValue;
154
+ /**
155
+ * Internal alias of the SDK {@link OrchestrationNextSafeActionType}. Use this when a
156
+ * callsite only needs the union of action kinds; import the SDK type directly when
157
+ * constructing an action object.
158
+ */
159
+ export type OrchestrationActionType = OrchestrationNextSafeActionType;
160
+ export interface WuExecutionEvidence {
161
+ wuId: string;
162
+ handoffEmitted?: boolean;
163
+ active?: boolean;
164
+ workerReturned?: boolean;
165
+ stampPresent?: boolean;
166
+ worktreePresent?: boolean;
167
+ logicalWave?: number;
168
+ launchAttempt?: number;
169
+ blockedReason?: string;
170
+ contaminatedPaths?: string[];
171
+ stalled?: boolean;
172
+ readyForFinish?: boolean;
173
+ needsRelaunch?: boolean;
174
+ }
175
+ /**
176
+ * Legacy alias of the SDK {@link OrchestrationNextSafeAction}. Prefer importing the
177
+ * SDK name directly in new code.
178
+ */
179
+ export type OrchestrationNextAction = OrchestrationNextSafeAction;
180
+ export interface ReconciledInitiativeWU {
181
+ wuId: string;
182
+ title: string;
183
+ lane: string;
184
+ yamlStatus: string;
185
+ logicalWave: number;
186
+ launchAttempt?: number;
187
+ state: OrchestrationStatusValue;
188
+ reason: string;
189
+ dependencies: string[];
190
+ launchBlockedBy: string[];
191
+ launchEligible: boolean;
192
+ nextAction?: OrchestrationNextSafeAction;
193
+ evidence: WuExecutionEvidence;
194
+ }
195
+ export interface InitiativeExecutionSummary {
196
+ activeWorkerCount: number;
197
+ availableCapacity: number | null;
198
+ maxActiveWorkers: number | null;
199
+ blockedByIntegrity: boolean;
200
+ launchableWuIds: string[];
201
+ nextSafeActions: OrchestrationNextSafeAction[];
202
+ wus: ReconciledInitiativeWU[];
203
+ }
110
204
  /**
111
205
  * Dependency filter result.
112
206
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/orchestrator/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/orchestrator/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,18 @@
1
1
  // Copyright (c) 2026 Hellmai Ltd
2
2
  // SPDX-License-Identifier: AGPL-3.0-only
3
- export {};
3
+ /**
4
+ * Type definitions for initiative orchestration.
5
+ *
6
+ * All shared interfaces and types used across orchestration domain modules.
7
+ *
8
+ * @module orchestrator/types
9
+ */
10
+ import { ORCHESTRATION_NEXT_SAFE_ACTION_TYPES, ORCHESTRATION_STATUS_VALUES, } from '@lumenflow/control-plane-sdk';
11
+ export { ORCHESTRATION_NEXT_SAFE_ACTION_TYPES, ORCHESTRATION_STATUS_VALUES, };
12
+ /**
13
+ * Internal alias of the SDK {@link ORCHESTRATION_STATUS_VALUES} constant so existing
14
+ * callsites keep the `ORCHESTRATION_EXECUTION_STATES` name while sharing one vocabulary
15
+ * with the control-plane contract.
16
+ */
17
+ export const ORCHESTRATION_EXECUTION_STATES = ORCHESTRATION_STATUS_VALUES;
4
18
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/orchestrator/types.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/orchestrator/types.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;GAMG;AAEH,OAAO,EACL,oCAAoC,EACpC,2BAA2B,GAM5B,MAAM,8BAA8B,CAAC;AAItC,OAAO,EACL,oCAAoC,EACpC,2BAA2B,GAM5B,CAAC;AAyIF;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,2BAA2B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumenflow/initiatives",
3
- "version": "4.21.0",
3
+ "version": "4.23.0",
4
4
  "description": "Initiative tracking for LumenFlow workflow framework - multi-phase project coordination",
5
5
  "keywords": [
6
6
  "lumenflow",
@@ -40,7 +40,8 @@
40
40
  ],
41
41
  "dependencies": {
42
42
  "zod": "^4.3.6",
43
- "@lumenflow/core": "4.21.0"
43
+ "@lumenflow/control-plane-sdk": "4.23.0",
44
+ "@lumenflow/core": "4.23.0"
44
45
  },
45
46
  "devDependencies": {
46
47
  "@vitest/coverage-v8": "^4.0.18",