@copilot-swarm/core 0.0.7 → 0.0.8
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/defaults/agents/engineer.md +2 -1
- package/defaults/agents/pm.md +1 -1
- package/defaults/swarm.config.yaml +2 -0
- package/dist/analysis-engine.d.ts +3 -1
- package/dist/analysis-engine.d.ts.map +1 -1
- package/dist/analysis-engine.js +14 -1
- package/dist/analysis-engine.js.map +1 -1
- package/dist/checkpoint.d.ts +11 -0
- package/dist/checkpoint.d.ts.map +1 -1
- package/dist/checkpoint.js.map +1 -1
- package/dist/checkpoint.test.d.ts +2 -0
- package/dist/checkpoint.test.d.ts.map +1 -0
- package/dist/checkpoint.test.js +137 -0
- package/dist/checkpoint.test.js.map +1 -0
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/index.js +65 -4
- package/dist/index.js.map +1 -1
- package/dist/messages.d.ts +11 -0
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +22 -0
- package/dist/messages.js.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +17 -13
- package/dist/orchestrator.js.map +1 -1
- package/dist/pipeline-config.d.ts.map +1 -1
- package/dist/pipeline-config.js +4 -0
- package/dist/pipeline-config.js.map +1 -1
- package/dist/pipeline-config.test.js +37 -0
- package/dist/pipeline-config.test.js.map +1 -1
- package/dist/pipeline-engine.d.ts +3 -0
- package/dist/pipeline-engine.d.ts.map +1 -1
- package/dist/pipeline-engine.js +179 -68
- package/dist/pipeline-engine.js.map +1 -1
- package/dist/pipeline-types.d.ts +2 -0
- package/dist/pipeline-types.d.ts.map +1 -1
- package/dist/planning-engine.d.ts +5 -1
- package/dist/planning-engine.d.ts.map +1 -1
- package/dist/planning-engine.js +17 -2
- package/dist/planning-engine.js.map +1 -1
- package/dist/progress-tracker.d.ts.map +1 -1
- package/dist/progress-tracker.js +4 -0
- package/dist/progress-tracker.js.map +1 -1
- package/dist/tui-renderer.d.ts +4 -0
- package/dist/tui-renderer.d.ts.map +1 -1
- package/dist/tui-renderer.js +18 -0
- package/dist/tui-renderer.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,4 +9,5 @@ You are a Senior Software Engineer. Your goal is to implement the provided speci
|
|
|
9
9
|
3. **Follow Design:** For frontend tasks, implement the design spec precisely — use the specified components, tokens, and interaction patterns.
|
|
10
10
|
4. **Verify:** Run the build, linter, type checker, and relevant tests using `run_terminal`.
|
|
11
11
|
5. **Fix Defects:** When receiving a QA report, fix all reported issues and verify each fix.
|
|
12
|
-
6. **
|
|
12
|
+
6. **Clarification:** If the specification is ambiguous or missing critical information that blocks implementation, respond with `CLARIFICATION_NEEDED` followed by your specific questions. Use your best judgment for minor ambiguities — only escalate when you truly cannot proceed without an answer.
|
|
13
|
+
7. **Report:** Summarize the files you changed and why.
|
package/defaults/agents/pm.md
CHANGED
|
@@ -7,5 +7,5 @@ You are a Senior Product Manager. Your goal is to analyze requirements and produ
|
|
|
7
7
|
1. **Understand Context:** Use `list_dir` and `read_file` to understand the existing project structure and codebase.
|
|
8
8
|
2. **Write Specs:** Produce specifications with: problem statement, acceptance criteria, technical requirements, edge cases, and out-of-scope items.
|
|
9
9
|
3. **Decompose:** When asked, break specs into independent sub-tasks. Mark frontend-related tasks with `[FRONTEND]`.
|
|
10
|
-
4. **Clarify:** When other agents request clarification, provide precise, unambiguous answers grounded in the original requirements.
|
|
10
|
+
4. **Clarify:** When other agents request clarification, provide precise, unambiguous answers grounded in the original requirements. If the answer is not in the requirements, make a reasonable assumption, state it clearly, and explain your reasoning.
|
|
11
11
|
5. **Report:** Summarize decisions and rationale.
|
|
@@ -1,12 +1,14 @@
|
|
|
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 AnalysisEngine {
|
|
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
|
-
constructor(config: SwarmConfig, pipeline: PipelineConfig, logger: Logger);
|
|
11
|
+
constructor(config: SwarmConfig, pipeline: PipelineConfig, logger: Logger, tracker?: ProgressTracker | undefined);
|
|
10
12
|
start(): Promise<void>;
|
|
11
13
|
stop(): Promise<void>;
|
|
12
14
|
execute(): Promise<void>;
|
|
@@ -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;AAG1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,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;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAoE7D,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAN3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;gBAGvB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,YAAA;IAKtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAiChB,sBAAsB;CAwDrC"}
|
package/dist/analysis-engine.js
CHANGED
|
@@ -69,11 +69,13 @@ export class AnalysisEngine {
|
|
|
69
69
|
config;
|
|
70
70
|
pipeline;
|
|
71
71
|
logger;
|
|
72
|
+
tracker;
|
|
72
73
|
sessions;
|
|
73
|
-
constructor(config, pipeline, logger) {
|
|
74
|
+
constructor(config, pipeline, logger, tracker) {
|
|
74
75
|
this.config = config;
|
|
75
76
|
this.pipeline = pipeline;
|
|
76
77
|
this.logger = logger;
|
|
78
|
+
this.tracker = tracker;
|
|
77
79
|
this.sessions = new SessionManager(config, pipeline, logger);
|
|
78
80
|
}
|
|
79
81
|
async start() {
|
|
@@ -84,11 +86,22 @@ export class AnalysisEngine {
|
|
|
84
86
|
}
|
|
85
87
|
async execute() {
|
|
86
88
|
this.logger.info(msg.analyzeStart);
|
|
89
|
+
const phases = [{ phase: "analyze-architect" }, { phase: "analyze-review" }];
|
|
90
|
+
if (this.pipeline.reviewModel !== this.pipeline.primaryModel) {
|
|
91
|
+
phases.push({ phase: "analyze-architect" }, { phase: "analyze-review" });
|
|
92
|
+
}
|
|
93
|
+
this.tracker?.initPhases(phases);
|
|
87
94
|
// Phase 1: Primary model — architect drafts, senior engineer reviews
|
|
95
|
+
this.tracker?.activatePhase("analyze-architect-0");
|
|
88
96
|
let analysis = await this.runArchitectReviewLoop(this.pipeline.primaryModel);
|
|
97
|
+
this.tracker?.completePhase("analyze-architect-0");
|
|
98
|
+
this.tracker?.completePhase("analyze-review-1");
|
|
89
99
|
// Phase 2: Cross-model — same flow with the review model
|
|
90
100
|
if (this.pipeline.reviewModel !== this.pipeline.primaryModel) {
|
|
101
|
+
this.tracker?.activatePhase("analyze-architect-2");
|
|
91
102
|
analysis = await this.runArchitectReviewLoop(this.pipeline.reviewModel, analysis);
|
|
103
|
+
this.tracker?.completePhase("analyze-architect-2");
|
|
104
|
+
this.tracker?.completePhase("analyze-review-3");
|
|
92
105
|
}
|
|
93
106
|
// Save result
|
|
94
107
|
const dir = analysisDir(this.config);
|
|
@@ -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;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
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;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFA4CoD,CAAC;AAEpF,MAAM,qBAAqB,GAAG;;;;;;;;;;;;yEAY2C,gBAAgB;yJACgE,CAAC;AAE1J,MAAM,OAAO,cAAc;IAIN;IACA;IACA;IACA;IANF,QAAQ,CAAiB;IAE1C,YACmB,MAAmB,EACnB,QAAwB,EACxB,MAAc,EACd,OAAyB;QAHzB,WAAM,GAAN,MAAM,CAAa;QACnB,aAAQ,GAAR,QAAQ,CAAgB;QACxB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAkB;QAE1C,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAwB,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAClG,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAEjC,qEAAqE;QACrE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACnD,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAEhD,yDAAyD;QACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;YACnD,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAClF,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAClD,CAAC;QAED,cAAc;QACd,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACtD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,KAAa,EAAE,gBAAyB;QAC3E,6CAA6C;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEnD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC1G,IAAI,QAAgB,CAAC;QAErB,IAAI,CAAC;YACH,IAAI,gBAAgB,EAAE,CAAC;gBACrB,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjC,gBAAgB,EAChB,+DAA+D;oBAC7D,uFAAuF;oBACvF,yCAAyC;oBACzC,yBAAyB,gBAAgB,EAAE,EAC7C,sCAAsC,KAAK,IAAI,CAChD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjC,gBAAgB,EAChB,qHAAqH,EACrH,sCAAsC,KAAK,IAAI,CAChD,CAAC;YACJ,CAAC;YAED,cAAc;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,qBAAqB,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC;gBAEjE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAC/D,qBAAqB,EACrB,gDAAgD,QAAQ,EAAE,EAC1D,iCAAiC,KAAK,IAAI,EAC1C,KAAK,CACN,CAAC;gBAEF,IAAI,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,CAAC;oBACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBACtC,MAAM;gBACR,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjE,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjC,gBAAgB,EAChB,uCAAuC,QAAQ,gDAAgD,EAC/F,mCAAmC,KAAK,IAAI,CAC7C,CAAC;YACJ,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
|
package/dist/checkpoint.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { SwarmConfig } from "./config.js";
|
|
2
|
+
/** Snapshot of a single review/QA iteration's progress. */
|
|
3
|
+
export interface IterationSnapshot {
|
|
4
|
+
content: string;
|
|
5
|
+
completedIterations: number;
|
|
6
|
+
}
|
|
2
7
|
export interface PipelineCheckpoint {
|
|
3
8
|
completedPhases: string[];
|
|
4
9
|
spec: string;
|
|
@@ -7,6 +12,12 @@ export interface PipelineCheckpoint {
|
|
|
7
12
|
streamResults: string[];
|
|
8
13
|
issueBody: string;
|
|
9
14
|
runId: string;
|
|
15
|
+
/** Phase key that was actively executing when the checkpoint was saved. */
|
|
16
|
+
activePhase?: string;
|
|
17
|
+
/** Draft content produced by the main agent before review loops began. */
|
|
18
|
+
phaseDraft?: string;
|
|
19
|
+
/** Iteration progress within review/QA loops, keyed by stable identifiers. */
|
|
20
|
+
iterationProgress?: Record<string, IterationSnapshot>;
|
|
10
21
|
}
|
|
11
22
|
export declare function saveCheckpoint(config: SwarmConfig, checkpoint: PipelineCheckpoint): Promise<void>;
|
|
12
23
|
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;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;
|
|
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,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,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;IACd,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CACvD;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.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;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,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;AAwBlE,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint.test.d.ts","sourceRoot":"","sources":["../src/checkpoint.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import * as fs from "node:fs/promises";
|
|
2
|
+
import * as os from "node:os";
|
|
3
|
+
import * as path from "node:path";
|
|
4
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
5
|
+
import { clearCheckpoint, loadCheckpoint, saveCheckpoint } from "./checkpoint.js";
|
|
6
|
+
function makeConfig(runId) {
|
|
7
|
+
const tmpDir = path.join(os.tmpdir(), `checkpoint-test-${Date.now()}`);
|
|
8
|
+
return {
|
|
9
|
+
command: "run",
|
|
10
|
+
repoRoot: tmpDir,
|
|
11
|
+
verbose: false,
|
|
12
|
+
resume: false,
|
|
13
|
+
tui: false,
|
|
14
|
+
issueBody: "test",
|
|
15
|
+
agentsDir: ".github/agents",
|
|
16
|
+
swarmDir: ".swarm",
|
|
17
|
+
runId,
|
|
18
|
+
sessionTimeoutMs: 300_000,
|
|
19
|
+
maxRetries: 2,
|
|
20
|
+
maxAutoResume: 3,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const cleanupDirs = [];
|
|
24
|
+
afterEach(async () => {
|
|
25
|
+
for (const dir of cleanupDirs) {
|
|
26
|
+
await fs.rm(dir, { recursive: true, force: true });
|
|
27
|
+
}
|
|
28
|
+
cleanupDirs.length = 0;
|
|
29
|
+
});
|
|
30
|
+
describe("checkpoint round-trip", () => {
|
|
31
|
+
it("saves and loads a basic checkpoint", async () => {
|
|
32
|
+
const config = makeConfig("test-basic");
|
|
33
|
+
cleanupDirs.push(config.repoRoot);
|
|
34
|
+
const checkpoint = {
|
|
35
|
+
completedPhases: ["spec-0", "decompose-1"],
|
|
36
|
+
spec: "test spec",
|
|
37
|
+
tasks: ["task1", "task2"],
|
|
38
|
+
designSpec: "design",
|
|
39
|
+
streamResults: ["result1"],
|
|
40
|
+
issueBody: "test issue",
|
|
41
|
+
runId: "test-basic",
|
|
42
|
+
};
|
|
43
|
+
await saveCheckpoint(config, checkpoint);
|
|
44
|
+
const loaded = await loadCheckpoint(config);
|
|
45
|
+
expect(loaded).toEqual(checkpoint);
|
|
46
|
+
});
|
|
47
|
+
it("saves and loads iteration progress", async () => {
|
|
48
|
+
const config = makeConfig("test-iter");
|
|
49
|
+
cleanupDirs.push(config.repoRoot);
|
|
50
|
+
const checkpoint = {
|
|
51
|
+
completedPhases: ["spec-0"],
|
|
52
|
+
spec: "spec content",
|
|
53
|
+
tasks: ["task1"],
|
|
54
|
+
designSpec: "",
|
|
55
|
+
streamResults: [],
|
|
56
|
+
issueBody: "issue",
|
|
57
|
+
runId: "test-iter",
|
|
58
|
+
activePhase: "design-2",
|
|
59
|
+
phaseDraft: "initial design draft",
|
|
60
|
+
iterationProgress: {
|
|
61
|
+
"review-0": { content: "revised after iteration 1", completedIterations: 1 },
|
|
62
|
+
"review-1": { content: "revised after iteration 2", completedIterations: 2 },
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
await saveCheckpoint(config, checkpoint);
|
|
66
|
+
const loaded = await loadCheckpoint(config);
|
|
67
|
+
expect(loaded).toEqual(checkpoint);
|
|
68
|
+
expect(loaded?.activePhase).toBe("design-2");
|
|
69
|
+
expect(loaded?.phaseDraft).toBe("initial design draft");
|
|
70
|
+
expect(loaded?.iterationProgress?.["review-0"]).toEqual({
|
|
71
|
+
content: "revised after iteration 1",
|
|
72
|
+
completedIterations: 1,
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
it("saves and loads stream-level iteration progress", async () => {
|
|
76
|
+
const config = makeConfig("test-stream-iter");
|
|
77
|
+
cleanupDirs.push(config.repoRoot);
|
|
78
|
+
const checkpoint = {
|
|
79
|
+
completedPhases: ["spec-0", "decompose-1"],
|
|
80
|
+
spec: "spec",
|
|
81
|
+
tasks: ["task1", "task2"],
|
|
82
|
+
designSpec: "design",
|
|
83
|
+
streamResults: ["done", ""],
|
|
84
|
+
issueBody: "issue",
|
|
85
|
+
runId: "test-stream-iter",
|
|
86
|
+
activePhase: "implement-3",
|
|
87
|
+
iterationProgress: {
|
|
88
|
+
"stream-0-code": { content: "initial code for stream 0", completedIterations: 0 },
|
|
89
|
+
"stream-1-code": { content: "initial code for stream 1", completedIterations: 0 },
|
|
90
|
+
"stream-1-review-0": { content: "revised stream 1 code", completedIterations: 1 },
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
await saveCheckpoint(config, checkpoint);
|
|
94
|
+
const loaded = await loadCheckpoint(config);
|
|
95
|
+
expect(loaded?.iterationProgress?.["stream-1-review-0"]).toEqual({
|
|
96
|
+
content: "revised stream 1 code",
|
|
97
|
+
completedIterations: 1,
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
it("omits optional fields when not set", async () => {
|
|
101
|
+
const config = makeConfig("test-no-iter");
|
|
102
|
+
cleanupDirs.push(config.repoRoot);
|
|
103
|
+
const checkpoint = {
|
|
104
|
+
completedPhases: [],
|
|
105
|
+
spec: "",
|
|
106
|
+
tasks: [],
|
|
107
|
+
designSpec: "",
|
|
108
|
+
streamResults: [],
|
|
109
|
+
issueBody: "issue",
|
|
110
|
+
runId: "test-no-iter",
|
|
111
|
+
};
|
|
112
|
+
await saveCheckpoint(config, checkpoint);
|
|
113
|
+
const loaded = await loadCheckpoint(config);
|
|
114
|
+
expect(loaded?.activePhase).toBeUndefined();
|
|
115
|
+
expect(loaded?.phaseDraft).toBeUndefined();
|
|
116
|
+
expect(loaded?.iterationProgress).toBeUndefined();
|
|
117
|
+
});
|
|
118
|
+
it("clears checkpoint", async () => {
|
|
119
|
+
const config = makeConfig("test-clear");
|
|
120
|
+
cleanupDirs.push(config.repoRoot);
|
|
121
|
+
await saveCheckpoint(config, {
|
|
122
|
+
completedPhases: ["spec-0"],
|
|
123
|
+
spec: "s",
|
|
124
|
+
tasks: [],
|
|
125
|
+
designSpec: "",
|
|
126
|
+
streamResults: [],
|
|
127
|
+
issueBody: "i",
|
|
128
|
+
runId: "test-clear",
|
|
129
|
+
activePhase: "design-1",
|
|
130
|
+
iterationProgress: { "review-0": { content: "c", completedIterations: 1 } },
|
|
131
|
+
});
|
|
132
|
+
await clearCheckpoint(config);
|
|
133
|
+
const loaded = await loadCheckpoint(config);
|
|
134
|
+
expect(loaded).toBeNull();
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=checkpoint.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint.test.js","sourceRoot":"","sources":["../src/checkpoint.test.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -154,7 +154,7 @@ export function loadConfig() {
|
|
|
154
154
|
repoRoot,
|
|
155
155
|
verbose: cli.verbose || readEnvBoolean("VERBOSE", false),
|
|
156
156
|
resume: cli.resume,
|
|
157
|
-
tui:
|
|
157
|
+
tui: !cli.noTui && !cli.verbose && process.stdout.isTTY === true,
|
|
158
158
|
issueBody: issueBody ?? "",
|
|
159
159
|
agentsDir: readEnvString("AGENTS_DIR", ".github/agents"),
|
|
160
160
|
swarmDir,
|
package/dist/config.js.map
CHANGED
|
@@ -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
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import * as path from "node:path";
|
|
2
3
|
import { loadConfig } from "./config.js";
|
|
3
4
|
import { Logger } from "./logger.js";
|
|
4
5
|
import { msg } from "./messages.js";
|
|
5
6
|
import { SwarmOrchestrator } from "./orchestrator.js";
|
|
7
|
+
import { analysisDir, plansDir } from "./paths.js";
|
|
6
8
|
import { PlanningEngine } from "./planning-engine.js";
|
|
9
|
+
import { ProgressTracker } from "./progress-tracker.js";
|
|
10
|
+
import { TuiRenderer } from "./tui-renderer.js";
|
|
7
11
|
const config = loadConfig();
|
|
8
12
|
const logger = new Logger(config.verbose, config.runId);
|
|
9
13
|
const showLogOnError = (err) => {
|
|
@@ -12,24 +16,81 @@ const showLogOnError = (err) => {
|
|
|
12
16
|
}
|
|
13
17
|
throw err;
|
|
14
18
|
};
|
|
19
|
+
function fmtElapsed(ms) {
|
|
20
|
+
const sec = Math.floor(ms / 1000);
|
|
21
|
+
const m = Math.floor(sec / 60);
|
|
22
|
+
const s = sec % 60;
|
|
23
|
+
return `${String(m).padStart(2, "0")}:${String(s).padStart(2, "0")}`;
|
|
24
|
+
}
|
|
25
|
+
function printSummary(heading, outputDir, tracker) {
|
|
26
|
+
console.log("");
|
|
27
|
+
console.log(msg.summaryDivider);
|
|
28
|
+
console.log(heading);
|
|
29
|
+
if (tracker) {
|
|
30
|
+
const done = tracker.phases.filter((p) => p.status === "done").length;
|
|
31
|
+
const skipped = tracker.phases.filter((p) => p.status === "skipped").length;
|
|
32
|
+
console.log(msg.summaryPhases(done, tracker.totalPhaseCount, skipped));
|
|
33
|
+
}
|
|
34
|
+
console.log(msg.summaryOutput(outputDir));
|
|
35
|
+
if (logger.logFilePath) {
|
|
36
|
+
console.log(msg.logFileHint(logger.logFilePath));
|
|
37
|
+
}
|
|
38
|
+
console.log(msg.summaryDivider);
|
|
39
|
+
}
|
|
15
40
|
if (config.command === "plan") {
|
|
16
41
|
const pipeline = (await import("./pipeline-config.js")).loadPipelineConfig(config.repoRoot);
|
|
17
|
-
|
|
42
|
+
let tracker;
|
|
43
|
+
let renderer;
|
|
44
|
+
if (config.tui) {
|
|
45
|
+
tracker = new ProgressTracker();
|
|
46
|
+
tracker.runId = config.runId;
|
|
47
|
+
renderer = new TuiRenderer(tracker);
|
|
48
|
+
logger.setTracker(tracker);
|
|
49
|
+
}
|
|
50
|
+
const startMs = Date.now();
|
|
51
|
+
const planner = new PlanningEngine(config, pipeline, logger, tracker, renderer);
|
|
52
|
+
renderer?.start();
|
|
18
53
|
planner
|
|
19
54
|
.start()
|
|
20
55
|
.then(() => planner.execute())
|
|
21
56
|
.catch(showLogOnError)
|
|
22
|
-
.finally(() =>
|
|
57
|
+
.finally(() => {
|
|
58
|
+
renderer?.stop();
|
|
59
|
+
if (tracker)
|
|
60
|
+
logger.setTracker(null);
|
|
61
|
+
planner.stop();
|
|
62
|
+
const elapsed = fmtElapsed(tracker?.elapsedMs ?? Date.now() - startMs);
|
|
63
|
+
const outDir = path.relative(config.repoRoot, plansDir(config));
|
|
64
|
+
printSummary(msg.summaryPlanComplete(elapsed), outDir, tracker);
|
|
65
|
+
});
|
|
23
66
|
}
|
|
24
67
|
else if (config.command === "analyze") {
|
|
25
68
|
const pipeline = (await import("./pipeline-config.js")).loadPipelineConfig(config.repoRoot);
|
|
26
69
|
const { AnalysisEngine } = await import("./analysis-engine.js");
|
|
27
|
-
|
|
70
|
+
let tracker;
|
|
71
|
+
let renderer;
|
|
72
|
+
if (config.tui) {
|
|
73
|
+
tracker = new ProgressTracker();
|
|
74
|
+
tracker.runId = config.runId;
|
|
75
|
+
renderer = new TuiRenderer(tracker);
|
|
76
|
+
logger.setTracker(tracker);
|
|
77
|
+
}
|
|
78
|
+
const startMs = Date.now();
|
|
79
|
+
const analyzer = new AnalysisEngine(config, pipeline, logger, tracker);
|
|
80
|
+
renderer?.start();
|
|
28
81
|
analyzer
|
|
29
82
|
.start()
|
|
30
83
|
.then(() => analyzer.execute())
|
|
31
84
|
.catch(showLogOnError)
|
|
32
|
-
.finally(() =>
|
|
85
|
+
.finally(() => {
|
|
86
|
+
renderer?.stop();
|
|
87
|
+
if (tracker)
|
|
88
|
+
logger.setTracker(null);
|
|
89
|
+
analyzer.stop();
|
|
90
|
+
const elapsed = fmtElapsed(tracker?.elapsedMs ?? Date.now() - startMs);
|
|
91
|
+
const outDir = path.relative(config.repoRoot, analysisDir(config));
|
|
92
|
+
printSummary(msg.summaryAnalyzeComplete(elapsed), outDir, tracker);
|
|
93
|
+
});
|
|
33
94
|
}
|
|
34
95
|
else {
|
|
35
96
|
logger.info(msg.startingSwarm);
|
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/messages.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare const msg: {
|
|
|
18
18
|
readonly streamLabel: (idx: number) => string;
|
|
19
19
|
readonly streamStart: (label: string, task: string) => string;
|
|
20
20
|
readonly streamEngineering: (label: string) => string;
|
|
21
|
+
readonly streamClarification: (label: string) => string;
|
|
21
22
|
readonly streamCodeReview: (label: string, agent: string) => string;
|
|
22
23
|
readonly streamQa: (label: string) => string;
|
|
23
24
|
readonly crossModelSkipped: "\n⏭️ Skipping Cross-Model Review (review model equals primary model).";
|
|
@@ -58,9 +59,19 @@ export declare const msg: {
|
|
|
58
59
|
readonly noCheckpoint: "⚠️ No checkpoint found — starting from the beginning";
|
|
59
60
|
readonly phaseSkipped: (phase: string) => string;
|
|
60
61
|
readonly streamSkipped: (label: string) => string;
|
|
62
|
+
readonly draftResumed: " ⏭️ Resuming from saved draft";
|
|
63
|
+
readonly iterationResumed: (completed: number, max: number) => string;
|
|
61
64
|
readonly partialStreamFailure: (failed: number, total: number) => string;
|
|
62
65
|
readonly autoResumeAttempt: (attempt: number, max: number) => string;
|
|
63
66
|
readonly autoResumeExhausted: (max: number) => string;
|
|
64
67
|
readonly logFileHint: (path: string) => string;
|
|
68
|
+
readonly summaryDivider: string;
|
|
69
|
+
readonly summaryRunSuccess: (elapsed: string) => string;
|
|
70
|
+
readonly summaryRunFailed: (elapsed: string) => string;
|
|
71
|
+
readonly summaryPlanComplete: (elapsed: string) => string;
|
|
72
|
+
readonly summaryAnalyzeComplete: (elapsed: string) => string;
|
|
73
|
+
readonly summaryPhases: (done: number, total: number, skipped: number) => string;
|
|
74
|
+
readonly summaryStreams: (done: number, failed: number, total: number) => string;
|
|
75
|
+
readonly summaryOutput: (path: string) => string;
|
|
65
76
|
};
|
|
66
77
|
//# 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;;;;kCAMV,MAAM;;kCAEN,MAAM,EAAE;;;;;uCASH,MAAM;gCACb,MAAM;kCACJ,MAAM,QAAQ,MAAM;wCACd,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;0CACJ,MAAM;uCACT,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;;2CAEC,MAAM,OAAO,MAAM;4CAClB,MAAM,SAAS,MAAM;0CAEvB,MAAM,OAAO,MAAM;wCAErB,MAAM;iCAIb,MAAM;;0CAIG,MAAM;yCACP,MAAM;4CACH,MAAM;+CACH,MAAM;mCAClB,MAAM,SAAS,MAAM,WAAW,MAAM;oCAKrC,MAAM,UAAU,MAAM,SAAS,MAAM;mCAKtC,MAAM;CACpB,CAAC"}
|
package/dist/messages.js
CHANGED
|
@@ -22,6 +22,7 @@ export const msg = {
|
|
|
22
22
|
streamLabel: (idx) => `Stream ${idx + 1}`,
|
|
23
23
|
streamStart: (label, task) => `\n[${label}: ${task.substring(0, 60)}...]`,
|
|
24
24
|
streamEngineering: (label) => ` [${label}: Engineering]`,
|
|
25
|
+
streamClarification: (label) => ` 🔍 ${label}: Engineer needs clarification — consulting PM...`,
|
|
25
26
|
streamCodeReview: (label, agent) => ` [${label}: Review by ${agent}]`,
|
|
26
27
|
streamQa: (label) => ` [${label}: QA]`,
|
|
27
28
|
// --- Cross-Model Review ---
|
|
@@ -70,10 +71,31 @@ export const msg = {
|
|
|
70
71
|
noCheckpoint: "⚠️ No checkpoint found — starting from the beginning",
|
|
71
72
|
phaseSkipped: (phase) => `⏭️ Skipping ${phase} phase (already completed)`,
|
|
72
73
|
streamSkipped: (label) => ` ⏭️ Skipping ${label} (already completed)`,
|
|
74
|
+
draftResumed: " ⏭️ Resuming from saved draft",
|
|
75
|
+
iterationResumed: (completed, max) => ` ⏭️ Resuming from iteration ${completed}/${max}`,
|
|
73
76
|
partialStreamFailure: (failed, total) => `⚠️ ${failed}/${total} streams failed. Completed streams saved to checkpoint.`,
|
|
74
77
|
autoResumeAttempt: (attempt, max) => `\n🔁 Auto-resuming from checkpoint (attempt ${attempt}/${max})...`,
|
|
75
78
|
autoResumeExhausted: (max) => `\n❌ All ${max} auto-resume attempts exhausted. Use --resume to retry manually.`,
|
|
76
79
|
// --- Log File ---
|
|
77
80
|
logFileHint: (path) => `📋 Full log: ${path}`,
|
|
81
|
+
// --- Completion Summary ---
|
|
82
|
+
summaryDivider: "─".repeat(48),
|
|
83
|
+
summaryRunSuccess: (elapsed) => `✅ Copilot Swarm completed in ${elapsed}`,
|
|
84
|
+
summaryRunFailed: (elapsed) => `❌ Copilot Swarm failed after ${elapsed}`,
|
|
85
|
+
summaryPlanComplete: (elapsed) => `✅ Planning completed in ${elapsed}`,
|
|
86
|
+
summaryAnalyzeComplete: (elapsed) => `✅ Analysis completed in ${elapsed}`,
|
|
87
|
+
summaryPhases: (done, total, skipped) => {
|
|
88
|
+
const parts = [`${done}/${total} phases completed`];
|
|
89
|
+
if (skipped > 0)
|
|
90
|
+
parts.push(`${skipped} skipped`);
|
|
91
|
+
return `📊 ${parts.join(", ")}`;
|
|
92
|
+
},
|
|
93
|
+
summaryStreams: (done, failed, total) => {
|
|
94
|
+
const parts = [`${done}/${total} streams completed`];
|
|
95
|
+
if (failed > 0)
|
|
96
|
+
parts.push(`${failed} failed`);
|
|
97
|
+
return `🔀 ${parts.join(", ")}`;
|
|
98
|
+
},
|
|
99
|
+
summaryOutput: (path) => `📁 Output: ${path}`,
|
|
78
100
|
};
|
|
79
101
|
//# 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":"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"}
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;YAahB,kBAAkB;IAiChC,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,UAAU;CAMnB"}
|
package/dist/orchestrator.js
CHANGED
|
@@ -47,10 +47,9 @@ export class SwarmOrchestrator {
|
|
|
47
47
|
}
|
|
48
48
|
finally {
|
|
49
49
|
this.renderer?.stop();
|
|
50
|
-
if (this.tracker)
|
|
50
|
+
if (this.tracker)
|
|
51
51
|
this.logger.setTracker(null);
|
|
52
|
-
|
|
53
|
-
}
|
|
52
|
+
this.printPostTuiSummary(success);
|
|
54
53
|
}
|
|
55
54
|
}
|
|
56
55
|
async executeWithRetries() {
|
|
@@ -84,21 +83,26 @@ export class SwarmOrchestrator {
|
|
|
84
83
|
throw lastError;
|
|
85
84
|
}
|
|
86
85
|
printPostTuiSummary(success) {
|
|
87
|
-
|
|
88
|
-
return;
|
|
89
|
-
const elapsed = this.fmtElapsed(this.tracker.elapsedMs);
|
|
86
|
+
const elapsed = this.fmtElapsed(this.tracker?.elapsedMs ?? 0);
|
|
90
87
|
const outputDir = path.relative(this.config.repoRoot, runDir(this.config));
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
console.log(
|
|
88
|
+
console.log("");
|
|
89
|
+
console.log(msg.summaryDivider);
|
|
90
|
+
console.log(success ? msg.summaryRunSuccess(elapsed) : msg.summaryRunFailed(elapsed));
|
|
91
|
+
if (this.tracker) {
|
|
92
|
+
const done = this.tracker.phases.filter((p) => p.status === "done").length;
|
|
93
|
+
const skipped = this.tracker.phases.filter((p) => p.status === "skipped").length;
|
|
94
|
+
console.log(msg.summaryPhases(done, this.tracker.totalPhaseCount, skipped));
|
|
95
|
+
if (this.tracker.streams.length > 0) {
|
|
96
|
+
const sDone = this.tracker.streams.filter((s) => s.status === "done").length;
|
|
97
|
+
const sFailed = this.tracker.streams.filter((s) => s.status === "failed").length;
|
|
98
|
+
console.log(msg.summaryStreams(sDone, sFailed, this.tracker.streams.length));
|
|
99
|
+
}
|
|
98
100
|
}
|
|
101
|
+
console.log(msg.summaryOutput(outputDir));
|
|
99
102
|
if (this.logger.logFilePath) {
|
|
100
103
|
console.log(msg.logFileHint(this.logger.logFilePath));
|
|
101
104
|
}
|
|
105
|
+
console.log(msg.summaryDivider);
|
|
102
106
|
}
|
|
103
107
|
fmtElapsed(ms) {
|
|
104
108
|
const sec = Math.floor(ms / 1000);
|