@lumenflow/control-plane-sdk 4.20.2 → 4.22.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.
package/README.md CHANGED
@@ -7,6 +7,63 @@ Control plane sync contracts and adapters for LumenFlow runtime.
7
7
  - HTTP transport for control plane synchronization
8
8
  - Policy sync, approval flows, and evidence upload contracts
9
9
  - Adapter interfaces for custom control plane implementations
10
+ - Machine-readable orchestration plan / launch / status contracts shared by local CLI and `lumenflow.cloud`
11
+
12
+ ## Orchestration State Contract
13
+
14
+ The SDK publishes a transport-friendly orchestration contract so humans, local
15
+ agents, and hosted control-plane launchers can exchange the same initiative
16
+ state without vendor-specific prompt parsing.
17
+
18
+ The contract is deliberately split into three documents:
19
+
20
+ - `OrchestrationPlanDocument`
21
+ Dependency-driven logical waves for an initiative.
22
+ - `OrchestrationLaunchDocument`
23
+ Launch receipts for a specific `launch_attempt`.
24
+ - `OrchestrationStatusDocument`
25
+ Reconciled live execution state, including `next_safe_actions`.
26
+
27
+ Key fields:
28
+
29
+ - `logical_wave`
30
+ The dependency-graph wave for a WU or wave group.
31
+ - `launch_attempt`
32
+ The specific orchestration attempt that wrote launch artifacts.
33
+ - `orchestration_state`
34
+ Shared execution state such as `eligible`, `active`, `worker_returned`,
35
+ `ready_for_finish`, `awaiting_merge`, `contaminated`, and `done`.
36
+ - `claimed_mode`
37
+ Distinguishes local `worktree` execution from `branch-pr` / cloud execution.
38
+
39
+ The status contract is rich enough to represent:
40
+
41
+ - local worktree execution and completion
42
+ - branch-pr / cloud `awaiting_merge` state
43
+ - explicit blockers and contamination paths
44
+ - capacity-driven queuing via `queued_by_capacity`
45
+ - orchestrator next steps via `next_safe_actions`
46
+
47
+ ## Parsing and Normalization
48
+
49
+ Use the parser helpers when reading JSON from local artifacts or cloud APIs:
50
+
51
+ ```ts
52
+ import {
53
+ parseOrchestrationLaunchDocument,
54
+ parseOrchestrationPlanDocument,
55
+ parseOrchestrationStatusDocument,
56
+ } from '@lumenflow/control-plane-sdk';
57
+
58
+ const plan = parseOrchestrationPlanDocument(rawPlanJson);
59
+ const launch = parseOrchestrationLaunchDocument(rawLaunchJson);
60
+ const status = parseOrchestrationStatusDocument(rawStatusJson);
61
+ ```
62
+
63
+ The parsers preserve backward compatibility with older payloads that still omit
64
+ optional orchestration fields. For example, legacy `ready` status values are
65
+ normalized to the shared `eligible` state, and omitted `logical_waves`,
66
+ capacity values, or `next_safe_actions` are derived or defaulted safely.
10
67
 
11
68
  ## License
12
69
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './sync-port.js';
2
+ export * from './orchestration-state.js';
2
3
  export * from './signal-sync-port.js';
3
4
  export * from './workspace-config.js';
4
5
  export * from './policy-mode.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) 2026 Hellmai Ltd
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  export * from './sync-port.js';
4
+ export * from './orchestration-state.js';
4
5
  export * from './signal-sync-port.js';
5
6
  export * from './workspace-config.js';
6
7
  export * from './policy-mode.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC;AAEtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC;AAEtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC"}
