poe-code 3.0.94 → 3.0.96

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/sdk/spawn.js CHANGED
@@ -2,7 +2,6 @@ import { getPoeApiKey } from "./credentials.js";
2
2
  import { spawnCore } from "./spawn-core.js";
3
3
  import { createSdkContainer } from "./container.js";
4
4
  import { getSpawnConfig, spawn as spawnNonStreaming, spawnInteractive, spawnStreaming, renderAcpStream } from "@poe-code/agent-spawn";
5
- import { spawnPoeAgentWithAcp } from "../providers/poe-agent.js";
6
5
  export function spawn(service, promptOrOptions, maybeOptions) {
7
6
  const options = typeof promptOrOptions === "string"
8
7
  ? { ...maybeOptions, prompt: promptOrOptions }
@@ -50,6 +49,7 @@ export function spawn(service, promptOrOptions, maybeOptions) {
50
49
  cwd: options.cwd,
51
50
  model: options.model,
52
51
  mode: options.mode,
52
+ signal: options.signal,
53
53
  args: options.args,
54
54
  ...(options.mcpServers ? { mcpServers: options.mcpServers } : {})
55
55
  });
@@ -59,27 +59,6 @@ export function spawn(service, promptOrOptions, maybeOptions) {
59
59
  exitCode: interactiveResult.exitCode
60
60
  };
61
61
  }
62
- if (service === "poe-agent") {
63
- const poeBaseUrl = typeof process.env.POE_BASE_URL === "string"
64
- ? process.env.POE_BASE_URL.trim() || undefined
65
- : undefined;
66
- const { events: innerEvents, done } = spawnPoeAgentWithAcp({
67
- prompt: options.prompt,
68
- cwd: options.cwd,
69
- model: options.model,
70
- ...(poeBaseUrl ? { baseUrl: poeBaseUrl } : {}),
71
- ...(options.mcpServers ? { mcpServers: options.mcpServers } : {})
72
- });
73
- resolveEventsOnce(innerEvents);
74
- const final = await done;
75
- return {
76
- stdout: final.stdout,
77
- stderr: final.stderr,
78
- exitCode: final.exitCode,
79
- threadId: final.threadId,
80
- sessionId: final.sessionId ?? final.threadId
81
- };
82
- }
83
62
  const spawnConfig = getSpawnConfig(service);
84
63
  const supportsStreaming = !!spawnConfig &&
85
64
  spawnConfig.kind === "cli" &&
@@ -92,6 +71,7 @@ export function spawn(service, promptOrOptions, maybeOptions) {
92
71
  model: options.model,
93
72
  mode: options.mode,
94
73
  args: options.args,
74
+ signal: options.signal,
95
75
  ...(options.mcpServers ? { mcpServers: options.mcpServers } : {}),
96
76
  useStdin: false
97
77
  });
@@ -113,6 +93,7 @@ export function spawn(service, promptOrOptions, maybeOptions) {
113
93
  model: options.model,
114
94
  mode: options.mode,
115
95
  args: options.args,
96
+ signal: options.signal,
116
97
  ...(options.mcpServers ? { mcpServers: options.mcpServers } : {}),
117
98
  useStdin: false
118
99
  });
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/sdk/spawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/sdk/spawn.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export interface SpawnOptions {
17
17
  mcpServers?: McpSpawnConfig;
18
18
  /** Launch the agent in interactive (TUI) mode with inherited stdio */
19
19
  interactive?: boolean;
20
+ /** Abort signal used to terminate the spawned agent */
21
+ signal?: AbortSignal;
20
22
  }
