conductor-oss 0.1.0 → 0.2.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/LICENSE +21 -0
- package/dist/commands/cleanup.js +1 -1
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +141 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/feedback.d.ts +3 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +32 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/init.d.ts +34 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +164 -63
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp-server.d.ts +23 -0
- package/dist/commands/mcp-server.d.ts.map +1 -0
- package/dist/commands/mcp-server.js +36 -0
- package/dist/commands/mcp-server.js.map +1 -0
- package/dist/commands/retry.d.ts +3 -0
- package/dist/commands/retry.d.ts.map +1 -0
- package/dist/commands/retry.js +43 -0
- package/dist/commands/retry.js.map +1 -0
- package/dist/commands/setup.d.ts +3 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +413 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/spawn.d.ts.map +1 -1
- package/dist/commands/spawn.js +1 -1
- package/dist/commands/spawn.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +82 -24
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/task.d.ts +3 -0
- package/dist/commands/task.d.ts.map +1 -0
- package/dist/commands/task.js +48 -0
- package/dist/commands/task.js.map +1 -0
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +4 -2
- package/dist/commands/watch.js.map +1 -1
- package/dist/commands/webhook.d.ts +12 -0
- package/dist/commands/webhook.d.ts.map +1 -0
- package/dist/commands/webhook.js +59 -0
- package/dist/commands/webhook.js.map +1 -0
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/services.d.ts +7 -5
- package/dist/services.d.ts.map +1 -1
- package/dist/services.js +21 -4
- package/dist/services.js.map +1 -1
- package/package.json +33 -24
package/dist/commands/start.js
CHANGED
|
@@ -23,9 +23,34 @@ export function registerStart(program) {
|
|
|
23
23
|
.action(async (opts) => {
|
|
24
24
|
try {
|
|
25
25
|
const config = await loadConfig();
|
|
26
|
+
const { sessionManager, registry } = await createServices(config);
|
|
27
|
+
const supportedAgents = registry.list("agent").map((agent) => agent.name);
|
|
26
28
|
// Mutable ref — set after boardWatcher is created, used by lifecycle callback
|
|
27
29
|
let boardWatcherRef = null;
|
|
28
30
|
const port = opts.port ? parseInt(opts.port, 10) : (config.port ?? 3000);
|
|
31
|
+
const workspacePath = opts.workspace
|
|
32
|
+
?? process.env["CONDUCTOR_WORKSPACE"]
|
|
33
|
+
?? `${process.env["HOME"]}/.conductor/workspace`;
|
|
34
|
+
const shutdownTasks = [];
|
|
35
|
+
let isShuttingDown = false;
|
|
36
|
+
const requestShutdown = () => {
|
|
37
|
+
void (async () => {
|
|
38
|
+
if (isShuttingDown)
|
|
39
|
+
return;
|
|
40
|
+
isShuttingDown = true;
|
|
41
|
+
for (const task of shutdownTasks) {
|
|
42
|
+
try {
|
|
43
|
+
await task();
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
console.error(err);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
process.exit(0);
|
|
50
|
+
})();
|
|
51
|
+
};
|
|
52
|
+
process.on("SIGINT", requestShutdown);
|
|
53
|
+
process.on("SIGTERM", requestShutdown);
|
|
29
54
|
const line = "=".repeat(50);
|
|
30
55
|
console.log(chalk.dim(line));
|
|
31
56
|
console.log(chalk.bold.cyan(" Conductor -- Starting"));
|
|
@@ -38,7 +63,6 @@ export function registerStart(program) {
|
|
|
38
63
|
spinner.warn("Lifecycle manager not yet implemented in @conductor-oss/core");
|
|
39
64
|
}
|
|
40
65
|
else {
|
|
41
|
-
const { sessionManager } = await createServices(config);
|
|
42
66
|
const lifecycle = core.createLifecycleManager({
|
|
43
67
|
config,
|
|
44
68
|
sessionManager,
|
|
@@ -51,32 +75,26 @@ export function registerStart(program) {
|
|
|
51
75
|
lifecycle.start(10_000); // Poll every 10s (was 30s)
|
|
52
76
|
spinner.succeed("Lifecycle manager running");
|
|
53
77
|
// Graceful shutdown
|
|
54
|
-
|
|
78
|
+
shutdownTasks.push(() => {
|
|
55
79
|
console.log(chalk.dim("\nShutting down lifecycle manager..."));
|
|
56
80
|
lifecycle.stop();
|
|
57
|
-
|
|
58
|
-
};
|
|
59
|
-
process.on("SIGINT", shutdown);
|
|
60
|
-
process.on("SIGTERM", shutdown);
|
|
81
|
+
});
|
|
61
82
|
}
|
|
62
83
|
// ---- Start board watcher ----
|
|
63
84
|
if (opts.watcher !== false) {
|
|
64
85
|
const watchSpinner = ora("Starting board watcher").start();
|
|
65
86
|
try {
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
?? `${process.env["HOME"]}/.conductor/workspace`;
|
|
69
|
-
const boards = core.discoverBoards(workspacePath);
|
|
87
|
+
const boardPatternsOrConfig = config.boards?.length ? config.boards : config;
|
|
88
|
+
const boards = core.discoverBoards(workspacePath, boardPatternsOrConfig);
|
|
70
89
|
if (boards.length === 0) {
|
|
71
90
|
watchSpinner.warn("No CONDUCTOR.md boards found");
|
|
72
91
|
}
|
|
73
92
|
else {
|
|
74
|
-
// Need sessionManager for the watcher
|
|
75
|
-
const { sessionManager: sm } = await createServices(config);
|
|
76
93
|
const boardProjectMap = core.buildBoardProjectMap(boards, config);
|
|
77
94
|
const boardWatcher = core.createBoardWatcher({
|
|
78
95
|
config,
|
|
79
|
-
sessionManager
|
|
96
|
+
sessionManager,
|
|
97
|
+
agentNames: supportedAgents,
|
|
80
98
|
boardPaths: boards,
|
|
81
99
|
boardProjectMap,
|
|
82
100
|
pollIntervalMs: 5000,
|
|
@@ -87,16 +105,8 @@ export function registerStart(program) {
|
|
|
87
105
|
});
|
|
88
106
|
boardWatcher.start();
|
|
89
107
|
boardWatcherRef = boardWatcher;
|
|
108
|
+
shutdownTasks.push(() => boardWatcher.stop());
|
|
90
109
|
watchSpinner.succeed(`Board watcher running (${boards.length} boards)`);
|
|
91
|
-
// Add to shutdown
|
|
92
|
-
const prevSIGINT = process.listeners("SIGINT");
|
|
93
|
-
process.removeAllListeners("SIGINT");
|
|
94
|
-
process.on("SIGINT", () => {
|
|
95
|
-
boardWatcher.stop();
|
|
96
|
-
for (const listener of prevSIGINT) {
|
|
97
|
-
listener();
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
110
|
}
|
|
101
111
|
}
|
|
102
112
|
catch (err) {
|
|
@@ -132,6 +142,21 @@ export function registerStart(program) {
|
|
|
132
142
|
dashSpinner.warn("Dashboard not found. Run: pnpm --filter @conductor-oss/web build");
|
|
133
143
|
return;
|
|
134
144
|
}
|
|
145
|
+
// Kill any stale process holding the dashboard port (prevents EADDRINUSE on restart)
|
|
146
|
+
try {
|
|
147
|
+
const { execSync } = await import("node:child_process");
|
|
148
|
+
const pids = execSync(`lsof -ti :${port} -sTCP:LISTEN 2>/dev/null`, { encoding: "utf8" }).trim();
|
|
149
|
+
if (pids) {
|
|
150
|
+
for (const pid of pids.split("\n").filter(Boolean)) {
|
|
151
|
+
if (pid !== String(process.pid)) {
|
|
152
|
+
process.kill(Number(pid), "SIGTERM");
|
|
153
|
+
console.log(`[dashboard] Killed stale process ${pid} on port ${port}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
await new Promise(r => setTimeout(r, 1000));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
catch { /* no stale process — expected */ }
|
|
135
160
|
// Prefer standalone build (output: standalone in next.config), then production, then dev
|
|
136
161
|
// Find standalone server.js (location varies by monorepo nesting)
|
|
137
162
|
const { readdirSync, statSync: fsStat } = await import("node:fs");
|
|
@@ -164,11 +189,25 @@ export function registerStart(program) {
|
|
|
164
189
|
if (hasNextBuild) {
|
|
165
190
|
// Use pnpm run start (next start) — reliable, serves static assets correctly
|
|
166
191
|
cmd = "pnpm";
|
|
167
|
-
args = [
|
|
192
|
+
args = [
|
|
193
|
+
"run",
|
|
194
|
+
"start",
|
|
195
|
+
"--hostname",
|
|
196
|
+
"0.0.0.0",
|
|
197
|
+
"--port",
|
|
198
|
+
String(port),
|
|
199
|
+
];
|
|
168
200
|
}
|
|
169
201
|
else {
|
|
170
202
|
cmd = "pnpm";
|
|
171
|
-
args = [
|
|
203
|
+
args = [
|
|
204
|
+
"run",
|
|
205
|
+
"dev",
|
|
206
|
+
"--hostname",
|
|
207
|
+
"0.0.0.0",
|
|
208
|
+
"--port",
|
|
209
|
+
String(port),
|
|
210
|
+
];
|
|
172
211
|
}
|
|
173
212
|
dashboardProcess = spawn(cmd, args, {
|
|
174
213
|
cwd: webDir,
|
|
@@ -178,6 +217,8 @@ export function registerStart(program) {
|
|
|
178
217
|
...process.env,
|
|
179
218
|
PORT: String(port),
|
|
180
219
|
HOSTNAME: "0.0.0.0",
|
|
220
|
+
CONDUCTOR_WORKSPACE: workspacePath,
|
|
221
|
+
CO_CONFIG_PATH: config.configPath,
|
|
181
222
|
},
|
|
182
223
|
});
|
|
183
224
|
dashboardProcess.on("error", () => {
|
|
@@ -189,6 +230,20 @@ export function registerStart(program) {
|
|
|
189
230
|
dashSpinner.warn("Could not start dashboard.");
|
|
190
231
|
}
|
|
191
232
|
}
|
|
233
|
+
// ---- Start webhook server (if enabled in config) ----
|
|
234
|
+
if (config.webhook?.enabled) {
|
|
235
|
+
const webhookSpinner = ora("Starting webhook server").start();
|
|
236
|
+
try {
|
|
237
|
+
const { createWebhookServer } = await import("@conductor-oss/plugin-webhook");
|
|
238
|
+
const webhookServer = createWebhookServer(config, config.webhook);
|
|
239
|
+
await webhookServer.start();
|
|
240
|
+
shutdownTasks.push(() => webhookServer.stop());
|
|
241
|
+
webhookSpinner.succeed(`Webhook server running on port ${config.webhook.port}`);
|
|
242
|
+
}
|
|
243
|
+
catch (err) {
|
|
244
|
+
webhookSpinner.warn(`Webhook server failed to start: ${err}`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
192
247
|
// ---- Summary ----
|
|
193
248
|
console.log();
|
|
194
249
|
console.log(chalk.bold.green("Conductor is running."));
|
|
@@ -199,6 +254,9 @@ export function registerStart(program) {
|
|
|
199
254
|
if (opts.watcher !== false) {
|
|
200
255
|
console.log(chalk.dim(" Watcher: Obsidian CONDUCTOR.md boards"));
|
|
201
256
|
}
|
|
257
|
+
if (config.webhook?.enabled) {
|
|
258
|
+
console.log(chalk.dim(` Webhook: http://localhost:${config.webhook.port}/api/webhook`));
|
|
259
|
+
}
|
|
202
260
|
console.log(chalk.dim(" Press Ctrl-C to stop.\n"));
|
|
203
261
|
// Keep process alive. Dashboard is optional for orchestrator health.
|
|
204
262
|
// If it crashes (e.g. EADDRINUSE), keep lifecycle + board watcher running.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,sEAAsE,CAAC;SACnF,MAAM,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;SAC3D,MAAM,CAAC,cAAc,EAAE,iCAAiC,CAAC;SACzD,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;SACtD,MAAM,CAAC,wBAAwB,EAAE,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmEnD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { createServices, loadConfig } from "../services.js";
|
|
3
|
+
export function registerTask(program) {
|
|
4
|
+
const task = program
|
|
5
|
+
.command("task")
|
|
6
|
+
.description("Task graph helpers");
|
|
7
|
+
task
|
|
8
|
+
.command("show")
|
|
9
|
+
.description("Show task attempts, parent, and child tasks")
|
|
10
|
+
.argument("<taskId>", "Task ID, e.g. t-abc123")
|
|
11
|
+
.option("--json", "Output raw JSON")
|
|
12
|
+
.action(async (taskId, opts) => {
|
|
13
|
+
try {
|
|
14
|
+
const config = await loadConfig();
|
|
15
|
+
const { sessionManager } = await createServices(config);
|
|
16
|
+
const manager = sessionManager;
|
|
17
|
+
const graph = await manager.taskGraph(taskId);
|
|
18
|
+
if (!graph) {
|
|
19
|
+
console.log(chalk.dim(`No task found for ${taskId}`));
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
if (opts.json) {
|
|
23
|
+
console.log(JSON.stringify(graph, null, 2));
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
console.log(chalk.bold(`Task ${graph.taskId}`));
|
|
27
|
+
console.log(` Parent: ${chalk.dim(graph.parentTaskId ?? "-")}`);
|
|
28
|
+
console.log(` Children: ${chalk.dim(graph.childrenTaskIds.length ? graph.childrenTaskIds.join(", ") : "-")}`);
|
|
29
|
+
console.log();
|
|
30
|
+
console.log(chalk.bold("Attempts"));
|
|
31
|
+
if (graph.attempts.length === 0) {
|
|
32
|
+
console.log(chalk.dim(" None"));
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
for (const attempt of graph.attempts) {
|
|
36
|
+
console.log(` ${chalk.cyan(attempt.attemptId)} ${chalk.green(attempt.sessionId)} ${chalk.yellow(attempt.status)}` +
|
|
37
|
+
`${attempt.agent ? ` ${chalk.dim(attempt.agent)}` : ""}` +
|
|
38
|
+
`${attempt.model ? `/${chalk.dim(attempt.model)}` : ""}` +
|
|
39
|
+
`${attempt.branch ? ` ${chalk.dim(attempt.branch)}` : ""}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
console.error(chalk.red(String(err)));
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8EpD"}
|
package/dist/commands/watch.js
CHANGED
|
@@ -21,10 +21,11 @@ export function registerWatch(program) {
|
|
|
21
21
|
.action(async (opts) => {
|
|
22
22
|
try {
|
|
23
23
|
const config = await loadConfig();
|
|
24
|
-
const { sessionManager } = await createServices(config);
|
|
24
|
+
const { sessionManager, registry } = await createServices(config);
|
|
25
25
|
const core = await import("@conductor-oss/core");
|
|
26
26
|
const spinner = ora("Discovering boards").start();
|
|
27
|
-
const
|
|
27
|
+
const boardPatternsOrConfig = config.boards?.length ? config.boards : config;
|
|
28
|
+
const boards = core.discoverBoards(opts.workspace, boardPatternsOrConfig);
|
|
28
29
|
if (boards.length === 0) {
|
|
29
30
|
spinner.fail("No CONDUCTOR.md boards found");
|
|
30
31
|
console.log(chalk.dim(`Searched in: ${opts.workspace}`));
|
|
@@ -46,6 +47,7 @@ export function registerWatch(program) {
|
|
|
46
47
|
config,
|
|
47
48
|
sessionManager,
|
|
48
49
|
boardPaths: boards,
|
|
50
|
+
agentNames: registry.list("agent").map((agent) => agent.name),
|
|
49
51
|
boardProjectMap,
|
|
50
52
|
pollIntervalMs: parseInt(opts.poll, 10),
|
|
51
53
|
onDispatch: (projectId, sessionId, task) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;OAC/C,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC;AAEnD,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,4DAA4D,CAAC;SACzE,MAAM,CAAC,wBAAwB,EAAE,yBAAyB,EAAE,SAAS,CAAC;SACtE,MAAM,CAAC,aAAa,EAAE,kCAAkC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `co webhook`
|
|
3
|
+
*
|
|
4
|
+
* Starts the webhook server standalone — useful for testing without the full
|
|
5
|
+
* lifecycle manager and board watcher.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* co webhook [--port 4748]
|
|
9
|
+
*/
|
|
10
|
+
import type { Command } from "commander";
|
|
11
|
+
export declare function registerWebhook(program: Command): void;
|
|
12
|
+
//# sourceMappingURL=webhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../src/commands/webhook.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2DtD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `co webhook`
|
|
3
|
+
*
|
|
4
|
+
* Starts the webhook server standalone — useful for testing without the full
|
|
5
|
+
* lifecycle manager and board watcher.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* co webhook [--port 4748]
|
|
9
|
+
*/
|
|
10
|
+
import chalk from "chalk";
|
|
11
|
+
import { loadConfig } from "../services.js";
|
|
12
|
+
export function registerWebhook(program) {
|
|
13
|
+
program
|
|
14
|
+
.command("webhook")
|
|
15
|
+
.description("Start webhook server standalone (HTTP + GitHub webhook → kanban task creation)")
|
|
16
|
+
.option("-p, --port <port>", "Port to listen on (default: 4748)")
|
|
17
|
+
.action(async (opts) => {
|
|
18
|
+
try {
|
|
19
|
+
const config = await loadConfig();
|
|
20
|
+
const port = opts.port
|
|
21
|
+
? parseInt(opts.port, 10)
|
|
22
|
+
: (config.webhook?.port ?? 4748);
|
|
23
|
+
const { createWebhookServer } = await import("@conductor-oss/plugin-webhook");
|
|
24
|
+
const webhookConfig = {
|
|
25
|
+
enabled: true,
|
|
26
|
+
port,
|
|
27
|
+
secret: config.webhook?.secret,
|
|
28
|
+
};
|
|
29
|
+
const server = createWebhookServer(config, webhookConfig);
|
|
30
|
+
await server.start();
|
|
31
|
+
const line = "=".repeat(50);
|
|
32
|
+
console.log(chalk.dim(line));
|
|
33
|
+
console.log(chalk.bold.cyan(" Conductor Webhook Server"));
|
|
34
|
+
console.log(chalk.dim(line));
|
|
35
|
+
console.log();
|
|
36
|
+
console.log(chalk.bold.green(`Webhook server running on http://localhost:${port}`));
|
|
37
|
+
console.log();
|
|
38
|
+
console.log(chalk.dim(" POST /api/webhook/task — create task from any source"));
|
|
39
|
+
console.log(chalk.dim(" POST /api/webhook/github — handle GitHub webhook events"));
|
|
40
|
+
console.log(chalk.dim(" GET /api/webhook/health — health check"));
|
|
41
|
+
console.log(chalk.dim(" GET /api/webhook/status — stats"));
|
|
42
|
+
console.log();
|
|
43
|
+
console.log(chalk.dim(" Press Ctrl-C to stop.\n"));
|
|
44
|
+
const shutdown = () => {
|
|
45
|
+
server.stop();
|
|
46
|
+
process.exit(0);
|
|
47
|
+
};
|
|
48
|
+
process.on("SIGINT", shutdown);
|
|
49
|
+
process.on("SIGTERM", shutdown);
|
|
50
|
+
// Keep process alive
|
|
51
|
+
setInterval(() => { }, 60_000);
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
console.error(chalk.red(`Failed to start webhook server: ${err}`));
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=webhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/commands/webhook.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -18,11 +18,18 @@ import { registerDashboard } from "./commands/dashboard.js";
|
|
|
18
18
|
import { registerStart } from "./commands/start.js";
|
|
19
19
|
import { registerWatch } from "./commands/watch.js";
|
|
20
20
|
import { registerInit } from "./commands/init.js";
|
|
21
|
+
import { registerMcpServer } from "./commands/mcp-server.js";
|
|
22
|
+
import { registerWebhook } from "./commands/webhook.js";
|
|
23
|
+
import { registerDoctor } from "./commands/doctor.js";
|
|
24
|
+
import { registerRetry } from "./commands/retry.js";
|
|
25
|
+
import { registerTask } from "./commands/task.js";
|
|
26
|
+
import { registerFeedback } from "./commands/feedback.js";
|
|
27
|
+
import { registerSetup } from "./commands/setup.js";
|
|
21
28
|
const program = new Command();
|
|
22
29
|
program
|
|
23
30
|
.name("co")
|
|
24
31
|
.description("Conductor — markdown-native AI agent orchestrator")
|
|
25
|
-
.version("0.
|
|
32
|
+
.version("0.2.0");
|
|
26
33
|
registerSpawn(program);
|
|
27
34
|
registerList(program);
|
|
28
35
|
registerStatus(program);
|
|
@@ -35,5 +42,12 @@ registerDashboard(program);
|
|
|
35
42
|
registerStart(program);
|
|
36
43
|
registerWatch(program);
|
|
37
44
|
registerInit(program);
|
|
45
|
+
registerSetup(program);
|
|
46
|
+
registerMcpServer(program);
|
|
47
|
+
registerWebhook(program);
|
|
48
|
+
registerDoctor(program);
|
|
49
|
+
registerRetry(program);
|
|
50
|
+
registerTask(program);
|
|
51
|
+
registerFeedback(program);
|
|
38
52
|
program.parse();
|
|
39
53
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,mDAAmD,CAAC;KAChE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,eAAe,CAAC,OAAO,CAAC,CAAC;AACzB,eAAe,CAAC,OAAO,CAAC,CAAC;AACzB,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,eAAe,CAAC,OAAO,CAAC,CAAC;AACzB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAE1B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/services.d.ts
CHANGED
|
@@ -17,15 +17,17 @@ export declare function loadConfig(): Promise<OrchestratorConfig>;
|
|
|
17
17
|
/**
|
|
18
18
|
* Create a PluginRegistry with all built-in plugins registered.
|
|
19
19
|
*/
|
|
20
|
-
export declare function createRegistry(): Promise<PluginRegistry>;
|
|
20
|
+
export declare function createRegistry(config?: OrchestratorConfig): Promise<PluginRegistry>;
|
|
21
|
+
export interface Services {
|
|
22
|
+
config: OrchestratorConfig;
|
|
23
|
+
registry: PluginRegistry;
|
|
24
|
+
sessionManager: SessionManager;
|
|
25
|
+
}
|
|
21
26
|
/**
|
|
22
27
|
* Create a fully-wired SessionManager.
|
|
23
28
|
*
|
|
24
29
|
* Loads config, registers plugins, and creates the manager in one call.
|
|
25
30
|
* If you already have the config, pass it to avoid a second file read.
|
|
26
31
|
*/
|
|
27
|
-
export declare function createServices(existingConfig?: OrchestratorConfig): Promise<
|
|
28
|
-
config: OrchestratorConfig;
|
|
29
|
-
sessionManager: SessionManager;
|
|
30
|
-
}>;
|
|
32
|
+
export declare function createServices(existingConfig?: OrchestratorConfig): Promise<Services>;
|
|
31
33
|
//# sourceMappingURL=services.d.ts.map
|
package/dist/services.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EAEf,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EAEf,MAAM,qBAAqB,CAAC;AA2C7B,iCAAiC;AACjC,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC;AAEnD;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAM9D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAczF;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,cAAc,CAAC,EAAE,kBAAkB,GAClC,OAAO,CAAC,QAAQ,CAAC,CAenB"}
|
package/dist/services.js
CHANGED
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
import runtimeTmux from "@conductor-oss/plugin-runtime-tmux";
|
|
11
11
|
import agentClaudeCode from "@conductor-oss/plugin-agent-claude-code";
|
|
12
12
|
import agentCodex from "@conductor-oss/plugin-agent-codex";
|
|
13
|
+
import agentAmp from "@conductor-oss/plugin-agent-amp";
|
|
14
|
+
import agentCursorCli from "@conductor-oss/plugin-agent-cursor-cli";
|
|
15
|
+
import agentOpencode from "@conductor-oss/plugin-agent-opencode";
|
|
16
|
+
import agentDroid from "@conductor-oss/plugin-agent-droid";
|
|
17
|
+
import agentQwenCode from "@conductor-oss/plugin-agent-qwen-code";
|
|
18
|
+
import agentCcr from "@conductor-oss/plugin-agent-ccr";
|
|
19
|
+
import agentGithubCopilot from "@conductor-oss/plugin-agent-github-copilot";
|
|
13
20
|
import workspaceWorktree from "@conductor-oss/plugin-workspace-worktree";
|
|
14
21
|
import trackerGithub from "@conductor-oss/plugin-tracker-github";
|
|
15
22
|
import scmGithub from "@conductor-oss/plugin-scm-github";
|
|
@@ -25,6 +32,13 @@ const ALL_PLUGINS = [
|
|
|
25
32
|
agentClaudeCode,
|
|
26
33
|
agentCodex,
|
|
27
34
|
agentGemini,
|
|
35
|
+
agentAmp,
|
|
36
|
+
agentCursorCli,
|
|
37
|
+
agentOpencode,
|
|
38
|
+
agentDroid,
|
|
39
|
+
agentQwenCode,
|
|
40
|
+
agentCcr,
|
|
41
|
+
agentGithubCopilot,
|
|
28
42
|
workspaceWorktree,
|
|
29
43
|
trackerGithub,
|
|
30
44
|
scmGithub,
|
|
@@ -45,14 +59,17 @@ export async function loadConfig() {
|
|
|
45
59
|
/**
|
|
46
60
|
* Create a PluginRegistry with all built-in plugins registered.
|
|
47
61
|
*/
|
|
48
|
-
export async function createRegistry() {
|
|
62
|
+
export async function createRegistry(config) {
|
|
49
63
|
const core = await import("@conductor-oss/core");
|
|
50
64
|
if (typeof core.createPluginRegistry !== "function") {
|
|
51
65
|
throw new Error("@conductor-oss/core does not export createPluginRegistry");
|
|
52
66
|
}
|
|
53
67
|
const registry = core.createPluginRegistry();
|
|
54
68
|
for (const plugin of ALL_PLUGINS) {
|
|
55
|
-
|
|
69
|
+
const pluginConfig = config && plugin.manifest.slot === "notifier"
|
|
70
|
+
? config.notifiers?.[plugin.manifest.name]
|
|
71
|
+
: undefined;
|
|
72
|
+
registry.register(plugin, pluginConfig);
|
|
56
73
|
}
|
|
57
74
|
return registry;
|
|
58
75
|
}
|
|
@@ -64,7 +81,7 @@ export async function createRegistry() {
|
|
|
64
81
|
*/
|
|
65
82
|
export async function createServices(existingConfig) {
|
|
66
83
|
const config = existingConfig ?? (await loadConfig());
|
|
67
|
-
const registry = await createRegistry();
|
|
84
|
+
const registry = await createRegistry(config);
|
|
68
85
|
const core = await import("@conductor-oss/core");
|
|
69
86
|
if (typeof core.createSessionManager !== "function") {
|
|
70
87
|
throw new Error("@conductor-oss/core does not export createSessionManager");
|
|
@@ -73,6 +90,6 @@ export async function createServices(existingConfig) {
|
|
|
73
90
|
config,
|
|
74
91
|
registry,
|
|
75
92
|
});
|
|
76
|
-
return { config, sessionManager };
|
|
93
|
+
return { config, registry, sessionManager };
|
|
77
94
|
}
|
|
78
95
|
//# sourceMappingURL=services.js.map
|
package/dist/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,+DAA+D;AAC/D,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAC7D,OAAO,eAAe,MAAM,yCAAyC,CAAC;AACtE,OAAO,UAAU,MAAM,mCAAmC,CAAC;AAC3D,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;AACzE,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,SAAS,MAAM,kCAAkC,CAAC;AACzD,OAAO,eAAe,MAAM,wCAAwC,CAAC;AACrE,OAAO,eAAe,MAAM,wCAAwC,CAAC;AACrE,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,GAAmB;IAClC,WAA2B;IAC3B,eAA+B;IAC/B,UAA0B;IAC1B,WAA2B;IAC3B,iBAAiC;IACjC,aAA6B;IAC7B,SAAyB;IACzB,eAA+B;IAC/B,eAA+B;CAChC,CAAC;AAKF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjD,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC,UAAU,EAAwB,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"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"}
|