@webpresso/codex-plugin 3.1.13 → 3.1.15

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,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-kit",
3
- "version": "3.1.13",
3
+ "version": "3.1.15",
4
4
  "description": "Webpresso agent-kit: blueprints, skills, hooks, and MCP server",
5
5
  "author": {
6
6
  "name": "Webpresso",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webpresso/codex-plugin",
3
- "version": "3.1.13",
3
+ "version": "3.1.15",
4
4
  "private": false,
5
5
  "description": "Codex plugin adapter for Webpresso agent-kit skills, hooks, and MCP runtime.",
6
6
  "homepage": "https://github.com/webpresso/agent-kit#readme",
@@ -2,11 +2,8 @@
2
2
  "schemaVersion": 1,
3
3
  "host": "codex",
4
4
  "packageName": "@webpresso/codex-plugin",
5
- "packageVersion": "3.1.13",
6
- "runtimeDirs": [
7
- ".codex/skills",
8
- ".agents/skills"
9
- ],
5
+ "packageVersion": "3.1.15",
6
+ "runtimeDirs": [".codex/skills", ".agents/skills"],
10
7
  "skills": {
11
8
  "autopilot": {
12
9
  "digest": "sha256:7fc1fe9f5fb5b8a3e755f8e3ac4b807e4f140288544ffcf39e4cbfdea984014d"
@@ -21,10 +18,10 @@
21
18
  "digest": "sha256:21fd24862e7f7c8a1feadea6bc376492b136b99fc381cf1b8927c9db80615431"
22
19
  },
23
20
  "claude": {
24
- "digest": "sha256:b75a472594d78bd9452c07fd791a426864848a2c9c726454dc72daf3813ae22b"
21
+ "digest": "sha256:2af483ef80c5e0cf3d6d3da94d54b5bd1e9cecc9b2bd05e085499c2745c2c238"
25
22
  },
26
23
  "codex": {
27
- "digest": "sha256:803cea9c1b37406d7bdc8e44e9d5e9f3988218277500d8d6cb0d955c933c3302"
24
+ "digest": "sha256:e8289cb51d023d8b20c1bfb2e349ee89c4d04cdfd5a03c7681328b3e60aab554"
28
25
  },
29
26
  "deep-research": {
30
27
  "digest": "sha256:01dafd194066a2936db0b437fd5c3beef6d7ff82478d0d995393093d89496f18"
@@ -48,7 +45,7 @@
48
45
  "digest": "sha256:a80fbacc765e8b886437b9fdf7dd71e1ceb1b98b939078ec90fc88d06a8b4c69"
49
46
  },
50
47
  "opencode-go": {
51
- "digest": "sha256:ccb2bcf09cc1c5c0d54027b84f580e688f5f5cf624e6cdc19870bd3ce99940fc"
48
+ "digest": "sha256:8bbfad8273c526c563ceef3c8b98efbc60c3b24dc6b0a2a25d8efd9e83788860"
52
49
  },
53
50
  "plan-ceo-review": {
54
51
  "digest": "sha256:4d426158518dd71f8998770e8d4037bcbfa3c65d7265a93a4a78a9b015ba881e"
@@ -84,4 +81,4 @@
84
81
  "digest": "sha256:ce0dd3a77508d1bf11c805dec2de04e75b689201d376b2ff0fa957604d584500"
85
82
  }
86
83
  }
87
- }
84
+ }
@@ -57,7 +57,7 @@ Claude's managed native subagent lifecycle does not provide a reliable parent-li
57
57
 
58
58
  Use single-file / single-question first for any non-trivial diff. Do not send a whole PR unless it already fits within the bounded payload below.
59
59
 
60
- **Model policy:** default to `sonnet` via `CLAUDE_REVIEW_MODEL=${CLAUDE_REVIEW_MODEL:-sonnet}`. Override to `opus` only when the review is approval evidence or the user explicitly asks for Opus. Never use `fable` for Claude outside-voice review. Any review used as blueprint approval evidence MUST run with Claude Opus and record `"model": "opus"`.
60
+ **Model policy:** default to the moving `opus` alias via `CLAUDE_REVIEW_MODEL=${CLAUDE_REVIEW_MODEL:-opus}`. Never use `fable` for Claude outside-voice review. Any review used as blueprint approval evidence MUST run with Claude Opus and record `"model": "opus"`.
61
61
 
62
62
  #### Bounded prompt payload
63
63
 
