@codyswann/lisa 2.332.4 → 2.332.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.
Files changed (65) hide show
  1. package/all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh +27 -4
  2. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  3. package/dist/core/upstream-evidence-manifest.js +4 -3
  4. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  5. package/package.json +1 -1
  6. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  7. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  8. package/plugins/lisa/.codex-plugin/skills/lisa-drive-pr-to-merge/SKILL.md +53 -18
  9. package/plugins/lisa/hooks/block-no-verify.sh +27 -4
  10. package/plugins/lisa/skills/lisa-drive-pr-to-merge/SKILL.md +53 -18
  11. package/plugins/lisa-agy/plugin.json +1 -1
  12. package/plugins/lisa-agy/skills/lisa-drive-pr-to-merge/SKILL.md +53 -18
  13. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  15. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  16. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-copilot/hooks/block-no-verify.sh +27 -4
  20. package/plugins/lisa-copilot/skills/lisa-drive-pr-to-merge/SKILL.md +53 -18
  21. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-cursor/hooks/block-no-verify.sh +27 -4
  23. package/plugins/lisa-cursor/skills/lisa-drive-pr-to-merge/SKILL.md +53 -18
  24. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  26. package/plugins/lisa-expo-agy/plugin.json +1 -1
  27. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  31. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  32. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  36. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  37. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  41. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  42. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  46. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  47. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  51. package/plugins/lisa-rails-agy/plugin.json +1 -1
  52. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  56. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  57. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  61. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  62. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  63. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  64. package/plugins/src/base/hooks/block-no-verify.sh +27 -4
  65. package/plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md +53 -18
@@ -20,18 +20,41 @@ set -euo pipefail
20
20
 
21
21
  input="$(cat)"
22
22
 
23
- tool_name="$(printf '%s' "$input" | jq -r '.tool_name // empty')"
23
+ # Both interpreters must be probed BEFORE they are used, and a missing one must
24
+ # be announced rather than swallowed.
25
+ #
26
+ # `jq` used to be called unguarded here while `python3` two lines below was
27
+ # guarded. Under `set -e` an absent jq aborted the script with 127, and Claude
28
+ # Code treats any non-2 exit as a NON-BLOCKING hook error — so the hook that
29
+ # enforces "never --no-verify" silently permitted the very thing it exists to
30
+ # stop. It was not hypothetical: agent containers routinely ship no jq (that is
31
+ # why jq is now a pinned toolchain entry). The Codex variant of this script has
32
+ # always had the guard, so this was a parity gap rather than a design choice.
33
+ #
34
+ # Degrading to "allow" is still the right behaviour — a hook that cannot parse
35
+ # its input cannot tell a bypass from an ordinary command, and failing closed
36
+ # would block every Bash call on a machine missing an interpreter. What is NOT
37
+ # right is doing it quietly, so the operator gets one line on stderr saying the
38
+ # protection is off. A guard that is silently absent reads exactly like a guard
39
+ # that is passing.
40
+ for required in jq python3; do
41
+ if ! command -v "$required" >/dev/null 2>&1; then
42
+ printf 'block-no-verify: %s not found; --no-verify protection is NOT active\n' \
43
+ "$required" >&2
44
+ exit 0
45
+ fi
46
+ done
47
+
48
+ tool_name="$(printf '%s' "$input" | jq -r '.tool_name // empty' 2>/dev/null || true)"
24
49
  if [ "$tool_name" != "Bash" ]; then
25
50
  exit 0
26
51
  fi
27
52
 
28
- command_str="$(printf '%s' "$input" | jq -r '.tool_input.command // empty')"
53
+ command_str="$(printf '%s' "$input" | jq -r '.tool_input.command // empty' 2>/dev/null || true)"
29
54
  if [ -z "$command_str" ]; then
30
55
  exit 0
31
56
  fi
32
57
 
33
- command -v python3 >/dev/null 2>&1 || exit 0
34
-
35
58
  if ! BLOCK_NO_VERIFY_COMMAND="$command_str" python3 - <<'PY'
36
59
  import os
37
60
  import re