@@ -0,0 +1,113 @@
1
+ export declare const ORCHESTRATION_STATUS_VALUES: {
2
+ readonly PLANNED: "planned";
3
+ readonly ELIGIBLE: "eligible";
4
+ readonly HANDOFF_EMITTED: "handoff_emitted";
5
+ readonly CLAIMED: "claimed";
6
+ readonly ACTIVE: "active";
7
+ readonly WORKER_RETURNED: "worker_returned";
8
+ readonly READY_FOR_FINISH: "ready_for_finish";
9
+ readonly AWAITING_MERGE: "awaiting_merge";
10
+ readonly BLOCKED: "blocked";
11
+ readonly CONTAMINATED: "contaminated";
12
+ readonly STALLED: "stalled";
13
+ readonly NEEDS_RELAUNCH: "needs_relaunch";
14
+ readonly DONE: "done";
15
+ };
16
+ export declare const ORCHESTRATION_STATUS_VALUE_LIST: readonly ["planned", "eligible", "handoff_emitted", "claimed", "active", "worker_returned", "ready_for_finish", "awaiting_merge", "blocked", "contaminated", "stalled", "needs_relaunch", "done"];
17
+ export type OrchestrationStatusValue = (typeof ORCHESTRATION_STATUS_VALUE_LIST)[number];
18
+ export declare const ORCHESTRATION_CLAIM_MODES: {
19
+ readonly WORKTREE: "worktree";
20
+ readonly BRANCH_PR: "branch-pr";
21
+ };
22
+ export declare const ORCHESTRATION_CLAIM_MODE_LIST: readonly ["worktree", "branch-pr"];
23
+ export type OrchestrationClaimMode = (typeof ORCHESTRATION_CLAIM_MODE_LIST)[number];
24
+ export declare const ORCHESTRATION_HANDOFF_FORMATS: {
25
+ readonly XML: "xml";
26
+ readonly MARKDOWN: "markdown";
27
+ };
28
+ export declare const ORCHESTRATION_HANDOFF_FORMAT_LIST: readonly ["xml", "markdown"];
29
+ export type OrchestrationHandoffFormat = (typeof ORCHESTRATION_HANDOFF_FORMAT_LIST)[number];
30
+ export declare const ORCHESTRATION_NEXT_SAFE_ACTION_TYPES: {
31
+ readonly LAUNCH_WU: "launch_wu";
32
+ readonly FINISH_WU: "finish_wu";
33
+ readonly RECOVER_WU: "recover_wu";
34
+ readonly RELAUNCH_WU: "relaunch_wu";
35
+ readonly WAIT: "wait";
36
+ };
37
+ export declare const ORCHESTRATION_NEXT_SAFE_ACTION_TYPE_LIST: readonly ["launch_wu", "finish_wu", "recover_wu", "relaunch_wu", "wait"];
38
+ export type OrchestrationNextSafeActionType = (typeof ORCHESTRATION_NEXT_SAFE_ACTION_TYPE_LIST)[number];
39
+ export interface OrchestrationPlanWu {
40
+ id: string;
41
+ lane?: string;
42
+ logical_wave?: number;
43
+ }
44
+ export interface OrchestrationPlanWave {
45
+ planned_wave?: number;
46
+ logical_wave?: number;
47
+ logical_waves: number[];
48
+ wus: OrchestrationPlanWu[];
49
+ }
50
+ export interface OrchestrationPlanDocument {
51
+ initiative: string;
52
+ created_at?: string;
53
+ launch_attempt?: number;
54
+ logical_waves: number[];
55
+ waves: OrchestrationPlanWave[];
56
+ }
57
+ export interface OrchestrationLaunchReceipt {
58
+ wu_id: string;
59
+ lane?: string;
60
+ logical_wave?: number;
61
+ launch_attempt?: number;
62
+ claimed_mode?: OrchestrationClaimMode;
63
+ branch?: string;
64
+ worktree_path?: string;
65
+ handoff_artifact_path?: string;
66
+ handoff_format?: OrchestrationHandoffFormat;
67
+ orchestration_state: OrchestrationStatusValue;
68
+ emitted_at?: string;
69
+ }
70
+ export interface OrchestrationLaunchDocument {
71
+ initiative: string;
72
+ created_at?: string;
73
+ launch_attempt?: number;
74
+ logical_waves: number[];
75
+ handoffs: OrchestrationLaunchReceipt[];
76
+ }
77
+ export interface OrchestrationNextSafeAction {
78
+ type: OrchestrationNextSafeActionType;
79
+ wu_id?: string;
80
+ reason: string;
81
+ logical_wave?: number;
82
+ }
83
+ export interface OrchestrationStatusWu {
84
+ wu_id: string;
85
+ lane?: string;
86
+ logical_wave?: number;
87
+ launch_attempt?: number;
88
+ orchestration_state: OrchestrationStatusValue;
89
+ yaml_status?: string;
90
+ claimed_mode?: OrchestrationClaimMode;
91
+ branch?: string;
92
+ worktree_path?: string;
93
+ blocked_reason?: string;
94
+ contamination_paths: string[];
95
+ queued_by_capacity: boolean;
96
+ }
97
+ export interface OrchestrationStatusDocument {
98
+ initiative: string;
99
+ created_at?: string;
100
+ launch_attempt?: number;
101
+ logical_waves: number[];
102
+ actual_launch_confirmed: boolean;
103
+ treat_handoff_as_completed: boolean;
104
+ available_capacity: number | null;
105
+ max_active_workers: number | null;
106
+ blocked_by_integrity: boolean;
107
+ next_safe_actions: OrchestrationNextSafeAction[];
108
+ wus: OrchestrationStatusWu[];
109
+ }
110
+ export declare function parseOrchestrationPlanDocument(input: unknown): OrchestrationPlanDocument;
111
+ export declare function parseOrchestrationLaunchDocument(input: unknown): OrchestrationLaunchDocument;
112
+ export declare function parseOrchestrationStatusDocument(input: unknown): OrchestrationStatusDocument;
113
+ //# sourceMappingURL=orchestration-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration-state.d.ts","sourceRoot":"","sources":["../src/orchestration-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,310 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ const LEGACY_READY_STATE = 'ready';
4
+ export const ORCHESTRATION_STATUS_VALUES = {
5
+ PLANNED: 'planned',
6
+ ELIGIBLE: 'eligible',
7
+ HANDOFF_EMITTED: 'handoff_emitted',
8
+ CLAIMED: 'claimed',
9
+ ACTIVE: 'active',
10
+ WORKER_RETURNED: 'worker_returned',
11
+ READY_FOR_FINISH: 'ready_for_finish',
12
+ AWAITING_MERGE: 'awaiting_merge',
13
+ BLOCKED: 'blocked',
14
+ CONTAMINATED: 'contaminated',
15
+ STALLED: 'stalled',
16
+ NEEDS_RELAUNCH: 'needs_relaunch',
17
+ DONE: 'done',
18
+ };
19
+ export const ORCHESTRATION_STATUS_VALUE_LIST = [
20
+ ORCHESTRATION_STATUS_VALUES.PLANNED,
21
+ ORCHESTRATION_STATUS_VALUES.ELIGIBLE,
22
+ ORCHESTRATION_STATUS_VALUES.HANDOFF_EMITTED,
23
+ ORCHESTRATION_STATUS_VALUES.CLAIMED,
24
+ ORCHESTRATION_STATUS_VALUES.ACTIVE,
25
+ ORCHESTRATION_STATUS_VALUES.WORKER_RETURNED,
26
+ ORCHESTRATION_STATUS_VALUES.READY_FOR_FINISH,
27
+ ORCHESTRATION_STATUS_VALUES.AWAITING_MERGE,
28
+ ORCHESTRATION_STATUS_VALUES.BLOCKED,
29
+ ORCHESTRATION_STATUS_VALUES.CONTAMINATED,
30
+ ORCHESTRATION_STATUS_VALUES.STALLED,
31
+ ORCHESTRATION_STATUS_VALUES.NEEDS_RELAUNCH,
32
+ ORCHESTRATION_STATUS_VALUES.DONE,
33
+ ];
34
+ export const ORCHESTRATION_CLAIM_MODES = {
35
+ WORKTREE: 'worktree',
36
+ BRANCH_PR: 'branch-pr',
37
+ };
38
+ export const ORCHESTRATION_CLAIM_MODE_LIST = [
39
+ ORCHESTRATION_CLAIM_MODES.WORKTREE,
40
+ ORCHESTRATION_CLAIM_MODES.BRANCH_PR,
41
+ ];
42
+ export const ORCHESTRATION_HANDOFF_FORMATS = {
43
+ XML: 'xml',
44
+ MARKDOWN: 'markdown',
45
+ };
46
+ export const ORCHESTRATION_HANDOFF_FORMAT_LIST = [
47
+ ORCHESTRATION_HANDOFF_FORMATS.XML,
48
+ ORCHESTRATION_HANDOFF_FORMATS.MARKDOWN,
49
+ ];
50
+ export const ORCHESTRATION_NEXT_SAFE_ACTION_TYPES = {
51
+ LAUNCH_WU: 'launch_wu',
52
+ FINISH_WU: 'finish_wu',
53
+ RECOVER_WU: 'recover_wu',
54
+ RELAUNCH_WU: 'relaunch_wu',
55
+ WAIT: 'wait',
56
+ };
57
+ export const ORCHESTRATION_NEXT_SAFE_ACTION_TYPE_LIST = [
58
+ ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.LAUNCH_WU,
59
+ ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.FINISH_WU,
60
+ ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.RECOVER_WU,
61
+ ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.RELAUNCH_WU,
62
+ ORCHESTRATION_NEXT_SAFE_ACTION_TYPES.WAIT,
63
+ ];
64
+ function isObject(input) {
65
+ return typeof input === 'object' && input !== null;
66
+ }
67
+ function asNonEmptyString(value, field) {
68
+ if (typeof value !== 'string' || value.trim().length === 0) {
69
+ throw new Error(`Invalid ${field}: expected a non-empty string`);
70
+ }
71
+ return value;
72
+ }
73
+ function asOptionalString(value, field) {
74
+ if (value === undefined) {
75
+ return undefined;
76
+ }
77
+ return asNonEmptyString(value, field);
78
+ }
79
+ function asOptionalBoolean(value) {
80
+ return typeof value === 'boolean' ? value : undefined;
81
+ }
82
+ function asOptionalInteger(value, field) {
83
+ if (value === undefined) {
84
+ return undefined;
85
+ }
86
+ if (typeof value !== 'number' || !Number.isInteger(value)) {
87
+ throw new Error(`Invalid ${field}: expected an integer`);
88
+ }
89
+ return value;
90
+ }
91
+ function asNullableFiniteNumber(value, field) {
92
+ if (value === undefined || value === null) {
93
+ return null;
94
+ }
95
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
96
+ throw new Error(`Invalid ${field}: expected a finite number or null`);
97
+ }
98
+ return value;
99
+ }
100
+ function asStringArray(value, field) {
101
+ if (value === undefined) {
102
+ return [];
103
+ }
104
+ if (!Array.isArray(value)) {
105
+ throw new Error(`Invalid ${field}: expected an array`);
106
+ }
107
+ return value.map((entry, index) => asNonEmptyString(entry, `${field}[${index}]`));
108
+ }
109
+ function uniqueSortedWaves(values) {
110
+ return Array.from(new Set(values)).sort((left, right) => left - right);
111
+ }
112
+ function parseClaimMode(value, field) {
113
+ if (value === undefined) {
114
+ return undefined;
115
+ }
116
+ if (typeof value === 'string' &&
117
+ ORCHESTRATION_CLAIM_MODE_LIST.includes(value)) {
118
+ return value;
119
+ }
120
+ throw new Error(`Invalid ${field}: expected a supported claimed mode`);
121
+ }
122
+ function parseHandoffFormat(value, field) {
123
+ if (value === undefined) {
124
+ return undefined;
125
+ }
126
+ if (typeof value === 'string' &&
127
+ ORCHESTRATION_HANDOFF_FORMAT_LIST.includes(value)) {
128
+ return value;
129
+ }
130
+ throw new Error(`Invalid ${field}: expected a supported handoff format`);
131
+ }
132
+ function normalizeStatusValue(value, field) {
133
+ if (value === undefined) {
134
+ return ORCHESTRATION_STATUS_VALUES.ELIGIBLE;
135
+ }
136
+ if (value === LEGACY_READY_STATE) {
137
+ return ORCHESTRATION_STATUS_VALUES.ELIGIBLE;
138
+ }
139
+ if (typeof value === 'string' &&
140
+ ORCHESTRATION_STATUS_VALUE_LIST.includes(value)) {
141
+ return value;
142
+ }
143
+ throw new Error(`Invalid ${field}: expected a supported orchestration state`);
144
+ }
145
+ function parseNextSafeAction(input, field) {
146
+ if (!isObject(input)) {
147
+ throw new Error(`Invalid ${field}: expected an object`);
148
+ }
149
+ const rawType = input.type;
150
+ if (typeof rawType !== 'string' ||
151
+ !ORCHESTRATION_NEXT_SAFE_ACTION_TYPE_LIST.includes(rawType)) {
152
+ throw new Error(`${field}.type must be a supported next-safe-action type`);
153
+ }
154
+ return {
155
+ type: rawType,
156
+ wu_id: asOptionalString(input.wu_id, `${field}.wu_id`),
157
+ reason: asNonEmptyString(input.reason, `${field}.reason`),
158
+ logical_wave: asOptionalInteger(input.logical_wave, `${field}.logical_wave`),
159
+ };
160
+ }
161
+ function parsePlanWu(input, field) {
162
+ if (!isObject(input)) {
163
+ throw new Error(`Invalid ${field}: expected an object`);
164
+ }
165
+ return {
166
+ id: asNonEmptyString(input.id, `${field}.id`),
167
+ lane: asOptionalString(input.lane, `${field}.lane`),
168
+ logical_wave: asOptionalInteger(input.logical_wave, `${field}.logical_wave`),
169
+ };
170
+ }
171
+ function parsePlanWave(input, field) {
172
+ if (!isObject(input)) {
173
+ throw new Error(`Invalid ${field}: expected an object`);
174
+ }
175
+ if (!Array.isArray(input.wus)) {
176
+ throw new Error(`Invalid ${field}.wus: expected an array`);
177
+ }
178
+ const wus = input.wus.map((entry, index) => parsePlanWu(entry, `${field}.wus[${index}]`));
179
+ const logicalWave = asOptionalInteger(input.logical_wave, `${field}.logical_wave`);
180
+ const logicalWaves = Array.isArray(input.logical_waves)
181
+ ? input.logical_waves.map((entry, index) => asOptionalInteger(entry, `${field}.logical_waves[${index}]`))
182
+ : undefined;
183
+ const derivedLogicalWaves = uniqueSortedWaves([
184
+ ...(logicalWaves?.filter((entry) => entry !== undefined) ?? []),
185
+ ...(logicalWave === undefined ? [] : [logicalWave]),
186
+ ...wus
187
+ .map((entry) => entry.logical_wave)
188
+ .filter((entry) => entry !== undefined),
189
+ ]);
190
+ return {
191
+ planned_wave: asOptionalInteger(input.planned_wave, `${field}.planned_wave`),
192
+ logical_wave: logicalWave,
193
+ logical_waves: derivedLogicalWaves,
194
+ wus,
195
+ };
196
+ }
197
+ function parseLaunchReceipt(input, field) {
198
+ if (!isObject(input)) {
199
+ throw new Error(`Invalid ${field}: expected an object`);
200
+ }
201
+ return {
202
+ wu_id: asNonEmptyString(input.wu_id, `${field}.wu_id`),
203
+ lane: asOptionalString(input.lane, `${field}.lane`),
204
+ logical_wave: asOptionalInteger(input.logical_wave, `${field}.logical_wave`),
205
+ launch_attempt: asOptionalInteger(input.launch_attempt, `${field}.launch_attempt`),
206
+ claimed_mode: parseClaimMode(input.claimed_mode, `${field}.claimed_mode`),
207
+ branch: asOptionalString(input.branch, `${field}.branch`),
208
+ worktree_path: asOptionalString(input.worktree_path, `${field}.worktree_path`),
209
+ handoff_artifact_path: asOptionalString(input.handoff_artifact_path, `${field}.handoff_artifact_path`),
210
+ handoff_format: parseHandoffFormat(input.handoff_format, `${field}.handoff_format`),
211
+ orchestration_state: normalizeStatusValue(input.orchestration_state ?? ORCHESTRATION_STATUS_VALUES.HANDOFF_EMITTED, `${field}.orchestration_state`),
212
+ emitted_at: asOptionalString(input.emitted_at, `${field}.emitted_at`),
213
+ };
214
+ }
215
+ function parseStatusWu(input, field) {
216
+ if (!isObject(input)) {
217
+ throw new Error(`Invalid ${field}: expected an object`);
218
+ }
219
+ return {
220
+ wu_id: asNonEmptyString(input.wu_id, `${field}.wu_id`),
221
+ lane: asOptionalString(input.lane, `${field}.lane`),
222
+ logical_wave: asOptionalInteger(input.logical_wave, `${field}.logical_wave`),
223
+ launch_attempt: asOptionalInteger(input.launch_attempt, `${field}.launch_attempt`),
224
+ orchestration_state: normalizeStatusValue(input.orchestration_state, `${field}.orchestration_state`),
225
+ yaml_status: asOptionalString(input.yaml_status, `${field}.yaml_status`),
226
+ claimed_mode: parseClaimMode(input.claimed_mode, `${field}.claimed_mode`),
227
+ branch: asOptionalString(input.branch, `${field}.branch`),
228
+ worktree_path: asOptionalString(input.worktree_path, `${field}.worktree_path`),
229
+ blocked_reason: asOptionalString(input.blocked_reason, `${field}.blocked_reason`),
230
+ contamination_paths: asStringArray(input.contamination_paths, `${field}.contamination_paths`),
231
+ queued_by_capacity: asOptionalBoolean(input.queued_by_capacity) ?? false,
232
+ };
233
+ }
234
+ export function parseOrchestrationPlanDocument(input) {
235
+ if (!isObject(input)) {
236
+ throw new Error('Invalid orchestration plan: expected an object');
237
+ }
238
+ if (!Array.isArray(input.waves)) {
239
+ throw new Error('Invalid orchestration plan.waves: expected an array');
240
+ }
241
+ const waves = input.waves.map((entry, index) => parsePlanWave(entry, `orchestration plan.waves[${index}]`));
242
+ const logicalWaves = Array.isArray(input.logical_waves)
243
+ ? uniqueSortedWaves(input.logical_waves
244
+ .map((entry, index) => asOptionalInteger(entry, `orchestration plan.logical_waves[${index}]`))
245
+ .filter((entry) => entry !== undefined))
246
+ : uniqueSortedWaves(waves.flatMap((wave) => wave.logical_waves));
247
+ return {
248
+ initiative: asNonEmptyString(input.initiative, 'orchestration plan.initiative'),
249
+ created_at: asOptionalString(input.created_at, 'orchestration plan.created_at'),
250
+ launch_attempt: asOptionalInteger(input.launch_attempt, 'orchestration plan.launch_attempt'),
251
+ logical_waves: logicalWaves,
252
+ waves,
253
+ };
254
+ }
255
+ export function parseOrchestrationLaunchDocument(input) {
256
+ if (!isObject(input)) {
257
+ throw new Error('Invalid orchestration launch: expected an object');
258
+ }
259
+ if (!Array.isArray(input.handoffs)) {
260
+ throw new Error('Invalid orchestration launch.handoffs: expected an array');
261
+ }
262
+ const handoffs = input.handoffs.map((entry, index) => parseLaunchReceipt(entry, `orchestration launch.handoffs[${index}]`));
263
+ const logicalWaves = Array.isArray(input.logical_waves)
264
+ ? uniqueSortedWaves(input.logical_waves
265
+ .map((entry, index) => asOptionalInteger(entry, `orchestration launch.logical_waves[${index}]`))
266
+ .filter((entry) => entry !== undefined))
267
+ : uniqueSortedWaves(handoffs
268
+ .map((entry) => entry.logical_wave)
269
+ .filter((entry) => entry !== undefined));
270
+ return {
271
+ initiative: asNonEmptyString(input.initiative, 'orchestration launch.initiative'),
272
+ created_at: asOptionalString(input.created_at, 'orchestration launch.created_at'),
273
+ launch_attempt: asOptionalInteger(input.launch_attempt, 'orchestration launch.launch_attempt'),
274
+ logical_waves: logicalWaves,
275
+ handoffs,
276
+ };
277
+ }
278
+ export function parseOrchestrationStatusDocument(input) {
279
+ if (!isObject(input)) {
280
+ throw new Error('Invalid orchestration status: expected an object');
281
+ }
282
+ if (!Array.isArray(input.wus)) {
283
+ throw new Error('Invalid orchestration status.wus: expected an array');
284
+ }
285
+ const wus = input.wus.map((entry, index) => parseStatusWu(entry, `orchestration status.wus[${index}]`));
286
+ const logicalWaves = Array.isArray(input.logical_waves)
287
+ ? uniqueSortedWaves(input.logical_waves
288
+ .map((entry, index) => asOptionalInteger(entry, `orchestration status.logical_waves[${index}]`))
289
+ .filter((entry) => entry !== undefined))
290
+ : uniqueSortedWaves(wus
291
+ .map((entry) => entry.logical_wave)
292
+ .filter((entry) => entry !== undefined));
293
+ const nextSafeActions = Array.isArray(input.next_safe_actions)
294
+ ? input.next_safe_actions.map((entry, index) => parseNextSafeAction(entry, `orchestration status.next_safe_actions[${index}]`))
295
+ : [];
296
+ return {
297
+ initiative: asNonEmptyString(input.initiative, 'orchestration status.initiative'),
298
+ created_at: asOptionalString(input.created_at, 'orchestration status.created_at'),
299
+ launch_attempt: asOptionalInteger(input.launch_attempt, 'orchestration status.launch_attempt'),
300
+ logical_waves: logicalWaves,
301
+ actual_launch_confirmed: asOptionalBoolean(input.actual_launch_confirmed) ?? false,
302
+ treat_handoff_as_completed: asOptionalBoolean(input.treat_handoff_as_completed) ?? false,
303
+ available_capacity: asNullableFiniteNumber(input.available_capacity, 'orchestration status.available_capacity'),
304
+ max_active_workers: asNullableFiniteNumber(input.max_active_workers, 'orchestration status.max_active_workers'),
305
+ blocked_by_integrity: asOptionalBoolean(input.blocked_by_integrity) ?? false,
306
+ next_safe_actions: nextSafeActions,
307
+ wus,
308
+ };
309
+ }
310
+ //# sourceMappingURL=orchestration-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration-state.js","sourceRoot":"","sources":["../src/orchestration-state.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumenflow/control-plane-sdk",
3
- "version": "4.20.2",
3
+ "version": "4.22.0",
4
4
  "description": "Control plane sync contracts and adapters for LumenFlow runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",