poe-code 3.0.127 → 3.0.129

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 { type PipelineRunOptions, type PipelineRunResult } from "@poe-code/pipeline";
2
- export type { AgentRunUsage, AgentRunInput, AgentRunResult, PipelineConfig, PipelineMetrics, PipelinePlan, PipelineStatus, PipelineTask, ResolvedStepDefinitions, StepDefinition, StepMode, TaskProgress, PlanSummary } from "@poe-code/pipeline";
2
+ export type { AgentRunUsage, AgentRunInput, AgentRunResult, PipelineConfig, PipelineMetrics, PipelinePlan, PipelineStatus, PipelineTask, ResolvedStepDefinitions, ResolvedStepsConfig, StepDefinition, StepMode, TaskProgress, PlanSummary } from "@poe-code/pipeline";
3
3
  export { resolvePlanDirectory } from "@poe-code/pipeline";
4
4
  export type { PipelineRunOptions, PipelineRunResult };
5
5
  export declare function runPipeline(options: PipelineRunOptions): Promise<PipelineRunResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/sdk/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,oBAAoB,EAGpC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiB/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B;IAE3B,OAAO,oBAAoB,CAAC;QAC1B,GAAG,OAAO;QACV,QAAQ,EAAE,KAAK,EAAE,KAAiE,EAAE,EAAE;YACpF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC/C,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,MAAM,MAAM,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/sdk/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,oBAAoB,EAGpC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkB/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B;IAE3B,OAAO,oBAAoB,CAAC;QAC1B,GAAG,OAAO;QACV,QAAQ,EAAE,KAAK,EAAE,KAAiE,EAAE,EAAE;YACpF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC/C,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,MAAM,MAAM,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -13,7 +13,8 @@ Write a YAML pipeline plan. Before writing, determine where to place it:
13
13
 
14
14
  1. Run `poe-code pipeline plan-path` to get the plans directory.
15
15
  2. Write the plan to `<plan-path>/plan-<name>.yaml`. If the plan path is under the global `~/.poe-code` directory, prefix the filename with the project name: `plan-<project>-<name>.yaml`.
16
- 3. Check if a `steps.yaml` exists next to the plans directory (i.e. `<plan-path>/../steps.yaml`). If it does, read it to determine available steps. If not, use stepless tasks.
16
+ 3. Check if a `steps.yaml` exists next to the plans directory (i.e. `<plan-path>/../steps.yaml`). If it does, read it to determine available steps and note any `setup`/`teardown` hooks defined there. If not, use stepless tasks.
17
+ 4. If the user has an existing Markdown plan document (e.g. in `docs/plans/`), link it via `vars` so it is available in every prompt without repeating the path.
17
18
 
18
19
  ## Rules
19
20
 
@@ -24,32 +25,47 @@ Write a YAML pipeline plan. Before writing, determine where to place it:
24
25
  - The available steps come from the `steps.yaml` file you found (project or global). Use the current step names instead of inventing hardcoded ones.
25
26
  - If no step configuration is present, use stepless tasks with scalar `status: open`.
26
27
  - If step configuration is present, start every configured step status at `open`.
28
+ - `setup` and `teardown` defined in `steps.yaml` are inherited automatically.
29
+ - To disable an inherited hook for a specific plan, set `setup: false` or `teardown: false`.
30
+ - To override an inherited hook, define the full block with an `prompt` field.
31
+ - If the user has an existing Markdown plan document, add a `vars` block with a `plan_doc` key pointing to the file path. The pipeline runtime reads the file and makes its contents available as a named placeholder in every prompt.
32
+ - `vars` values are plain strings. Use the `file` include syntax inside a value to load a file at runtime (path relative to project root): write `var_name: "` followed by the file include tag and a closing `"`.
33
+ - Each var name becomes a double-curly-brace placeholder usable in any task, step, setup, or teardown prompt.
27
34
 
28
35
  ## Output Format
29
36
 
30
- Stepless tasks:
31
-
32
37
  ```yaml
33
- tasks:
34
- - id: auth-hardening
35
- title: Harden auth flow
36
- prompt: |
37
- Improve auth validation and session handling.
38
- status: open
39
- ```
40
-
41
- Stepped tasks when `.poe-code/pipeline/steps.yaml` defines steps:
38
+ # vars: optional. Define named values available as double-curly-brace placeholders in every prompt.
39
+ # Each value is a plain string. To load a file at runtime, write the value using the
40
+ # file include syntax: double-curly-brace file followed by a quoted path.
41
+ # Omit this block if there are no shared values to inject.
42
+ #
43
+ # vars:
44
+ # plan_doc: "(file include for docs/plans/my-feature.md)" # loaded at runtime
45
+ # env: production # literal string
46
+
47
+ # setup/teardown are inherited from steps.yaml automatically.
48
+ # Include them only to disable or override:
49
+ #
50
+ # setup: false # disable the inherited setup hook
51
+ # teardown: false # disable the inherited teardown hook
52
+ # setup: # override with a different prompt
53
+ # prompt: Custom setup
54
+ # mode: yolo
42
55
 
43
- ```yaml
44
56
  tasks:
45
57
  - id: auth-hardening
46
58
  title: Harden auth flow
47
59
  prompt: |
48
60
  Improve auth validation and session handling.
49
- status:
50
- implement: open
51
- test: open
52
- review: open
61
+ # If vars defines plan_doc, reference it here using the double-curly-brace placeholder syntax.
62
+ # scalar when no steps.yaml steps are defined:
63
+ status: open
64
+ # stepped when steps.yaml defines steps:
65
+ # status:
66
+ # implement: open
67
+ # test: open
68
+ # commit: open
53
69
  ```