@@ -95,7 +95,7 @@ TARGET_FILE=${TARGET_FILE:?set TARGET_FILE to one changed file}
95
95
  Run both the availability probe and the full review through the typed `wp review run` owner. Skills must not embed subprocess supervision. The runtime consumes Claude's streaming JSON events, advances its idle clock only on monotonic semantic progress, and has no total wall-clock cutoff.
96
96
 
97
97
  ```bash
98
- CLAUDE_REVIEW_MODEL=${CLAUDE_REVIEW_MODEL:-sonnet}
98
+ CLAUDE_REVIEW_MODEL=${CLAUDE_REVIEW_MODEL:-opus}
99
99
  CLAUDE_REVIEW_EFFORT=${CLAUDE_REVIEW_EFFORT:-medium}
100
100
  CLAUDE_REVIEW_PROBE_IDLE_SECONDS=${CLAUDE_REVIEW_PROBE_IDLE_SECONDS:-180}
101
101
  CLAUDE_REVIEW_IDLE_SECONDS=${CLAUDE_REVIEW_IDLE_SECONDS:-180}
@@ -104,7 +104,8 @@ PROBE_FILE=$(mktemp -t wp-claude-probe.XXXXXX)
104
104
  trap 'rm -f "$PROMPT_FILE" "$PROBE_FILE"' EXIT
105
105
  printf 'Reply exactly CLAUDE_OK.\n' >"$PROBE_FILE"
106
106
 
107
- wp review run \
107
+ CLAUDE_REVIEW_CODE=0
108
+ if wp review run \
108
109
  --provider claude \
109
110
  --prompt-file "$PROBE_FILE" \
110
111
  --model "$CLAUDE_REVIEW_MODEL" \
@@ -112,17 +113,20 @@ wp review run \
112
113
  --stage probe \
113
114
  --expected-marker CLAUDE_OK \
114
115
  --artifact-root "$CLAUDE_REVIEW_ARTIFACT_ROOT" \
115
- --idle-seconds "$CLAUDE_REVIEW_PROBE_IDLE_SECONDS"
116
-
117
- wp review run \
118
- --provider claude \
119
- --prompt-file "$PROMPT_FILE" \
120
- --model "$CLAUDE_REVIEW_MODEL" \
121
- --effort "$CLAUDE_REVIEW_EFFORT" \
122
- --stage review \
123
- --artifact-root "$CLAUDE_REVIEW_ARTIFACT_ROOT" \
124
- --idle-seconds "$CLAUDE_REVIEW_IDLE_SECONDS"
125
- CLAUDE_REVIEW_CODE=$?
116
+ --idle-seconds "$CLAUDE_REVIEW_PROBE_IDLE_SECONDS"; then
117
+ wp review run \
118
+ --provider claude \
119
+ --prompt-file "$PROMPT_FILE" \
120
+ --model "$CLAUDE_REVIEW_MODEL" \
121
+ --effort "$CLAUDE_REVIEW_EFFORT" \
122
+ --stage review \
123
+ --artifact-root "$CLAUDE_REVIEW_ARTIFACT_ROOT" \
124
+ --idle-seconds "$CLAUDE_REVIEW_IDLE_SECONDS"
125
+ CLAUDE_REVIEW_CODE=$?
126
+ else
127
+ CLAUDE_REVIEW_CODE=$?
128
+ echo "Claude preflight failed; full review not started." >&2
129
+ fi
126
130
  ```
127
131
 
128
132
  After the review runtime exits, emit its terminal state using the same artifact path:
@@ -56,16 +56,45 @@ Codex native subagent events are not currently parent-linked in the managed life
56
56
 
57
57
  1. Capture the current branch, base branch, and `git diff --stat`.
58
58
  2. Write a concise prompt asking Codex to find correctness, security, data-loss, and maintainability risks.
59
- 3. Run Codex non-interactively in read-only mode:
59
+ 3. Run Codex through the typed review runtime in read-only mode:
60
60
 
