poe-code 3.0.114 → 3.0.116-beta.1
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 +13 -13
- package/dist/cli/command-not-found.js +3 -1
- package/dist/cli/command-not-found.js.map +1 -1
- package/dist/cli/commands/pipeline.js +24 -1
- package/dist/cli/commands/pipeline.js.map +1 -1
- package/dist/cli/commands/ralph.js +241 -62
- package/dist/cli/commands/ralph.js.map +1 -1
- package/dist/cli/commands/version.js +1 -1
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/program.js +6 -1
- package/dist/cli/program.js.map +1 -1
- package/dist/index.js +1192 -750
- package/dist/index.js.map +4 -4
- package/dist/providers/claude-code.js +24 -24
- package/dist/providers/claude-code.js.map +1 -1
- package/dist/providers/codex.js +28 -28
- package/dist/providers/codex.js.map +2 -2
- package/dist/providers/kimi.js +24 -24
- package/dist/providers/kimi.js.map +1 -1
- package/dist/providers/opencode.js +28 -28
- package/dist/providers/opencode.js.map +2 -2
- package/dist/providers/poe-agent.js.map +1 -1
- package/dist/sdk/pipeline.d.ts +1 -0
- package/dist/sdk/pipeline.js +1 -0
- package/dist/sdk/pipeline.js.map +1 -1
- package/dist/sdk/ralph.d.ts +1 -1
- package/dist/sdk/ralph.js.map +1 -1
- package/dist/services/config.d.ts +30 -0
- package/dist/services/config.js +17 -1
- package/dist/services/config.js.map +1 -1
- package/dist/templates/pipeline/SKILL_plan.md +5 -6
- package/dist/tools/label-generator.js +1 -1
- package/dist/utils/command-checks.d.ts +1 -1
- package/dist/utils/command-checks.js +1 -1
- package/dist/utils/execution-context.js +5 -5
- package/dist/utils/execution-context.js.map +1 -1
- package/package.json +41 -41
package/README.md
CHANGED
|
@@ -4,21 +4,21 @@
|
|
|
4
4
|
<h1>Poe Code ⚡</h1>
|
|
5
5
|
|
|
6
6
|
<a href="https://poe.com"><img src="https://img.shields.io/badge/Poe-Sign up-purple?logo=poe&logoColor=white&color=5D5CDE&style=for-the-badge" alt="Discord"></a>
|
|
7
|
-
<a href="https://
|
|
7
|
+
<a href="https://github.com/poe-platform/poe-code/releases"><img alt="Latest release" src="https://img.shields.io/github/v/release/poe-platform/poe-code?style=for-the-badge&color=09B16B"></a>
|
|
8
8
|
<a href="https://discord.gg/joinpoe"><img src="https://img.shields.io/badge/Discord-Join-purple?logo=discord&logoColor=white&color=FF44D3&style=for-the-badge" alt="Discord"></a>
|
|
9
9
|
|
|
10
10
|
</div>
|
|
11
11
|
|
|
12
12
|
Power your favorite coding agents (Claude Code, Codex, OpenCode, and more) with your Poe subscription—**no need to handle multiple providers/accounts.** Poe Code routes everything through the [Poe API](https://poe.com/api) .
|
|
13
13
|
|
|
14
|
-
Use it on a single session (`
|
|
14
|
+
Use it on a single session (`bunx poe-code@latest wrap claude`) or configure it as your default and use your tools normally.
|
|
15
15
|
|
|
16
16
|
## Quickstart
|
|
17
17
|
|
|
18
18
|
Start a coding session routing all your `claude` calls to Poe
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
|
|
21
|
+
bunx poe-code@latest wrap claude
|
|
22
22
|
# Also available: codex, opencode, kimi
|
|
23
23
|
```
|
|
24
24
|
|
|
@@ -30,16 +30,16 @@ This updates the provider’s config files and continue using your tools normall
|
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
32
|
# Start the interactive setup
|
|
33
|
-
|
|
33
|
+
bunx poe-code@latest configure
|
|
34
34
|
|
|
35
35
|
# Setup a specific agent
|
|
36
|
-
|
|
36
|
+
bunx poe-code@latest configure codex # (or claude, opencode, kimi)
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
### Unconfigure (remove overrides)
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
|
-
|
|
42
|
+
bunx poe-code@latest unconfigure claude
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
### Logout (remove config + credentials)
|
|
@@ -64,35 +64,35 @@ Utilities are especially useful for scripting and CI/CD.
|
|
|
64
64
|
#### Spawn a one-off prompt
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
|
|
67
|
+
bunx poe-code@latest spawn codex "Say hello"
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
#### Spawn a prompt via stdin
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
echo "Say hello" |
|
|
73
|
+
echo "Say hello" | bunx poe-code@latest spawn codex
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
#### Test a configured service
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
|
|
79
|
+
bunx poe-code@latest test codex
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
### Install agent CLIs
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
85
|
# Claude Code
|
|
86
|
-
|
|
86
|
+
bunx poe-code@latest install claude-code
|
|
87
87
|
|
|
88
88
|
# Codex
|
|
89
|
-
|
|
89
|
+
bunx poe-code@latest install codex
|
|
90
90
|
|
|
91
91
|
# OpenCode
|
|
92
|
-
|
|
92
|
+
bunx poe-code@latest install opencode
|
|
93
93
|
|
|
94
94
|
# Kimi
|
|
95
|
-
|
|
95
|
+
bunx poe-code@latest install kimi
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
### Optional flags
|
|
@@ -28,7 +28,9 @@ export function throwCommandNotFound(input) {
|
|
|
28
28
|
else {
|
|
29
29
|
logger.error(`${panel.label}\n${panel.footer}`);
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
if (container.dependencies.exitOverride === false) {
|
|
32
|
+
process.exitCode = 1;
|
|
33
|
+
}
|
|
32
34
|
throw new SilentError();
|
|
33
35
|
}
|
|
34
36
|
//# sourceMappingURL=command-not-found.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-not-found.js","sourceRoot":"","sources":["../../src/cli/command-not-found.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE7F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,oBAAoB,CAAC,KAMpC;IACC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAExE,MAAM,OAAO,GAAG,sBAAsB,CAAC;QACrC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS;QAC5B,SAAS;KACV,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,0BAA0B,CAAC;QACvC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,KAAK,oBAAoB;QAC3E,cAAc;QACd,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC;QAC5C,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,KAAK;QACd,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC;IACrE,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QAC5D,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"command-not-found.js","sourceRoot":"","sources":["../../src/cli/command-not-found.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE7F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,oBAAoB,CAAC,KAMpC;IACC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAExE,MAAM,OAAO,GAAG,sBAAsB,CAAC;QACrC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS;QAC5B,SAAS;KACV,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,0BAA0B,CAAC;QACvC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,KAAK,oBAAoB;QAC3E,cAAc;QACd,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC;QAC5C,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,KAAK;QACd,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC;IACrE,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QAC5D,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,SAAS,CAAC,YAAY,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,IAAI,WAAW,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -4,10 +4,18 @@ import { fileURLToPath } from "node:url";
|
|
|
4
4
|
import { cancel, isCancel, promptText, select } from "@poe-code/design-system";
|
|
5
5
|
import { resolveAgentId } from "@poe-code/agent-defs";
|
|
6
6
|
import { installSkill, resolveAgentSupport, supportedAgents } from "@poe-code/agent-skill-config";
|
|
7
|
+
import { readMergedDocument, resolveScope } from "@poe-code/poe-code-config";
|
|
8
|
+
import { pipelineConfigScope } from "../../services/config.js";
|
|
7
9
|
import { ValidationError } from "../errors.js";
|
|
8
10
|
import { createExecutionResources, resolveCommandFlags } from "./shared.js";
|
|
9
11
|
import { runPipeline as sdkRunPipeline } from "../../sdk/pipeline.js";
|
|
10
|
-
import { loadResolvedSteps, parsePlan, resolveAbsolutePlanPath } from "@poe-code/pipeline";
|
|
12
|
+
import { loadResolvedSteps, parsePlan, resolveAbsolutePlanPath, resolvePlanDirectory } from "@poe-code/pipeline";
|
|
13
|
+
async function resolvePipelinePlanDirectory(container) {
|
|
14
|
+
const configDoc = await readMergedDocument(container.fs, container.env.configPath, container.env.projectConfigPath);
|
|
15
|
+
const pipelineConfig = resolveScope(pipelineConfigScope.schema, configDoc[pipelineConfigScope.scope], container.env.variables);
|
|
16
|
+
const dir = pipelineConfig.plan_directory?.trim();
|
|
17
|
+
return dir || undefined;
|
|
18
|
+
}
|
|
11
19
|
function formatDuration(ms) {
|
|
12
20
|
const totalSeconds = Math.round(ms / 1000);
|
|
13
21
|
const minutes = Math.floor(totalSeconds / 60);
|
|
@@ -153,10 +161,12 @@ export function registerPipelineCommand(program, container) {
|
|
|
153
161
|
}
|
|
154
162
|
agent = resolvePipelineAgent(selected);
|
|
155
163
|
}
|
|
164
|
+
const planDirectory = await resolvePipelinePlanDirectory(container);
|
|
156
165
|
const result = await sdkRunPipeline({
|
|
157
166
|
agent,
|
|
158
167
|
cwd: container.env.cwd,
|
|
159
168
|
homeDir: container.env.homeDir,
|
|
169
|
+
...(planDirectory ? { planDirectory } : {}),
|
|
160
170
|
...(options.model ? { model: options.model } : {}),
|
|
161
171
|
...(options.task ? { task: options.task } : {}),
|
|
162
172
|
...(options.plan ? { plan: options.plan } : {}),
|
|
@@ -282,6 +292,19 @@ export function registerPipelineCommand(program, container) {
|
|
|
282
292
|
resources.context.finalize();
|
|
283
293
|
}
|
|
284
294
|
});
|
|
295
|
+
pipeline
|
|
296
|
+
.command("plan-path")
|
|
297
|
+
.description("Print the directory where pipeline plan files should be placed.")
|
|
298
|
+
.action(async function () {
|
|
299
|
+
const planDirectory = await resolvePipelinePlanDirectory(container);
|
|
300
|
+
const resolvedPath = await resolvePlanDirectory({
|
|
301
|
+
cwd: container.env.cwd,
|
|
302
|
+
homeDir: container.env.homeDir,
|
|
303
|
+
planDirectory,
|
|
304
|
+
fs: container.fs
|
|
305
|
+
});
|
|
306
|
+
process.stdout.write(`${resolvedPath}\n`);
|
|
307
|
+
});
|
|
285
308
|
pipeline
|
|
286
309
|
.command("install")
|
|
287
310
|
.description("Install the Pipeline /plan skill and scaffold pipeline files.")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/cli/commands/pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/cli/commands/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,28 @@
|
|
|
1
|
-
import
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { cancel, isCancel, promptText, select, text as designText } from "@poe-code/design-system";
|
|
2
3
|
import { resolveAgentId } from "@poe-code/agent-defs";
|
|
3
4
|
import { allSpawnConfigs } from "@poe-code/agent-spawn";
|
|
4
|
-
import { discoverDocs } from "@poe-code/ralph";
|
|
5
|
+
import { discoverDocs, parseFrontmatter, writeFrontmatter } from "@poe-code/ralph";
|
|
6
|
+
import { readMergedDocument, resolveScope } from "@poe-code/poe-code-config";
|
|
7
|
+
import { ralphConfigScope } from "../../services/config.js";
|
|
5
8
|
import { ValidationError } from "../errors.js";
|
|
6
9
|
import { createExecutionResources, resolveCommandFlags } from "./shared.js";
|
|
7
10
|
import { runRalph as sdkRunRalph } from "../../sdk/ralph.js";
|
|
8
11
|
const DEFAULT_RALPH_AGENT = "claude-code";
|
|
12
|
+
const DEFAULT_RALPH_ITERATIONS = 3;
|
|
9
13
|
function formatDuration(ms) {
|
|
10
14
|
const totalSeconds = Math.round(ms / 1000);
|
|
11
15
|
const minutes = Math.floor(totalSeconds / 60);
|
|
12
16
|
const seconds = totalSeconds % 60;
|
|
13
17
|
return minutes > 0 ? `${minutes}m ${seconds}s` : `${seconds}s`;
|
|
14
18
|
}
|
|
15
|
-
function resolveRalphAgent(value) {
|
|
19
|
+
function resolveRalphAgent(value, sourceLabel = "agent") {
|
|
16
20
|
if (!value || value.trim().length === 0) {
|
|
17
21
|
return DEFAULT_RALPH_AGENT;
|
|
18
22
|
}
|
|
19
23
|
const resolved = resolveAgentId(value.trim());
|
|
20
24
|
if (!resolved) {
|
|
21
|
-
throw new ValidationError(`Unsupported
|
|
25
|
+
throw new ValidationError(`Unsupported ${sourceLabel}: ${value}`);
|
|
22
26
|
}
|
|
23
27
|
return resolved;
|
|
24
28
|
}
|
|
@@ -32,26 +36,53 @@ function parsePositiveInt(value, fieldName) {
|
|
|
32
36
|
}
|
|
33
37
|
return parsed;
|
|
34
38
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
function normalizeConfiguredIterations(value) {
|
|
40
|
+
return typeof value === "number" && Number.isInteger(value) && value >= 1
|
|
41
|
+
? value
|
|
42
|
+
: undefined;
|
|
43
|
+
}
|
|
44
|
+
function resolveAbsoluteDocPath(container, docPath) {
|
|
45
|
+
if (docPath.startsWith("~/")) {
|
|
46
|
+
return path.join(container.env.homeDir, docPath.slice(2));
|
|
38
47
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
48
|
+
return path.isAbsolute(docPath)
|
|
49
|
+
? docPath
|
|
50
|
+
: path.resolve(container.env.cwd, docPath);
|
|
51
|
+
}
|
|
52
|
+
async function resolvePlanDirectory(container) {
|
|
53
|
+
const configDoc = await readMergedDocument(container.fs, container.env.configPath, container.env.projectConfigPath);
|
|
54
|
+
const ralphConfig = resolveScope(ralphConfigScope.schema, configDoc[ralphConfigScope.scope], container.env.variables);
|
|
55
|
+
const configDir = ralphConfig.plan_directory?.trim();
|
|
56
|
+
return configDir || undefined;
|
|
57
|
+
}
|
|
58
|
+
function formatDocHint(frontmatter) {
|
|
59
|
+
const parts = [];
|
|
60
|
+
if (frontmatter.agent !== undefined) {
|
|
61
|
+
const agents = Array.isArray(frontmatter.agent)
|
|
62
|
+
? frontmatter.agent
|
|
63
|
+
: [frontmatter.agent];
|
|
64
|
+
if (agents.length > 0) {
|
|
65
|
+
parts.push(agents.join(", "));
|
|
66
|
+
}
|
|
42
67
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
68
|
+
if (frontmatter.iterations !== undefined) {
|
|
69
|
+
parts.push(`×${frontmatter.iterations}`);
|
|
70
|
+
}
|
|
71
|
+
if (frontmatter.status.state !== "open" || frontmatter.status.iteration > 0) {
|
|
72
|
+
parts.push(`${frontmatter.status.state} ${frontmatter.status.iteration}`);
|
|
73
|
+
}
|
|
74
|
+
return parts.length > 0 ? parts.join(" · ") : undefined;
|
|
75
|
+
}
|
|
76
|
+
async function readDocHint(container, docPath) {
|
|
77
|
+
const absolutePath = resolveAbsoluteDocPath(container, docPath);
|
|
78
|
+
try {
|
|
79
|
+
const content = await container.fs.readFile(absolutePath, "utf8");
|
|
80
|
+
const { data } = parseFrontmatter(content);
|
|
81
|
+
return formatDocHint(data);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return undefined;
|
|
53
85
|
}
|
|
54
|
-
return resolveRalphAgent(typeof selected === "string" ? selected : undefined);
|
|
55
86
|
}
|
|
56
87
|
async function resolveDocPath(options) {
|
|
57
88
|
if (options.providedDoc && options.providedDoc.trim().length > 0) {
|
|
@@ -60,6 +91,7 @@ async function resolveDocPath(options) {
|
|
|
60
91
|
const docs = await discoverDocs({
|
|
61
92
|
cwd: options.container.env.cwd,
|
|
62
93
|
homeDir: options.container.env.homeDir,
|
|
94
|
+
planDirectory: options.planDirectory,
|
|
63
95
|
fs: options.container.fs
|
|
64
96
|
});
|
|
65
97
|
if (docs.length === 0) {
|
|
@@ -69,10 +101,11 @@ async function resolveDocPath(options) {
|
|
|
69
101
|
if (flags.assumeYes) {
|
|
70
102
|
return docs[0].path;
|
|
71
103
|
}
|
|
104
|
+
const hints = await Promise.all(docs.map((doc) => readDocHint(options.container, doc.path)));
|
|
72
105
|
const selected = await select({
|
|
73
106
|
message: "Select the Ralph markdown doc to run:",
|
|
74
|
-
options: docs.map((doc) => ({
|
|
75
|
-
label: doc.displayPath,
|
|
107
|
+
options: docs.map((doc, index) => ({
|
|
108
|
+
label: designText.selectLabel(doc.displayPath, hints[index]),
|
|
76
109
|
value: doc.path
|
|
77
110
|
}))
|
|
78
111
|
});
|
|
@@ -82,14 +115,73 @@ async function resolveDocPath(options) {
|
|
|
82
115
|
}
|
|
83
116
|
return typeof selected === "string" ? selected : null;
|
|
84
117
|
}
|
|
85
|
-
async function
|
|
118
|
+
async function readRalphDoc(container, docPath) {
|
|
119
|
+
const absolutePath = resolveAbsoluteDocPath(container, docPath);
|
|
120
|
+
try {
|
|
121
|
+
const content = await container.fs.readFile(absolutePath, "utf8");
|
|
122
|
+
const parsed = parseFrontmatter(content);
|
|
123
|
+
return {
|
|
124
|
+
absolutePath,
|
|
125
|
+
body: parsed.body,
|
|
126
|
+
data: parsed.data
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
throw new ValidationError(`Ralph doc not found: ${docPath}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function resolveConfiguredAgents(value) {
|
|
134
|
+
if (value === undefined) {
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
if (typeof value === "string") {
|
|
138
|
+
return resolveRalphAgent(value, "frontmatter agent");
|
|
139
|
+
}
|
|
140
|
+
if (value.length === 0) {
|
|
141
|
+
throw new ValidationError("Frontmatter agent array must not be empty.");
|
|
142
|
+
}
|
|
143
|
+
return value.map((entry) => resolveRalphAgent(entry, "frontmatter agent"));
|
|
144
|
+
}
|
|
145
|
+
async function promptForAgent(program) {
|
|
146
|
+
const flags = resolveCommandFlags(program);
|
|
147
|
+
if (flags.assumeYes) {
|
|
148
|
+
return DEFAULT_RALPH_AGENT;
|
|
149
|
+
}
|
|
150
|
+
const selected = await select({
|
|
151
|
+
message: "Select agent to run Ralph with:",
|
|
152
|
+
options: allSpawnConfigs.map((config) => ({
|
|
153
|
+
label: config.agentId,
|
|
154
|
+
value: config.agentId
|
|
155
|
+
}))
|
|
156
|
+
});
|
|
157
|
+
if (isCancel(selected)) {
|
|
158
|
+
cancel("Ralph run cancelled.");
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
return resolveRalphAgent(typeof selected === "string" ? selected : undefined);
|
|
162
|
+
}
|
|
163
|
+
async function resolveRunAgent(options) {
|
|
164
|
+
if (options.providedAgent) {
|
|
165
|
+
return resolveRalphAgent(options.providedAgent);
|
|
166
|
+
}
|
|
167
|
+
const configured = resolveConfiguredAgents(options.frontmatterAgent);
|
|
168
|
+
if (configured !== undefined) {
|
|
169
|
+
return configured;
|
|
170
|
+
}
|
|
171
|
+
return promptForAgent(options.program);
|
|
172
|
+
}
|
|
173
|
+
async function resolveRunIterations(options) {
|
|
86
174
|
const explicitIterations = parsePositiveInt(options.providedIterations, "iterations");
|
|
87
175
|
if (explicitIterations != null) {
|
|
88
176
|
return explicitIterations;
|
|
89
177
|
}
|
|
178
|
+
const configuredIterations = normalizeConfiguredIterations(options.frontmatterIterations);
|
|
179
|
+
if (configuredIterations != null) {
|
|
180
|
+
return configuredIterations;
|
|
181
|
+
}
|
|
90
182
|
const flags = resolveCommandFlags(options.program);
|
|
91
183
|
if (flags.assumeYes) {
|
|
92
|
-
|
|
184
|
+
return DEFAULT_RALPH_ITERATIONS;
|
|
93
185
|
}
|
|
94
186
|
const entered = await promptText({
|
|
95
187
|
message: "How many Ralph iterations should run?"
|
|
@@ -100,47 +192,159 @@ async function resolveIterations(options) {
|
|
|
100
192
|
}
|
|
101
193
|
return parsePositiveInt(typeof entered === "string" ? entered.trim() : undefined, "iterations") ?? null;
|
|
102
194
|
}
|
|
195
|
+
async function resolveInitAgent(options) {
|
|
196
|
+
if (options.providedAgent) {
|
|
197
|
+
return resolveRalphAgent(options.providedAgent);
|
|
198
|
+
}
|
|
199
|
+
return promptForAgent(options.program);
|
|
200
|
+
}
|
|
201
|
+
async function resolveInitIterations(options) {
|
|
202
|
+
const explicitIterations = parsePositiveInt(options.providedIterations, "iterations");
|
|
203
|
+
if (explicitIterations != null) {
|
|
204
|
+
return explicitIterations;
|
|
205
|
+
}
|
|
206
|
+
const flags = resolveCommandFlags(options.program);
|
|
207
|
+
if (flags.assumeYes) {
|
|
208
|
+
return DEFAULT_RALPH_ITERATIONS;
|
|
209
|
+
}
|
|
210
|
+
const entered = await promptText({
|
|
211
|
+
message: "How many Ralph iterations should run?"
|
|
212
|
+
});
|
|
213
|
+
if (isCancel(entered)) {
|
|
214
|
+
cancel("Ralph init cancelled.");
|
|
215
|
+
return null;
|
|
216
|
+
}
|
|
217
|
+
return parsePositiveInt(typeof entered === "string" ? entered.trim() : undefined, "iterations") ?? null;
|
|
218
|
+
}
|
|
219
|
+
function formatCurrentConfig(frontmatter) {
|
|
220
|
+
if (frontmatter.agent === undefined && frontmatter.iterations === undefined) {
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
223
|
+
const items = [];
|
|
224
|
+
if (frontmatter.iterations !== undefined) {
|
|
225
|
+
items.push(String(frontmatter.iterations));
|
|
226
|
+
}
|
|
227
|
+
const agentList = expandAgentList(frontmatter.agent, frontmatter.iterations);
|
|
228
|
+
if (agentList.length > 0) {
|
|
229
|
+
items.push(...agentList);
|
|
230
|
+
}
|
|
231
|
+
return items.length > 0 ? `Current: ${items.join(", ")}` : null;
|
|
232
|
+
}
|
|
233
|
+
function expandAgentList(agent, iterations) {
|
|
234
|
+
if (agent === undefined) {
|
|
235
|
+
return [];
|
|
236
|
+
}
|
|
237
|
+
if (typeof agent === "string") {
|
|
238
|
+
const count = normalizeConfiguredIterations(iterations) ?? 1;
|
|
239
|
+
return Array.from({ length: count }, () => agent);
|
|
240
|
+
}
|
|
241
|
+
if (agent.length === 0) {
|
|
242
|
+
return [];
|
|
243
|
+
}
|
|
244
|
+
const count = normalizeConfiguredIterations(iterations) ?? agent.length;
|
|
245
|
+
return Array.from({ length: count }, (_, index) => agent[index % agent.length]);
|
|
246
|
+
}
|
|
103
247
|
export function registerRalphCommand(program, container) {
|
|
104
248
|
const ralph = program
|
|
105
249
|
.command("ralph")
|
|
106
250
|
.description("Run a simple iterative markdown loop.");
|
|
251
|
+
ralph
|
|
252
|
+
.command("init")
|
|
253
|
+
.description("Write Ralph config into an existing markdown doc frontmatter.")
|
|
254
|
+
.argument("[doc]", "Markdown doc path")
|
|
255
|
+
.option("--agent <name>", "Agent to write into frontmatter")
|
|
256
|
+
.option("--iterations <n>", "Number of iterations to write into frontmatter")
|
|
257
|
+
.action(async function (docArg) {
|
|
258
|
+
const flags = resolveCommandFlags(program);
|
|
259
|
+
const resources = createExecutionResources(container, flags, "ralph:init");
|
|
260
|
+
const options = this.opts();
|
|
261
|
+
resources.logger.intro("ralph init");
|
|
262
|
+
try {
|
|
263
|
+
const planDirectory = await resolvePlanDirectory(container);
|
|
264
|
+
const docPath = await resolveDocPath({
|
|
265
|
+
container,
|
|
266
|
+
program,
|
|
267
|
+
providedDoc: docArg,
|
|
268
|
+
planDirectory
|
|
269
|
+
});
|
|
270
|
+
if (!docPath) {
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
const doc = await readRalphDoc(container, docPath);
|
|
274
|
+
const currentConfig = formatCurrentConfig(doc.data);
|
|
275
|
+
if (!options.agent && !options.iterations && !flags.assumeYes && currentConfig) {
|
|
276
|
+
resources.logger.info(currentConfig);
|
|
277
|
+
}
|
|
278
|
+
const agent = await resolveInitAgent({
|
|
279
|
+
program,
|
|
280
|
+
providedAgent: options.agent
|
|
281
|
+
});
|
|
282
|
+
if (!agent) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
const iterations = await resolveInitIterations({
|
|
286
|
+
program,
|
|
287
|
+
providedIterations: options.iterations
|
|
288
|
+
});
|
|
289
|
+
if (iterations == null) {
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
const updated = writeFrontmatter({
|
|
293
|
+
agent,
|
|
294
|
+
iterations,
|
|
295
|
+
status: {
|
|
296
|
+
state: doc.data.status.state,
|
|
297
|
+
iteration: doc.data.status.iteration
|
|
298
|
+
}
|
|
299
|
+
}, doc.body);
|
|
300
|
+
await container.fs.writeFile(doc.absolutePath, updated, { encoding: "utf8" });
|
|
301
|
+
resources.logger.resolved("Initialized Ralph config", `Doc: ${docPath}\n Agent: ${agent}\n Iterations: ${iterations}`);
|
|
302
|
+
resources.logger.success("Ralph config saved.");
|
|
303
|
+
}
|
|
304
|
+
finally {
|
|
305
|
+
resources.context.finalize();
|
|
306
|
+
}
|
|
307
|
+
});
|
|
107
308
|
ralph
|
|
108
309
|
.command("run")
|
|
109
310
|
.description("Run the selected markdown doc through repeated agent iterations.")
|
|
110
|
-
.argument("[iterations]", "Number of Ralph iterations to run")
|
|
111
311
|
.argument("[doc]", "Markdown doc path")
|
|
112
|
-
.option("--agent <name>", "
|
|
312
|
+
.option("--agent <name>", "Override the agent from frontmatter")
|
|
313
|
+
.option("--iterations <n>", "Override iterations from frontmatter")
|
|
113
314
|
.option("--model <model>", "Model override passed to the agent")
|
|
114
|
-
.
|
|
115
|
-
.action(async function (iterationsArg, docArg) {
|
|
315
|
+
.action(async function (docArg) {
|
|
116
316
|
const flags = resolveCommandFlags(program);
|
|
117
317
|
const resources = createExecutionResources(container, flags, "ralph:run");
|
|
118
318
|
const options = this.opts();
|
|
119
319
|
resources.logger.intro("ralph run");
|
|
120
320
|
try {
|
|
321
|
+
const planDirectory = await resolvePlanDirectory(container);
|
|
121
322
|
const docPath = await resolveDocPath({
|
|
122
323
|
container,
|
|
123
324
|
program,
|
|
124
|
-
providedDoc: docArg
|
|
325
|
+
providedDoc: docArg,
|
|
326
|
+
planDirectory
|
|
125
327
|
});
|
|
126
328
|
if (!docPath) {
|
|
127
329
|
return;
|
|
128
330
|
}
|
|
129
|
-
const
|
|
331
|
+
const doc = await readRalphDoc(container, docPath);
|
|
332
|
+
const agent = await resolveRunAgent({
|
|
130
333
|
program,
|
|
131
|
-
providedAgent: options.agent
|
|
334
|
+
providedAgent: options.agent,
|
|
335
|
+
frontmatterAgent: doc.data.agent
|
|
132
336
|
});
|
|
133
337
|
if (!agent) {
|
|
134
338
|
return;
|
|
135
339
|
}
|
|
136
|
-
const maxIterations = await
|
|
340
|
+
const maxIterations = await resolveRunIterations({
|
|
137
341
|
program,
|
|
138
|
-
providedIterations:
|
|
342
|
+
providedIterations: options.iterations,
|
|
343
|
+
frontmatterIterations: doc.data.iterations
|
|
139
344
|
});
|
|
140
345
|
if (maxIterations == null) {
|
|
141
346
|
return;
|
|
142
347
|
}
|
|
143
|
-
const maxFailures = parsePositiveInt(options.maxFailures, "max-failures");
|
|
144
348
|
const result = await sdkRunRalph({
|
|
145
349
|
agent,
|
|
146
350
|
cwd: container.env.cwd,
|
|
@@ -148,31 +352,12 @@ export function registerRalphCommand(program, container) {
|
|
|
148
352
|
docPath,
|
|
149
353
|
maxIterations,
|
|
150
354
|
...(options.model ? { model: options.model } : {}),
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
const selected = await select({
|
|
154
|
-
message: `Ralph hit ${input.consecutiveFailures} consecutive failures ` +
|
|
155
|
-
`(threshold ${input.threshold}). What should happen next?`,
|
|
156
|
-
options: [
|
|
157
|
-
{ label: "Continue", value: "continue" },
|
|
158
|
-
{ label: "Abort", value: "abort" }
|
|
159
|
-
]
|
|
160
|
-
});
|
|
161
|
-
if (isCancel(selected)) {
|
|
162
|
-
cancel("Ralph run cancelled.");
|
|
163
|
-
return "abort";
|
|
164
|
-
}
|
|
165
|
-
return selected === "continue" ? "continue" : "abort";
|
|
166
|
-
},
|
|
167
|
-
onIterationStart(iteration, total) {
|
|
168
|
-
resources.logger.info(`Iteration ${iteration}/${total}`);
|
|
355
|
+
onIterationStart(iteration, total, currentAgent) {
|
|
356
|
+
resources.logger.info(`Iteration ${iteration}/${total} (${currentAgent})`);
|
|
169
357
|
},
|
|
170
358
|
onIterationComplete(iteration, durationMs, success) {
|
|
171
359
|
const status = success ? "done" : "failed";
|
|
172
360
|
resources.logger.info(`Iteration ${iteration} ${status} in ${formatDuration(durationMs)}`);
|
|
173
|
-
},
|
|
174
|
-
onOverbakeWarning(consecutiveFailures, threshold) {
|
|
175
|
-
resources.logger.warn(`Overbake protection triggered at ${consecutiveFailures} consecutive failures (threshold ${threshold}).`);
|
|
176
361
|
}
|
|
177
362
|
});
|
|
178
363
|
const summary = [
|
|
@@ -186,12 +371,6 @@ export function registerRalphCommand(program, container) {
|
|
|
186
371
|
resources.logger.resolved("Run summary", summary);
|
|
187
372
|
return;
|
|
188
373
|
}
|
|
189
|
-
if (result.stopReason === "overbake_abort") {
|
|
190
|
-
process.exitCode = 1;
|
|
191
|
-
resources.logger.warn("Ralph stopped after repeated failures.");
|
|
192
|
-
resources.logger.resolved("Run summary", summary);
|
|
193
|
-
return;
|
|
194
|
-
}
|
|
195
374
|
resources.logger.resolved("Run summary", summary);
|
|
196
375
|
resources.logger.success("Ralph run finished.");
|
|
197
376
|
}
|