@@ -1 +1 @@
1
- {"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4pEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAurNjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
1
+ {"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4pEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAwrNjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
@@ -6,7 +6,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
6
6
  "all/copy-overwrite/scripts/lisa-enforcement-fallback.sh": "e17c45f7cadf0fb55dd07270776caf211af99b7d4771a4fde75aafe5919e8dbe",
7
7
  "all/copy-overwrite/scripts/lisa-floor-collisions.mjs": "a612f172282d13ba9318fe5e03689d7c6ff42a0122d0c9d5d39051e1967b93dc",
8
8
  "all/copy-overwrite/scripts/lisa-hooks/block-instruction-file-edits.sh": "8996e0bcbf1db085a5d99734e797c91f5025997bd967bc374efff8348dac14c2",
9
- "all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh": "aa95a84f9f9224914947a09b858535aa8bd052199ff64cb53768cf78fb69b687",
9
+ "all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh": "a6ed91576efebb6ba40cfa4e9d8a3e8566314909210ae8d5860be62a3feb4cff",
10
10
  "all/copy-overwrite/scripts/lisa-hooks/block-shell-json-parsing.sh": "3b5f074f3ab5708030af507eea962389f3b067c5dbdc76580bd9e44d3ac6c603",
11
11
  "all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh": "062c69eea85157f1e941ec3626d8912aa9f182af6ccdbe19687588a6074db5ce",
12
12
  "all/copy-overwrite/scripts/lisa-work-item.mjs": "6a8be8577242588f14ab52b25b2a22b6def53aefa9513b4d3d7c49f4d8027079",
@@ -297,7 +297,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
297
297
  "plugins/src/base/hooks/block-instruction-file-edits.agy.sh": "aa249cae53caeb3e0fb6d6af114e2756084f45a2896332fb063a9f20e4902125",
298
298
  "plugins/src/base/hooks/block-instruction-file-edits.sh": "8996e0bcbf1db085a5d99734e797c91f5025997bd967bc374efff8348dac14c2",
299
299
  "plugins/src/base/hooks/block-no-verify.agy.sh": "1a36c841b6339a2c664938d65c5a4542f97d05f584e467de448bb72ac6bdba55",
300
- "plugins/src/base/hooks/block-no-verify.sh": "aa95a84f9f9224914947a09b858535aa8bd052199ff64cb53768cf78fb69b687",
300
+ "plugins/src/base/hooks/block-no-verify.sh": "a6ed91576efebb6ba40cfa4e9d8a3e8566314909210ae8d5860be62a3feb4cff",
301
301
  "plugins/src/base/hooks/block-shell-json-parsing.agy.sh": "dc688efe382e7b8fe6f6c88bb0fde851527128cae778599559f23a93f1c9ec86",
302
302
  "plugins/src/base/hooks/block-shell-json-parsing.sh": "3b5f074f3ab5708030af507eea962389f3b067c5dbdc76580bd9e44d3ac6c603",
303
303
  "plugins/src/base/hooks/cleanup-stale-worktrees.sh": "c9b2fcca1b34d6f636b5289ece11b254cbb8ee2c2bac5c2e426b6f4dcfa972f2",
@@ -434,7 +434,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
434
434
  "plugins/src/base/skills/lisa-detect-tooling/scripts/commands.mjs": "e28bd61fdde4a336b56ae3395423026943a5816015719d31d04f0d5a0ab50eec",
435
435
  "plugins/src/base/skills/lisa-detect-tooling/scripts/detect-tooling.mjs": "9d06590e6b99cce33e5fb10bd5b9e7515318133e3635368ef47162abc123bdfa",
436
436
  "plugins/src/base/skills/lisa-doctor/SKILL.md": "fb41a1e63c5332d47a46e715aff52551f3df867033b5e4f37dfaeee30019b891",
437
- "plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md": "c78ae2ba32c830d0b2cd7d24de91adf99e2b3cef4c7cab1c417580d86f41351f",
437
+ "plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md": "0317e029316be19682bbc689c397275e7bcab5a6215f644755d4aebbe956bacf",
438
438
  "plugins/src/base/skills/lisa-epic-triage/SKILL.md": "d02760411249bddbd396f283191fe3e82bb7b95bf9393a19a7025dc5a57c3ab7",
439
439
  "plugins/src/base/skills/lisa-evaluation-suite/SKILL.md": "96b5c2091ccd22a565935a7b0b917f67998881b81055ce3e4d518319472eac8b",
440
440
  "plugins/src/base/skills/lisa-exploratory-qa/SKILL.md": "bc34dfc6418bff6eb5bc03f0c5cd98c7b6164ca3f4f80774d981f681321119b0",
@@ -7288,6 +7288,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
7288
7288
  "tests/unit/health/storage.test.ts": true,
7289
7289
  "tests/unit/hooks/block-generated-artifact-edits.test.ts": true,
7290
7290
  "tests/unit/hooks/block-instruction-file-edits.test.ts": true,
7291
+ "tests/unit/hooks/block-no-verify-missing-jq.test.ts": true,
7291
7292
  "tests/unit/hooks/block-no-verify.test.ts": true,
7292
7293
  "tests/unit/hooks/block-shell-json-parsing.test.ts": true,
7293
7294
  "tests/unit/hooks/blocking-hook-exit.test.ts": true,