gm-orchestrator 0.6.1 → 0.8.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 +62 -0
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/scheduler.d.ts +14 -0
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +63 -7
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/types.d.ts +68 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/infra/config.d.ts +5 -1
- package/dist/infra/config.d.ts.map +1 -1
- package/dist/infra/config.js +117 -0
- package/dist/infra/config.js.map +1 -1
- package/dist/server/api.d.ts +11 -1
- package/dist/server/api.d.ts.map +1 -1
- package/dist/server/api.js +105 -0
- package/dist/server/api.js.map +1 -1
- package/dist/server/runner-service.d.ts +1 -0
- package/dist/server/runner-service.d.ts.map +1 -1
- package/dist/server/runner-service.js +233 -3
- package/dist/server/runner-service.js.map +1 -1
- package/dist/ui/assets/index-D2bd6mm5.js +430 -0
- package/dist/ui/assets/index-DlfnzYok.css +1 -0
- package/dist/ui/index.html +2 -2
- package/package.json +1 -1
- package/dist/ui/assets/index-75Yf1i1n.js +0 -415
- package/dist/ui/assets/index-Bi1PSqET.css +0 -1
package/README.md
CHANGED
|
@@ -200,6 +200,68 @@ Resolved in order — later sources override earlier:
|
|
|
200
200
|
|
|
201
201
|
---
|
|
202
202
|
|
|
203
|
+
## Pipelines (cross-project orchestration)
|
|
204
|
+
|
|
205
|
+
Pipelines orchestrate epics across multiple projects with dependency ordering. A pipeline is a DAG of stages — each stage runs an epic in a specific project, and declares `after` dependencies on other stages. Independent stages run in parallel.
|
|
206
|
+
|
|
207
|
+
### Configuration
|
|
208
|
+
|
|
209
|
+
Add a `pipelines` array to `.gm-orchestrator.json`:
|
|
210
|
+
|
|
211
|
+
```json
|
|
212
|
+
{
|
|
213
|
+
"projects": [
|
|
214
|
+
{ "baseUrl": "http://localhost:3000", "projectId": "backend-api" },
|
|
215
|
+
{ "baseUrl": "http://localhost:3000", "projectId": "frontend-app" },
|
|
216
|
+
{ "baseUrl": "http://localhost:3000", "projectId": "e2e-tests" }
|
|
217
|
+
],
|
|
218
|
+
"pipelines": [
|
|
219
|
+
{
|
|
220
|
+
"id": "full-stack-release",
|
|
221
|
+
"name": "Full-stack release",
|
|
222
|
+
"stages": [
|
|
223
|
+
{ "id": "backend", "projectId": "backend-api", "epicId": "api-v2" },
|
|
224
|
+
{ "id": "frontend", "projectId": "frontend-app", "epicId": "ui-update", "after": ["backend"] },
|
|
225
|
+
{ "id": "e2e", "projectId": "e2e-tests", "epicId": "smoke-tests", "after": ["backend", "frontend"] }
|
|
226
|
+
]
|
|
227
|
+
}
|
|
228
|
+
]
|
|
229
|
+
}
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
In this example:
|
|
233
|
+
- **backend** runs first (no dependencies)
|
|
234
|
+
- **frontend** waits for backend to complete
|
|
235
|
+
- **e2e** waits for both backend and frontend
|
|
236
|
+
|
|
237
|
+
### API
|
|
238
|
+
|
|
239
|
+
| Endpoint | Method | Description |
|
|
240
|
+
|----------|--------|-------------|
|
|
241
|
+
| `/api/pipelines` | GET | List configured pipelines |
|
|
242
|
+
| `/api/pipelines/run` | POST | Start a pipeline run (`{ pipelineId }`) |
|
|
243
|
+
| `/api/pipelines/run/status` | GET | Pipeline run state (stages + statuses) |
|
|
244
|
+
| `/api/pipelines/run/stop` | POST | Stop a pipeline run (`{ pipelineRunId }`) |
|
|
245
|
+
|
|
246
|
+
### UI
|
|
247
|
+
|
|
248
|
+
Pipelines appear on the Dashboard above the project cards. Each pipeline card shows:
|
|
249
|
+
- Stage count and dependency visualization
|
|
250
|
+
- **Run** button to start the pipeline
|
|
251
|
+
- Live stage status (queued / running / done / failed) when a run is active
|
|
252
|
+
|
|
253
|
+
On the Runs page, pipeline runs appear as grouped entries with a progress bar showing stages done / total.
|
|
254
|
+
|
|
255
|
+
### Validation
|
|
256
|
+
|
|
257
|
+
Pipeline configs are validated on load:
|
|
258
|
+
- Stage IDs must be unique within a pipeline
|
|
259
|
+
- `after` references must point to existing stage IDs
|
|
260
|
+
- No cycles allowed (DAG validation via topological sort)
|
|
261
|
+
- Each stage must have `projectId` and `epicId`
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
203
265
|
## CLI (advanced)
|
|
204
266
|
|
|
205
267
|
The browser UI is the primary interface. CLI commands are available for scripting and CI.
|
package/dist/cli/index.js
CHANGED
|
@@ -173,6 +173,7 @@ async function main() {
|
|
|
173
173
|
wsBus: { broadcast(e) { wsBusHolder.current.broadcast(e); }, get clientCount() { return wsBusHolder.current.clientCount; }, close() { return wsBusHolder.current.close(); } },
|
|
174
174
|
resolveGm: (projectId) => gmPool.has(projectId) ? gmPool.getClient(projectId) : gmClient,
|
|
175
175
|
resolvePoller: (projectId) => new TaskPoller(gmPool.has(projectId) ? gmPool.getClient(projectId) : gmClient),
|
|
176
|
+
saveConfig: (partial) => saveConfig(partial),
|
|
176
177
|
});
|
|
177
178
|
const apiRouter = createApiRouter({
|
|
178
179
|
config,
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/scheduler.d.ts
CHANGED
|
@@ -10,6 +10,12 @@ export interface RunRequest {
|
|
|
10
10
|
tag?: string | undefined;
|
|
11
11
|
priority: number;
|
|
12
12
|
enqueuedAt: number;
|
|
13
|
+
/** Pipeline run ID — groups related stage requests. */
|
|
14
|
+
pipelineRunId?: string | undefined;
|
|
15
|
+
/** Stage ID within the pipeline — used for dependency resolution. */
|
|
16
|
+
stageId?: string | undefined;
|
|
17
|
+
/** Stage IDs that must complete before this request can be picked. */
|
|
18
|
+
afterStages?: string[] | undefined;
|
|
13
19
|
}
|
|
14
20
|
export type SlotStatus = 'idle' | 'running' | 'stopping';
|
|
15
21
|
export interface RunSlot {
|
|
@@ -45,6 +51,10 @@ export interface Scheduler {
|
|
|
45
51
|
start(): void;
|
|
46
52
|
/** Stop all running slots and drain the queue. */
|
|
47
53
|
stop(): Promise<void>;
|
|
54
|
+
/** Pause: stop picking new requests from the queue but let running tasks finish. */
|
|
55
|
+
pause(): void;
|
|
56
|
+
/** Resume after pause: start picking from the queue again. */
|
|
57
|
+
resume(): void;
|
|
48
58
|
/** Cancel a specific queued request (not yet running). Returns true if removed. */
|
|
49
59
|
cancel(requestId: string): boolean;
|
|
50
60
|
/** Stop a specific project's running slot and remove its queued requests. */
|
|
@@ -55,8 +65,12 @@ export interface Scheduler {
|
|
|
55
65
|
readonly slots: ReadonlyArray<Readonly<RunSlot>>;
|
|
56
66
|
/** True if any slot is running or queue is non-empty. */
|
|
57
67
|
readonly isActive: boolean;
|
|
68
|
+
/** True if the scheduler is paused (running tasks continue, queue is frozen). */
|
|
69
|
+
readonly isPaused: boolean;
|
|
58
70
|
/** Get aggregate stats across all completed runs. */
|
|
59
71
|
readonly aggregateStats: SprintStats;
|
|
72
|
+
/** Get completed stages per pipeline run (for dependency tracking). */
|
|
73
|
+
readonly completedStages: ReadonlyMap<string, ReadonlySet<string>>;
|
|
60
74
|
}
|
|
61
75
|
export declare function createScheduler(config: OrchestratorConfig, ports: SchedulerPorts, events?: SchedulerEvents): Scheduler;
|
|
62
76
|
//# sourceMappingURL=scheduler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/core/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,IAAI,EAEJ,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAIjD,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,UAAU,CAAC;AAE3D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/core/scheduler.ts"],"names":[],"mappings":"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"}
|
package/dist/core/scheduler.js
CHANGED
|
@@ -33,9 +33,12 @@ export function createScheduler(config, ports, events = {}) {
|
|
|
33
33
|
recentLines: [],
|
|
34
34
|
}));
|
|
35
35
|
let running = false;
|
|
36
|
+
let paused = false;
|
|
36
37
|
let totalStats = createEmptyStats();
|
|
37
38
|
// Track which projects have active slots for round-robin fairness
|
|
38
39
|
let lastProjectIndex = -1;
|
|
40
|
+
// Track completed stages per pipeline run for dependency resolution
|
|
41
|
+
const completedStages = new Map(); // pipelineRunId → Set<stageId>
|
|
39
42
|
function enqueue(request) {
|
|
40
43
|
const id = generateRequestId();
|
|
41
44
|
const full = {
|
|
@@ -44,6 +47,10 @@ export function createScheduler(config, ports, events = {}) {
|
|
|
44
47
|
enqueuedAt: Date.now(),
|
|
45
48
|
};
|
|
46
49
|
requestQueue.push(full);
|
|
50
|
+
// Ensure pipeline run has a tracking set
|
|
51
|
+
if (full.pipelineRunId && !completedStages.has(full.pipelineRunId)) {
|
|
52
|
+
completedStages.set(full.pipelineRunId, new Set());
|
|
53
|
+
}
|
|
47
54
|
// Sort queue by priority (lower number = higher priority)
|
|
48
55
|
requestQueue.sort((a, b) => a.priority - b.priority || a.enqueuedAt - b.enqueuedAt);
|
|
49
56
|
ports.logger.info(`Scheduler: enqueued ${request.mode} for project "${request.projectId}" (id=${id})`);
|
|
@@ -53,28 +60,46 @@ export function createScheduler(config, ports, events = {}) {
|
|
|
53
60
|
}
|
|
54
61
|
return id;
|
|
55
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Check if a pipeline stage request has all its dependencies satisfied.
|
|
65
|
+
* Non-pipeline requests are always ready.
|
|
66
|
+
*/
|
|
67
|
+
function isStageReady(request) {
|
|
68
|
+
if (!request.pipelineRunId || !request.afterStages?.length)
|
|
69
|
+
return true;
|
|
70
|
+
const done = completedStages.get(request.pipelineRunId);
|
|
71
|
+
if (!done)
|
|
72
|
+
return false;
|
|
73
|
+
return request.afterStages.every((dep) => done.has(dep));
|
|
74
|
+
}
|
|
56
75
|
function pickNextRequest() {
|
|
57
76
|
if (!requestQueue.length)
|
|
58
77
|
return undefined;
|
|
59
78
|
if (strategy === 'priority') {
|
|
60
|
-
// Strict priority:
|
|
61
|
-
|
|
79
|
+
// Strict priority: take the first ready request (already sorted by priority)
|
|
80
|
+
const idx = requestQueue.findIndex(isStageReady);
|
|
81
|
+
if (idx === -1)
|
|
82
|
+
return undefined;
|
|
83
|
+
return requestQueue.splice(idx, 1)[0];
|
|
62
84
|
}
|
|
63
85
|
// Round-robin: cycle through projects fairly
|
|
64
86
|
const activeProjectIds = new Set(slots.filter((s) => s.status === 'running' && s.projectId).map((s) => s.projectId));
|
|
65
|
-
// Try to find a request from a project that doesn't have an active slot
|
|
66
|
-
const nonActiveIdx = requestQueue.findIndex((r) => !activeProjectIds.has(r.projectId));
|
|
87
|
+
// Try to find a ready request from a project that doesn't have an active slot
|
|
88
|
+
const nonActiveIdx = requestQueue.findIndex((r) => !activeProjectIds.has(r.projectId) && isStageReady(r));
|
|
67
89
|
if (nonActiveIdx !== -1) {
|
|
68
90
|
return requestQueue.splice(nonActiveIdx, 1)[0];
|
|
69
91
|
}
|
|
70
|
-
// All queued projects already have active slots —
|
|
71
|
-
|
|
92
|
+
// All queued projects already have active slots — take the highest priority ready request
|
|
93
|
+
const readyIdx = requestQueue.findIndex(isStageReady);
|
|
94
|
+
if (readyIdx === -1)
|
|
95
|
+
return undefined;
|
|
96
|
+
return requestQueue.splice(readyIdx, 1)[0];
|
|
72
97
|
}
|
|
73
98
|
function findIdleSlot() {
|
|
74
99
|
return slots.find((s) => s.status === 'idle');
|
|
75
100
|
}
|
|
76
101
|
function scheduleNext() {
|
|
77
|
-
if (!running)
|
|
102
|
+
if (!running || paused)
|
|
78
103
|
return;
|
|
79
104
|
let idleSlot = findIdleSlot();
|
|
80
105
|
while (idleSlot && requestQueue.length) {
|
|
@@ -133,6 +158,15 @@ export function createScheduler(config, ports, events = {}) {
|
|
|
133
158
|
promise
|
|
134
159
|
.then((stats) => {
|
|
135
160
|
totalStats = mergeStats(totalStats, stats);
|
|
161
|
+
// Track completed pipeline stage
|
|
162
|
+
if (request.pipelineRunId && request.stageId) {
|
|
163
|
+
let done = completedStages.get(request.pipelineRunId);
|
|
164
|
+
if (!done) {
|
|
165
|
+
done = new Set();
|
|
166
|
+
completedStages.set(request.pipelineRunId, done);
|
|
167
|
+
}
|
|
168
|
+
done.add(request.stageId);
|
|
169
|
+
}
|
|
136
170
|
events.onSlotCompleted?.(slot.id, request, stats);
|
|
137
171
|
})
|
|
138
172
|
.catch((err) => {
|
|
@@ -163,8 +197,22 @@ export function createScheduler(config, ports, events = {}) {
|
|
|
163
197
|
ports.logger.info(`Scheduler: started (concurrency=${concurrency}, strategy=${strategy})`);
|
|
164
198
|
scheduleNext();
|
|
165
199
|
}
|
|
200
|
+
function pause() {
|
|
201
|
+
if (!running || paused)
|
|
202
|
+
return;
|
|
203
|
+
paused = true;
|
|
204
|
+
ports.logger.info('Scheduler: paused — running tasks continue, queue frozen');
|
|
205
|
+
}
|
|
206
|
+
function resume() {
|
|
207
|
+
if (!paused)
|
|
208
|
+
return;
|
|
209
|
+
paused = false;
|
|
210
|
+
ports.logger.info('Scheduler: resumed');
|
|
211
|
+
scheduleNext();
|
|
212
|
+
}
|
|
166
213
|
async function stop() {
|
|
167
214
|
running = false;
|
|
215
|
+
paused = false;
|
|
168
216
|
// Abort all running slots
|
|
169
217
|
for (const slot of slots) {
|
|
170
218
|
if (slot.status === 'running' && slot.abort) {
|
|
@@ -211,6 +259,8 @@ export function createScheduler(config, ports, events = {}) {
|
|
|
211
259
|
enqueue,
|
|
212
260
|
start,
|
|
213
261
|
stop,
|
|
262
|
+
pause,
|
|
263
|
+
resume,
|
|
214
264
|
cancel,
|
|
215
265
|
stopProject,
|
|
216
266
|
get queue() {
|
|
@@ -222,9 +272,15 @@ export function createScheduler(config, ports, events = {}) {
|
|
|
222
272
|
get isActive() {
|
|
223
273
|
return running && (requestQueue.length > 0 || slots.some((s) => s.status !== 'idle'));
|
|
224
274
|
},
|
|
275
|
+
get isPaused() {
|
|
276
|
+
return paused;
|
|
277
|
+
},
|
|
225
278
|
get aggregateStats() {
|
|
226
279
|
return { ...totalStats };
|
|
227
280
|
},
|
|
281
|
+
get completedStages() {
|
|
282
|
+
return completedStages;
|
|
283
|
+
},
|
|
228
284
|
};
|
|
229
285
|
}
|
|
230
286
|
//# sourceMappingURL=scheduler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/core/scheduler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/core/scheduler.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -86,6 +86,17 @@ export interface OrchestratorConfig {
|
|
|
86
86
|
agentTimeoutMs: number;
|
|
87
87
|
tag?: string;
|
|
88
88
|
discovery?: DiscoveryConfig;
|
|
89
|
+
lastRun?: LastRunState | undefined;
|
|
90
|
+
pipelines?: Pipeline[];
|
|
91
|
+
}
|
|
92
|
+
/** Persisted in config so restart survives process restarts. */
|
|
93
|
+
export interface LastRunState {
|
|
94
|
+
projectId: string;
|
|
95
|
+
mode: 'sprint' | 'epic' | 'tasks';
|
|
96
|
+
epicId?: string | undefined;
|
|
97
|
+
taskIds?: string[] | undefined;
|
|
98
|
+
tag?: string | undefined;
|
|
99
|
+
stoppedAt: number;
|
|
89
100
|
}
|
|
90
101
|
/**
|
|
91
102
|
* Legacy config shape for backward compatibility.
|
|
@@ -108,6 +119,34 @@ export interface LegacyOrchestratorConfig {
|
|
|
108
119
|
* Looks up by activeProjectId first, falls back to first project.
|
|
109
120
|
*/
|
|
110
121
|
export declare function getActiveProject(config: OrchestratorConfig): ProjectEntry | undefined;
|
|
122
|
+
export interface PipelineStage {
|
|
123
|
+
id: string;
|
|
124
|
+
projectId: string;
|
|
125
|
+
epicId: string;
|
|
126
|
+
/** Stage IDs that must complete before this stage can start. */
|
|
127
|
+
after?: string[];
|
|
128
|
+
}
|
|
129
|
+
export interface Pipeline {
|
|
130
|
+
id: string;
|
|
131
|
+
name: string;
|
|
132
|
+
stages: PipelineStage[];
|
|
133
|
+
}
|
|
134
|
+
export type PipelineStageStatus = 'queued' | 'running' | 'done' | 'failed' | 'cancelled';
|
|
135
|
+
export interface PipelineStageRun {
|
|
136
|
+
stageId: string;
|
|
137
|
+
status: PipelineStageStatus;
|
|
138
|
+
startedAt?: number;
|
|
139
|
+
completedAt?: number;
|
|
140
|
+
error?: string;
|
|
141
|
+
}
|
|
142
|
+
export interface PipelineRun {
|
|
143
|
+
id: string;
|
|
144
|
+
pipelineId: string;
|
|
145
|
+
status: 'running' | 'done' | 'failed' | 'cancelled';
|
|
146
|
+
stages: PipelineStageRun[];
|
|
147
|
+
startedAt: number;
|
|
148
|
+
completedAt?: number;
|
|
149
|
+
}
|
|
111
150
|
export type TaskRunResult = 'done' | 'cancelled' | 'timeout' | 'error' | 'dry_run' | 'blocked';
|
|
112
151
|
export interface SprintStats {
|
|
113
152
|
done: number;
|
|
@@ -242,6 +281,35 @@ export type ServerEvent = {
|
|
|
242
281
|
};
|
|
243
282
|
} | {
|
|
244
283
|
type: 'scheduler:drained';
|
|
284
|
+
} | {
|
|
285
|
+
type: 'pipeline:started';
|
|
286
|
+
payload: {
|
|
287
|
+
pipelineRunId: string;
|
|
288
|
+
pipelineId: string;
|
|
289
|
+
};
|
|
290
|
+
} | {
|
|
291
|
+
type: 'pipeline:stage_started';
|
|
292
|
+
payload: {
|
|
293
|
+
pipelineRunId: string;
|
|
294
|
+
stageId: string;
|
|
295
|
+
};
|
|
296
|
+
} | {
|
|
297
|
+
type: 'pipeline:stage_completed';
|
|
298
|
+
payload: {
|
|
299
|
+
pipelineRunId: string;
|
|
300
|
+
stageId: string;
|
|
301
|
+
status: PipelineStageStatus;
|
|
302
|
+
};
|
|
303
|
+
} | {
|
|
304
|
+
type: 'pipeline:complete';
|
|
305
|
+
payload: {
|
|
306
|
+
pipelineRunId: string;
|
|
307
|
+
status: 'done' | 'failed' | 'cancelled';
|
|
308
|
+
};
|
|
309
|
+
} | {
|
|
310
|
+
type: 'run:paused';
|
|
311
|
+
} | {
|
|
312
|
+
type: 'run:resumed';
|
|
245
313
|
} | {
|
|
246
314
|
type: 'error';
|
|
247
315
|
payload: {
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC;AACnF,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC;AAEhF,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,IAAI;IAC5C,eAAe,EAAE,MAAM,CAAC;CACzB;AAID,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;CACrC;AAID,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,UAAU,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAGnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAGhB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IAGvB,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,SAAS,CAAC,EAAE,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,oDAAoD;AACpD,iDAAiD;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,oDAAoD;AACpD,iDAAiD;AA6JjD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA0B;IACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,eAAe,CAAC,CAAC;QAClF,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC"}
|
package/dist/infra/config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OrchestratorConfig } from '../core/types.js';
|
|
1
|
+
import type { OrchestratorConfig, Pipeline } from '../core/types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Returns the user-level config directory: ~/.config/gm-orchestrator/
|
|
4
4
|
*/
|
|
@@ -16,5 +16,9 @@ export declare function loadConfig(overrides?: Partial<OrchestratorConfig> & {
|
|
|
16
16
|
configPath?: string;
|
|
17
17
|
}): OrchestratorConfig;
|
|
18
18
|
export declare function validateConfig(config: OrchestratorConfig): void;
|
|
19
|
+
/**
|
|
20
|
+
* Validate pipeline definitions: unique IDs, valid `after` references, no cycles.
|
|
21
|
+
*/
|
|
22
|
+
export declare function validatePipelines(pipelines: Pipeline[]): string[];
|
|
19
23
|
export declare function saveConfig(config: Partial<OrchestratorConfig>, configPath?: string): void;
|
|
20
24
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/infra/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAA0C,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/infra/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAA0C,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAiB7G;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiCvF;AAED,wBAAgB,UAAU,CAAC,SAAS,GAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,kBAAkB,CAKpH;AAoCD,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CA4C/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAsEjE;AAmDD,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAOzF"}
|
package/dist/infra/config.js
CHANGED
|
@@ -116,6 +116,10 @@ function mergeConfigs(...configs) {
|
|
|
116
116
|
result.maxTurns = cfg.maxTurns;
|
|
117
117
|
if (cfg.agentTimeoutMs !== undefined)
|
|
118
118
|
result.agentTimeoutMs = cfg.agentTimeoutMs;
|
|
119
|
+
if (cfg.lastRun !== undefined)
|
|
120
|
+
result.lastRun = cfg.lastRun;
|
|
121
|
+
if (cfg.pipelines !== undefined)
|
|
122
|
+
result.pipelines = cfg.pipelines;
|
|
119
123
|
}
|
|
120
124
|
return result;
|
|
121
125
|
}
|
|
@@ -141,11 +145,124 @@ export function validateConfig(config) {
|
|
|
141
145
|
if (config.concurrency < 1) {
|
|
142
146
|
errors.push('concurrency must be at least 1');
|
|
143
147
|
}
|
|
148
|
+
// Validate pipelines if present
|
|
149
|
+
if (config.pipelines?.length) {
|
|
150
|
+
errors.push(...validatePipelines(config.pipelines));
|
|
151
|
+
}
|
|
144
152
|
if (errors.length) {
|
|
145
153
|
errors.forEach((e) => console.error(`❌ ${e}`));
|
|
146
154
|
process.exit(1);
|
|
147
155
|
}
|
|
148
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Validate pipeline definitions: unique IDs, valid `after` references, no cycles.
|
|
159
|
+
*/
|
|
160
|
+
export function validatePipelines(pipelines) {
|
|
161
|
+
const errors = [];
|
|
162
|
+
const pipelineIds = new Set();
|
|
163
|
+
for (const pipeline of pipelines) {
|
|
164
|
+
if (!pipeline.id) {
|
|
165
|
+
errors.push('Pipeline is missing an "id" field');
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
if (pipelineIds.has(pipeline.id)) {
|
|
169
|
+
errors.push(`Duplicate pipeline ID: "${pipeline.id}"`);
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
pipelineIds.add(pipeline.id);
|
|
173
|
+
if (!pipeline.name) {
|
|
174
|
+
errors.push(`Pipeline "${pipeline.id}": missing "name" field`);
|
|
175
|
+
}
|
|
176
|
+
if (!pipeline.stages?.length) {
|
|
177
|
+
errors.push(`Pipeline "${pipeline.id}": must have at least one stage`);
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
// Check stage IDs are unique within the pipeline
|
|
181
|
+
const stageIds = new Set();
|
|
182
|
+
for (const stage of pipeline.stages) {
|
|
183
|
+
if (!stage.id) {
|
|
184
|
+
errors.push(`Pipeline "${pipeline.id}": stage is missing an "id" field`);
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
if (stageIds.has(stage.id)) {
|
|
188
|
+
errors.push(`Pipeline "${pipeline.id}": duplicate stage ID "${stage.id}"`);
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
stageIds.add(stage.id);
|
|
192
|
+
if (!stage.projectId) {
|
|
193
|
+
errors.push(`Pipeline "${pipeline.id}", stage "${stage.id}": missing "projectId"`);
|
|
194
|
+
}
|
|
195
|
+
if (!stage.epicId) {
|
|
196
|
+
errors.push(`Pipeline "${pipeline.id}", stage "${stage.id}": missing "epicId"`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// Validate `after` references exist
|
|
200
|
+
for (const stage of pipeline.stages) {
|
|
201
|
+
if (!stage.after?.length)
|
|
202
|
+
continue;
|
|
203
|
+
for (const dep of stage.after) {
|
|
204
|
+
if (!stageIds.has(dep)) {
|
|
205
|
+
errors.push(`Pipeline "${pipeline.id}", stage "${stage.id}": "after" references unknown stage "${dep}"`);
|
|
206
|
+
}
|
|
207
|
+
if (dep === stage.id) {
|
|
208
|
+
errors.push(`Pipeline "${pipeline.id}", stage "${stage.id}": stage cannot depend on itself`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
// DAG cycle detection (topological sort via Kahn's algorithm)
|
|
213
|
+
const cycleError = detectCycle(pipeline);
|
|
214
|
+
if (cycleError) {
|
|
215
|
+
errors.push(`Pipeline "${pipeline.id}": ${cycleError}`);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return errors;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Detect cycles in pipeline stage dependencies using Kahn's algorithm.
|
|
222
|
+
* Returns an error message if a cycle is found, or null if the DAG is valid.
|
|
223
|
+
*/
|
|
224
|
+
function detectCycle(pipeline) {
|
|
225
|
+
const stages = pipeline.stages;
|
|
226
|
+
const inDegree = new Map();
|
|
227
|
+
const adjacency = new Map();
|
|
228
|
+
for (const stage of stages) {
|
|
229
|
+
inDegree.set(stage.id, 0);
|
|
230
|
+
adjacency.set(stage.id, []);
|
|
231
|
+
}
|
|
232
|
+
for (const stage of stages) {
|
|
233
|
+
if (!stage.after?.length)
|
|
234
|
+
continue;
|
|
235
|
+
for (const dep of stage.after) {
|
|
236
|
+
if (!adjacency.has(dep))
|
|
237
|
+
continue; // invalid ref, caught above
|
|
238
|
+
adjacency.get(dep).push(stage.id);
|
|
239
|
+
inDegree.set(stage.id, (inDegree.get(stage.id) ?? 0) + 1);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
const queue = [];
|
|
243
|
+
for (const [id, degree] of inDegree) {
|
|
244
|
+
if (degree === 0)
|
|
245
|
+
queue.push(id);
|
|
246
|
+
}
|
|
247
|
+
let visited = 0;
|
|
248
|
+
while (queue.length) {
|
|
249
|
+
const current = queue.shift();
|
|
250
|
+
visited++;
|
|
251
|
+
for (const next of adjacency.get(current) ?? []) {
|
|
252
|
+
const newDegree = (inDegree.get(next) ?? 1) - 1;
|
|
253
|
+
inDegree.set(next, newDegree);
|
|
254
|
+
if (newDegree === 0)
|
|
255
|
+
queue.push(next);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
if (visited < stages.length) {
|
|
259
|
+
const cycleStages = stages
|
|
260
|
+
.filter((s) => (inDegree.get(s.id) ?? 0) > 0)
|
|
261
|
+
.map((s) => s.id);
|
|
262
|
+
return `cycle detected among stages: ${cycleStages.join(', ')}`;
|
|
263
|
+
}
|
|
264
|
+
return null;
|
|
265
|
+
}
|
|
149
266
|
export function saveConfig(config, configPath) {
|
|
150
267
|
const path = configPath ?? getUserConfigPath();
|
|
151
268
|
const dir = resolve(path, '..');
|