54
70
 
55
71
  ## After Writing
@@ -3,10 +3,22 @@
3
3
  # Uncomment and change the example below when you want stepped tasks.
4
4
  # Add `mode` only when you want to override the default `yolo`.
5
5
  # Add `agent` and/or `model` to override the pipeline-level defaults per step.
6
+ # Use {{file 'path'}} in any prompt to inline the contents of a Markdown file (relative to project root).
7
+ #
8
+ # Optional: setup runs once before any tasks, teardown runs once after all complete.
9
+ # These can also be defined in plan.yaml to override the defaults below.
10
+ #
11
+ # setup:
12
+ # prompt: Prepare the workspace
13
+ # # mode: yolo
14
+ #
15
+ # teardown:
16
+ # prompt: Run final checks and clean up
17
+ # # mode: read
6
18
  #
7
19
  # steps:
8
20
  # implement:
9
- # instruction: |
21
+ # prompt: |
10
22
  # {{id}}: {{title}}
11
23
  #
12
24
  # Implement
@@ -15,7 +27,7 @@
15
27
  # # model: o3
16
28
  #
17
29
  # refactor:
18
- # instruction: |
30
+ # prompt: |
19
31
  # {{id}}: {{title}}
20
32
  # Original task:
21
33
  # {{prompt}}
@@ -23,7 +35,7 @@
23
35
  # Refactor and improve the code
24
36
  #
25
37
  # test:
26
- # instruction: |
38
+ # prompt: |
27
39
  # {{id}}: {{title}}
28
40
  # Original task:
29
41
  # {{prompt}}
@@ -31,7 +43,7 @@
31
43
  # Be a user and test all edge cases, fix bugs
32
44
  #
33
45
  # commit:
34
- # instruction: |
46
+ # prompt: |
35
47
  # {{id}}: {{title}}
36
48
  # Original task:
37
49
  # {{prompt}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poe-code",
3
- "version": "3.0.127",
3
+ "version": "3.0.129",
4
4
  "description": "CLI tool to configure Poe API for developer workflows.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -27,10 +27,15 @@
27
27
  "screenshot": "tsx scripts/screenshot.ts",
28
28
  "screenshot-poe-code": "tsx scripts/screenshot.ts --poe-code",
29
29
  "generate:design-docs": "turbo run generate:docs --filter=@poe-code/design-system",
30
+ "generate:design-docs:all": "npm run generate:design-docs:all -w @poe-code/design-system",
30
31
  "format": "prettier --check .",
31
32
  "format:write": "prettier --write .",
32
33
  "watch:diff": "tsx local_scripts/watch-diff.ts",
33
34
  "test:integration": "vitest run tests/integration/",
35
+ "test:workflows": "bats .github/workflows/test/workflows.bats",
36
+ "test:workflows:fast": "bats --filter 'dry-run' .github/workflows/test/workflows.bats",
37
+ "test:workflows:all": "bash scripts/test-workflows.sh",
38
+ "test:workflows:ci": "ACT_FULL=1 bash scripts/test-workflows.sh",
34
39
  "test:record": "POE_SNAPSHOT_MODE=record npm run test:integration",
35
40
  "test-generate": "tsx scripts/test-generate.ts",
36
41
  "snapshots": "tsx scripts/snapshots.ts",
@@ -88,36 +93,39 @@
88
93
  "devDependencies": {
89
94
  "@eslint/js": "^9.0.0",
90
95
  "@modelcontextprotocol/sdk": "^1.26.0",
91
- "auth-store": "*",
92
- "poe-oauth": "*",
93
96
  "@poe-code/agent-spawn": "*",
97
+ "@poe-code/cmdkit": "*",
98
+ "@poe-code/github-workflows": "*",
94
99
  "@poe-code/config-mutations": "*",
95
100
  "@poe-code/design-system": "*",
96
101
  "@poe-code/e2e-docker-test-runner": "*",
97
- "@poe-code/freeze-cli": "*",
102
+ "@poe-code/experiment-loop": "*",
98
103
  "@poe-code/pipeline": "*",
99
104
  "@poe-code/poe-acp-client": "*",
100
105
  "@poe-code/poe-code-config": "*",
106
+ "@poe-code/process-launcher": "*",
107
+ "@poe-code/process-runner": "*",
101
108
  "@poe-code/ralph": "*",
102
109
  "@types/mustache": "^4.2.6",
103
110
  "@types/node": "^25.2.2",
104
111
  "@types/semver": "^7.7.1",
112
+ "auth-store": "*",
113
+ "bats": "^1.13.0",
105
114
  "eslint": "^9.0.0",
106
115
  "eslint-config-prettier": "^10.1.8",
107
116
  "globals": "^17.3.0",
108
117
  "husky": "^9.1.7",
109
118
  "memfs": "^4.56.10",
119
+ "poe-oauth": "*",
110
120
  "prettier": "^3.8.1",
121
+ "terminal-png": "*",
111
122
  "tiny-stdio-mcp-server": "*",
112
123
  "tiny-stdio-mcp-test-server": "*",
113
124
  "tsx": ">=4.21.0",
114
125
  "turbo": "^2.8.3",
115
126
  "typescript": "^5.9.3",
116
127
  "typescript-eslint": "^8.54.0",
117
- "vitest": "^4.0.18",
118
- "@poe-code/experiment-loop": "*",
119
- "@poe-code/process-launcher": "*",
120
- "@poe-code/process-runner": "*"
128
+ "vitest": "^4.0.18"
121
129
  },
122
130
  "repository": {
123
131
  "type": "git",