@codyswann/lisa 4.4.10 → 4.4.11
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/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +3 -2
- package/dist/core/upstream-evidence-manifest.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-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/plugins/materialized-artifacts.json +22 -0
- package/scripts/build-plugins.sh +45 -1
- package/scripts/check-plugins-sync.sh +166 -2
package/package.json
CHANGED
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
"zod-validation-error": "^4.0.0"
|
|
146
146
|
},
|
|
147
147
|
"name": "@codyswann/lisa",
|
|
148
|
-
"version": "4.4.
|
|
148
|
+
"version": "4.4.11",
|
|
149
149
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
150
150
|
"main": "dist/index.js",
|
|
151
151
|
"exports": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.11",
|
|
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": "4.4.
|
|
3
|
+
"version": "4.4.11",
|
|
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": "4.4.
|
|
3
|
+
"version": "4.4.11",
|
|
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": "4.4.
|
|
3
|
+
"version": "4.4.11",
|
|
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": "4.4.
|
|
3
|
+
"version": "4.4.11",
|
|
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"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[
|
|
2
|
+
"all/copy-overwrite/scripts/lib/bounded-spawn.mjs",
|
|
3
|
+
"all/copy-overwrite/scripts/lib/invoked-as-script.mjs",
|
|
4
|
+
"all/copy-overwrite/scripts/lisa-enforcement-fallback.sh",
|
|
5
|
+
"all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh",
|
|
6
|
+
"all/copy-overwrite/scripts/lisa-hooks/block-instruction-file-edits.sh",
|
|
7
|
+
"all/copy-overwrite/scripts/lisa-hooks/block-managed-file-edits.sh",
|
|
8
|
+
"all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh",
|
|
9
|
+
"all/copy-overwrite/scripts/lisa-hooks/block-shell-json-parsing.sh",
|
|
10
|
+
"all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh",
|
|
11
|
+
"all/copy-overwrite/scripts/lisa-hooks/sonar-secrets.sh",
|
|
12
|
+
"expo/copy-overwrite/scripts/lib/bounded-spawn.mjs",
|
|
13
|
+
"expo/copy-overwrite/scripts/lib/invoked-as-script.mjs",
|
|
14
|
+
"rails/copy-overwrite/scripts/check-threshold-ratchet.mjs",
|
|
15
|
+
"rails/copy-overwrite/scripts/threshold-ratchet-compare.mjs",
|
|
16
|
+
"rails/copy-overwrite/scripts/threshold-ratchet-families.mjs",
|
|
17
|
+
"typescript/copy-overwrite/scripts/check-threshold-ratchet.mjs",
|
|
18
|
+
"typescript/copy-overwrite/scripts/lib/bounded-spawn.mjs",
|
|
19
|
+
"typescript/copy-overwrite/scripts/lib/invoked-as-script.mjs",
|
|
20
|
+
"typescript/copy-overwrite/scripts/threshold-ratchet-compare.mjs",
|
|
21
|
+
"typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs"
|
|
22
|
+
]
|
package/scripts/build-plugins.sh
CHANGED
|
@@ -5,7 +5,11 @@
|
|
|
5
5
|
set -euo pipefail
|
|
6
6
|
|
|
7
7
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
-
|
|
8
|
+
# Resolved rather than left as `$SCRIPT_DIR/..`, so every destination this
|
|
9
|
+
# script writes begins with a literal prefix the manifest below can strip to
|
|
10
|
+
# get a repository-relative path. With the `..` left in, that strip produces
|
|
11
|
+
# paths that no `git status` pathspec matches.
|
|
12
|
+
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
9
13
|
PLUGINS_DIR="$ROOT_DIR/plugins"
|
|
10
14
|
SRC_DIR="$PLUGINS_DIR/src"
|
|
11
15
|
|
|
@@ -22,10 +26,50 @@ VERSION=$(node -e "console.log(require('$ROOT_DIR/package.json').version)")
|
|
|
22
26
|
# here, as the file is generated: the authored source stays honest about being
|
|
23
27
|
# editable, the shipped copy states that it is replaced, and the two cannot
|
|
24
28
|
# disagree because one produces the other.
|
|
29
|
+
#
|
|
30
|
+
# Every call is RECORDED, into plugins/materialized-artifacts.json. That file is
|
|
31
|
+
# how `check-plugins-sync.sh` knows which paths outside plugins/ this build
|
|
32
|
+
# owns. It is a record of what this run actually wrote, not a list anyone
|
|
33
|
+
# maintains — a second list is precisely how those destinations went unchecked
|
|
34
|
+
# for as long as they did (#3064), and a fix that restated them would be the
|
|
35
|
+
# same defect with fresh paint.
|
|
25
36
|
materialize() {
|
|
26
37
|
node "$ROOT_DIR/scripts/materialize-copy-overwrite.mjs" "$1" "$2"
|
|
38
|
+
MATERIALIZED_PATHS="${MATERIALIZED_PATHS}${2#"$ROOT_DIR"/}
|
|
39
|
+
"
|
|
27
40
|
}
|
|
28
41
|
|
|
42
|
+
MATERIALIZED_PATHS=""
|
|
43
|
+
MATERIALIZED_MANIFEST="$PLUGINS_DIR/materialized-artifacts.json"
|
|
44
|
+
|
|
45
|
+
# Write the manifest of everything `materialize` wrote this run.
|
|
46
|
+
#
|
|
47
|
+
# On EXIT rather than at the end of the script, so the record covers every call
|
|
48
|
+
# no matter where the last one is added. A materialize call appended below the
|
|
49
|
+
# final line — the natural place to add one — would otherwise write a file the
|
|
50
|
+
# manifest never mentions, which is the reintroduction of the gap.
|
|
51
|
+
#
|
|
52
|
+
# Only on success: a build that died halfway wrote only some of its
|
|
53
|
+
# destinations, and recording that partial set as the truth would turn one
|
|
54
|
+
# failed build into a spurious sync failure on the next run.
|
|
55
|
+
write_materialized_manifest() {
|
|
56
|
+
local status="$1"
|
|
57
|
+
[ "$status" -eq 0 ] || return 0
|
|
58
|
+
mkdir -p "$PLUGINS_DIR"
|
|
59
|
+
printf '%s' "$MATERIALIZED_PATHS" | node -e '
|
|
60
|
+
const fs = require("node:fs");
|
|
61
|
+
let raw = "";
|
|
62
|
+
process.stdin.setEncoding("utf8");
|
|
63
|
+
process.stdin.on("data", chunk => { raw += chunk; });
|
|
64
|
+
process.stdin.on("end", () => {
|
|
65
|
+
const paths = [...new Set(raw.split("\n").filter(Boolean))].sort();
|
|
66
|
+
fs.writeFileSync(process.argv[1], `${JSON.stringify(paths, null, 2)}\n`);
|
|
67
|
+
});
|
|
68
|
+
' "$MATERIALIZED_MANIFEST"
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
trap 'write_materialized_manifest $?' EXIT
|
|
72
|
+
|
|
29
73
|
inject_version() {
|
|
30
74
|
local manifest="$1"
|
|
31
75
|
if [ -f "$manifest" ]; then
|