@codyswann/lisa 4.53.4 → 4.53.5
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/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +6 -4
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/expo/copy-overwrite/plugins/withAndroidSplashNoClientExit.js +106 -8
- package/package.json +4 -4
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/typescript/copy-contents/.husky/commit-msg +52 -14
- package/typescript/copy-contents/.husky/pre-commit +52 -18
- package/typescript/copy-contents/.husky/pre-push +52 -14
|
@@ -1,21 +1,59 @@
|
|
|
1
1
|
# BEGIN: AI GUARDRAILS
|
|
2
2
|
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
3
|
+
# --- lisa:pm-detect ---
|
|
4
|
+
# Detect the package manager this project wants, honoring explicit opt-outs.
|
|
5
|
+
# Precedence: packageManager field > engines "please-use-<pm>" sentinel >
|
|
6
|
+
# lockfile presence (minus any PM the engines forbid) > npm default.
|
|
7
|
+
#
|
|
8
|
+
# The order this replaced claimed to come from `package.json` engines and never
|
|
9
|
+
# read them. Two things were wrong with that. It keyed on lockfile presence
|
|
10
|
+
# ALONE, which is the one thing this product's own installer hook says it must
|
|
11
|
+
# not do: an npm-only project (engines.bun = "please-use-npm", CI runs
|
|
12
|
+
# `npm ci`) that picks up a stray bun.lock gets bun here and npm there, so two
|
|
13
|
+
# Lisa components in one repository disagree about which manager runs the
|
|
14
|
+
# gates. And the justification described LISA's package.json, copied verbatim
|
|
15
|
+
# into repositories whose engines say something else entirely.
|
|
16
|
+
#
|
|
17
|
+
# `pnpm` was absent from the chain, so a pnpm project matched no branch and
|
|
18
|
+
# fell through to npm. Seven sibling detectors in this product already know
|
|
19
|
+
# `pnpm-lock.yaml`; this family was the only one that did not.
|
|
20
|
+
#
|
|
21
|
+
# Kept in step with `install-pkgs.sh`, deliberately: the two must agree, and
|
|
22
|
+
# the failure mode of drift is silent disagreement rather than an error.
|
|
23
|
+
lisa_detect_pm() {
|
|
24
|
+
_field="" _forced="" _forbidden=""
|
|
25
|
+
if [ -f package.json ] && command -v jq >/dev/null 2>&1; then
|
|
26
|
+
_field=$(jq -r '(.packageManager // "") | sub("@.*$";"")' package.json 2>/dev/null)
|
|
27
|
+
_forced=$(jq -r 'first((.engines // {})[] | strings | capture("please-use-(?<pm>bun|npm|yarn|pnpm)")?.pm) // ""' package.json 2>/dev/null)
|
|
28
|
+
_forbidden=$(jq -r '[(.engines // {}) | to_entries[] | select(((.value|strings) // "") | test("please-use|do-not-use";"i")) | .key] | join(" ")' package.json 2>/dev/null)
|
|
29
|
+
fi
|
|
30
|
+
case "$_field" in bun | npm | yarn | pnpm) printf '%s\n' "$_field"; return 0 ;; esac
|
|
31
|
+
case "$_forced" in bun | npm | yarn | pnpm) printf '%s\n' "$_forced"; return 0 ;; esac
|
|
32
|
+
_pm_allowed() { case " $_forbidden " in *" $1 "*) return 1 ;; *) return 0 ;; esac; }
|
|
33
|
+
if { [ -f bun.lockb ] || [ -f bun.lock ]; } && _pm_allowed bun; then printf 'bun\n'; return 0; fi
|
|
34
|
+
if [ -f pnpm-lock.yaml ] && _pm_allowed pnpm; then printf 'pnpm\n'; return 0; fi
|
|
35
|
+
if [ -f yarn.lock ] && _pm_allowed yarn; then printf 'yarn\n'; return 0; fi
|
|
36
|
+
if [ -f package-lock.json ] && _pm_allowed npm; then printf 'npm\n'; return 0; fi
|
|
37
|
+
printf 'npm\n'
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
PACKAGE_MANAGER="$(lisa_detect_pm)"
|
|
41
|
+
# A manager that is not installed is NAMED, never silently swapped. The branch
|
|
42
|
+
# this replaced answered "npm" for three different inputs — a pnpm project, a
|
|
43
|
+
# bun project on a machine without bun, a yarn project without yarn — and
|
|
44
|
+
# printed that answer as a detection. A confident wrong tool at commit time
|
|
45
|
+
# costs more than a named fallback.
|
|
46
|
+
if ! command -v "$PACKAGE_MANAGER" >/dev/null 2>&1; then
|
|
47
|
+
echo "⚠️ $PACKAGE_MANAGER is this project's package manager but is not on PATH; running gates with npm instead."
|
|
16
48
|
PACKAGE_MANAGER="npm"
|
|
17
|
-
EXECUTOR="npx"
|
|
18
49
|
fi
|
|
50
|
+
case "$PACKAGE_MANAGER" in
|
|
51
|
+
bun) RUNNER="bun run"; EXECUTOR="bunx" ;;
|
|
52
|
+
pnpm) RUNNER="pnpm run"; EXECUTOR="pnpm exec" ;;
|
|
53
|
+
yarn) RUNNER="yarn"; EXECUTOR="yarn" ;;
|
|
54
|
+
*) RUNNER="npm run"; EXECUTOR="npx" ;;
|
|
55
|
+
esac
|
|
56
|
+
# --- end lisa:pm-detect ---
|
|
19
57
|
|
|
20
58
|
# Get the commit message file path
|
|
21
59
|
COMMIT_MSG_FILE=$1
|
|
@@ -1,24 +1,58 @@
|
|
|
1
1
|
# BEGIN: AI GUARDRAILS
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
2
|
+
# --- lisa:pm-detect ---
|
|
3
|
+
# Detect the package manager this project wants, honoring explicit opt-outs.
|
|
4
|
+
# Precedence: packageManager field > engines "please-use-<pm>" sentinel >
|
|
5
|
+
# lockfile presence (minus any PM the engines forbid) > npm default.
|
|
6
|
+
#
|
|
7
|
+
# The order this replaced claimed to come from `package.json` engines and never
|
|
8
|
+
# read them. Two things were wrong with that. It keyed on lockfile presence
|
|
9
|
+
# ALONE, which is the one thing this product's own installer hook says it must
|
|
10
|
+
# not do: an npm-only project (engines.bun = "please-use-npm", CI runs
|
|
11
|
+
# `npm ci`) that picks up a stray bun.lock gets bun here and npm there, so two
|
|
12
|
+
# Lisa components in one repository disagree about which manager runs the
|
|
13
|
+
# gates. And the justification described LISA's package.json, copied verbatim
|
|
14
|
+
# into repositories whose engines say something else entirely.
|
|
15
|
+
#
|
|
16
|
+
# `pnpm` was absent from the chain, so a pnpm project matched no branch and
|
|
17
|
+
# fell through to npm. Seven sibling detectors in this product already know
|
|
18
|
+
# `pnpm-lock.yaml`; this family was the only one that did not.
|
|
19
|
+
#
|
|
20
|
+
# Kept in step with `install-pkgs.sh`, deliberately: the two must agree, and
|
|
21
|
+
# the failure mode of drift is silent disagreement rather than an error.
|
|
22
|
+
lisa_detect_pm() {
|
|
23
|
+
_field="" _forced="" _forbidden=""
|
|
24
|
+
if [ -f package.json ] && command -v jq >/dev/null 2>&1; then
|
|
25
|
+
_field=$(jq -r '(.packageManager // "") | sub("@.*$";"")' package.json 2>/dev/null)
|
|
26
|
+
_forced=$(jq -r 'first((.engines // {})[] | strings | capture("please-use-(?<pm>bun|npm|yarn|pnpm)")?.pm) // ""' package.json 2>/dev/null)
|
|
27
|
+
_forbidden=$(jq -r '[(.engines // {}) | to_entries[] | select(((.value|strings) // "") | test("please-use|do-not-use";"i")) | .key] | join(" ")' package.json 2>/dev/null)
|
|
28
|
+
fi
|
|
29
|
+
case "$_field" in bun | npm | yarn | pnpm) printf '%s\n' "$_field"; return 0 ;; esac
|
|
30
|
+
case "$_forced" in bun | npm | yarn | pnpm) printf '%s\n' "$_forced"; return 0 ;; esac
|
|
31
|
+
_pm_allowed() { case " $_forbidden " in *" $1 "*) return 1 ;; *) return 0 ;; esac; }
|
|
32
|
+
if { [ -f bun.lockb ] || [ -f bun.lock ]; } && _pm_allowed bun; then printf 'bun\n'; return 0; fi
|
|
33
|
+
if [ -f pnpm-lock.yaml ] && _pm_allowed pnpm; then printf 'pnpm\n'; return 0; fi
|
|
34
|
+
if [ -f yarn.lock ] && _pm_allowed yarn; then printf 'yarn\n'; return 0; fi
|
|
35
|
+
if [ -f package-lock.json ] && _pm_allowed npm; then printf 'npm\n'; return 0; fi
|
|
36
|
+
printf 'npm\n'
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
PACKAGE_MANAGER="$(lisa_detect_pm)"
|
|
40
|
+
# A manager that is not installed is NAMED, never silently swapped. The branch
|
|
41
|
+
# this replaced answered "npm" for three different inputs — a pnpm project, a
|
|
42
|
+
# bun project on a machine without bun, a yarn project without yarn — and
|
|
43
|
+
# printed that answer as a detection. A confident wrong tool at commit time
|
|
44
|
+
# costs more than a named fallback.
|
|
45
|
+
if ! command -v "$PACKAGE_MANAGER" >/dev/null 2>&1; then
|
|
46
|
+
echo "⚠️ $PACKAGE_MANAGER is this project's package manager but is not on PATH; running gates with npm instead."
|
|
18
47
|
PACKAGE_MANAGER="npm"
|
|
19
|
-
RUNNER="npm run"
|
|
20
|
-
EXECUTOR="npx"
|
|
21
48
|
fi
|
|
49
|
+
case "$PACKAGE_MANAGER" in
|
|
50
|
+
bun) RUNNER="bun run"; EXECUTOR="bunx" ;;
|
|
51
|
+
pnpm) RUNNER="pnpm run"; EXECUTOR="pnpm exec" ;;
|
|
52
|
+
yarn) RUNNER="yarn"; EXECUTOR="yarn" ;;
|
|
53
|
+
*) RUNNER="npm run"; EXECUTOR="npx" ;;
|
|
54
|
+
esac
|
|
55
|
+
# --- end lisa:pm-detect ---
|
|
22
56
|
|
|
23
57
|
echo "📦 Using package manager: $PACKAGE_MANAGER"
|
|
24
58
|
|
|
@@ -480,22 +480,60 @@ for GIT_LOCAL_ENV_VAR in $GIT_LOCAL_ENV_VARS; do
|
|
|
480
480
|
done
|
|
481
481
|
unset GIT_LOCAL_ENV_VAR GIT_LOCAL_ENV_VARS
|
|
482
482
|
|
|
483
|
-
#
|
|
484
|
-
#
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
483
|
+
# --- lisa:pm-detect ---
|
|
484
|
+
# Detect the package manager this project wants, honoring explicit opt-outs.
|
|
485
|
+
# Precedence: packageManager field > engines "please-use-<pm>" sentinel >
|
|
486
|
+
# lockfile presence (minus any PM the engines forbid) > npm default.
|
|
487
|
+
#
|
|
488
|
+
# The order this replaced claimed to come from `package.json` engines and never
|
|
489
|
+
# read them. Two things were wrong with that. It keyed on lockfile presence
|
|
490
|
+
# ALONE, which is the one thing this product's own installer hook says it must
|
|
491
|
+
# not do: an npm-only project (engines.bun = "please-use-npm", CI runs
|
|
492
|
+
# `npm ci`) that picks up a stray bun.lock gets bun here and npm there, so two
|
|
493
|
+
# Lisa components in one repository disagree about which manager runs the
|
|
494
|
+
# gates. And the justification described LISA's package.json, copied verbatim
|
|
495
|
+
# into repositories whose engines say something else entirely.
|
|
496
|
+
#
|
|
497
|
+
# `pnpm` was absent from the chain, so a pnpm project matched no branch and
|
|
498
|
+
# fell through to npm. Seven sibling detectors in this product already know
|
|
499
|
+
# `pnpm-lock.yaml`; this family was the only one that did not.
|
|
500
|
+
#
|
|
501
|
+
# Kept in step with `install-pkgs.sh`, deliberately: the two must agree, and
|
|
502
|
+
# the failure mode of drift is silent disagreement rather than an error.
|
|
503
|
+
lisa_detect_pm() {
|
|
504
|
+
_field="" _forced="" _forbidden=""
|
|
505
|
+
if [ -f package.json ] && command -v jq >/dev/null 2>&1; then
|
|
506
|
+
_field=$(jq -r '(.packageManager // "") | sub("@.*$";"")' package.json 2>/dev/null)
|
|
507
|
+
_forced=$(jq -r 'first((.engines // {})[] | strings | capture("please-use-(?<pm>bun|npm|yarn|pnpm)")?.pm) // ""' package.json 2>/dev/null)
|
|
508
|
+
_forbidden=$(jq -r '[(.engines // {}) | to_entries[] | select(((.value|strings) // "") | test("please-use|do-not-use";"i")) | .key] | join(" ")' package.json 2>/dev/null)
|
|
509
|
+
fi
|
|
510
|
+
case "$_field" in bun | npm | yarn | pnpm) printf '%s\n' "$_field"; return 0 ;; esac
|
|
511
|
+
case "$_forced" in bun | npm | yarn | pnpm) printf '%s\n' "$_forced"; return 0 ;; esac
|
|
512
|
+
_pm_allowed() { case " $_forbidden " in *" $1 "*) return 1 ;; *) return 0 ;; esac; }
|
|
513
|
+
if { [ -f bun.lockb ] || [ -f bun.lock ]; } && _pm_allowed bun; then printf 'bun\n'; return 0; fi
|
|
514
|
+
if [ -f pnpm-lock.yaml ] && _pm_allowed pnpm; then printf 'pnpm\n'; return 0; fi
|
|
515
|
+
if [ -f yarn.lock ] && _pm_allowed yarn; then printf 'yarn\n'; return 0; fi
|
|
516
|
+
if [ -f package-lock.json ] && _pm_allowed npm; then printf 'npm\n'; return 0; fi
|
|
517
|
+
printf 'npm\n'
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
PACKAGE_MANAGER="$(lisa_detect_pm)"
|
|
521
|
+
# A manager that is not installed is NAMED, never silently swapped. The branch
|
|
522
|
+
# this replaced answered "npm" for three different inputs — a pnpm project, a
|
|
523
|
+
# bun project on a machine without bun, a yarn project without yarn — and
|
|
524
|
+
# printed that answer as a detection. A confident wrong tool at commit time
|
|
525
|
+
# costs more than a named fallback.
|
|
526
|
+
if ! command -v "$PACKAGE_MANAGER" >/dev/null 2>&1; then
|
|
527
|
+
echo "⚠️ $PACKAGE_MANAGER is this project's package manager but is not on PATH; running gates with npm instead."
|
|
496
528
|
PACKAGE_MANAGER="npm"
|
|
497
|
-
RUNNER="npm run"
|
|
498
529
|
fi
|
|
530
|
+
case "$PACKAGE_MANAGER" in
|
|
531
|
+
bun) RUNNER="bun run"; EXECUTOR="bunx" ;;
|
|
532
|
+
pnpm) RUNNER="pnpm run"; EXECUTOR="pnpm exec" ;;
|
|
533
|
+
yarn) RUNNER="yarn"; EXECUTOR="yarn" ;;
|
|
534
|
+
*) RUNNER="npm run"; EXECUTOR="npx" ;;
|
|
535
|
+
esac
|
|
536
|
+
# --- end lisa:pm-detect ---
|
|
499
537
|
|
|
500
538
|
echo "📦 Using package manager: $PACKAGE_MANAGER"
|
|
501
539
|
|