@copilot-swarm/core 0.0.6 ā 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +4 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +13 -2
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +74 -3
- package/dist/logger.js.map +1 -1
- package/dist/messages.d.ts +4 -1
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +5 -1
- package/dist/messages.js.map +1 -1
- package/dist/orchestrator.d.ts +5 -4
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +60 -2
- package/dist/orchestrator.js.map +1 -1
- package/dist/paths.d.ts +2 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +4 -0
- package/dist/paths.js.map +1 -1
- package/dist/pipeline-engine.d.ts +3 -1
- package/dist/pipeline-engine.d.ts.map +1 -1
- package/dist/pipeline-engine.js +34 -6
- package/dist/pipeline-engine.js.map +1 -1
- package/dist/planning-engine.d.ts +6 -0
- package/dist/planning-engine.d.ts.map +1 -1
- package/dist/planning-engine.js +25 -2
- package/dist/planning-engine.js.map +1 -1
- package/dist/progress-tracker.d.ts +40 -0
- package/dist/progress-tracker.d.ts.map +1 -0
- package/dist/progress-tracker.js +73 -0
- package/dist/progress-tracker.js.map +1 -0
- package/dist/progress-tracker.test.d.ts +2 -0
- package/dist/progress-tracker.test.d.ts.map +1 -0
- package/dist/progress-tracker.test.js +90 -0
- package/dist/progress-tracker.test.js.map +1 -0
- package/dist/tui-renderer.d.ts +22 -0
- package/dist/tui-renderer.d.ts.map +1 -0
- package/dist/tui-renderer.js +144 -0
- package/dist/tui-renderer.js.map +1 -0
- package/package.json +1 -1
package/dist/config.d.ts
CHANGED
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAgCA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAgCA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AA+HtD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,UAAU,IAAI,WAAW,CAmCxC"}
|
package/dist/config.js
CHANGED
|
@@ -48,6 +48,7 @@ Options:
|
|
|
48
48
|
-p, --plan <file> Use a plan file as input (reads the refined requirements section)
|
|
49
49
|
-f, --file <file> Read prompt from a file instead of inline text
|
|
50
50
|
-r, --resume Resume from the last checkpoint (skip completed phases)
|
|
51
|
+
--no-tui Disable TUI dashboard (use plain log output)
|
|
51
52
|
-V, --version Show version number
|
|
52
53
|
-h, --help Show this help message
|
|
53
54
|
|
|
@@ -71,6 +72,7 @@ function parseCliArgs() {
|
|
|
71
72
|
help: { type: "boolean", short: "h", default: false },
|
|
72
73
|
version: { type: "boolean", short: "V", default: false },
|
|
73
74
|
resume: { type: "boolean", short: "r", default: false },
|
|
75
|
+
"no-tui": { type: "boolean", default: false },
|
|
74
76
|
plan: { type: "string", short: "p" },
|
|
75
77
|
file: { type: "string", short: "f" },
|
|
76
78
|
},
|
|
@@ -97,6 +99,7 @@ function parseCliArgs() {
|
|
|
97
99
|
planFile: values.plan,
|
|
98
100
|
promptFile: values.file,
|
|
99
101
|
resume: values.resume,
|
|
102
|
+
noTui: values["no-tui"],
|
|
100
103
|
};
|
|
101
104
|
}
|
|
102
105
|
/** Extract the "Refined Requirements" section from a plan file. */
|
|
@@ -151,6 +154,7 @@ export function loadConfig() {
|
|
|
151
154
|
repoRoot,
|
|
152
155
|
verbose: cli.verbose || readEnvBoolean("VERBOSE", false),
|
|
153
156
|
resume: cli.resume,
|
|
157
|
+
tui: cli.command === "run" && !cli.noTui && !cli.verbose && process.stdout.isTTY === true,
|
|
154
158
|
issueBody: issueBody ?? "",
|
|
155
159
|
agentsDir: readEnvString("AGENTS_DIR", ".github/agents"),
|
|
156
160
|
swarmDir,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,+BAA+B,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAEzF,SAAS,aAAa,CAAC,GAAW,EAAE,QAAgB;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IACzD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,QAAiB;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IACzD,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,MAAM,KAAK,+BAA+B,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,QAAgB;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,MAAM,KAAK,gCAAgC,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,13 +5,20 @@ import { msg } from "./messages.js";
|
|
|
5
5
|
import { SwarmOrchestrator } from "./orchestrator.js";
|
|
6
6
|
import { PlanningEngine } from "./planning-engine.js";
|
|
7
7
|
const config = loadConfig();
|
|
8
|
-
const logger = new Logger(config.verbose);
|
|
8
|
+
const logger = new Logger(config.verbose, config.runId);
|
|
9
|
+
const showLogOnError = (err) => {
|
|
10
|
+
if (logger.logFilePath) {
|
|
11
|
+
console.error(msg.logFileHint(logger.logFilePath));
|
|
12
|
+
}
|
|
13
|
+
throw err;
|
|
14
|
+
};
|
|
9
15
|
if (config.command === "plan") {
|
|
10
16
|
const pipeline = (await import("./pipeline-config.js")).loadPipelineConfig(config.repoRoot);
|
|
11
17
|
const planner = new PlanningEngine(config, pipeline, logger);
|
|
12
18
|
planner
|
|
13
19
|
.start()
|
|
14
20
|
.then(() => planner.execute())
|
|
21
|
+
.catch(showLogOnError)
|
|
15
22
|
.finally(() => planner.stop());
|
|
16
23
|
}
|
|
17
24
|
else if (config.command === "analyze") {
|
|
@@ -21,6 +28,7 @@ else if (config.command === "analyze") {
|
|
|
21
28
|
analyzer
|
|
22
29
|
.start()
|
|
23
30
|
.then(() => analyzer.execute())
|
|
31
|
+
.catch(showLogOnError)
|
|
24
32
|
.finally(() => analyzer.stop());
|
|
25
33
|
}
|
|
26
34
|
else {
|
|
@@ -29,6 +37,7 @@ else {
|
|
|
29
37
|
swarm
|
|
30
38
|
.start()
|
|
31
39
|
.then(() => swarm.execute())
|
|
40
|
+
.catch(showLogOnError)
|
|
32
41
|
.finally(() => swarm.stop());
|
|
33
42
|
}
|
|
34
43
|
//# 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":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAC5B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAC5B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAExD,MAAM,cAAc,GAAG,CAAC,GAAY,EAAE,EAAE;IACtC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7D,OAAO;SACJ,KAAK,EAAE;SACP,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SAC7B,KAAK,CAAC,cAAc,CAAC;SACrB,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACnC,CAAC;KAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5F,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9D,QAAQ;SACL,KAAK,EAAE;SACP,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SAC9B,KAAK,CAAC,cAAc,CAAC;SACrB,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACpC,CAAC;KAAM,CAAC;IACN,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,KAAK;SACF,KAAK,EAAE;SACP,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;SAC3B,KAAK,CAAC,cAAc,CAAC;SACrB,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACjC,CAAC"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
|
+
import type { ProgressTracker } from "./progress-tracker.js";
|
|
1
2
|
/** Thin logging wrapper for centralized output control. */
|
|
2
3
|
export declare class Logger {
|
|
3
4
|
private readonly verbose;
|
|
4
5
|
private spinnerInterval;
|
|
5
6
|
private spinnerFrame;
|
|
7
|
+
private tracker;
|
|
8
|
+
private readonly logFile;
|
|
6
9
|
private static readonly SPINNER_FRAMES;
|
|
7
|
-
constructor(verbose: boolean);
|
|
10
|
+
constructor(verbose: boolean, runId: string);
|
|
11
|
+
/** Try to create the log file. Returns the path on success, null on failure. */
|
|
12
|
+
private initLogFile;
|
|
13
|
+
/** Append a line to the log file (fire-and-forget). */
|
|
14
|
+
private appendLog;
|
|
15
|
+
/** Path to the current run's log file, or null if logging failed to initialize. */
|
|
16
|
+
get logFilePath(): string | null;
|
|
17
|
+
/** Attach a progress tracker ā routes all output to the TUI. */
|
|
18
|
+
setTracker(tracker: ProgressTracker | null): void;
|
|
8
19
|
info(message: string): void;
|
|
9
20
|
warn(message: string): void;
|
|
10
21
|
error(message: string, err?: unknown): void;
|
|
@@ -12,7 +23,7 @@ export declare class Logger {
|
|
|
12
23
|
write(text: string): void;
|
|
13
24
|
/** Write a newline to stdout. Used after streaming completes. */
|
|
14
25
|
newline(): void;
|
|
15
|
-
/** Log only when verbose mode is enabled. */
|
|
26
|
+
/** Log only when verbose mode is enabled. Always written to log file. */
|
|
16
27
|
debug(message: string): void;
|
|
17
28
|
/** Show an animated spinner with a message. No-op in verbose mode (streaming output is enough). */
|
|
18
29
|
startSpinner(message: string): void;
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,2DAA2D;AAC3D,qBAAa,MAAM;IAQf,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAsD;gBAGzE,OAAO,EAAE,OAAO,EACjC,KAAK,EAAE,MAAM;IAKf,gFAAgF;IAChF,OAAO,CAAC,WAAW;IAWnB,uDAAuD;IACvD,OAAO,CAAC,SAAS;IAUjB,mFAAmF;IACnF,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;IAED,gEAAgE;IAChE,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IAIjD,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS3B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI;IAW3C,wEAAwE;IACxE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzB,iEAAiE;IACjE,OAAO,IAAI,IAAI;IAOf,yEAAyE;IACzE,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ5B,mGAAmG;IACnG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAiBnC,2CAA2C;IAC3C,WAAW,IAAI,IAAI;CAWpB"}
|
package/dist/logger.js
CHANGED
|
@@ -1,42 +1,109 @@
|
|
|
1
|
+
import * as fs from "node:fs";
|
|
2
|
+
import * as os from "node:os";
|
|
3
|
+
import * as path from "node:path";
|
|
4
|
+
const LOG_DIR = path.join(os.tmpdir(), "copilot-swarm");
|
|
1
5
|
/** Thin logging wrapper for centralized output control. */
|
|
2
6
|
export class Logger {
|
|
3
7
|
verbose;
|
|
4
8
|
spinnerInterval = null;
|
|
5
9
|
spinnerFrame = 0;
|
|
10
|
+
tracker = null;
|
|
11
|
+
logFile;
|
|
6
12
|
static SPINNER_FRAMES = ["ā ", "ā ", "ā ¹", "ā ø", "ā ¼", "ā “", "ā ¦", "ā §", "ā ", "ā "];
|
|
7
|
-
constructor(verbose) {
|
|
13
|
+
constructor(verbose, runId) {
|
|
8
14
|
this.verbose = verbose;
|
|
15
|
+
this.logFile = this.initLogFile(runId);
|
|
16
|
+
}
|
|
17
|
+
/** Try to create the log file. Returns the path on success, null on failure. */
|
|
18
|
+
initLogFile(runId) {
|
|
19
|
+
try {
|
|
20
|
+
fs.mkdirSync(LOG_DIR, { recursive: true });
|
|
21
|
+
const filePath = path.join(LOG_DIR, `swarm-${runId}.log`);
|
|
22
|
+
fs.writeFileSync(filePath, `# Copilot Swarm log ā ${new Date().toISOString()}\n`);
|
|
23
|
+
return filePath;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** Append a line to the log file (fire-and-forget). */
|
|
30
|
+
appendLog(level, message) {
|
|
31
|
+
if (!this.logFile)
|
|
32
|
+
return;
|
|
33
|
+
try {
|
|
34
|
+
const ts = new Date().toISOString();
|
|
35
|
+
fs.appendFileSync(this.logFile, `${ts} [${level}] ${message}\n`);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Non-blocking ā silently ignore write failures
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/** Path to the current run's log file, or null if logging failed to initialize. */
|
|
42
|
+
get logFilePath() {
|
|
43
|
+
return this.logFile;
|
|
44
|
+
}
|
|
45
|
+
/** Attach a progress tracker ā routes all output to the TUI. */
|
|
46
|
+
setTracker(tracker) {
|
|
47
|
+
this.tracker = tracker;
|
|
9
48
|
}
|
|
10
49
|
info(message) {
|
|
50
|
+
this.appendLog("INFO", message);
|
|
51
|
+
if (this.tracker) {
|
|
52
|
+
this.tracker.addLog(message);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
11
55
|
console.log(message);
|
|
12
56
|
}
|
|
13
57
|
warn(message) {
|
|
58
|
+
this.appendLog("WARN", message);
|
|
59
|
+
if (this.tracker) {
|
|
60
|
+
this.tracker.addLog(message, "warn");
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
14
63
|
console.warn(message);
|
|
15
64
|
}
|
|
16
65
|
error(message, err) {
|
|
17
66
|
const detail = err instanceof Error ? err.message : String(err ?? "");
|
|
18
|
-
|
|
67
|
+
const full = detail ? `${message}: ${detail}` : message;
|
|
68
|
+
this.appendLog("ERROR", full);
|
|
69
|
+
if (this.tracker) {
|
|
70
|
+
this.tracker.addLog(full, "error");
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
console.error(full);
|
|
19
74
|
}
|
|
20
75
|
/** Write raw text to stdout (no newline). Used for streaming deltas. */
|
|
21
76
|
write(text) {
|
|
77
|
+
if (this.tracker)
|
|
78
|
+
return;
|
|
22
79
|
if (this.verbose) {
|
|
23
80
|
process.stdout.write(text);
|
|
24
81
|
}
|
|
25
82
|
}
|
|
26
83
|
/** Write a newline to stdout. Used after streaming completes. */
|
|
27
84
|
newline() {
|
|
85
|
+
if (this.tracker)
|
|
86
|
+
return;
|
|
28
87
|
if (this.verbose) {
|
|
29
88
|
process.stdout.write("\n");
|
|
30
89
|
}
|
|
31
90
|
}
|
|
32
|
-
/** Log only when verbose mode is enabled. */
|
|
91
|
+
/** Log only when verbose mode is enabled. Always written to log file. */
|
|
33
92
|
debug(message) {
|
|
93
|
+
this.appendLog("DEBUG", message);
|
|
94
|
+
if (this.tracker)
|
|
95
|
+
return;
|
|
34
96
|
if (this.verbose) {
|
|
35
97
|
console.log(message);
|
|
36
98
|
}
|
|
37
99
|
}
|
|
38
100
|
/** Show an animated spinner with a message. No-op in verbose mode (streaming output is enough). */
|
|
39
101
|
startSpinner(message) {
|
|
102
|
+
this.appendLog("INFO", `[spinner] ${message}`);
|
|
103
|
+
if (this.tracker) {
|
|
104
|
+
this.tracker.setActiveAgent(message);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
40
107
|
if (this.verbose)
|
|
41
108
|
return;
|
|
42
109
|
this.stopSpinner();
|
|
@@ -50,6 +117,10 @@ export class Logger {
|
|
|
50
117
|
}
|
|
51
118
|
/** Stop the spinner and clear the line. */
|
|
52
119
|
stopSpinner() {
|
|
120
|
+
if (this.tracker) {
|
|
121
|
+
this.tracker.setActiveAgent(null);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
53
124
|
if (this.spinnerInterval !== null) {
|
|
54
125
|
clearInterval(this.spinnerInterval);
|
|
55
126
|
this.spinnerInterval = null;
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,OAAO,MAAM;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC;AAExD,2DAA2D;AAC3D,MAAM,OAAO,MAAM;IAQE;IAPX,eAAe,GAA0C,IAAI,CAAC;IAC9D,YAAY,GAAG,CAAC,CAAC;IACjB,OAAO,GAA2B,IAAI,CAAC;IAC9B,OAAO,CAAgB;IAChC,MAAM,CAAU,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE5F,YACmB,OAAgB,EACjC,KAAa;QADI,YAAO,GAAP,OAAO,CAAS;QAGjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,gFAAgF;IACxE,WAAW,CAAC,KAAa;QAC/B,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC;YAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,yBAAyB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAClF,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,uDAAuD;IAC/C,SAAS,CAAC,KAAa,EAAE,OAAe;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACpC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;QAClD,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,gEAAgE;IAChE,UAAU,CAAC,OAA+B;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAa;QAClC,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACxD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,IAAY;QAChB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,OAAO;QACL,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,OAAe;QACnB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,mGAAmG;IACnG,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,OAAO,EAAE,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAED,2CAA2C;IAC3C,WAAW;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAClC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC"}
|
package/dist/messages.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export declare const msg: {
|
|
|
4
4
|
readonly swarmComplete: "š All Swarm Streams Completed.";
|
|
5
5
|
readonly configLoaded: (model: string, review: string, verbose: boolean) => string;
|
|
6
6
|
readonly pipelineSource: (source: string) => string;
|
|
7
|
+
readonly repoAnalysisLoaded: "š Repository analysis found ā using as context for all phases";
|
|
7
8
|
readonly pmPhaseStart: "š Starting PM Phase...";
|
|
8
9
|
readonly pmDrafting: "\n[Phase: PM Drafting]";
|
|
9
10
|
readonly reviewPhase: (agent: string) => string;
|
|
@@ -42,7 +43,8 @@ export declare const msg: {
|
|
|
42
43
|
readonly planningEngPhase: "\n[Planning: Technical Analysis]";
|
|
43
44
|
readonly planningComplete: "\nā
Planning complete.";
|
|
44
45
|
readonly planSaved: (path: string) => string;
|
|
45
|
-
readonly planningUserPrompt: "\nš¬ Your answer (or press Enter to skip)
|
|
46
|
+
readonly planningUserPrompt: "\nš¬ Your answer (empty line to send, or press Enter to skip):\n";
|
|
47
|
+
readonly planningInputContinue: " ... ";
|
|
46
48
|
readonly analyzeStart: "š Starting Repository Analysis...";
|
|
47
49
|
readonly analyzeArchitectPhase: (model: string) => string;
|
|
48
50
|
readonly analyzeReviewPhase: (model: string) => string;
|
|
@@ -59,5 +61,6 @@ export declare const msg: {
|
|
|
59
61
|
readonly partialStreamFailure: (failed: number, total: number) => string;
|
|
60
62
|
readonly autoResumeAttempt: (attempt: number, max: number) => string;
|
|
61
63
|
readonly autoResumeExhausted: (max: number) => string;
|
|
64
|
+
readonly logFileHint: (path: string) => string;
|
|
62
65
|
};
|
|
63
66
|
//# sourceMappingURL=messages.d.ts.map
|
package/dist/messages.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,eAAO,MAAM,GAAG;;;mCAIQ,MAAM,UAAU,MAAM,WAAW,OAAO;sCAErC,MAAM
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,eAAO,MAAM,GAAG;;;mCAIQ,MAAM,UAAU,MAAM,WAAW,OAAO;sCAErC,MAAM;;;;kCAMV,MAAM;;kCAEN,MAAM,EAAE;;;;;uCASH,MAAM;gCACb,MAAM;kCACJ,MAAM,QAAQ,MAAM;wCACd,MAAM;uCACP,MAAM,SAAS,MAAM;+BAC7B,MAAM;;sCAIC,MAAM;6CACC,MAAM;kCAGjB,MAAM,OAAO,MAAM;8BACvB,MAAM,OAAO,MAAM;sCACX,MAAM,OAAO,MAAM,SAAS,MAAM;+BAIzC,MAAM;;;;yCAII,MAAM;qCACV,MAAM;;;oCAKP,MAAM,WAAW,MAAM,OAAO,MAAM;gCAExC,MAAM,WAAW,MAAM,OAAO,MAAM;mCAGjC,MAAM;oCACL,MAAM;;;;;+BAOX,MAAM;;;;4CAMO,MAAM;yCACT,MAAM;mCACZ,MAAM,OAAO,MAAM;;wCAEd,MAAM;;kCAEZ,MAAM;sCAGF,MAAM;wCACJ,MAAM;;mCAEX,MAAM;oCACL,MAAM;4CACE,MAAM,SAAS,MAAM;0CAEvB,MAAM,OAAO,MAAM;wCAErB,MAAM;iCAIb,MAAM;CAClB,CAAC"}
|
package/dist/messages.js
CHANGED
|
@@ -5,6 +5,7 @@ export const msg = {
|
|
|
5
5
|
swarmComplete: "š All Swarm Streams Completed.",
|
|
6
6
|
configLoaded: (model, review, verbose) => `āļø Config: primary=${model}, review=${review}, verbose=${verbose}`,
|
|
7
7
|
pipelineSource: (source) => `š Pipeline: ${source}`,
|
|
8
|
+
repoAnalysisLoaded: "š Repository analysis found ā using as context for all phases",
|
|
8
9
|
// --- PM Phase ---
|
|
9
10
|
pmPhaseStart: "š Starting PM Phase...",
|
|
10
11
|
pmDrafting: "\n[Phase: PM Drafting]",
|
|
@@ -52,7 +53,8 @@ export const msg = {
|
|
|
52
53
|
planningEngPhase: "\n[Planning: Technical Analysis]",
|
|
53
54
|
planningComplete: "\nā
Planning complete.",
|
|
54
55
|
planSaved: (path) => `š Plan saved to ${path}`,
|
|
55
|
-
planningUserPrompt: "\nš¬ Your answer (or press Enter to skip)
|
|
56
|
+
planningUserPrompt: "\nš¬ Your answer (empty line to send, or press Enter to skip):\n",
|
|
57
|
+
planningInputContinue: " ... ",
|
|
56
58
|
// --- Analyze Mode ---
|
|
57
59
|
analyzeStart: "š Starting Repository Analysis...",
|
|
58
60
|
analyzeArchitectPhase: (model) => `\n[Analysis: Architect exploration ā ${model}]`,
|
|
@@ -71,5 +73,7 @@ export const msg = {
|
|
|
71
73
|
partialStreamFailure: (failed, total) => `ā ļø ${failed}/${total} streams failed. Completed streams saved to checkpoint.`,
|
|
72
74
|
autoResumeAttempt: (attempt, max) => `\nš Auto-resuming from checkpoint (attempt ${attempt}/${max})...`,
|
|
73
75
|
autoResumeExhausted: (max) => `\nā All ${max} auto-resume attempts exhausted. Use --resume to retry manually.`,
|
|
76
|
+
// --- Log File ---
|
|
77
|
+
logFileHint: (path) => `š Full log: ${path}`,
|
|
74
78
|
};
|
|
75
79
|
//# sourceMappingURL=messages.js.map
|
package/dist/messages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,oBAAoB;IACpB,aAAa,EAAE,8BAA8B;IAC7C,aAAa,EAAE,iCAAiC;IAChD,YAAY,EAAE,CAAC,KAAa,EAAE,MAAc,EAAE,OAAgB,EAAE,EAAE,CAChE,uBAAuB,KAAK,YAAY,MAAM,aAAa,OAAO,EAAE;IACtE,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,gBAAgB,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
|
package/dist/orchestrator.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SwarmOrchestrator ā wraps PipelineEngine with auto-resume on failure.
|
|
3
|
-
* On error, automatically retries from the last checkpoint up to maxAutoResume times.
|
|
4
|
-
*/
|
|
5
1
|
import type { SwarmConfig } from "./config.js";
|
|
6
2
|
import type { Logger } from "./logger.js";
|
|
7
3
|
export declare class SwarmOrchestrator {
|
|
@@ -9,9 +5,14 @@ export declare class SwarmOrchestrator {
|
|
|
9
5
|
private readonly logger;
|
|
10
6
|
private engine;
|
|
11
7
|
private readonly pipeline;
|
|
8
|
+
private readonly tracker;
|
|
9
|
+
private readonly renderer;
|
|
12
10
|
constructor(config: SwarmConfig, logger: Logger);
|
|
13
11
|
start(): Promise<void>;
|
|
14
12
|
stop(): Promise<void>;
|
|
15
13
|
execute(): Promise<void>;
|
|
14
|
+
private executeWithRetries;
|
|
15
|
+
private printPostTuiSummary;
|
|
16
|
+
private fmtElapsed;
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQ1C,qBAAa,iBAAiB;IAO1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;gBAG3B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM;IAiB3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAehB,kBAAkB;IAiChC,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,UAAU;CAMnB"}
|
package/dist/orchestrator.js
CHANGED
|
@@ -1,16 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SwarmOrchestrator ā wraps PipelineEngine with auto-resume on failure.
|
|
3
|
+
* On error, automatically retries from the last checkpoint up to maxAutoResume times.
|
|
4
|
+
*/
|
|
5
|
+
import * as path from "node:path";
|
|
1
6
|
import { msg } from "./messages.js";
|
|
7
|
+
import { runDir } from "./paths.js";
|
|
2
8
|
import { loadPipelineConfig } from "./pipeline-config.js";
|
|
3
9
|
import { PipelineEngine } from "./pipeline-engine.js";
|
|
10
|
+
import { ProgressTracker } from "./progress-tracker.js";
|
|
11
|
+
import { TuiRenderer } from "./tui-renderer.js";
|
|
4
12
|
export class SwarmOrchestrator {
|
|
5
13
|
config;
|
|
6
14
|
logger;
|
|
7
15
|
engine;
|
|
8
16
|
pipeline;
|
|
17
|
+
tracker;
|
|
18
|
+
renderer;
|
|
9
19
|
constructor(config, logger) {
|
|
10
20
|
this.config = config;
|
|
11
21
|
this.logger = logger;
|
|
12
22
|
this.pipeline = loadPipelineConfig(config.repoRoot);
|
|
13
|
-
|
|
23
|
+
if (config.tui) {
|
|
24
|
+
this.tracker = new ProgressTracker();
|
|
25
|
+
this.tracker.runId = config.runId;
|
|
26
|
+
this.renderer = new TuiRenderer(this.tracker);
|
|
27
|
+
logger.setTracker(this.tracker);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.tracker = null;
|
|
31
|
+
this.renderer = null;
|
|
32
|
+
}
|
|
33
|
+
this.engine = new PipelineEngine(config, this.pipeline, logger, this.tracker ?? undefined);
|
|
14
34
|
}
|
|
15
35
|
async start() {
|
|
16
36
|
await this.engine.start();
|
|
@@ -19,6 +39,21 @@ export class SwarmOrchestrator {
|
|
|
19
39
|
await this.engine.stop();
|
|
20
40
|
}
|
|
21
41
|
async execute() {
|
|
42
|
+
this.renderer?.start();
|
|
43
|
+
let success = false;
|
|
44
|
+
try {
|
|
45
|
+
await this.executeWithRetries();
|
|
46
|
+
success = true;
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
this.renderer?.stop();
|
|
50
|
+
if (this.tracker) {
|
|
51
|
+
this.logger.setTracker(null);
|
|
52
|
+
this.printPostTuiSummary(success);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async executeWithRetries() {
|
|
22
57
|
let lastError;
|
|
23
58
|
try {
|
|
24
59
|
await this.engine.execute();
|
|
@@ -35,7 +70,7 @@ export class SwarmOrchestrator {
|
|
|
35
70
|
// Tear down old engine and create a fresh one with resume enabled
|
|
36
71
|
await this.engine.stop();
|
|
37
72
|
const resumeConfig = { ...this.config, resume: true };
|
|
38
|
-
this.engine = new PipelineEngine(resumeConfig, this.pipeline, this.logger);
|
|
73
|
+
this.engine = new PipelineEngine(resumeConfig, this.pipeline, this.logger, this.tracker ?? undefined);
|
|
39
74
|
await this.engine.start();
|
|
40
75
|
try {
|
|
41
76
|
await this.engine.execute();
|
|
@@ -48,5 +83,28 @@ export class SwarmOrchestrator {
|
|
|
48
83
|
this.logger.error(msg.autoResumeExhausted(max));
|
|
49
84
|
throw lastError;
|
|
50
85
|
}
|
|
86
|
+
printPostTuiSummary(success) {
|
|
87
|
+
if (!this.tracker)
|
|
88
|
+
return;
|
|
89
|
+
const elapsed = this.fmtElapsed(this.tracker.elapsedMs);
|
|
90
|
+
const outputDir = path.relative(this.config.repoRoot, runDir(this.config));
|
|
91
|
+
if (success) {
|
|
92
|
+
console.log(`\nā
Copilot Swarm completed in ${elapsed}`);
|
|
93
|
+
console.log(`š Output: ${outputDir}`);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
console.log(`\nā Copilot Swarm failed after ${elapsed}`);
|
|
97
|
+
console.log(`š Partial output: ${outputDir}`);
|
|
98
|
+
}
|
|
99
|
+
if (this.logger.logFilePath) {
|
|
100
|
+
console.log(msg.logFileHint(this.logger.logFilePath));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
fmtElapsed(ms) {
|
|
104
|
+
const sec = Math.floor(ms / 1000);
|
|
105
|
+
const m = Math.floor(sec / 60);
|
|
106
|
+
const s = sec % 60;
|
|
107
|
+
return `${String(m).padStart(2, "0")}:${String(s).padStart(2, "0")}`;
|
|
108
|
+
}
|
|
51
109
|
}
|
|
52
110
|
//# sourceMappingURL=orchestrator.js.map
|
package/dist/orchestrator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
package/dist/paths.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export declare function rolesDir(config: SwarmConfig): string;
|
|
|
9
9
|
export declare function plansDir(config: SwarmConfig): string;
|
|
10
10
|
/** Analysis directory: .swarm/analysis/ */
|
|
11
11
|
export declare function analysisDir(config: SwarmConfig): string;
|
|
12
|
+
/** Path to the repo analysis file: .swarm/analysis/repo-analysis.md */
|
|
13
|
+
export declare function analysisFilePath(config: SwarmConfig): string;
|
|
12
14
|
/** Pointer to the latest run directory: .swarm/latest */
|
|
13
15
|
export declare function latestPointerPath(config: SwarmConfig): string;
|
|
14
16
|
//# sourceMappingURL=paths.d.ts.map
|
package/dist/paths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,6BAA6B;AAC7B,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAErD;AAED,8CAA8C;AAC9C,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAElD;AAED,8DAA8D;AAC9D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEpD;AAED,qCAAqC;AACrC,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEpD;AAED,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEvD;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAE7D"}
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,6BAA6B;AAC7B,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAErD;AAED,8CAA8C;AAC9C,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAElD;AAED,8DAA8D;AAC9D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEpD;AAED,qCAAqC;AACrC,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEpD;AAED,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEvD;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAE5D;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAE7D"}
|
package/dist/paths.js
CHANGED
|
@@ -19,6 +19,10 @@ export function plansDir(config) {
|
|
|
19
19
|
export function analysisDir(config) {
|
|
20
20
|
return path.join(swarmRoot(config), "analysis");
|
|
21
21
|
}
|
|
22
|
+
/** Path to the repo analysis file: .swarm/analysis/repo-analysis.md */
|
|
23
|
+
export function analysisFilePath(config) {
|
|
24
|
+
return path.join(analysisDir(config), "repo-analysis.md");
|
|
25
|
+
}
|
|
22
26
|
/** Pointer to the latest run directory: .swarm/latest */
|
|
23
27
|
export function latestPointerPath(config) {
|
|
24
28
|
return path.join(swarmRoot(config), "latest");
|
package/dist/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,6BAA6B;AAC7B,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,MAAM,CAAC,MAAmB;IACxC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,QAAQ,CAAC,MAAmB;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,QAAQ,CAAC,MAAmB;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,WAAW,CAAC,MAAmB;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,iBAAiB,CAAC,MAAmB;IACnD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;AAChD,CAAC"}
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,6BAA6B;AAC7B,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,MAAM,CAAC,MAAmB;IACxC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,QAAQ,CAAC,MAAmB;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,QAAQ,CAAC,MAAmB;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,WAAW,CAAC,MAAmB;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC5D,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,iBAAiB,CAAC,MAAmB;IACnD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { SwarmConfig } from "./config.js";
|
|
2
2
|
import type { Logger } from "./logger.js";
|
|
3
3
|
import type { PipelineConfig } from "./pipeline-types.js";
|
|
4
|
+
import type { ProgressTracker } from "./progress-tracker.js";
|
|
4
5
|
export declare class PipelineEngine {
|
|
5
6
|
private readonly config;
|
|
6
7
|
private readonly pipeline;
|
|
7
8
|
private readonly logger;
|
|
9
|
+
private readonly tracker?;
|
|
8
10
|
private readonly sessions;
|
|
9
11
|
private effectiveConfig;
|
|
10
|
-
constructor(config: SwarmConfig, pipeline: PipelineConfig, logger: Logger);
|
|
12
|
+
constructor(config: SwarmConfig, pipeline: PipelineConfig, logger: Logger, tracker?: ProgressTracker | undefined);
|
|
11
13
|
start(): Promise<void>;
|
|
12
14
|
stop(): Promise<void>;
|
|
13
15
|
execute(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-engine.d.ts","sourceRoot":"","sources":["../src/pipeline-engine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAKV,cAAc,EAGf,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline-engine.d.ts","sourceRoot":"","sources":["../src/pipeline-engine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAKV,cAAc,EAGf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAa7D,qBAAa,cAAc;IAKvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAP3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,eAAe,CAAc;gBAGlB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,YAAA;IAMtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA0GhB,WAAW;YAoBX,gBAAgB;YAoBhB,aAAa;YA6Eb,gBAAgB;YAyHhB,uBAAuB;YAgDvB,aAAa;CAwB5B"}
|