poe-code 3.0.24 → 3.0.26

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.
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- import { renderAcpStream, getSpawnConfig } from "@poe-code/agent-spawn";
2
+ import { renderAcpStream, spawnInteractive, getSpawnConfig } from "@poe-code/agent-spawn";
3
3
  import { allAgents, resolveAgentId } from "@poe-code/agent-defs";
4
4
  import { text } from "@poe-code/design-system";
5
5
  import { createExecutionResources, resolveCommandFlags, resolveServiceAdapter, formatServiceList } from "./shared.js";
@@ -19,6 +19,7 @@ export function registerSpawnCommand(program, container, options = {}) {
19
19
  .option("--model <model>", "Model identifier override passed to the agent CLI")
20
20
  .option("-C, --cwd <path>", "Working directory for the agent CLI")
21
21
  .option("--stdin", "Read the prompt from stdin")
22
+ .option("-i, --interactive", "Launch the agent in interactive TUI mode")
22
23
  .argument("<agent>", serviceDescription)
23
24
  .argument("[prompt]", "Prompt text to send (or '-' / stdin)")
24
25
  .argument("[agentArgs...]", "Additional arguments forwarded to the agent CLI")
@@ -39,6 +40,17 @@ export function registerSpawnCommand(program, container, options = {}) {
39
40
  if (promptText === "-") {
40
41
  promptText = undefined;
41
42
  }
43
+ if (commandOptions.interactive) {
44
+ const adapter = resolveServiceAdapter(container, service);
45
+ const result = await spawnInteractive(adapter.name, {
46
+ prompt: promptText ?? "",
47
+ args: forwardedArgs,
48
+ model: commandOptions.model,
49
+ cwd: cwdOverride
50
+ });
51
+ process.exitCode = result.exitCode;
52
+ return;
53
+ }
42
54
  if (!promptText && shouldReadFromStdin) {
43
55
  const chunks = [];
44
56
  for await (const chunk of process.stdin) {
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/cli/commands/spawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/cli/commands/spawn.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14694,21 +14694,21 @@ var require_dist = __commonJS({
14694
14694
  // src/templates/ralph/PROMPT_PARTIAL_plan.md
14695
14695
  var require_PROMPT_PARTIAL_plan = __commonJS({
14696
14696
  "src/templates/ralph/PROMPT_PARTIAL_plan.md"(exports, module) {
14697
- module.exports = '# Plan Generation\n\nYou are an agent that generates a Ralph PRD file (YAML) based on a user request.\n\n## Requirements\n- Create (or overwrite) the file at the output path.\n- The file must be valid YAML.\n- Use this structure (minimum):\n - version: 1\n - project: <short name>\n - overview: <1-3 paragraphs>\n - goals: [ ... ]\n - nonGoals: [ ... ]\n - qualityGates:\n - npm run test\n - npm run lint\n - stories: [ ... ]\n- Stories should be actionable, small, and testable. Keep it to one story per atomic feature.\n- Each story must include:\n - id: "US-###" (sequential, starting at US-001)\n - title\n - status: open\n - dependsOn: [] (or list of story IDs)\n - description: "As a user, I want ..."\n - acceptanceCriteria: ["...", "..."]\n\n## If The Request Is Empty\nAsk the user for a one-sentence description of what they want to build.\n\n## Validation\nAfter writing the plan file, validate it by running:\n```\npoe-code ralph agent validate-plan --plan <output-path>\n```\nIf validation fails, fix the errors and re-validate until the plan passes.\n\n## Done Signal\nAfter the plan is validated, print a single line confirming the path, e.g.:\n```\nWrote plan to <output-path>\n```\n';
14697
+ module.exports = "# Plan Generation\n\nYou are an agent that generates a Ralph PRD file (YAML) based on a user request. Your ONLY output is a plan file \u2014 do NOT write or modify any code. Follow these phases in order. Keep each phase tight\u2014write only what's needed to move forward.\n\n---\n\n## Phase 1: Understand\n\nBefore touching code, understand the problem and the codebase.\n\n- **Read first.** Never propose changes to code you haven't read. Search for existing patterns, utilities, and conventions.\n- **Ask why.** What problem does this solve? Why now? What happens if we don't do it?\n- **Challenge assumptions.** Question the framing. Restate the problem in your own words.\n- **Visualize.** Use ASCII diagrams for architecture, data flow, state machines\u2014whenever structure aids clarity.\n- **Surface unknowns.** What could go wrong? What don't we know yet? What needs investigation?\n\nStay here until the problem shape is clear. Don't rush to solutions.\n\n---\n\n## Phase 2: Propose\n\nEstablish scope and intent. Write a short proposal:\n\n- **Why**: 1-2 sentences. The problem or opportunity.\n- **What changes**: Bullet list of concrete changes. Be specific.\n- **Impact**: What code, APIs, systems, or users are affected.\n\nKeep it to half a page. Focus on the \"why\" not the \"how.\"\n\n---\n\n## Phase 3: Specify\n\nDefine **what** the system should do in testable terms.\n\nFor each new or changed behavior, write requirements:\n\n```\n### Requirement: <name>\n<Description using precise language \u2014 SHALL, MUST for normative statements>\n\n#### Scenario: <name>\n- WHEN <condition>\n- THEN <expected outcome>\n```\n\nRules:\n\n- Every requirement needs at least one scenario.\n- Scenarios are test cases. If you can't write a scenario, the requirement isn't clear enough.\n- For modifications to existing behavior, state the full updated requirement, not just the diff.\n\n---\n\n## Phase 4: Design\n\nExplain **how** you'll build it. Only include this for non-trivial changes (cross-cutting, new dependencies, architectural decisions, ambiguity worth resolving upfront).\n\n- **Context**: Current state, constraints.\n- **Goals / Non-goals**: What's in scope and what's explicitly out.\n- **Decisions**: Key technical choices. For each: what you chose, what you rejected, and why.\n- **Risks / Trade-offs**: What could go wrong \u2192 how you'll mitigate it.\n\nFocus on architecture and approach. Don't describe every line of code.\n\n---\n\n## Phase 5: Tasks\n\nBreak the work into stories and write the plan YAML file.\n\n### YAML Structure\n\n- Create (or overwrite) the file at the output path.\n- The file must be valid YAML.\n- Use this structure (minimum):\n - version: 1\n - project: <short name>\n - overview: <1-3 paragraphs \u2014 include the proposal from Phase 2 and key design decisions from Phase 4>\n - goals: [ ... ]\n - nonGoals: [ ... ]\n - qualityGates:\n - npm run test\n - npm run lint\n - requirements: [ ... ] (from Phase 3, each with scenarios)\n - stories: [ ... ]\n\n### Stories\n\n- Stories should be actionable, small, and testable. Keep it to one story per atomic feature.\n- Each story must include:\n - id: \"US-###\" (sequential, starting at US-001)\n - title\n - status: open\n - dependsOn: [] (or list of story IDs)\n - description: \"As a user, I want ...\"\n - acceptanceCriteria: [\"...\", \"...\"] (derived from Phase 3 scenarios)\n\n---\n\n## Validation\n\nAfter writing the plan file, validate it by running:\n\n```\npoe-code ralph agent validate-plan --plan <output-path>\n```\n\nIf validation fails, fix the errors and re-validate until the plan passes.\n\n## Done Signal\n\nAfter the plan is validated, print a single line confirming the path, e.g.:\n\n```\nWrote plan to <output-path>\n\nRun `poe-code ralph build`\n\n```\n";
14698
14698
  }
14699
14699
  });
14700
14700
 
14701
14701
  // src/templates/ralph/SKILL_plan.md
14702
14702
  var require_SKILL_plan = __commonJS({
14703
14703
  "src/templates/ralph/SKILL_plan.md"(exports, module) {
14704
- module.exports = "---\nname: poe-code-ralph-plan\ndescription: 'Generate a Ralph plan (YAML) from a user request. Triggers on: create a plan, write plan for, plan this feature, ralph plan.'\n---\n\n{{{PROMPT_PARTIAL_PLAN}}}\n\n## User Request\n\nThe user's request follows this skill invocation. Use it to determine what to build.\n\n## Output Path\n\nWrite the YAML file to `.agents/tasks/plan-<name>.yaml` unless the user specifies a different path.\n";
14704
+ module.exports = "---\nname: poe-code-ralph-plan\ndescription: 'Generate a Ralph plan (YAML) from a user request. Triggers on: create a plan, write plan for, plan this feature, ralph plan.'\n---\n\n## If The Request Is Empty\n\nAsk the user for a one-sentence description of what they want to build.\n\n{{{PROMPT_PARTIAL_PLAN}}}\n\n## Output Path\n\nWrite the YAML file to `.agents/tasks/plan-<name>.yaml` unless the user specifies a different path.\n";
14705
14705
  }
14706
14706
  });
14707
14707
 
14708
14708
  // src/templates/ralph/PROMPT_plan.md
14709
14709
  var require_PROMPT_plan = __commonJS({
14710
14710
  "src/templates/ralph/PROMPT_plan.md"(exports, module) {
14711
- module.exports = "{{{PROMPT_PARTIAL_PLAN}}}\n\n## User Request\n{{REQUEST}}\n\n## Output Path\nWrite the YAML file to:\n{{OUT_PATH}}\n";
14711
+ module.exports = "{{{PROMPT_PARTIAL_PLAN}}}\n\n## User Request\n\n{{REQUEST}}\n\n## Output Path\n\nWrite the YAML file to:\n{{OUT_PATH}}\n";
14712
14712
  }
14713
14713
  });
14714
14714
 
@@ -16096,6 +16096,9 @@ var claudeCodeSpawnConfig = {
16096
16096
  omitPrompt: true,
16097
16097
  extraArgs: ["--input-format", "text"]
16098
16098
  },
16099
+ interactive: {
16100
+ defaultArgs: ["--allowedTools", "Bash,Read", "--permission-mode", "acceptEdits"]
16101
+ },
16099
16102
  resumeCommand: (threadId) => ["--resume", threadId]
16100
16103
  };
16101
16104
 
@@ -16112,6 +16115,9 @@ var codexSpawnConfig = {
16112
16115
  omitPrompt: true,
16113
16116
  extraArgs: ["-"]
16114
16117
  },
16118
+ interactive: {
16119
+ defaultArgs: ["-a", "never"]
16120
+ },
16115
16121
  resumeCommand: (threadId, cwd) => ["resume", "-C", cwd, threadId]
16116
16122
  };
16117
16123
 
@@ -16126,6 +16132,10 @@ var openCodeSpawnConfig = {
16126
16132
  promptFlag: "run",
16127
16133
  modelFlag: "--model",
16128
16134
  defaultArgs: ["--format", "json"],
16135
+ interactive: {
16136
+ defaultArgs: [],
16137
+ promptFlag: "--prompt"
16138
+ },
16129
16139
  resumeCommand: (threadId, cwd) => [cwd, "--session", threadId]
16130
16140
  };
16131
16141
 
@@ -16143,6 +16153,10 @@ var kimiSpawnConfig = {
16143
16153
  omitPrompt: true,
16144
16154
  extraArgs: ["--input-format", "stream-json"]
16145
16155
  },
16156
+ interactive: {
16157
+ defaultArgs: [],
16158
+ promptFlag: "-p"
16159
+ },
16146
16160
  resumeCommand: (threadId, cwd) => ["--session", threadId, "--work-dir", cwd]
16147
16161
  };
16148
16162
 
@@ -16252,6 +16266,57 @@ async function spawn2(agentId, options, _context) {
16252
16266
  });
16253
16267
  }
16254
16268
 
16269
+ // packages/agent-spawn/src/spawn-interactive.ts
16270
+ import { spawn as spawnChildProcess2 } from "node:child_process";
16271
+ async function spawnInteractive(agentId, options) {
16272
+ const resolved = resolveConfig(agentId);
16273
+ const spawnConfig = resolved.spawnConfig;
16274
+ if (!spawnConfig) {
16275
+ throw new Error(`Agent "${resolved.agentId}" has no spawn config.`);
16276
+ }
16277
+ if (spawnConfig.kind !== "cli") {
16278
+ throw new Error(`Agent "${resolved.agentId}" does not support CLI spawn.`);
16279
+ }
16280
+ if (!resolved.binaryName) {
16281
+ throw new Error(`Agent "${resolved.agentId}" has no binaryName.`);
16282
+ }
16283
+ if (!spawnConfig.interactive) {
16284
+ throw new Error(`Agent "${resolved.agentId}" does not support interactive mode.`);
16285
+ }
16286
+ const { interactive } = spawnConfig;
16287
+ const args = [];
16288
+ if (options.prompt) {
16289
+ if (interactive.promptFlag) {
16290
+ args.push(interactive.promptFlag, options.prompt);
16291
+ } else {
16292
+ args.push(options.prompt);
16293
+ }
16294
+ }
16295
+ if (options.model && spawnConfig.modelFlag) {
16296
+ args.push(spawnConfig.modelFlag, options.model);
16297
+ }
16298
+ args.push(...interactive.defaultArgs);
16299
+ if (options.args && options.args.length > 0) {
16300
+ args.push(...options.args);
16301
+ }
16302
+ const child = spawnChildProcess2(resolved.binaryName, args, {
16303
+ cwd: options.cwd,
16304
+ stdio: "inherit"
16305
+ });
16306
+ return new Promise((resolve, reject) => {
16307
+ child.on("error", (error2) => {
16308
+ reject(error2);
16309
+ });
16310
+ child.on("close", (code) => {
16311
+ resolve({
16312
+ stdout: "",
16313
+ stderr: "",
16314
+ exitCode: code ?? 1
16315
+ });
16316
+ });
16317
+ });
16318
+ }
16319
+
16255
16320
  // packages/agent-spawn/src/acp/renderer.ts
16256
16321
  function writeLine2(line) {
16257
16322
  process.stdout.write(`${line}
@@ -16318,7 +16383,7 @@ async function renderAcpStream(events) {
16318
16383
  }
16319
16384
 
16320
16385
  // packages/agent-spawn/src/acp/spawn.ts
16321
- import { spawn as spawnChildProcess2 } from "node:child_process";
16386
+ import { spawn as spawnChildProcess3 } from "node:child_process";
16322
16387
 
16323
16388
  // packages/agent-spawn/src/adapters/utils.ts
16324
16389
  function truncate2(text4, maxLength) {
@@ -16811,7 +16876,7 @@ function spawnStreaming(options) {
16811
16876
  if (options.args && options.args.length > 0) {
16812
16877
  args.push(...options.args);
16813
16878
  }
16814
- const child = spawnChildProcess2(binaryName, args, {
16879
+ const child = spawnChildProcess3(binaryName, args, {
16815
16880
  cwd: options.cwd,
16816
16881
  stdio: ["pipe", "pipe", "pipe"]
16817
16882
  });
@@ -18378,6 +18443,20 @@ function spawn3(service, promptOrOptions, maybeOptions) {
18378
18443
  const result = (async () => {
18379
18444
  try {
18380
18445
  await getPoeApiKey();
18446
+ if (options.interactive) {
18447
+ resolveEventsOnce(emptyEvents);
18448
+ const interactiveResult = await spawnInteractive(service, {
18449
+ prompt: options.prompt,
18450
+ cwd: options.cwd,
18451
+ model: options.model,
18452
+ args: options.args
18453
+ });
18454
+ return {
18455
+ stdout: interactiveResult.stdout,
18456
+ stderr: interactiveResult.stderr,
18457
+ exitCode: interactiveResult.exitCode
18458
+ };
18459
+ }
18381
18460
  const spawnConfig = getSpawnConfig(service);
18382
18461
  const supportsStreaming = !!spawnConfig && spawnConfig.kind === "cli" && typeof spawnConfig.adapter === "string";
18383
18462
  if (supportsStreaming) {
@@ -18432,7 +18511,7 @@ function registerSpawnCommand(program, container, options = {}) {
18432
18511
  const extraServices = options.extraServices ?? [];
18433
18512
  const serviceList = [...spawnServices, ...extraServices];
18434
18513
  const serviceDescription = `Agent to spawn${formatServiceList(serviceList)}`;
18435
- program.command("spawn").description("Run a single prompt through a configured agent CLI.").option("--model <model>", "Model identifier override passed to the agent CLI").option("-C, --cwd <path>", "Working directory for the agent CLI").option("--stdin", "Read the prompt from stdin").argument(
18514
+ program.command("spawn").description("Run a single prompt through a configured agent CLI.").option("--model <model>", "Model identifier override passed to the agent CLI").option("-C, --cwd <path>", "Working directory for the agent CLI").option("--stdin", "Read the prompt from stdin").option("-i, --interactive", "Launch the agent in interactive TUI mode").argument(
18436
18515
  "<agent>",
18437
18516
  serviceDescription
18438
18517
  ).argument("[prompt]", "Prompt text to send (or '-' / stdin)").argument(
@@ -18454,6 +18533,17 @@ function registerSpawnCommand(program, container, options = {}) {
18454
18533
  if (promptText === "-") {
18455
18534
  promptText = void 0;
18456
18535
  }
18536
+ if (commandOptions.interactive) {
18537
+ const adapter2 = resolveServiceAdapter(container, service);
18538
+ const result = await spawnInteractive(adapter2.name, {
18539
+ prompt: promptText ?? "",
18540
+ args: forwardedArgs,
18541
+ model: commandOptions.model,
18542
+ cwd: cwdOverride
18543
+ });
18544
+ process.exitCode = result.exitCode;
18545
+ return;
18546
+ }
18457
18547
  if (!promptText && shouldReadFromStdin) {
18458
18548
  const chunks = [];
18459
18549
  for await (const chunk of process.stdin) {