@codyswann/lisa 4.38.8 → 4.40.0
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/all/copy-overwrite/scripts/lisa-cross-worktree-guard.mjs +276 -0
- package/all/deletions.json +136 -1
- package/cdk/deletions.json +8 -1
- package/dist/core/config.d.ts +33 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/deletion-basis.d.ts +107 -0
- package/dist/core/deletion-basis.d.ts.map +1 -0
- package/dist/core/deletion-basis.js +81 -0
- package/dist/core/deletion-basis.js.map +1 -0
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +10 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +18 -0
- package/dist/core/lisa.js.map +1 -1
- 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 +22 -12
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/expo/deletions.json +37 -1
- package/harper-fabric/deletions.json +6 -1
- package/nestjs/deletions.json +12 -1
- package/npm-package/create-only/.github/workflows/publish-to-npm.yml +48 -19
- package/package.json +6 -5
- package/phaser/deletions.json +6 -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/rails/deletions.json +18 -1
- package/scripts/check-deletion-basis.mjs +126 -0
- package/scripts/two-channel-couplings.json +1 -1
- package/typescript/copy-contents/.husky/pre-commit +40 -0
- package/typescript/copy-overwrite/.prettierignore +1 -0
- package/typescript/deletions.json +48 -0
package/expo/deletions.json
CHANGED
|
@@ -41,5 +41,41 @@
|
|
|
41
41
|
".github/workflows/build.yml",
|
|
42
42
|
".github/workflows/lighthouse.yml",
|
|
43
43
|
".github/workflows/zap-baseline-expo.yml"
|
|
44
|
-
]
|
|
44
|
+
],
|
|
45
|
+
"basis": {
|
|
46
|
+
".claude/agents/ops-specialist.md": "needs-review",
|
|
47
|
+
".claude/rules/expo-verification.md": "needs-review",
|
|
48
|
+
".claude/skills/apollo-client": "needs-review",
|
|
49
|
+
".claude/skills/atomic-design-gluestack": "needs-review",
|
|
50
|
+
".claude/skills/container-view-pattern": "needs-review",
|
|
51
|
+
".claude/skills/cross-platform-compatibility": "needs-review",
|
|
52
|
+
".claude/skills/directory-structure": "needs-review",
|
|
53
|
+
".claude/skills/expo-env-config": "needs-review",
|
|
54
|
+
".claude/skills/expo-router-best-practices": "needs-review",
|
|
55
|
+
".claude/skills/gluestack-nativewind": "needs-review",
|
|
56
|
+
".claude/skills/jira-add-journey": "needs-review",
|
|
57
|
+
".claude/skills/jira-create": "needs-review",
|
|
58
|
+
".claude/skills/jira-evidence": "needs-review",
|
|
59
|
+
".claude/skills/jira-journey": "needs-review",
|
|
60
|
+
".claude/skills/jira-verify": "needs-review",
|
|
61
|
+
".claude/skills/local-state": "needs-review",
|
|
62
|
+
".claude/skills/ops-browser-uat": "needs-review",
|
|
63
|
+
".claude/skills/ops-check-logs": "needs-review",
|
|
64
|
+
".claude/skills/ops-db-ops": "needs-review",
|
|
65
|
+
".claude/skills/ops-deploy": "needs-review",
|
|
66
|
+
".claude/skills/ops-monitor-errors": "needs-review",
|
|
67
|
+
".claude/skills/ops-performance": "needs-review",
|
|
68
|
+
".claude/skills/ops-run-local": "needs-review",
|
|
69
|
+
".claude/skills/ops-verify-health": "needs-review",
|
|
70
|
+
".claude/skills/owasp-zap": "needs-review",
|
|
71
|
+
".claude/skills/playwright-selectors": "needs-review",
|
|
72
|
+
".claude/skills/reduce-complexity": "needs-review",
|
|
73
|
+
".claude/skills/testing-library": "needs-review",
|
|
74
|
+
".github/workflows/zap-baseline.yml": "needs-review",
|
|
75
|
+
"eslint-plugin-component-structure": "needs-review",
|
|
76
|
+
"eslint-plugin-ui-standards": "needs-review",
|
|
77
|
+
"vitest.config.ts": "needs-review",
|
|
78
|
+
"vitest.config.local.ts": "needs-review",
|
|
79
|
+
"vitest.thresholds.json": "needs-review"
|
|
80
|
+
}
|
|
45
81
|
}
|
package/nestjs/deletions.json
CHANGED
|
@@ -14,5 +14,16 @@
|
|
|
14
14
|
"keep": [
|
|
15
15
|
".github/workflows/zap-baseline-nestjs.yml",
|
|
16
16
|
".github/workflows/load-test.yml"
|
|
17
|
-
]
|
|
17
|
+
],
|
|
18
|
+
"basis": {
|
|
19
|
+
".claude/skills/nestjs-graphql": "needs-review",
|
|
20
|
+
".claude/skills/nestjs-rules": "needs-review",
|
|
21
|
+
".claude/skills/security-zap-scan": "needs-review",
|
|
22
|
+
".claude/skills/typeorm-patterns": "needs-review",
|
|
23
|
+
".github/workflows/zap-baseline.yml": "needs-review",
|
|
24
|
+
"jest.config.ts": "needs-review",
|
|
25
|
+
"jest.config.local.ts": "needs-review",
|
|
26
|
+
"jest.nestjs.ts": "needs-review",
|
|
27
|
+
"jest.thresholds.json": "needs-review"
|
|
28
|
+
}
|
|
18
29
|
}
|
|
@@ -48,19 +48,47 @@ jobs:
|
|
|
48
48
|
publish:
|
|
49
49
|
name: Publish to npm
|
|
50
50
|
runs-on: ubuntu-latest
|
|
51
|
+
# Job-level so every step below reads these from the environment instead of
|
|
52
|
+
# having them substituted into its script. A `${{ }}` expression is
|
|
53
|
+
# substituted by Actions BEFORE the shell parses the script, so an
|
|
54
|
+
# interpolated value is shell SOURCE TEXT rather than an argument - and
|
|
55
|
+
# `tag`, `version` and `package_manager` are all free-text `type: string`
|
|
56
|
+
# inputs that reach `git checkout`, `npm version` and a bare command name.
|
|
57
|
+
# Paired with the shape gates in Validate inputs below (#3717).
|
|
58
|
+
env:
|
|
59
|
+
RELEASE_TAG: ${{ inputs.tag }}
|
|
60
|
+
RELEASE_VERSION: ${{ inputs.version }}
|
|
61
|
+
PACKAGE_MANAGER: ${{ inputs.package_manager }}
|
|
51
62
|
steps:
|
|
52
63
|
- name: Validate inputs
|
|
53
64
|
run: |
|
|
54
|
-
if [ -z "$
|
|
65
|
+
if [ -z "$RELEASE_TAG" ]; then
|
|
55
66
|
echo "::error::Tag input is empty - cannot publish without a version tag"
|
|
56
67
|
echo "This usually means the version job was skipped (e.g., promotion merge detected)"
|
|
57
68
|
exit 1
|
|
58
69
|
fi
|
|
59
|
-
if [ -z "$
|
|
70
|
+
if [ -z "$RELEASE_VERSION" ]; then
|
|
60
71
|
echo "::error::Version input is empty - cannot publish without a version"
|
|
61
72
|
exit 1
|
|
62
73
|
fi
|
|
63
|
-
|
|
74
|
+
# Shape gates, so a value carrying shell metacharacters is refused
|
|
75
|
+
# before it reaches `git checkout`, `npm version`, or a command name.
|
|
76
|
+
if ! printf '%s' "$RELEASE_TAG" | grep -Eq '^v?[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$'; then
|
|
77
|
+
echo "::error::Tag input is not a valid version tag"
|
|
78
|
+
exit 1
|
|
79
|
+
fi
|
|
80
|
+
if ! printf '%s' "$RELEASE_VERSION" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$'; then
|
|
81
|
+
echo "::error::Version input is not a valid semantic version"
|
|
82
|
+
exit 1
|
|
83
|
+
fi
|
|
84
|
+
case "$PACKAGE_MANAGER" in
|
|
85
|
+
npm|yarn|pnpm|bun) ;;
|
|
86
|
+
*)
|
|
87
|
+
echo "::error::Unsupported package manager: must be npm, yarn, pnpm or bun"
|
|
88
|
+
exit 1
|
|
89
|
+
;;
|
|
90
|
+
esac
|
|
91
|
+
echo "✅ Inputs validated: tag=$RELEASE_TAG, version=$RELEASE_VERSION"
|
|
64
92
|
|
|
65
93
|
- name: Checkout
|
|
66
94
|
uses: actions/checkout@v6
|
|
@@ -69,12 +97,12 @@ jobs:
|
|
|
69
97
|
|
|
70
98
|
- name: Wait for tag to be available
|
|
71
99
|
run: |
|
|
72
|
-
echo "Waiting for tag $
|
|
100
|
+
echo "Waiting for tag $RELEASE_TAG to be available..."
|
|
73
101
|
for i in {1..30}; do
|
|
74
102
|
git fetch --tags
|
|
75
|
-
if git tag --list | grep -
|
|
76
|
-
echo "Tag $
|
|
77
|
-
git checkout $
|
|
103
|
+
if git tag --list | grep -qx "$RELEASE_TAG"; then
|
|
104
|
+
echo "Tag $RELEASE_TAG is now available"
|
|
105
|
+
git checkout "$RELEASE_TAG"
|
|
78
106
|
break
|
|
79
107
|
fi
|
|
80
108
|
echo "Attempt $i/30: Tag not found yet, waiting 10 seconds..."
|
|
@@ -82,8 +110,8 @@ jobs:
|
|
|
82
110
|
done
|
|
83
111
|
|
|
84
112
|
# Final check
|
|
85
|
-
if [ "$(git describe --exact-match --tags 2>/dev/null)" != "$
|
|
86
|
-
echo "Error: Tag $
|
|
113
|
+
if [ "$(git describe --exact-match --tags 2>/dev/null)" != "$RELEASE_TAG" ]; then
|
|
114
|
+
echo "Error: Tag $RELEASE_TAG is still not available after 5 minutes"
|
|
87
115
|
exit 1
|
|
88
116
|
fi
|
|
89
117
|
|
|
@@ -107,24 +135,25 @@ jobs:
|
|
|
107
135
|
|
|
108
136
|
- name: Install dependencies
|
|
109
137
|
run: |
|
|
110
|
-
if [ "$
|
|
138
|
+
if [ "$PACKAGE_MANAGER" = "npm" ]; then
|
|
111
139
|
npm ci
|
|
112
|
-
elif [ "$
|
|
140
|
+
elif [ "$PACKAGE_MANAGER" = "yarn" ]; then
|
|
113
141
|
yarn install --frozen-lockfile
|
|
114
|
-
elif [ "$
|
|
142
|
+
elif [ "$PACKAGE_MANAGER" = "bun" ]; then
|
|
115
143
|
bun install --frozen-lockfile
|
|
116
144
|
fi
|
|
117
145
|
|
|
118
146
|
- name: Build package
|
|
119
|
-
run:
|
|
147
|
+
run: |
|
|
148
|
+
"$PACKAGE_MANAGER" run build
|
|
120
149
|
|
|
121
150
|
- name: Update package version
|
|
122
151
|
run: |
|
|
123
152
|
# Update package.json to match the release version
|
|
124
|
-
VERSION="$
|
|
153
|
+
VERSION="$RELEASE_VERSION"
|
|
125
154
|
if [ -n "$VERSION" ]; then
|
|
126
155
|
echo "Updating package.json to version $VERSION"
|
|
127
|
-
npm version $VERSION --no-git-tag-version --allow-same-version
|
|
156
|
+
npm version "$VERSION" --no-git-tag-version --allow-same-version
|
|
128
157
|
fi
|
|
129
158
|
|
|
130
159
|
- name: Publish to npm with OIDC
|
|
@@ -136,22 +165,22 @@ jobs:
|
|
|
136
165
|
if: ${{ hashFiles('eslint-plugin-code-organization/package.json') != '' }}
|
|
137
166
|
run: |
|
|
138
167
|
cd eslint-plugin-code-organization
|
|
139
|
-
npm version $
|
|
168
|
+
npm version "$RELEASE_VERSION" --no-git-tag-version --allow-same-version
|
|
140
169
|
npm publish --access public --provenance
|
|
141
170
|
|
|
142
171
|
- name: Publish @codyswann/eslint-plugin-component-structure
|
|
143
172
|
if: ${{ hashFiles('eslint-plugin-component-structure/package.json') != '' }}
|
|
144
173
|
run: |
|
|
145
174
|
cd eslint-plugin-component-structure
|
|
146
|
-
npm version $
|
|
175
|
+
npm version "$RELEASE_VERSION" --no-git-tag-version --allow-same-version
|
|
147
176
|
npm publish --access public --provenance
|
|
148
177
|
|
|
149
178
|
- name: Publish @codyswann/eslint-plugin-ui-standards
|
|
150
179
|
if: ${{ hashFiles('eslint-plugin-ui-standards/package.json') != '' }}
|
|
151
180
|
run: |
|
|
152
181
|
cd eslint-plugin-ui-standards
|
|
153
|
-
npm version $
|
|
182
|
+
npm version "$RELEASE_VERSION" --no-git-tag-version --allow-same-version
|
|
154
183
|
npm publish --access public --provenance
|
|
155
184
|
|
|
156
185
|
- name: Notify on success
|
|
157
|
-
run: echo "Successfully published version $
|
|
186
|
+
run: echo "Successfully published version $RELEASE_VERSION to npm with provenance"
|
package/package.json
CHANGED
|
@@ -55,7 +55,8 @@
|
|
|
55
55
|
"check:nightly-guard-certificate": "node scripts/generate-nightly-e2e-guard-certificate.mjs --check",
|
|
56
56
|
"generate:two-channel-couplings": "bun scripts/generate-two-channel-couplings.ts",
|
|
57
57
|
"check:two-channel-couplings": "bun scripts/generate-two-channel-couplings.ts --check",
|
|
58
|
-
"check:
|
|
58
|
+
"check:deletion-basis": "node scripts/check-deletion-basis.mjs",
|
|
59
|
+
"check:artifacts": "status=0; bun run check:upstream-evidence-manifest || status=1; bun run check:lisa-owned-hash-ledger || status=1; bun run check:nightly-guard-certificate || status=1; bun run check:two-channel-couplings || status=1; bun run check:deletion-basis || status=1; exit $status",
|
|
59
60
|
"refresh:upstream-public-commits": "node scripts/generate-upstream-evidence-manifest.mjs --refresh-public-commits",
|
|
60
61
|
"check:rules-pairing": "bash scripts/check-rules-pairing.sh",
|
|
61
62
|
"check:pipeline-status-reads": "node scripts/check-pipeline-status-reads.mjs",
|
|
@@ -170,7 +171,7 @@
|
|
|
170
171
|
"zod-validation-error": "^4.0.0"
|
|
171
172
|
},
|
|
172
173
|
"name": "@codyswann/lisa",
|
|
173
|
-
"version": "4.
|
|
174
|
+
"version": "4.40.0",
|
|
174
175
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
175
176
|
"main": "dist/index.js",
|
|
176
177
|
"exports": {
|
|
@@ -318,7 +319,7 @@
|
|
|
318
319
|
"test": "tests"
|
|
319
320
|
},
|
|
320
321
|
"types": "./dist/index.d.ts",
|
|
321
|
-
"lisaReleaseCommit": "
|
|
322
|
-
"gitHead": "
|
|
323
|
-
"lisaReleaseTag": "v4.
|
|
322
|
+
"lisaReleaseCommit": "7b2e6ab5ac33dee1c4e21b0d55012f3b16f6587d",
|
|
323
|
+
"gitHead": "7b2e6ab5ac33dee1c4e21b0d55012f3b16f6587d",
|
|
324
|
+
"lisaReleaseTag": "v4.40.0"
|
|
324
325
|
}
|
package/phaser/deletions.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.40.0",
|
|
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.
|
|
3
|
+
"version": "4.40.0",
|
|
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.
|
|
3
|
+
"version": "4.40.0",
|
|
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.
|
|
3
|
+
"version": "4.40.0",
|
|
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.
|
|
3
|
+
"version": "4.40.0",
|
|
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"
|