poe-code 3.0.53 → 3.0.54

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 CHANGED
@@ -1,4 +1,4 @@
1
- ![poe-code banner](docs/banners/claude-opus-4-6.jpg)
1
+ ![poe-code banner](docs/banners/claude-sonnet-4-6.jpg)
2
2
 
3
3
  <div align="center">
4
4
  <h1>Poe Code ⚡</h1>
@@ -154,7 +154,7 @@ const apiKey = await getPoeApiKey()
154
154
  const result = await spawn("claude-code", {
155
155
  prompt: "Fix the bug in auth.ts",
156
156
  cwd: "/path/to/project",
157
- model: "claude-sonnet-4"
157
+ model: "claude-sonnet-4-6"
158
158
  })
159
159
 
160
160
  console.log(result.stdout)
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- import { select, isCancel, cancel } from "@poe-code/design-system";
2
+ import { select, isCancel, cancel, promptText, confirm } from "@poe-code/design-system";
3
3
  import { loadConfig, ralphBuild, logActivity, resolvePlanPath, parsePlan } from "@poe-code/ralph";
4
4
  import { supportedAgents, resolveAgentSupport, installSkill } from "@poe-code/agent-skill-config";
5
5
  import { renderTemplate } from "@poe-code/config-mutations";
@@ -62,16 +62,22 @@ async function pathExists(fs, filePath) {
62
62
  throw error;
63
63
  }
64
64
  }
65
+ function formatDuration(ms) {
66
+ const totalSeconds = Math.round(ms / 1000);
67
+ const minutes = Math.floor(totalSeconds / 60);
68
+ const seconds = totalSeconds % 60;
69
+ return minutes > 0 ? `${minutes}m ${seconds}s` : `${seconds}s`;
70
+ }
65
71
  function resolveIterations(value) {
66
- if (value == null) {
67
- return 25;
68
- }
69
72
  const parsed = Number.parseInt(value, 10);
70
73
  if (!Number.isFinite(parsed) || parsed < 1) {
71
74
  throw new ValidationError(`Invalid iterations "${value}". Expected a positive integer.`);
72
75
  }
73
76
  return parsed;
74
77
  }