21
23
  /**
22
24
  * Result from spawning a provider CLI.
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: poe-code-pipeline-plan
3
+ description: 'Generate a Pipeline plan (YAML) from a user request. Triggers on: create a pipeline plan, write plan for, plan this feature, pipeline plan.'
4
+ ---
5
+
6
+ ## If The Request Is Empty
7
+
8
+ Ask the user for a one-sentence description of what they want to build.
9
+
10
+ ## Goal
11
+
12
+ Write a YAML pipeline plan for `.poe-code/pipeline/plans/plan-<name>.yaml`
13
+
14
+ ## Rules
15
+
16
+ - Each task must be self-contained. Put all context needed to execute the task inside that task's `prompt`.
17
+ - Do not create tasks that depend on hidden state from previous tasks.
18
+ - Use short kebab-case ids.
19
+ - Keep titles concise and descriptive.
20
+ - The available steps come from `.poe-code/pipeline/steps.yaml`, and that file is meant to be edited by the user. Use the current step names instead of inventing hardcoded ones.
21
+ - If no step configuration is present, use stepless tasks with scalar `status: open`.
22
+ - If step configuration is present, start every configured step status at `open`.
23
+
24
+ ## Output Format
25
+
26
+ Stepless tasks:
27
+
28
+ ```yaml
29
+ tasks:
30
+ - id: auth-hardening
31
+ title: Harden auth flow
32
+ prompt: |
33
+ Improve auth validation and session handling.
34
+ status: open
35
+ ```
36
+
37
+ Stepped tasks when `.poe-code/pipeline/steps.yaml` defines steps:
38
+
39
+ ```yaml
40
+ tasks:
41
+ - id: auth-hardening
42
+ title: Harden auth flow
43
+ prompt: |
44
+ Improve auth validation and session handling.
45
+ status:
46
+ implement: open
47
+ test: open
48
+ review: open
49
+ ```
50
+
51
+ ## Notes
52
+
53
+ - If the repository already has `.poe-code/pipeline/steps.yaml`, match its uncommented step names and order.
@@ -0,0 +1,36 @@
1
+ # Edit this file to define Pipeline steps.
2
+ # Leave it comment-only to keep the default no-step behavior.
3
+ # Uncomment and change the example below when you want stepped tasks.
4
+ # Add `mode` only when you want to override the default `yolo`.
5
+ #
6
+ # steps:
7
+ # implement:
8
+ # instruction: |
9
+ # {{id}}: {{title}}
10
+ #
11
+ # Implement
12
+ # {{prompt}}
13
+ #
14
+ # refactor:
15
+ # instruction: |
16
+ # {{id}}: {{title}}
17
+ # Original task:
18
+ # {{prompt}}
19
+ #
20
+ # Refactor and improve the code
21
+ #
22
+ # test:
23
+ # instruction: |
24
+ # {{id}}: {{title}}
25
+ # Original task:
26
+ # {{prompt}}
27
+ #
28
+ # Be a user and test all edge cases, fix bugs
29
+ #
30
+ # commit:
31
+ # instruction: |
32
+ # {{id}}: {{title}}
33
+ # Original task:
34
+ # {{prompt}}
35
+ #
36
+ # Commit changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poe-code",
3
- "version": "3.0.94",
3
+ "version": "3.0.96",
4
4
  "description": "CLI tool to configure Poe API for developer workflows.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -58,6 +58,7 @@
58
58
  "poe-claude": "dist/bin/poe-claude.js",
59
59
  "poe-codex": "dist/bin/poe-codex.js",
60
60
  "poe-opencode": "dist/bin/poe-opencode.js",
61
+ "poe-agent": "dist/bin/poe-agent.js",
61
62
  "tiny-stdio-mcp-test-server": "packages/tiny-stdio-mcp-test-server/dist/cli.js"
62
63
  },
63
64
  "files": [
@@ -1,3 +0,0 @@
1
- import type { Command } from "commander";
2
- import type { CliContainer } from "../container.js";
3
- export declare function registerRalphWorktreeCommand(ralph: Command, container: CliContainer): void;
@@ -1,73 +0,0 @@
1
- import path from "node:path";
2
- import { execSync } from "node:child_process";
3
- import { log } from "@poe-code/design-system";
4
- import { listWorktrees, updateWorktreeStatus } from "@poe-code/worktree";
5
- import { spawnInteractive } from "@poe-code/agent-spawn";
6
- import { renderTemplate } from "@poe-code/config-mutations";
7
- import { ValidationError } from "../errors.js";
8
- export function registerRalphWorktreeCommand(ralph, container) {
9
- ralph
10
- .command("worktree")
11
- .description("Merge a completed worktree back into the main branch.")
12
- .argument("<name>", "Name of the worktree to merge")
13
- .option("--agent <name>", "Agent to use for the merge")
14
- .action(async function (name) {
15
- const cwd = container.env.cwd;
16
- const registryFile = path.join(cwd, ".poe-code-ralph", "worktrees.yaml");
17
- const worktrees = await listWorktrees(cwd, registryFile, {
18
- fs: {
19
- readFile: (p, enc) => container.fs.readFile(p, enc),
20
- writeFile: (p, data, opts) => container.fs.writeFile(p, data, opts),
21
- mkdir: (p, opts) => container.fs.mkdir(p, opts)
22
- },
23
- exec: (command, opts) => Promise.resolve({
24
- stdout: execSync(command, {
25
- cwd: opts?.cwd,
26
- encoding: "utf8",
27
- stdio: ["ignore", "pipe", "pipe"]
28
- }),
29
- stderr: ""
30
- })
31
- });
32
- const entry = worktrees.find((w) => w.name === name);
33
- if (!entry) {
34
- throw new ValidationError(`Worktree "${name}" not found in registry.`);
35
- }
36
- if (entry.status !== "done" && entry.status !== "failed") {
37
- throw new ValidationError(`Worktree "${name}" has status "${entry.status}" and is not mergeable. Only "done" or "failed" worktrees can be merged.`);
38
- }
39
- if (!entry.gitExists) {
40
- throw new ValidationError(`Worktree directory does not exist for "${name}". It may have been manually removed.`);
41
- }
42
- const options = this.opts();
43
- const { default: mergeTemplate } = await import("../../templates/ralph/PROMPT_worktree_merge.md");
44
- const renderedPrompt = renderTemplate(mergeTemplate, {
45
- WORKTREE_NAME: entry.name,
46
- WORKTREE_PATH: entry.path,
47
- WORKTREE_BRANCH: entry.branch,
48
- BASE_BRANCH: entry.baseBranch,
49
- MAIN_CWD: cwd,
50
- PLAN_PATH: entry.planPath ?? "",
51
- STORY_ID: entry.storyId ?? ""
52
- });
53
- const agent = options.agent?.trim() || entry.agent;
54
- const result = await spawnInteractive(agent, {
55
- prompt: renderedPrompt,
56
- cwd
57
- });
58
- const fsAdapter = {
59
- readFile: (p, enc) => container.fs.readFile(p, enc),
60
- writeFile: (p, data, opts) => container.fs.writeFile(p, data, opts),
61
- mkdir: (p, opts) => container.fs.mkdir(p, opts)
62
- };
63
- if (result.exitCode === 0) {
64
- await updateWorktreeStatus(registryFile, entry.name, "done", { fs: fsAdapter });
65
- log.success(`Worktree "${entry.name}" merged successfully.`);
66
- }
67
- else {
68
- await updateWorktreeStatus(registryFile, entry.name, "failed", { fs: fsAdapter });
69
- log.error(`Agent exited with code ${result.exitCode}. Worktree "${entry.name}" marked as failed.`);
70
- }
71
- });
72
- }
73
- //# sourceMappingURL=ralph-worktree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ralph-worktree.js","sourceRoot":"","sources":["../../../src/cli/commands/ralph-worktree.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { Command } from "commander";
2
- import type { CliContainer } from "../container.js";
3
- export declare function registerRalphCommand(program: Command, container: CliContainer): void;