61
61
  ```bash
62
+ CODEX_REVIEW_MODEL=${CODEX_REVIEW_MODEL:-gpt-5.4}
62
63
  CODEX_REVIEW_EFFORT=${CODEX_REVIEW_EFFORT:-medium}
63
64
  case "$CODEX_REVIEW_EFFORT" in
64
65
  medium|high) ;;
65
66
  *) echo "CODEX_REVIEW_EFFORT must be one of: medium, high" >&2; exit 2 ;;
66
67
  esac
68
+ CODEX_REVIEW_PROBE_IDLE_SECONDS=${CODEX_REVIEW_PROBE_IDLE_SECONDS:-180}
69
+ CODEX_REVIEW_IDLE_SECONDS=${CODEX_REVIEW_IDLE_SECONDS:-180}
70
+ CODEX_REVIEW_ARTIFACT_ROOT=${CODEX_REVIEW_ARTIFACT_ROOT:-"$(pwd)/.webpresso/reviews"}
71
+ PROBE_FILE=$(mktemp -t wp-codex-probe.XXXXXX)
72
+ trap 'rm -f "$PROMPT_FILE" "$PROBE_FILE"' EXIT
73
+ printf 'Reply exactly CODEX_OK.\n' >"$PROBE_FILE"
74
+
67
75
  CODEX_REVIEW_CODE=0
68
- codex exec -c model_reasoning_effort="\"$CODEX_REVIEW_EFFORT\"" --sandbox read-only --cd "$PWD" - <"$PROMPT_FILE" || CODEX_REVIEW_CODE=$?
76
+ if wp review run \
77
+ --provider codex \
78
+ --prompt-file "$PROBE_FILE" \
79
+ --model "$CODEX_REVIEW_MODEL" \
80
+ --effort "$CODEX_REVIEW_EFFORT" \
81
+ --stage probe \
82
+ --expected-marker CODEX_OK \
83
+ --artifact-root "$CODEX_REVIEW_ARTIFACT_ROOT" \
84
+ --idle-seconds "$CODEX_REVIEW_PROBE_IDLE_SECONDS"; then
85
+ wp review run \
86
+ --provider codex \
87
+ --prompt-file "$PROMPT_FILE" \
88
+ --model "$CODEX_REVIEW_MODEL" \
89
+ --effort "$CODEX_REVIEW_EFFORT" \
90
+ --stage review \
91
+ --artifact-root "$CODEX_REVIEW_ARTIFACT_ROOT" \
92
+ --idle-seconds "$CODEX_REVIEW_IDLE_SECONDS"
93
+ CODEX_REVIEW_CODE=$?
94
+ else
95
+ CODEX_REVIEW_CODE=$?
96
+ echo "Codex preflight failed; full review not started." >&2
97
+ fi
69
98
  ```
70
99
 
71
100
  4. Summarize findings with severity, evidence, and whether you independently verified them.
@@ -82,7 +82,7 @@ PROBE_FILE=$(mktemp -t wp-opencode-go-probe.XXXXXX)
82
82
  trap 'rm -f "$PROMPT_FILE" "$PROBE_FILE"' EXIT
83
83
  printf 'Reply exactly OPENCODE_GO_OK.\n' >"$PROBE_FILE"
84
84
 
85
- wp review run \
85
+ if ! wp review run \
86
86
  --provider opencode \
87
87
  --prompt-file "$PROBE_FILE" \
88
88
  --model "$MODEL" \
@@ -90,7 +90,10 @@ wp review run \
90
90
  --stage probe \
91
91
  --expected-marker OPENCODE_GO_OK \
92
92
  --artifact-root "$OPENCODE_GO_REVIEW_ARTIFACT_ROOT" \
93
- --idle-seconds "$OPENCODE_GO_PROBE_IDLE_SECONDS"
93
+ --idle-seconds "$OPENCODE_GO_PROBE_IDLE_SECONDS"; then
94
+ echo "OpenCode Go preflight failed; full review not started." >&2
95
+ exit 1
96
+ fi
94
97
 
95
98
  wp review run \
96
99
  --provider opencode \
@@ -103,4 +106,4 @@ wp review run \
103
106
  ```
104
107
 
105
108
  If `$MODEL` is empty, run `opencode models opencode-go` and choose a present reviewer.
106
- Treat `true-idle`, `protocol-unsupported`, provider failure, abort, spawn failure, or artifact failure as unavailable review evidence. Never replace them with a static timeout, arbitrary byte-growth heartbeat, or buffered-output fallback.
109
+ Treat a provider-wide usage limit as terminal for every OpenCode Go model in the current review; do not fall back to another family. Treat `true-idle`, `protocol-unsupported`, provider failure, abort, spawn failure, or artifact failure as unavailable review evidence. Never replace them with a static timeout, arbitrary byte-growth heartbeat, or buffered-output fallback.