agent-composer 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/evolve/runner.js +37 -11
- package/dist/evolve/runner.js.map +1 -1
- package/dist/providers/CLIProvider.d.ts +5 -0
- package/dist/providers/CLIProvider.js +26 -5
- package/dist/providers/CLIProvider.js.map +1 -1
- package/package.json +1 -1
- package/plugin/composer-mastermind/agents/reviewer.md +7 -4
- package/plugin/composer-mastermind/plugin.json +1 -1
package/dist/evolve/runner.js
CHANGED
|
@@ -65,17 +65,10 @@ export async function runEvolve(opts) {
|
|
|
65
65
|
for (let round = 0; round < maxRounds; round++) {
|
|
66
66
|
const split = rotateHoldout(tasks, round);
|
|
67
67
|
const op = (deps.pickOperator ?? pickOperator)(round);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
parent: text,
|
|
72
|
-
taskTranscripts: [],
|
|
73
|
-
currentEcosystem: preflight.text,
|
|
74
|
-
}),
|
|
75
|
-
};
|
|
76
|
-
let candidate;
|
|
68
|
+
// Evaluate the parent FIRST so the mutation operators + reflection learn
|
|
69
|
+
// from THIS round's failing-task transcripts (the GEPA reflective loop).
|
|
70
|
+
const parentEval = await deps.evaluate(winner, split.trainVal);
|
|
77
71
|
try {
|
|
78
|
-
candidate = await op.apply(winner, ctx);
|
|
79
72
|
charge();
|
|
80
73
|
}
|
|
81
74
|
catch (e) {
|
|
@@ -85,8 +78,24 @@ export async function runEvolve(opts) {
|
|
|
85
78
|
}
|
|
86
79
|
throw e;
|
|
87
80
|
}
|
|
88
|
-
const
|
|
81
|
+
const failing = parentEval.transcripts.filter((t) => t.outcome.startsWith("fail"));
|
|
82
|
+
const failNote = failing.length > 0
|
|
83
|
+
? `Task "${failing[0].task}" failed — ${failing[0].outcome}`
|
|
84
|
+
: undefined;
|
|
85
|
+
const ctx = {
|
|
86
|
+
currentEcosystem: preflight.text,
|
|
87
|
+
counterexample: failNote,
|
|
88
|
+
constraint: failNote,
|
|
89
|
+
negativeExample: failNote,
|
|
90
|
+
reflect: (text) => reflectViaProvider(deps.reflectionProvider, {
|
|
91
|
+
parent: text,
|
|
92
|
+
taskTranscripts: failing,
|
|
93
|
+
currentEcosystem: preflight.text,
|
|
94
|
+
}),
|
|
95
|
+
};
|
|
96
|
+
let candidate;
|
|
89
97
|
try {
|
|
98
|
+
candidate = await op.apply(winner, ctx);
|
|
90
99
|
charge();
|
|
91
100
|
}
|
|
92
101
|
catch (e) {
|
|
@@ -96,6 +105,23 @@ export async function runEvolve(opts) {
|
|
|
96
105
|
}
|
|
97
106
|
throw e;
|
|
98
107
|
}
|
|
108
|
+
// No-op guard: data-driven operators (add_counterexample / add_constraint /
|
|
109
|
+
// add_negative_example) return the skill unchanged when the runner has not
|
|
110
|
+
// supplied their input (counterexample / constraint / negativeExample —
|
|
111
|
+
// which requires failing-task transcripts). Evaluating an identical
|
|
112
|
+
// candidate only yields variance-driven false promotions, so skip it and
|
|
113
|
+
// surface the starved operator in history.
|
|
114
|
+
if (candidate === winner) {
|
|
115
|
+
history.push({
|
|
116
|
+
round,
|
|
117
|
+
operator: op.name,
|
|
118
|
+
parentScore: 0,
|
|
119
|
+
candidateScore: 0,
|
|
120
|
+
promoted: false,
|
|
121
|
+
reason: "no-op mutation (operator input data missing — needs failing-task transcript) — skipped",
|
|
122
|
+
});
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
99
125
|
const candEval = await deps.evaluate(candidate, split.trainVal);
|
|
100
126
|
try {
|
|
101
127
|
charge();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/evolve/runner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/evolve/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,8 @@ export interface CLIProviderOptions {
|
|
|
14
14
|
model?: string;
|
|
15
15
|
timeoutMs?: number;
|
|
16
16
|
maxBuffer?: number;
|
|
17
|
+
/** Retry attempts on transient failure (timeout / empty / rate-limit). Default 2. */
|
|
18
|
+
retries?: number;
|
|
17
19
|
/** Override execFile for tests. */
|
|
18
20
|
execFn?: ExecFileFn;
|
|
19
21
|
}
|
|
@@ -24,7 +26,10 @@ export declare class CLIProvider implements IProvider {
|
|
|
24
26
|
private readonly exec;
|
|
25
27
|
private readonly timeoutMs;
|
|
26
28
|
private readonly maxBuffer;
|
|
29
|
+
private readonly retries;
|
|
27
30
|
constructor(opts: CLIProviderOptions);
|
|
28
31
|
healthCheck(): Promise<boolean>;
|
|
29
32
|
execute(input: IProviderExecuteInput): Promise<IProviderExecuteOutput>;
|
|
33
|
+
/** Output signalling a retryable transient failure (timeout / rate-limit / empty). */
|
|
34
|
+
static isTransientFailure(stdout: string): boolean;
|
|
30
35
|
}
|
|
@@ -64,6 +64,7 @@ const DEFAULT_EXEC = (file, args, options) => new Promise((resolve, reject) => {
|
|
|
64
64
|
});
|
|
65
65
|
const DEFAULT_TIMEOUT_MS = 5 * 60_000; // 5 min — matches tdd_plan.md §6 per-experiment budget cap.
|
|
66
66
|
const DEFAULT_MAX_BUFFER = 32 * 1024 * 1024; // 32 MB.
|
|
67
|
+
const DEFAULT_RETRIES = 2; // agy/CLI agents occasionally "time out waiting for response" — retry transient failures.
|
|
67
68
|
export class CLIProvider {
|
|
68
69
|
id = "cli";
|
|
69
70
|
modelLabel;
|
|
@@ -71,6 +72,7 @@ export class CLIProvider {
|
|
|
71
72
|
exec;
|
|
72
73
|
timeoutMs;
|
|
73
74
|
maxBuffer;
|
|
75
|
+
retries;
|
|
74
76
|
constructor(opts) {
|
|
75
77
|
if (!opts.cli || opts.cli.length === 0) {
|
|
76
78
|
throw new Error("CLIProvider: cli argv must contain at least 1 element (binary path)");
|
|
@@ -81,6 +83,7 @@ export class CLIProvider {
|
|
|
81
83
|
this.exec = opts.execFn ?? DEFAULT_EXEC;
|
|
82
84
|
this.timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
83
85
|
this.maxBuffer = opts.maxBuffer ?? DEFAULT_MAX_BUFFER;
|
|
86
|
+
this.retries = opts.retries ?? DEFAULT_RETRIES;
|
|
84
87
|
}
|
|
85
88
|
async healthCheck() {
|
|
86
89
|
// Spawning the binary just to probe would block. Caller is expected
|
|
@@ -96,11 +99,29 @@ export class CLIProvider {
|
|
|
96
99
|
throw new Error("CLIProvider: argv missing binary");
|
|
97
100
|
}
|
|
98
101
|
const args = [...staticArgs, fullPrompt];
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
let lastError;
|
|
103
|
+
for (let attempt = 0; attempt <= this.retries; attempt++) {
|
|
104
|
+
try {
|
|
105
|
+
const { stdout } = await this.exec(bin, args, {
|
|
106
|
+
maxBuffer: this.maxBuffer,
|
|
107
|
+
timeout: this.timeoutMs,
|
|
108
|
+
});
|
|
109
|
+
if (CLIProvider.isTransientFailure(stdout)) {
|
|
110
|
+
lastError = new Error(`CLIProvider: '${bin}' transient failure on attempt ${attempt + 1}: ${stdout.trim().slice(0, 200)}`);
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
return { text: stdout };
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
lastError = err instanceof Error ? err : new Error(String(err));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
throw (lastError ??
|
|
120
|
+
new Error(`CLIProvider: '${bin}' failed after ${this.retries + 1} attempts`));
|
|
121
|
+
}
|
|
122
|
+
/** Output signalling a retryable transient failure (timeout / rate-limit / empty). */
|
|
123
|
+
static isTransientFailure(stdout) {
|
|
124
|
+
return /timed out waiting for response|rate limit|temporarily unavailable|ECONNRESET|overloaded|503\b/i.test(stdout);
|
|
104
125
|
}
|
|
105
126
|
}
|
|
106
127
|
//# sourceMappingURL=CLIProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CLIProvider.js","sourceRoot":"","sources":["../../src/providers/CLIProvider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CLIProvider.js","sourceRoot":"","sources":["../../src/providers/CLIProvider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -15,10 +15,13 @@ findings.
|
|
|
15
15
|
patch (`diff`).
|
|
16
16
|
- Use `Read` / `Glob` to load surrounding files when the diff alone is
|
|
17
17
|
insufficient context for the reviewer provider.
|
|
18
|
-
- In the `prompt` to `composer_review`,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
- In the `prompt` to `composer_review`, you MUST (a) include the changed
|
|
19
|
+
file CONTENT or diff inline — never just a path (agy will otherwise search
|
|
20
|
+
the filesystem and time out), and (b) tell it explicitly to run
|
|
21
|
+
`npx tsc --noEmit` and any existing tests **in the current directory** and
|
|
22
|
+
report the **verbatim** output. Include pass/fail in the findings; if no
|
|
23
|
+
tests/types exist, say so. (Real repo only — a bare worktree lacks
|
|
24
|
+
node_modules; tests won't run there.)
|
|
22
25
|
- Call `mcp__composer__composer_review` once.
|
|
23
26
|
- Return the tool output verbatim (findings, severity, line refs, test results).
|
|
24
27
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "composer-mastermind",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "Multi-agent orchestrator: Claude as brain, GLM/agy as executors. Dispatches code/research/review work to subagents wired through the @composer-mcp/server MCP server.",
|
|
5
5
|
"claudeCodeVersion": ">=4.6",
|
|
6
6
|
"requires": [
|