78
+ function computeMaxIterations(openCount) {
79
+ return Math.max(openCount * 2, openCount + 10);
80
+ }
75
81
  function resolveMaxFailures(value) {
76
82
  if (value == null) {
77
83
  return 3;
@@ -341,6 +347,7 @@ export function registerRalphCommand(program, container) {
341
347
  .description("Run the Ralph build loop for the selected plan.")
342
348
  .option("--plan <path>", "Path to the plan file")
343
349
  .option("--agent <name>", "Agent name to run (default: codex)")
350
+ .option("--model <model>", "Model override passed to the agent for the entire run")
344
351
  .option("--no-commit", "Instruct the agent not to commit changes")
345
352
  .option("--max-failures <n>", "Warn after <n> consecutive failures (default 3)")
346
353
  .option("--pause-on-overbake", "Pause and prompt when overbaking is detected")
@@ -353,9 +360,6 @@ export function registerRalphCommand(program, container) {
353
360
  const resources = createExecutionResources(container, flags, "ralph:build");
354
361
  try {
355
362
  resources.logger.intro("ralph build");
356
- if (flags.dryRun) {
357
- throw new ValidationError("ralph build does not support --dry-run. Use --no-commit instead.");
358
- }
359
363
  let configResult;
360
364
  try {
361
365
  configResult = await loadConfig(container.env.cwd, {
@@ -368,9 +372,37 @@ export function registerRalphCommand(program, container) {
368
372
  throw new ValidationError(message);
369
373
  }
370
374
  const config = configResult.config;
371
- const maxIterations = typeof iterations === "string" ? resolveIterations(iterations) : config.maxIterations ?? 25;
372
- const agent = options.agent?.trim() ? options.agent.trim() : config.agent ?? "codex";
373
- const noCommit = options.commit === false ? true : config.noCommit ?? false;
375
+ const explicitIterations = typeof iterations === "string" ? resolveIterations(iterations) : undefined;
376
+ const rawAgent = options.agent?.trim() ? options.agent.trim() : config.agent ?? "codex";
377
+ const agentSupport = resolveAgentSupport(rawAgent);
378
+ if (agentSupport.status === "unknown") {
379
+ throw new ValidationError(`Unknown agent: ${rawAgent}`);
380
+ }
381
+ const agent = agentSupport.id ?? rawAgent;
382
+ let noCommit;
383
+ if (options.commit === false) {
384
+ // --no-commit explicitly passed
385
+ noCommit = true;
386
+ }
387
+ else if (config.noCommit !== undefined) {
388
+ // config.noCommit is set
389
+ noCommit = config.noCommit;
390
+ }
391
+ else if (flags.assumeYes) {
392
+ // --yes: default to false without prompting
393
+ noCommit = false;
394
+ }
395
+ else {
396
+ const answer = await confirm({
397
+ message: "Should the agent skip committing changes? (--no-commit)",
398
+ initialValue: false
399
+ });
400
+ if (isCancel(answer)) {
401
+ cancel("Operation cancelled");
402
+ return;
403
+ }
404
+ noCommit = answer;
405
+ }
374
406
  const staleSeconds = config.staleSeconds ?? 60;
375
407
  const maxFailures = typeof options.maxFailures === "string" ? resolveMaxFailures(options.maxFailures) : undefined;
376
408
  const pauseOnOverbake = Boolean(options.pauseOnOverbake);
@@ -379,10 +411,81 @@ export function registerRalphCommand(program, container) {
379
411
  ? { enabled: true, name: options.worktreeName?.trim() || undefined }
380
412
  : undefined;
381
413
  const cwd = container.env.cwd;
414
+ let planPath;
415
+ if (flags.dryRun && !options.plan && !config.planPath) {
416
+ planPath = null;
417
+ }
418
+ else {
419
+ try {
420
+ planPath = await resolvePlanPath({
421
+ cwd: container.env.cwd,
422
+ plan: options.plan ?? config.planPath,
423
+ assumeYes: flags.assumeYes,
424
+ fs: container.fs
425
+ });
426
+ }
427
+ catch (error) {
428
+ const message = error instanceof Error ? error.message : String(error);
429
+ throw new ValidationError(message);
430
+ }
431
+ }
432
+ let dummyPlanUsed = false;
433
+ if (!planPath) {
434
+ if (flags.dryRun) {
435
+ dummyPlanUsed = true;
436
+ }
437
+ else if (flags.assumeYes) {
438
+ throw new ValidationError("No plan found. Provide --plan <path> to an existing plan file.");
439
+ }
440
+ else {
441
+ const entered = await promptText({
442
+ message: "Enter path to plan file:",
443
+ placeholder: ".agents/tasks/plan.yaml"
444
+ });
445
+ if (isCancel(entered)) {
446
+ cancel("Operation cancelled");
447
+ return;
448
+ }
449
+ planPath = entered;
450
+ }
451
+ }
452
+ const dummyStories = dummyPlanUsed
453
+ ? [
454
+ { id: "US-001", title: "Sample story: scaffold the feature", status: "open" },
455
+ { id: "US-002", title: "Sample story: implement core logic", status: "in_progress" },
456
+ { id: "US-003", title: "Sample story: add tests and cleanup", status: "open" }
457
+ ]
458
+ : undefined;
459
+ let maxIterations;
460
+ if (explicitIterations !== undefined) {
461
+ maxIterations = explicitIterations;
462
+ }
463
+ else if (config.maxIterations !== undefined) {
464
+ maxIterations = config.maxIterations;
465
+ }
466
+ else if (dummyPlanUsed) {
467
+ maxIterations = computeMaxIterations(2);
468
+ }
469
+ else {
470
+ try {
471
+ const planContent = await container.fs.readFile(path.resolve(cwd, planPath), "utf8");
472
+ const plan = parsePlan(planContent);
473
+ const done = plan.stories.filter((s) => s.status === "done").length;
474
+ const inProgress = plan.stories.filter((s) => s.status === "in_progress").length;
475
+ const open = plan.stories.length - done - inProgress;
476
+ maxIterations = computeMaxIterations(open);
477
+ }
478
+ catch {
479
+ maxIterations = 25;
480
+ }
481
+ }
482
+ const model = options.model?.trim() || undefined;
382
483
  const configLines = [
383
484
  `Agent: ${agent}`,
384
485
  `Iterations: ${maxIterations}`
385
486
  ];
487
+ if (model)
488
+ configLines.push(`Model: ${model}`);
386
489
  if (noCommit)
387
490
  configLines.push("No-commit: true");
388
491
  if (worktree)
@@ -391,35 +494,35 @@ export function registerRalphCommand(program, container) {
391
494
  configLines.push(`${source.scope}: ${source.path}`);
392
495
  }
393
496
  resources.logger.resolved("Config", configLines.join("\n "));
394
- let planPath;
395
- try {
396
- planPath = await resolvePlanPath({
397
- cwd: container.env.cwd,
398
- plan: options.plan ?? config.planPath,
399
- fs: container.fs
400
- });
497
+ if (dummyPlanUsed) {
498
+ const stories = dummyStories;
499
+ const total = stories.length;
500
+ const done = stories.filter((s) => s.status === "done").length;
501
+ const inProgress = stories.filter((s) => s.status === "in_progress").length;
502
+ const open = total - done - inProgress;
503
+ resources.logger.resolved("Stories", `${done}/${total} done${inProgress ? `, ${inProgress} in progress` : ""}${open ? `, ${open} open` : ""} (dummy plan)`);
401
504
  }
402
- catch (error) {
403
- const message = error instanceof Error ? error.message : String(error);
404
- throw new ValidationError(message);
505
+ else {
506
+ try {
507
+ const planContent = await container.fs.readFile(path.resolve(cwd, planPath), "utf8");
508
+ const plan = parsePlan(planContent);
509
+ const total = plan.stories.length;
510
+ const done = plan.stories.filter((s) => s.status === "done").length;
511
+ const inProgress = plan.stories.filter((s) => s.status === "in_progress").length;
512
+ const open = total - done - inProgress;
513
+ resources.logger.resolved("Stories", `${done}/${total} done${inProgress ? `, ${inProgress} in progress` : ""}${open ? `, ${open} open` : ""}`);
514
+ }
515
+ catch {
516
+ // Plan file may not be parseable yet
517
+ }
405
518
  }
406
- if (!planPath) {
519
+ if (flags.dryRun) {
520
+ resources.logger.success("Dry run complete. No agents spawned.");
407
521
  return;
408
522
  }
409
- try {
410
- const planContent = await container.fs.readFile(path.resolve(cwd, planPath), "utf8");
411
- const plan = parsePlan(planContent);
412
- const total = plan.stories.length;
413
- const done = plan.stories.filter((s) => s.status === "done").length;
414
- const inProgress = plan.stories.filter((s) => s.status === "in_progress").length;
415
- const open = total - done - inProgress;
416
- resources.logger.resolved("Stories", `${done}/${total} done${inProgress ? `, ${inProgress} in progress` : ""}${open ? `, ${open} open` : ""}`);
417
- }
418
- catch {
419
- // Plan file may not be parseable yet
420
- }
421
- await ralphBuild({
422
- planPath,
523
+ const buildStart = Date.now();
524
+ const buildResult = await ralphBuild({
525
+ planPath: planPath,
423
526
  progressPath: config.progressPath,
424
527
  guardrailsPath: config.guardrailsPath,
425
528
  errorsLogPath: config.errorsLogPath,
@@ -428,11 +531,19 @@ export function registerRalphCommand(program, container) {
428
531
  maxFailures,
429
532
  pauseOnOverbake,
430
533
  agent,
534
+ model,
431
535
  noCommit,
432
536
  staleSeconds,
433
537
  cwd,
434
- worktree
538
+ worktree,
539
+ deps: { stdout: process.stdout }
435
540
  });
541
+ const duration = formatDuration(Date.now() - buildStart);
542
+ resources.logger.resolved("Run summary", [
543
+ `Iterations: ${buildResult.iterationsCompleted}/${maxIterations}`,
544
+ `Stories done: ${buildResult.storiesDone.length}`,
545
+ `Duration: ${duration}`
546
+ ].join("\n "));
436
547
  resources.logger.success("Ralph run finished.");
437
548
  }
438
549
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"ralph.js","sourceRoot":"","sources":["../../../src/cli/commands/ralph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ralph.js","sourceRoot":"","sources":["../../../src/cli/commands/ralph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Command } from "commander";
2
+ import type { CliContainer } from "../container.js";
3
+ export interface ResearchCommandOptions {
4
+ agent?: string;
5
+ model?: string;
6
+ mode?: string;
7
+ cwd?: string;
8
+ path?: string;
9
+ github?: string;
10
+ stdin?: boolean;
11
+ keep?: boolean;
12
+ }
13
+ export declare function registerResearchCommand(program: Command, container: CliContainer): void;
@@ -0,0 +1,159 @@
1
+ import { renderAcpStream, getSpawnConfig } from "@poe-code/agent-spawn";
2
+ import { loadConfiguredServices } from "../../services/credentials.js";
3
+ import { research } from "../../sdk/research.js";
4
+ import { OperationCancelledError } from "../errors.js";
5
+ import { buildResumeCommand, createExecutionResources, formatServiceList, resolveCommandFlags, resolveServiceAdapter } from "./shared.js";
6
+ export function registerResearchCommand(program, container) {
7
+ const spawnServices = container.registry
8
+ .list()
9
+ .filter((service) => typeof service.spawn === "function" || getSpawnConfig(service.name))
10
+ .map((service) => service.name);
11
+ const serviceDescription = `Agent to research with${formatServiceList(spawnServices)}`;
12
+ program
13
+ .command("research")
14
+ .description("Research a codebase using a coding agent.")
15
+ .option("--agent <agent>", serviceDescription)
16
+ .option("--model <model>", "Model identifier override passed to the agent CLI")
17
+ .option("--mode <mode>", "Permission mode: yolo | edit | read (default: read)")
18
+ .option("-C, --cwd <path>", "Working directory override")
19
+ .option("--path <path>", "Local directory to research")
20
+ .option("--github <repo>", "Clone and research a GitHub repo")
21
+ .option("--stdin", "Read the prompt from stdin")
22
+ .option("--keep", "Keep the cloned repo when using --github")
23
+ .argument("[prompt]", "Prompt text to send (or '-' / stdin)")
24
+ .argument("[agentArgs...]", "Additional arguments forwarded to the agent CLI")
25
+ .action(async function (promptText, agentArgs = []) {
26
+ const flags = resolveCommandFlags(program);
27
+ const commandOptions = this.opts();
28
+ const wantsStdinFlag = commandOptions.stdin === true;
29
+ const shouldReadFromStdin = wantsStdinFlag ||
30
+ promptText === "-" ||
31
+ (!promptText && !process.stdin.isTTY);
32
+ const forwardedArgs = wantsStdinFlag
33
+ ? [...(promptText ? [promptText] : []), ...agentArgs]
34
+ : agentArgs;
35
+ if (wantsStdinFlag) {
36
+ promptText = undefined;
37
+ }
38
+ if (promptText === "-") {
39
+ promptText = undefined;
40
+ }
41
+ if (!promptText && shouldReadFromStdin) {
42
+ const chunks = [];
43
+ for await (const chunk of process.stdin) {
44
+ chunks.push(chunk);
45
+ }
46
+ promptText = Buffer.concat(chunks).toString("utf8").trim();
47
+ }
48
+ if (!promptText) {
49
+ throw new Error("No prompt provided via argument or stdin");
50
+ }
51
+ const resolvedAgent = await resolveResearchAgent({
52
+ container,
53
+ flags,
54
+ agent: commandOptions.agent
55
+ });
56
+ const adapter = resolveServiceAdapter(container, resolvedAgent);
57
+ const canonicalService = adapter.name;
58
+ const resources = createExecutionResources(container, flags, `research:${canonicalService}`);
59
+ resources.logger.intro(`research ${canonicalService}`);
60
+ const model = await resolveResearchModel({
61
+ container,
62
+ flags,
63
+ adapter,
64
+ value: commandOptions.model
65
+ });
66
+ try {
67
+ const { events, result } = await research(container, {
68
+ prompt: promptText,
69
+ agent: canonicalService,
70
+ agentLabel: adapter.label,
71
+ model,
72
+ mode: commandOptions.mode,
73
+ args: forwardedArgs,
74
+ cwd: commandOptions.cwd,
75
+ path: commandOptions.path,
76
+ github: commandOptions.github,
77
+ keep: commandOptions.keep,
78
+ logger: resources.logger,
79
+ resolveResumeCommand: (threadId, cwdValue) => buildResumeCommand(canonicalService, threadId, cwdValue)
80
+ });
81
+ await renderAcpStream(events);
82
+ await result;
83
+ }
84
+ finally {
85
+ resources.context.finalize();
86
+ }
87
+ });
88
+ }
89
+ async function resolveResearchAgent(input) {
90
+ if (input.agent) {
91
+ return input.agent;
92
+ }
93
+ const spawnable = input.container.registry
94
+ .list()
95
+ .filter((service) => typeof service.spawn === "function" || getSpawnConfig(service.name));
96
+ if (spawnable.length === 0) {
97
+ throw new Error("No spawn-capable agents available.");
98
+ }
99
+ if (input.flags.assumeYes) {
100
+ const configured = await loadConfiguredServices({
101
+ fs: input.container.fs,
102
+ filePath: input.container.env.credentialsPath
103
+ });
104
+ const configuredService = spawnable.find((service) => service.name in configured);
105
+ return configuredService?.name ?? spawnable[0].name;
106
+ }
107
+ const choices = spawnable.map((service) => ({
108
+ title: service.label,
109
+ value: service.name
110
+ }));
111
+ const descriptor = input.container.promptLibrary.serviceSelection({
112
+ message: "Pick an agent to research with:",
113
+ choices
114
+ });
115
+ const response = await input.container.prompts(descriptor);
116
+ const selectionValue = response[descriptor.name];
117
+ if (typeof selectionValue !== "string") {
118
+ throw new OperationCancelledError();
119
+ }
120
+ const resolved = spawnable.find((service) => service.name === selectionValue);
121
+ if (!resolved) {
122
+ throw new Error("Invalid agent selection.");
123
+ }
124
+ return resolved.name;
125
+ }
126
+ async function resolveResearchModel(input) {
127
+ if (input.value) {
128
+ return input.value;
129
+ }
130
+ const modelPrompt = input.adapter.configurePrompts?.model;
131
+ if (modelPrompt) {
132
+ return await input.container.options.resolveModel({
133
+ value: input.value,
134
+ assumeDefault: input.flags.assumeYes,
135
+ defaultValue: modelPrompt.defaultValue,
136
+ choices: modelPrompt.choices,
137
+ label: modelPrompt.label
138
+ });
139
+ }
140
+ if (input.flags.assumeYes) {
141
+ return undefined;
142
+ }
143
+ const descriptor = {
144
+ name: "model",
145
+ message: "Model identifier",
146
+ type: "text"
147
+ };
148
+ const response = await input.container.prompts(descriptor);
149
+ const result = response[descriptor.name];
150
+ if (typeof result !== "string") {
151
+ throw new OperationCancelledError();
152
+ }
153
+ const trimmed = result.trim();
154
+ if (trimmed.length === 0) {
155
+ throw new Error("Model identifier is required.");
156
+ }
157
+ return trimmed;
158
+ }
159
+ //# sourceMappingURL=research.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research.js","sourceRoot":"","sources":["../../../src/cli/commands/research.ts"],"names":[],"mappings":"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"}
@@ -15,10 +15,13 @@ export interface ExecutionResources {
15
15
  }
16
16
  export declare function resolveCommandFlags(program: Command): CommandFlags;
17
17
  export declare function createExecutionResources(container: CliContainer, flags: CommandFlags, scope: string): ExecutionResources;
18
- export declare function buildProviderContext(container: CliContainer, adapter: ProviderService, resources: ExecutionResources): ProviderContext;
18
+ export declare function buildProviderContext(container: CliContainer, adapter: ProviderService, resources: ExecutionResources, options?: {
19
+ model?: string;
20
+ }): ProviderContext;
19
21
  export declare function listIsolatedServiceIds(container: CliContainer): string[];
20
22
  export declare function resolveServiceAdapter(container: CliContainer, service: string): ProviderService;
21
23
  export declare function formatServiceList(names: string[]): string;
24
+ export declare function buildResumeCommand(canonicalService: string, threadId: string, cwd: string): string | undefined;
22
25
  export declare function applyIsolatedConfiguration(input: {
23
26
  adapter: ProviderService;
24
27
  providerContext: ProviderContext;