@codyswann/lisa 2.163.3 → 2.163.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/cli/apply.d.ts.map +1 -1
- package/dist/cli/apply.js +35 -11
- package/dist/cli/apply.js.map +1 -1
- package/dist/codex/scripts/block-no-verify.sh +63 -9
- package/dist/core/bootstrap-environment.d.ts +32 -0
- package/dist/core/bootstrap-environment.d.ts.map +1 -0
- package/dist/core/bootstrap-environment.js +51 -0
- package/dist/core/bootstrap-environment.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/hooks/block-no-verify.agy.sh +62 -13
- package/plugins/lisa/hooks/block-no-verify.sh +62 -10
- package/plugins/lisa-agy/hooks/block-no-verify.agy.sh +62 -13
- 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-copilot/hooks/block-no-verify.sh +62 -10
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/block-no-verify.sh +62 -10
- 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/plugins/src/base/hooks/block-no-verify.agy.sh +62 -13
- package/plugins/src/base/hooks/block-no-verify.sh +62 -10
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
# 2. HUSKY=0 / HUSKY_SKIP_HOOKS=... — disables husky-managed git hooks;
|
|
10
10
|
# 3. core.hooksPath pointed at /dev/null or set empty — disables ALL git hooks.
|
|
11
11
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
12
|
+
# Shell-token matching avoids false positives from issue bodies, heredocs, and
|
|
13
|
+
# commit-message prose while still catching quoted real argv values such as
|
|
14
|
+
# `git -c "core.hooksPath=/dev/null"`.
|
|
14
15
|
#
|
|
15
16
|
# The short `-n` form is intentionally NOT matched (see block-no-verify.agy.sh):
|
|
16
17
|
# grep cannot distinguish a real -n option from -n in commit-message prose or an
|
|
@@ -29,14 +30,65 @@ if [ -z "$command_str" ]; then
|
|
|
29
30
|
exit 0
|
|
30
31
|
fi
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
command -v python3 >/dev/null 2>&1 || exit 0
|
|
34
|
+
|
|
35
|
+
if ! BLOCK_NO_VERIFY_COMMAND="$command_str" python3 - <<'PY'
|
|
36
|
+
import os
|
|
37
|
+
import re
|
|
38
|
+
import shlex
|
|
39
|
+
import sys
|
|
40
|
+
|
|
41
|
+
command = os.environ.get("BLOCK_NO_VERIFY_COMMAND", "")
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def strip_heredocs(text: str) -> str:
|
|
45
|
+
lines = text.splitlines()
|
|
46
|
+
output = []
|
|
47
|
+
pending = []
|
|
48
|
+
marker_pattern = re.compile(
|
|
49
|
+
r"<<-?\s*(?:'([^']+)'|\"([^\"]+)\"|([A-Za-z_][A-Za-z0-9_]*))"
|
|
50
|
+
)
|
|
51
|
+
index = 0
|
|
52
|
+
while index < len(lines):
|
|
53
|
+
line = lines[index]
|
|
54
|
+
output.append(line)
|
|
55
|
+
pending.extend(
|
|
56
|
+
next(group for group in match.groups() if group)
|
|
57
|
+
for match in marker_pattern.finditer(line)
|
|
58
|
+
)
|
|
59
|
+
index += 1
|
|
60
|
+
while pending and index < len(lines):
|
|
61
|
+
if lines[index].strip() == pending[0]:
|
|
62
|
+
output.append(lines[index])
|
|
63
|
+
pending.pop(0)
|
|
64
|
+
index += 1
|
|
65
|
+
break
|
|
66
|
+
index += 1
|
|
67
|
+
return "\n".join(output)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
try:
|
|
71
|
+
tokens = shlex.split(strip_heredocs(command), posix=True)
|
|
72
|
+
except ValueError:
|
|
73
|
+
sys.exit(0)
|
|
74
|
+
|
|
75
|
+
normalized_tokens = [token.strip("();|&") for token in tokens]
|
|
76
|
+
|
|
77
|
+
for i, token in enumerate(normalized_tokens):
|
|
78
|
+
if token == "--no-verify":
|
|
79
|
+
sys.exit(1)
|
|
80
|
+
if token == "HUSKY=0" or token.startswith("HUSKY_SKIP_HOOKS="):
|
|
81
|
+
sys.exit(1)
|
|
82
|
+
if token.startswith("core.hooksPath="):
|
|
83
|
+
value = token.split("=", 1)[1]
|
|
84
|
+
if value in ("", "/dev/null"):
|
|
85
|
+
sys.exit(1)
|
|
86
|
+
if token == "core.hooksPath" and i + 1 < len(normalized_tokens) and normalized_tokens[i + 1] in ("", "/dev/null"):
|
|
87
|
+
sys.exit(1)
|
|
88
|
+
|
|
89
|
+
sys.exit(0)
|
|
90
|
+
PY
|
|
91
|
+
then
|
|
40
92
|
cat >&2 <<'EOF'
|
|
41
93
|
Blocked: this command bypasses pre-commit/pre-push hooks (--no-verify, HUSKY=0,
|
|
42
94
|
or core.hooksPath disabling). Fix the underlying issue (lint error, failing
|
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
# 2. HUSKY=0 / HUSKY_SKIP_HOOKS=... — disables husky-managed git hooks;
|
|
10
10
|
# 3. core.hooksPath pointed at /dev/null or set empty — disables ALL git hooks.
|
|
11
11
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
12
|
+
# Shell-token matching avoids false positives from issue bodies, heredocs, and
|
|
13
|
+
# commit-message prose while still catching quoted real argv values such as
|
|
14
|
+
# `git -c "core.hooksPath=/dev/null"`.
|
|
14
15
|
#
|
|
15
16
|
# The short `-n` form is intentionally NOT matched (see block-no-verify.agy.sh):
|
|
16
17
|
# grep cannot distinguish a real -n option from -n in commit-message prose or an
|
|
@@ -29,14 +30,65 @@ if [ -z "$command_str" ]; then
|
|
|
29
30
|
exit 0
|
|
30
31
|
fi
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
command -v python3 >/dev/null 2>&1 || exit 0
|
|
34
|
+
|
|
35
|
+
if ! BLOCK_NO_VERIFY_COMMAND="$command_str" python3 - <<'PY'
|
|
36
|
+
import os
|
|
37
|
+
import re
|
|
38
|
+
import shlex
|
|
39
|
+
import sys
|
|
40
|
+
|
|
41
|
+
command = os.environ.get("BLOCK_NO_VERIFY_COMMAND", "")
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def strip_heredocs(text: str) -> str:
|
|
45
|
+
lines = text.splitlines()
|
|
46
|
+
output = []
|
|
47
|
+
pending = []
|
|
48
|
+
marker_pattern = re.compile(
|
|
49
|
+
r"<<-?\s*(?:'([^']+)'|\"([^\"]+)\"|([A-Za-z_][A-Za-z0-9_]*))"
|
|
50
|
+
)
|
|
51
|
+
index = 0
|
|
52
|
+
while index < len(lines):
|
|
53
|
+
line = lines[index]
|
|
54
|
+
output.append(line)
|
|
55
|
+
pending.extend(
|
|
56
|
+
next(group for group in match.groups() if group)
|
|
57
|
+
for match in marker_pattern.finditer(line)
|
|
58
|
+
)
|
|
59
|
+
index += 1
|
|
60
|
+
while pending and index < len(lines):
|
|
61
|
+
if lines[index].strip() == pending[0]:
|
|
62
|
+
output.append(lines[index])
|
|
63
|
+
pending.pop(0)
|
|
64
|
+
index += 1
|
|
65
|
+
break
|
|
66
|
+
index += 1
|
|
67
|
+
return "\n".join(output)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
try:
|
|
71
|
+
tokens = shlex.split(strip_heredocs(command), posix=True)
|
|
72
|
+
except ValueError:
|
|
73
|
+
sys.exit(0)
|
|
74
|
+
|
|
75
|
+
normalized_tokens = [token.strip("();|&") for token in tokens]
|
|
76
|
+
|
|
77
|
+
for i, token in enumerate(normalized_tokens):
|
|
78
|
+
if token == "--no-verify":
|
|
79
|
+
sys.exit(1)
|
|
80
|
+
if token == "HUSKY=0" or token.startswith("HUSKY_SKIP_HOOKS="):
|
|
81
|
+
sys.exit(1)
|
|
82
|
+
if token.startswith("core.hooksPath="):
|
|
83
|
+
value = token.split("=", 1)[1]
|
|
84
|
+
if value in ("", "/dev/null"):
|
|
85
|
+
sys.exit(1)
|
|
86
|
+
if token == "core.hooksPath" and i + 1 < len(normalized_tokens) and normalized_tokens[i + 1] in ("", "/dev/null"):
|
|
87
|
+
sys.exit(1)
|
|
88
|
+
|
|
89
|
+
sys.exit(0)
|
|
90
|
+
PY
|
|
91
|
+
then
|
|
40
92
|
cat >&2 <<'EOF'
|
|
41
93
|
Blocked: this command bypasses pre-commit/pre-push hooks (--no-verify, HUSKY=0,
|
|
42
94
|
or core.hooksPath disabling). Fix the underlying issue (lint error, failing
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.163.
|
|
3
|
+
"version": "2.163.5",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.163.
|
|
3
|
+
"version": "2.163.5",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.163.
|
|
3
|
+
"version": "2.163.5",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.163.
|
|
3
|
+
"version": "2.163.5",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.163.
|
|
3
|
+
"version": "2.163.5",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|