@copilot-swarm/core 0.0.5 → 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/README.md +23 -15
- package/dist/analysis-engine.d.ts.map +1 -1
- package/dist/analysis-engine.js +4 -3
- package/dist/analysis-engine.js.map +1 -1
- package/dist/checkpoint.d.ts +1 -0
- package/dist/checkpoint.d.ts.map +1 -1
- package/dist/checkpoint.js +29 -6
- package/dist/checkpoint.js.map +1 -1
- package/dist/config.d.ts +3 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -3
- 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 +16 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +30 -0
- package/dist/paths.js.map +1 -0
- package/dist/pipeline-engine.d.ts +4 -1
- package/dist/pipeline-engine.d.ts.map +1 -1
- package/dist/pipeline-engine.js +62 -20
- 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 +30 -6
- 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/dist/utils.d.ts +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +5 -4
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -53,7 +53,7 @@ swarm -f feature-description.txt
|
|
|
53
53
|
|
|
54
54
|
# Plan first, run later
|
|
55
55
|
swarm plan "Redesign the notification system"
|
|
56
|
-
swarm --plan
|
|
56
|
+
swarm --plan .swarm/plans/plan-latest.md
|
|
57
57
|
|
|
58
58
|
# Resume a failed/timed-out run
|
|
59
59
|
swarm --resume
|
|
@@ -76,13 +76,13 @@ Two phases run in sequence:
|
|
|
76
76
|
|
|
77
77
|
Output:
|
|
78
78
|
|
|
79
|
-
-
|
|
80
|
-
-
|
|
79
|
+
- `.swarm/plans/plan-<timestamp>.md` — Timestamped plan (never overwritten)
|
|
80
|
+
- `.swarm/plans/plan-latest.md` — Copy of the most recent plan
|
|
81
81
|
|
|
82
82
|
Then feed the plan into the full pipeline:
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
|
-
swarm --plan
|
|
85
|
+
swarm --plan .swarm/plans/plan-latest.md
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
## Analyze Mode
|
|
@@ -93,7 +93,7 @@ Generate a comprehensive repository context document:
|
|
|
93
93
|
swarm analyze
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
-
Produces
|
|
96
|
+
Produces `.swarm/analysis/repo-analysis.md` — a structured analysis covering tech stack, architecture, key files, commands, patterns, and a step-by-step guide for implementing new features. The analysis goes through a dual-model review process:
|
|
97
97
|
|
|
98
98
|
1. **Architect** explores the repo and drafts the document
|
|
99
99
|
2. **Senior engineer** reviews for accuracy (up to 3 iterations)
|
|
@@ -191,10 +191,10 @@ pipeline:
|
|
|
191
191
|
| `ISSUE_BODY` | — | Task description (alternative to CLI prompt) |
|
|
192
192
|
| `VERBOSE` | `false` | Enable verbose streaming output |
|
|
193
193
|
| `AGENTS_DIR` | `.github/agents` | Directory for agent instruction files |
|
|
194
|
-
| `
|
|
195
|
-
| `SESSION_TIMEOUT_MS` | `
|
|
194
|
+
| `SWARM_DIR` | `.swarm` | Root directory for all swarm output |
|
|
195
|
+
| `SESSION_TIMEOUT_MS` | `1800000` | Timeout per agent session (ms) |
|
|
196
|
+
| `MAX_AUTO_RESUME` | `3` | Auto-resume attempts on failure |
|
|
196
197
|
| `MAX_RETRIES` | `2` | Retry attempts for failed agent responses |
|
|
197
|
-
| `SUMMARY_FILE_NAME` | `swarm-summary.md` | Final summary filename |
|
|
198
198
|
| `PRIMARY_MODEL` | `claude-opus-4-6-fast` | AI model for primary agents (overrides YAML) |
|
|
199
199
|
| `REVIEW_MODEL` | `gpt-5.2-codex` | AI model for cross-model review (overrides YAML) |
|
|
200
200
|
|
|
@@ -234,14 +234,22 @@ Label an issue with `run-swarm` or `run-swarm-verbose` to trigger it.
|
|
|
234
234
|
|
|
235
235
|
## Output
|
|
236
236
|
|
|
237
|
-
|
|
237
|
+
All output is organized under `.swarm/`:
|
|
238
238
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
239
|
+
```
|
|
240
|
+
.swarm/
|
|
241
|
+
plans/ # Planning mode output
|
|
242
|
+
plan-latest.md
|
|
243
|
+
plan-<timestamp>.md
|
|
244
|
+
runs/ # Per-run output (timestamped)
|
|
245
|
+
<runId>/
|
|
246
|
+
summary.md
|
|
247
|
+
roles/
|
|
248
|
+
pm.md, designer.md, engineer-stream-*.md, ...
|
|
249
|
+
analysis/ # Repository analysis
|
|
250
|
+
repo-analysis.md
|
|
251
|
+
latest # Pointer to most recent run
|
|
252
|
+
```
|
|
245
253
|
|
|
246
254
|
## Requirements
|
|
247
255
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis-engine.d.ts","sourceRoot":"","sources":["../src/analysis-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"analysis-engine.d.ts","sourceRoot":"","sources":["../src/analysis-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAoE1D,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;gBAGvB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM;IAK3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBhB,sBAAsB;CAwDrC"}
|
package/dist/analysis-engine.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as fs from "node:fs/promises";
|
|
2
2
|
import * as path from "node:path";
|
|
3
3
|
import { msg } from "./messages.js";
|
|
4
|
+
import { analysisDir } from "./paths.js";
|
|
4
5
|
import { SessionManager } from "./session.js";
|
|
5
6
|
import { responseContains } from "./utils.js";
|
|
6
7
|
const MAX_REVIEW_ITERATIONS = 3;
|
|
@@ -90,9 +91,9 @@ export class AnalysisEngine {
|
|
|
90
91
|
analysis = await this.runArchitectReviewLoop(this.pipeline.reviewModel, analysis);
|
|
91
92
|
}
|
|
92
93
|
// Save result
|
|
93
|
-
const
|
|
94
|
-
await fs.mkdir(
|
|
95
|
-
const outputPath = path.join(
|
|
94
|
+
const dir = analysisDir(this.config);
|
|
95
|
+
await fs.mkdir(dir, { recursive: true });
|
|
96
|
+
const outputPath = path.join(dir, "repo-analysis.md");
|
|
96
97
|
await fs.writeFile(outputPath, analysis);
|
|
97
98
|
this.logger.info(msg.analyzeComplete);
|
|
98
99
|
this.logger.info(msg.analyzeSaved(path.relative(this.config.repoRoot, outputPath)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis-engine.js","sourceRoot":"","sources":["../src/analysis-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"analysis-engine.js","sourceRoot":"","sources":["../src/analysis-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/checkpoint.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export interface PipelineCheckpoint {
|
|
|
6
6
|
designSpec: string;
|
|
7
7
|
streamResults: string[];
|
|
8
8
|
issueBody: string;
|
|
9
|
+
runId: string;
|
|
9
10
|
}
|
|
10
11
|
export declare function saveCheckpoint(config: SwarmConfig, checkpoint: PipelineCheckpoint): Promise<void>;
|
|
11
12
|
export declare function loadCheckpoint(config: SwarmConfig): Promise<PipelineCheckpoint | null>;
|
package/dist/checkpoint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAqBD,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUvG;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAQ5F;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxE"}
|
package/dist/checkpoint.js
CHANGED
|
@@ -1,14 +1,36 @@
|
|
|
1
1
|
import * as fs from "node:fs/promises";
|
|
2
2
|
import * as path from "node:path";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { latestPointerPath, runDir, swarmRoot } from "./paths.js";
|
|
4
|
+
/** Resolve checkpoint path — inside the run dir for new runs, or from latest pointer on resume. */
|
|
5
|
+
async function checkpointPath(config) {
|
|
6
|
+
if (config.resume) {
|
|
7
|
+
const latestRunId = await resolveLatestRunId(config);
|
|
8
|
+
if (latestRunId) {
|
|
9
|
+
return path.join(swarmRoot(config), "runs", latestRunId, "checkpoint.json");
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return path.join(runDir(config), "checkpoint.json");
|
|
13
|
+
}
|
|
14
|
+
async function resolveLatestRunId(config) {
|
|
15
|
+
try {
|
|
16
|
+
return (await fs.readFile(latestPointerPath(config), "utf-8")).trim();
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
6
21
|
}
|
|
7
22
|
export async function saveCheckpoint(config, checkpoint) {
|
|
8
|
-
|
|
23
|
+
const dir = runDir(config);
|
|
24
|
+
await fs.mkdir(dir, { recursive: true });
|
|
25
|
+
const filePath = path.join(dir, "checkpoint.json");
|
|
26
|
+
await fs.writeFile(filePath, JSON.stringify(checkpoint, null, 2));
|
|
27
|
+
// Update latest pointer
|
|
28
|
+
const root = swarmRoot(config);
|
|
29
|
+
await fs.mkdir(root, { recursive: true });
|
|
30
|
+
await fs.writeFile(latestPointerPath(config), config.runId);
|
|
9
31
|
}
|
|
10
32
|
export async function loadCheckpoint(config) {
|
|
11
|
-
const filePath = checkpointPath(config);
|
|
33
|
+
const filePath = await checkpointPath(config);
|
|
12
34
|
try {
|
|
13
35
|
const content = await fs.readFile(filePath, "utf-8");
|
|
14
36
|
return JSON.parse(content);
|
|
@@ -18,8 +40,9 @@ export async function loadCheckpoint(config) {
|
|
|
18
40
|
}
|
|
19
41
|
}
|
|
20
42
|
export async function clearCheckpoint(config) {
|
|
43
|
+
const filePath = await checkpointPath(config);
|
|
21
44
|
try {
|
|
22
|
-
await fs.unlink(
|
|
45
|
+
await fs.unlink(filePath);
|
|
23
46
|
}
|
|
24
47
|
catch {
|
|
25
48
|
// File may not exist
|
package/dist/checkpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAYlE,mGAAmG;AACnG,KAAK,UAAU,cAAc,CAAC,MAAmB;IAC/C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,MAAmB;IACnD,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAmB,EAAE,UAA8B;IACtF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAElE,wBAAwB;IACxB,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAmB;IACtD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAuB,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAmB;IACvD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;AACH,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -9,13 +9,14 @@ 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
|
-
readonly
|
|
15
|
+
readonly swarmDir: string;
|
|
16
|
+
readonly runId: string;
|
|
15
17
|
readonly sessionTimeoutMs: number;
|
|
16
18
|
readonly maxRetries: number;
|
|
17
19
|
readonly maxAutoResume: number;
|
|
18
|
-
readonly summaryFileName: string;
|
|
19
20
|
}
|
|
20
21
|
export declare function loadConfig(): SwarmConfig;
|
|
21
22
|
//# sourceMappingURL=config.d.ts.map
|
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
|
|
|
@@ -57,7 +58,7 @@ Examples:
|
|
|
57
58
|
swarm plan -f requirements.md
|
|
58
59
|
swarm run -v "Fix the login bug"
|
|
59
60
|
swarm run --resume Resume a failed/timed-out run
|
|
60
|
-
swarm --plan
|
|
61
|
+
swarm --plan .swarm/plans/plan-latest.md
|
|
61
62
|
swarm analyze
|
|
62
63
|
|
|
63
64
|
Environment variables override defaults; CLI args override env vars.
|
|
@@ -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. */
|
|
@@ -144,18 +147,21 @@ export function loadConfig() {
|
|
|
144
147
|
console.error(`Error: No prompt provided. Pass it as an argument, use --plan, or set ISSUE_BODY.\n\n${HELP_TEXT}`);
|
|
145
148
|
process.exit(1);
|
|
146
149
|
}
|
|
150
|
+
const swarmDir = readEnvString("SWARM_DIR", ".swarm");
|
|
151
|
+
const runId = new Date().toISOString().replace(/[:.]/g, "-");
|
|
147
152
|
return {
|
|
148
153
|
command: cli.command,
|
|
149
154
|
repoRoot,
|
|
150
155
|
verbose: cli.verbose || readEnvBoolean("VERBOSE", false),
|
|
151
156
|
resume: cli.resume,
|
|
157
|
+
tui: cli.command === "run" && !cli.noTui && !cli.verbose && process.stdout.isTTY === true,
|
|
152
158
|
issueBody: issueBody ?? "",
|
|
153
159
|
agentsDir: readEnvString("AGENTS_DIR", ".github/agents"),
|
|
154
|
-
|
|
160
|
+
swarmDir,
|
|
161
|
+
runId,
|
|
155
162
|
sessionTimeoutMs: readEnvPositiveInt("SESSION_TIMEOUT_MS", 1_800_000),
|
|
156
163
|
maxRetries: readEnvPositiveInt("MAX_RETRIES", 2),
|
|
157
164
|
maxAutoResume: readEnvPositiveInt("MAX_AUTO_RESUME", 3),
|
|
158
|
-
summaryFileName: readEnvString("SUMMARY_FILE_NAME", "swarm-summary.md"),
|
|
159
165
|
};
|
|
160
166
|
}
|
|
161
167
|
//# sourceMappingURL=config.js.map
|
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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"}
|