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.
Files changed (37) hide show
  1. package/README.md +13 -13
  2. package/dist/cli/command-not-found.js +3 -1
  3. package/dist/cli/command-not-found.js.map +1 -1
  4. package/dist/cli/commands/pipeline.js +24 -1
  5. package/dist/cli/commands/pipeline.js.map +1 -1
  6. package/dist/cli/commands/ralph.js +241 -62
  7. package/dist/cli/commands/ralph.js.map +1 -1
  8. package/dist/cli/commands/version.js +1 -1
  9. package/dist/cli/commands/version.js.map +1 -1
  10. package/dist/cli/program.js +6 -1
  11. package/dist/cli/program.js.map +1 -1
  12. package/dist/index.js +1192 -750
  13. package/dist/index.js.map +4 -4
  14. package/dist/providers/claude-code.js +24 -24
  15. package/dist/providers/claude-code.js.map +1 -1
  16. package/dist/providers/codex.js +28 -28
  17. package/dist/providers/codex.js.map +2 -2
  18. package/dist/providers/kimi.js +24 -24
  19. package/dist/providers/kimi.js.map +1 -1
  20. package/dist/providers/opencode.js +28 -28
  21. package/dist/providers/opencode.js.map +2 -2
  22. package/dist/providers/poe-agent.js.map +1 -1
  23. package/dist/sdk/pipeline.d.ts +1 -0
  24. package/dist/sdk/pipeline.js +1 -0
  25. package/dist/sdk/pipeline.js.map +1 -1
  26. package/dist/sdk/ralph.d.ts +1 -1
  27. package/dist/sdk/ralph.js.map +1 -1
  28. package/dist/services/config.d.ts +30 -0
  29. package/dist/services/config.js +17 -1
  30. package/dist/services/config.js.map +1 -1
  31. package/dist/templates/pipeline/SKILL_plan.md +5 -6
  32. package/dist/tools/label-generator.js +1 -1
  33. package/dist/utils/command-checks.d.ts +1 -1
  34. package/dist/utils/command-checks.js +1 -1
  35. package/dist/utils/execution-context.js +5 -5
  36. package/dist/utils/execution-context.js.map +1 -1
  37. 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://www.npmjs.com/package/poe-code"><img alt="NPM version" src="https://img.shields.io/npm/v/next.svg?&style=for-the-badge&color=09B16B"></a>
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 (`npx poe-code@latest wrap claude`) or configure it as your default and use your tools normally.
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
- npx poe-code@latest wrap claude
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
- npx poe-code@latest configure
33
+ bunx poe-code@latest configure
34
34
 
35
35
  # Setup a specific agent
36
- npx poe-code@latest configure codex # (or claude, opencode, kimi)
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
- npx poe-code@latest unconfigure claude
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
- npx poe-code@latest spawn codex "Say hello"
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" | npx poe-code@latest spawn codex
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
- npx poe-code@latest test codex
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
- npx poe-code@latest install claude-code
86
+ bunx poe-code@latest install claude-code
87
87
 
88
88
  # Codex
89
- npx poe-code@latest install codex
89
+ bunx poe-code@latest install codex
90
90
 
91
91
  # OpenCode
92
- npx poe-code@latest install opencode
92
+ bunx poe-code@latest install opencode
93
93
 
94
94
  # Kimi
95
- npx poe-code@latest install kimi
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
- process.exitCode = 1;
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;IACrB,MAAM,IAAI,WAAW,EAAE,CAAC;AAC1B,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 { cancel, isCancel, promptText, select } from "@poe-code/design-system";
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 agent: ${value}`);
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
- async function resolveAgent(options) {
36
- if (options.providedAgent) {
37
- return resolveRalphAgent(options.providedAgent);
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
- const flags = resolveCommandFlags(options.program);
40
- if (flags.assumeYes) {
41
- return DEFAULT_RALPH_AGENT;
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
- const selected = await select({
44
- message: "Select agent to run Ralph with:",
45
- options: allSpawnConfigs.map((config) => ({
46
- label: config.agentId,
47
- value: config.agentId
48
- }))
49
- });
50
- if (isCancel(selected)) {
51
- cancel("Ralph run cancelled.");
52
- return null;
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 resolveIterations(options) {
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
- throw new ValidationError("Iterations are required when using --yes. Provide poe-code ralph run <iterations> [doc].");
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>", "Agent to run each iteration with")
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
- .option("--max-failures <n>", "Consecutive failure threshold before overbake protection prompts")
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 agent = await resolveAgent({
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 resolveIterations({
340
+ const maxIterations = await resolveRunIterations({
137
341
  program,
138
- providedIterations: iterationsArg
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
- ...(maxFailures != null ? { maxFailures } : {}),
152
- promptOverbake: async (input) => {
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
  }