@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.
Files changed (43) hide show
  1. package/dist/config.d.ts +1 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +4 -0
  4. package/dist/config.js.map +1 -1
  5. package/dist/index.js +10 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/logger.d.ts +13 -2
  8. package/dist/logger.d.ts.map +1 -1
  9. package/dist/logger.js +74 -3
  10. package/dist/logger.js.map +1 -1
  11. package/dist/messages.d.ts +4 -1
  12. package/dist/messages.d.ts.map +1 -1
  13. package/dist/messages.js +5 -1
  14. package/dist/messages.js.map +1 -1
  15. package/dist/orchestrator.d.ts +5 -4
  16. package/dist/orchestrator.d.ts.map +1 -1
  17. package/dist/orchestrator.js +60 -2
  18. package/dist/orchestrator.js.map +1 -1
  19. package/dist/paths.d.ts +2 -0
  20. package/dist/paths.d.ts.map +1 -1
  21. package/dist/paths.js +4 -0
  22. package/dist/paths.js.map +1 -1
  23. package/dist/pipeline-engine.d.ts +3 -1
  24. package/dist/pipeline-engine.d.ts.map +1 -1
  25. package/dist/pipeline-engine.js +34 -6
  26. package/dist/pipeline-engine.js.map +1 -1
  27. package/dist/planning-engine.d.ts +6 -0
  28. package/dist/planning-engine.d.ts.map +1 -1
  29. package/dist/planning-engine.js +25 -2
  30. package/dist/planning-engine.js.map +1 -1
  31. package/dist/progress-tracker.d.ts +40 -0
  32. package/dist/progress-tracker.d.ts.map +1 -0
  33. package/dist/progress-tracker.js +73 -0
  34. package/dist/progress-tracker.js.map +1 -0
  35. package/dist/progress-tracker.test.d.ts +2 -0
  36. package/dist/progress-tracker.test.d.ts.map +1 -0
  37. package/dist/progress-tracker.test.js +90 -0
  38. package/dist/progress-tracker.test.js.map +1 -0
  39. package/dist/tui-renderer.d.ts +22 -0
  40. package/dist/tui-renderer.d.ts.map +1 -0
  41. package/dist/tui-renderer.js +144 -0
  42. package/dist/tui-renderer.js.map +1 -0
  43. package/package.json +1 -1
