@bookedsolid/rea 0.9.1 → 0.9.2

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.
@@ -992,8 +992,15 @@ pr_core_run() {
992
992
 
993
993
  local -a REA_CLI_ARGS
994
994
  REA_CLI_ARGS=()
995
- if [[ -f "${REA_ROOT}/node_modules/.bin/rea" ]]; then
996
- REA_CLI_ARGS=(node "${REA_ROOT}/node_modules/.bin/rea")
995
+ # node_modules/.bin/rea is a launcher (pnpm writes a POSIX shell shim, npm
996
+ # writes a symlink to dist/cli/index.js with its own `#!/usr/bin/env node`
997
+ # shebang). Either way it is NOT a plain JS file, so running `node` on it
998
+ # would parse shell syntax as JavaScript and SyntaxError. Execute the shim
999
+ # directly — it handles `exec node` itself — and only prepend `node` on the
1000
+ # dist fallback, which is a real JS module. The `-x` guard picks up both
1001
+ # pnpm shims (executable regular file) and npm symlinks (executable target).
1002
+ if [[ -x "${REA_ROOT}/node_modules/.bin/rea" ]]; then
1003
+ REA_CLI_ARGS=("${REA_ROOT}/node_modules/.bin/rea")
997
1004
  elif [[ -f "${REA_ROOT}/dist/cli/index.js" ]]; then
998
1005
  REA_CLI_ARGS=(node "${REA_ROOT}/dist/cli/index.js")
999
1006
  fi
@@ -154,9 +154,17 @@ fi
154
154
 
155
155
  # ── 9. Resolve rea CLI ────────────────────────────────────────────────────
156
156
  # Try local installs first, then dist build, then global PATH install.
157
+ #
158
+ # node_modules/.bin/rea is a launcher (pnpm writes a POSIX shell shim, npm
159
+ # writes a symlink to dist/cli/index.js with its own `#!/usr/bin/env node`
160
+ # shebang). Either way it is NOT a plain JS file, so running `node` on it
161
+ # would parse shell syntax as JavaScript and SyntaxError. Execute the shim
162
+ # directly — it handles `exec node` itself — and only prepend `node` on the
163
+ # dist fallback, which is a real JS module. The `-x` guard picks up both
164
+ # pnpm shims (executable regular file) and npm symlinks (executable target).
157
165
  REA_CLI_ARGS=()
158
- if [[ -f "${REA_ROOT}/node_modules/.bin/rea" ]]; then
159
- REA_CLI_ARGS=(node "${REA_ROOT}/node_modules/.bin/rea")
166
+ if [[ -x "${REA_ROOT}/node_modules/.bin/rea" ]]; then
167
+ REA_CLI_ARGS=("${REA_ROOT}/node_modules/.bin/rea")
160
168
  elif [[ -f "${REA_ROOT}/dist/cli/index.js" ]]; then
161
169
  REA_CLI_ARGS=(node "${REA_ROOT}/dist/cli/index.js")
162
170
  elif command -v rea >/dev/null 2>&1; then
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bookedsolid/rea",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects",
5
5
  "license": "MIT",
6
6
  "author": "Booked Solid Technology <oss@bookedsolid.tech> (https://bookedsolid.tech)",