@codyswann/lisa 2.124.5 → 2.124.6
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/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-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-cursor/hooks/hooks.json +3 -3
- 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-nestjs-cursor/hooks/hooks.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-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-rails-cursor/hooks/hooks.json +2 -2
- 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-typescript-cursor/hooks/hooks.json +4 -4
- 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/scripts/generate-cursor-plugin-artifacts.mjs +4 -2
- package/scripts/lib/per-agent-hook-filter.mjs +22 -17
package/package.json
CHANGED
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"lodash": ">=4.18.1"
|
|
84
84
|
},
|
|
85
85
|
"name": "@codyswann/lisa",
|
|
86
|
-
"version": "2.124.
|
|
86
|
+
"version": "2.124.6",
|
|
87
87
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
88
88
|
"main": "dist/index.js",
|
|
89
89
|
"exports": {
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
"hooks": {
|
|
4
4
|
"preToolUse": [
|
|
5
5
|
{
|
|
6
|
-
"command": "
|
|
6
|
+
"command": "${CURSOR_PLUGIN_ROOT}/hooks/block-no-verify.sh",
|
|
7
7
|
"matcher": "Bash"
|
|
8
8
|
}
|
|
9
9
|
],
|
|
10
10
|
"sessionStart": [
|
|
11
11
|
{
|
|
12
|
-
"command": "
|
|
12
|
+
"command": "${CURSOR_PLUGIN_ROOT}/hooks/install-pkgs.sh",
|
|
13
13
|
"matcher": "startup"
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
|
-
"command": "
|
|
16
|
+
"command": "${CURSOR_PLUGIN_ROOT}/hooks/setup-jira-cli.sh"
|
|
17
17
|
}
|
|
18
18
|
]
|
|
19
19
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.124.
|
|
3
|
+
"version": "2.124.6",
|
|
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.124.
|
|
3
|
+
"version": "2.124.6",
|
|
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.124.
|
|
3
|
+
"version": "2.124.6",
|
|
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.124.
|
|
3
|
+
"version": "2.124.6",
|
|
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.124.
|
|
3
|
+
"version": "2.124.6",
|
|
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"
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
"hooks": {
|
|
4
4
|
"postToolUse": [
|
|
5
5
|
{
|
|
6
|
-
"command": "
|
|
6
|
+
"command": "${CURSOR_PLUGIN_ROOT}/hooks/rubocop-on-edit.sh",
|
|
7
7
|
"matcher": "Write|Edit"
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
|
-
"command": "
|
|
10
|
+
"command": "${CURSOR_PLUGIN_ROOT}/hooks/sg-scan-on-edit.sh",
|
|
11
11
|
"matcher": "Write|Edit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
"hooks": {
|
|
4
4
|
"preToolUse": [
|
|
5
5
|
{
|
|
6
|
-
"command": "
|
|
6
|
+
"command": "${CURSOR_PLUGIN_ROOT}/hooks/block-suppress-directives.sh",
|
|
7
7
|
"matcher": "Write|Edit"
|
|
8
8
|
}
|
|
9
9
|
],
|
|
10
10
|
"postToolUse": [
|
|
11
11
|
{
|
|
12
|
-
"command": "
|
|
12
|
+
"command": "${CURSOR_PLUGIN_ROOT}/hooks/format-on-edit.sh",
|
|
13
13
|
"matcher": "Write|Edit"
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
|
-
"command": "
|
|
16
|
+
"command": "${CURSOR_PLUGIN_ROOT}/hooks/sg-scan-on-edit.sh",
|
|
17
17
|
"matcher": "Write|Edit"
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
|
-
"command": "
|
|
20
|
+
"command": "${CURSOR_PLUGIN_ROOT}/hooks/lint-on-edit.sh",
|
|
21
21
|
"matcher": "Write|Edit"
|
|
22
22
|
}
|
|
23
23
|
]
|
|
@@ -21,8 +21,10 @@
|
|
|
21
21
|
* `-reference` suffix avoids a same-path collision: eager and reference share
|
|
22
22
|
* all base names.
|
|
23
23
|
* - Hooks: emitted as a Cursor-native `hooks/hooks.json` (flattened schema,
|
|
24
|
-
* camelCase event names,
|
|
25
|
-
* the
|
|
24
|
+
* camelCase event names, `${CURSOR_PLUGIN_ROOT}/hooks/` command paths —
|
|
25
|
+
* plugin hooks run with the project root as cwd, so the plugin-root token is
|
|
26
|
+
* required, not a bare `./`) — NOT inline in the manifest. `inject-rules.sh`
|
|
27
|
+
* is dropped because rules now ship as native
|
|
26
28
|
* `.mdc` (the single delivery path; injecting would double-deliver);
|
|
27
29
|
* `enforce-team-first.sh` (Claude-team-specific) and the
|
|
28
30
|
* `entire hooks claude-code *` analytics calls (Claude-only) are dropped too.
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* ship list — this module is not invoked for Codex; Codex uses the existing
|
|
15
15
|
* generate-codex-plugin-artifacts.mjs path)
|
|
16
16
|
* - Cursor: emit hooks to a Cursor-native hooks/hooks.json (camelCase events,
|
|
17
|
-
* flattened {command, matcher} entries,
|
|
18
|
-
* buildCursorHooksJson; strip inject-rules.sh (rules ship as native
|
|
17
|
+
* flattened {command, matcher} entries, ${CURSOR_PLUGIN_ROOT}/hooks/ command
|
|
18
|
+
* paths) via buildCursorHooksJson; strip inject-rules.sh (rules ship as native
|
|
19
19
|
* rules/*.mdc — the single delivery path; injecting would double-deliver),
|
|
20
20
|
* Claude-team-specific scripts, and `entire hooks claude-code *` calls
|
|
21
21
|
* - agy: this filter is NOT consumed for agy. agy hooks ship as a
|
|
@@ -114,27 +114,30 @@ const scriptNameFromCommand = cmd => {
|
|
|
114
114
|
};
|
|
115
115
|
|
|
116
116
|
/**
|
|
117
|
-
* Rewrite a Claude hook command to the Cursor plugin-
|
|
118
|
-
* `${CLAUDE_PLUGIN_ROOT}/` prefix
|
|
119
|
-
* `${CLAUDE_PLUGIN_ROOT}/hooks/block-no-verify.sh`
|
|
117
|
+
* Rewrite a Claude hook command to the Cursor plugin-root form: the
|
|
118
|
+
* `${CLAUDE_PLUGIN_ROOT}/` (or `${CURSOR_PLUGIN_ROOT}/`) prefix is normalized to
|
|
119
|
+
* `${CURSOR_PLUGIN_ROOT}/` (e.g. `${CLAUDE_PLUGIN_ROOT}/hooks/block-no-verify.sh`
|
|
120
|
+
* → `${CURSOR_PLUGIN_ROOT}/hooks/block-no-verify.sh`).
|
|
120
121
|
*
|
|
121
|
-
*
|
|
122
|
-
* plugin
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
* plugin root, a malicious repo could shadow a guard hook; revisit this then.
|
|
122
|
+
* Why the token, not a bare `./` (issue #1055, CodeRabbit security review):
|
|
123
|
+
* Cursor plugin hook commands execute with the OPENED PROJECT ROOT as their cwd
|
|
124
|
+
* — NOT the plugin directory (confirmed by a Cursor maintainer on the forum:
|
|
125
|
+
* https://forum.cursor.com/t/inconsistent-working-directory-for-plugin-hook-commands/153236).
|
|
126
|
+
* A bare `./hooks/<script>.sh` would therefore (a) fail to resolve to the
|
|
127
|
+
* plugin's bundled script and (b) let a malicious repo shadow a guard hook with
|
|
128
|
+
* its own project-root `./hooks/*`. `${CURSOR_PLUGIN_ROOT}` is the maintainer-
|
|
129
|
+
* endorsed placeholder for the plugin install dir (`${CLAUDE_PLUGIN_ROOT}` also
|
|
130
|
+
* works in Cursor, but we normalize to the Cursor-native name).
|
|
131
131
|
*
|
|
132
132
|
* @param {string} command
|
|
133
133
|
* @returns {string}
|
|
134
134
|
*/
|
|
135
135
|
const toCursorCommandPath = command =>
|
|
136
136
|
typeof command === "string"
|
|
137
|
-
? command.replace(
|
|
137
|
+
? command.replace(
|
|
138
|
+
/\$\{(?:CLAUDE|CURSOR)_PLUGIN_ROOT\}\//g,
|
|
139
|
+
"${CURSOR_PLUGIN_ROOT}/"
|
|
140
|
+
)
|
|
138
141
|
: command;
|
|
139
142
|
|
|
140
143
|
/** Claude PascalCase → Copilot event-name map (per Copilot's docs). */
|
|
@@ -327,7 +330,9 @@ export function filterScriptsForAgent(scriptFilenames, agent) {
|
|
|
327
330
|
* 3. Flattens each matcher-group into one `{ command, matcher? }` per surviving
|
|
328
331
|
* handler (unwrapping Claude's `{ type: "command", command }`).
|
|
329
332
|
* 4. Rewrites `${CLAUDE_PLUGIN_ROOT}/hooks/<x>` command paths to the
|
|
330
|
-
* Cursor-
|
|
333
|
+
* Cursor plugin-root form `${CURSOR_PLUGIN_ROOT}/hooks/<x>` (plugin hooks
|
|
334
|
+
* run with the project root as cwd, so a bare `./` would not resolve to the
|
|
335
|
+
* bundled script and could be shadowed by a repo-local `./hooks/*`).
|
|
331
336
|
*
|
|
332
337
|
* Note: this intentionally re-walks the hook block rather than sharing a
|
|
333
338
|
* skeleton with `filterHooksForAgent`. The DRY extraction was deferred (issue
|