package/dist/config.d.ts CHANGED
@@ -9,6 +9,7 @@ export interface SwarmConfig {
9
9
  readonly repoRoot: string;
10
10
  readonly verbose: boolean;
11
11
  readonly resume: boolean;
12
+ readonly tui: boolean;
12
13
  readonly issueBody: string;
13
14
  readonly agentsDir: string;
14
15
  readonly swarmDir: string;
@@ -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;AA2HtD;;;;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,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,CAkCxC"}
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,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
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;AAE1C,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,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,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,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACjC,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;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,qBAAa,MAAM;IAKL,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAsD;gBAE/D,OAAO,EAAE,OAAO;IAE7C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI;IAK3C,wEAAwE;IACxE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMzB,iEAAiE;IACjE,OAAO,IAAI,IAAI;IAMf,6CAA6C;IAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM5B,mGAAmG;IACnG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAYnC,2CAA2C;IAC3C,WAAW,IAAI,IAAI;CAOpB"}
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
- console.error(detail ? `${message}: ${detail}` : message);
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;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,OAAO,MAAM;IAKY;IAJrB,eAAe,GAA0C,IAAI,CAAC;IAC9D,YAAY,GAAG,CAAC,CAAC;IACjB,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,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAEjD,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,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,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,IAAY;QAChB,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,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,OAAe;QACnB,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,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,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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -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;;;kCAKV,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;;;4CAKO,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;CAEzB,CAAC"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
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;IAC5D,kBAAkB,EAAE,gEAAgE;IAEpF,mBAAmB;IACnB,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE,wBAAwB;IACpC,WAAW,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,uBAAuB,KAAK,GAAG;IAC/D,iBAAiB,EAAE,+BAA+B;IAClD,WAAW,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;IAExE,uBAAuB;IACvB,gBAAgB,EAAE,+BAA+B;IACjD,WAAW,EAAE,yBAAyB;IACtC,qBAAqB,EAAE,sDAAsD;IAC7E,qBAAqB,EAAE,8CAA8C;IAErE,uBAAuB;IACvB,gBAAgB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,kBAAkB,KAAK,2BAA2B;IACvF,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE;IACjD,WAAW,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM;IACzF,iBAAiB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,KAAK,gBAAgB;IACjE,gBAAgB,EAAE,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE,CAAC,MAAM,KAAK,eAAe,KAAK,GAAG;IACtF,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO;IAE/C,6BAA6B;IAC7B,iBAAiB,EAAE,wEAAwE;IAC3F,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,kDAAkD,KAAK,MAAM;IACjG,sBAAsB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,KAAK,uBAAuB;IAE7E,6BAA6B;IAC7B,eAAe,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,GAAG,gBAAgB;IACvF,WAAW,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,GAAG,cAAc;IACtF,mBAAmB,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,KAAa,EAAE,EAAE,CAC7D,oBAAoB,CAAC,IAAI,GAAG,oBAAoB,KAAK,KAAK;IAE5D,mBAAmB;IACnB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,mBAAmB,KAAK,EAAE;IACvD,YAAY,EAAE,qBAAqB;IACnC,cAAc,EAAE,wBAAwB;IACxC,kBAAkB,EAAE,wCAAwC;IAC5D,gBAAgB,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,iBAAiB,OAAO,KAAK;IACpE,YAAY,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,mBAAmB,OAAO,KAAK;IAClE,YAAY,EAAE,kCAAkC;IAChD,gBAAgB,EAAE,iEAAiE;IAEnF,4BAA4B;IAC5B,aAAa,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,GAAW,EAAE,EAAE,CAC7D,6BAA6B,KAAK,aAAa,OAAO,IAAI,GAAG,GAAG;IAClE,SAAS,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,GAAW,EAAE,EAAE,CAAC,uBAAuB,KAAK,aAAa,OAAO,IAAI,GAAG,GAAG;IAEtH,iCAAiC;IACjC,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,gBAAgB,IAAI,EAAE;IACvD,YAAY,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,kBAAkB,MAAM,EAAE;IAE5D,wBAAwB;IACxB,aAAa,EAAE,8BAA8B;IAC7C,eAAe,EAAE,0CAA0C;IAC3D,gBAAgB,EAAE,kCAAkC;IACpD,gBAAgB,EAAE,wBAAwB;IAC1C,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,oBAAoB,IAAI,EAAE;IACvD,kBAAkB,EAAE,kEAAkE;IACtF,qBAAqB,EAAE,SAAS;IAEhC,uBAAuB;IACvB,YAAY,EAAE,oCAAoC;IAClD,qBAAqB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,wCAAwC,KAAK,GAAG;IAC1F,kBAAkB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,yCAAyC,KAAK,GAAG;IACxF,gBAAgB,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,GAAG,EAAE;IAC1E,eAAe,EAAE,0CAA0C;IAC3D,eAAe,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,iBAAiB,OAAO,KAAK;IACnE,eAAe,EAAE,mCAAmC;IACpD,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,wBAAwB,IAAI,EAAE;IAE9D,+BAA+B;IAC/B,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,6BAA6B,KAAK,QAAQ;IAC9E,QAAQ,EAAE,CAAC,cAAsB,EAAE,EAAE,CAAC,gCAAgC,cAAc,oBAAoB;IACxG,YAAY,EAAE,uDAAuD;IACrE,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,gBAAgB,KAAK,4BAA4B;IAClF,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,kBAAkB,KAAK,sBAAsB;IAC/E,oBAAoB,EAAE,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE,CACtD,OAAO,MAAM,IAAI,KAAK,yDAAyD;IACjF,iBAAiB,EAAE,CAAC,OAAe,EAAE,GAAW,EAAE,EAAE,CAClD,+CAA+C,OAAO,IAAI,GAAG,MAAM;IACrE,mBAAmB,EAAE,CAAC,GAAW,EAAE,EAAE,CACnC,WAAW,GAAG,kEAAkE;IAElF,mBAAmB;IACnB,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,gBAAgB,IAAI,EAAE;CAC7C,CAAC"}
@@ -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":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK1C,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAGP,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM;IAM3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAgC/B"}
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"}
@@ -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
- this.engine = new PipelineEngine(config, this.pipeline, logger);
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
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,iBAAiB;IAKT;IACA;IALX,MAAM,CAAiB;IACd,QAAQ,CAAC;IAE1B,YACmB,MAAmB,EACnB,MAAc;QADd,WAAM,GAAN,MAAM,CAAa;QACnB,WAAM,GAAN,MAAM,CAAQ;QAE/B,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,SAAkB,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,oEAAoE;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QACtC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC/G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAEtD,kEAAkE;YAClE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,YAAY,GAAgB,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACnE,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3E,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAE1B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,SAAS,GAAG,UAAU,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,SAAS,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,iBAAiB;IAOT;IACA;IAPX,MAAM,CAAiB;IACd,QAAQ,CAAC;IACT,OAAO,CAAyB;IAChC,QAAQ,CAAqB;IAE9C,YACmB,MAAmB,EACnB,MAAc;QADd,WAAM,GAAN,MAAM,CAAa;QACnB,WAAM,GAAN,MAAM,CAAQ;QAE/B,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEpD,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,IAAI,SAAkB,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,oEAAoE;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QACtC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC/G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAEtD,kEAAkE;YAClE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,YAAY,GAAgB,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACnE,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;YACtG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAE1B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,SAAS,GAAG,UAAU,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,SAAS,CAAC;IAClB,CAAC;IAEO,mBAAmB,CAAC,OAAgB;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,EAAU;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;QACnB,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACvE,CAAC;CACF"}
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
@@ -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;AAY7B,qBAAa,cAAc;IAKvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,eAAe,CAAc;gBAGlB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM;IAM3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAuFhB,WAAW;YAiBX,gBAAgB;YAoBhB,aAAa;YA6Eb,gBAAgB;YAmHhB,uBAAuB;YAgDvB,aAAa;CAwB5B"}
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"}