@codyswann/lisa 2.159.9 → 2.161.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/dist/configs/eslint/harper-fabric.js +2 -2
- package/dist/configs/eslint/harper-fabric.js.map +1 -1
- package/harper-fabric/copy-contents/.prettierignore +4 -1
- package/harper-fabric/copy-overwrite/knip.json +2 -1
- package/harper-fabric/copy-overwrite/tsconfig.eslint.json +2 -1
- package/harper-fabric/create-only/.github/workflows/deploy.yml +82 -0
- package/harper-fabric/create-only/.github/workflows/zap-baseline.yml +56 -0
- package/harper-fabric/create-only/.zap/baseline.conf +21 -0
- package/harper-fabric/create-only/scripts/zap-baseline.sh +107 -0
- package/harper-fabric/merge/.oxlintrc.json +2 -1
- package/oxlint/harper-fabric.json +2 -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 +12 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/hooks.json +11 -0
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/generated-artifact-globs.txt +4 -0
- package/plugins/lisa-harper-fabric/hooks/block-generated-artifact-edits.sh +72 -0
- package/plugins/lisa-harper-fabric/skills/harper-build-and-deploy/SKILL.md +24 -4
- package/plugins/lisa-harper-fabric-agy/generated-artifact-globs.txt +4 -0
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/skills/harper-build-and-deploy/SKILL.md +24 -4
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +12 -1
- package/plugins/lisa-harper-fabric-copilot/generated-artifact-globs.txt +4 -0
- package/plugins/lisa-harper-fabric-copilot/hooks/block-generated-artifact-edits.sh +72 -0
- package/plugins/lisa-harper-fabric-copilot/skills/harper-build-and-deploy/SKILL.md +24 -4
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/generated-artifact-globs.txt +4 -0
- package/plugins/lisa-harper-fabric-cursor/hooks/block-generated-artifact-edits.sh +72 -0
- package/plugins/lisa-harper-fabric-cursor/hooks/hooks.json +11 -0
- package/plugins/lisa-harper-fabric-cursor/skills/harper-build-and-deploy/SKILL.md +24 -4
- 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-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/harper-fabric/.claude-plugin/plugin.json +8 -0
- package/plugins/src/harper-fabric/generated-artifact-globs.txt +4 -0
- package/plugins/src/harper-fabric/hooks/block-generated-artifact-edits.sh +72 -0
- package/plugins/src/harper-fabric/skills/harper-build-and-deploy/SKILL.md +24 -4
- package/tsconfig/harper-fabric.json +3 -1
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# This file is managed by Lisa.
|
|
3
|
+
# Do not edit directly - changes will be overwritten on the next `lisa` run.
|
|
4
|
+
|
|
5
|
+
# PreToolUse hook: block Write/Edit/MultiEdit on generated Harper deploy
|
|
6
|
+
# artifacts. Harper/Fabric projects build these files from TypeScript under
|
|
7
|
+
# src/, so direct edits are overwritten by the next build and usually ship as
|
|
8
|
+
# no-op fixes.
|
|
9
|
+
# Reference: https://docs.claude.com/en/docs/claude-code/hooks
|
|
10
|
+
# Exit code 2 blocks the tool call and surfaces stderr to Claude.
|
|
11
|
+
|
|
12
|
+
JSON_INPUT=$(cat)
|
|
13
|
+
|
|
14
|
+
command -v jq >/dev/null 2>&1 || exit 0
|
|
15
|
+
|
|
16
|
+
FILE_PATH=$(printf '%s' "$JSON_INPUT" | jq -r '.tool_input.file_path // empty')
|
|
17
|
+
[ -n "$FILE_PATH" ] || exit 0
|
|
18
|
+
|
|
19
|
+
PLUGIN_ROOT=${CLAUDE_PLUGIN_ROOT:-}
|
|
20
|
+
if [ -z "$PLUGIN_ROOT" ]; then
|
|
21
|
+
PLUGIN_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
22
|
+
fi
|
|
23
|
+
GLOBS_FILE="$PLUGIN_ROOT/generated-artifact-globs.txt"
|
|
24
|
+
[ -f "$GLOBS_FILE" ] || exit 0
|
|
25
|
+
|
|
26
|
+
normalize_path() {
|
|
27
|
+
local path="$1"
|
|
28
|
+
path="${path#./}"
|
|
29
|
+
printf '%s' "$path"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
matches_glob() {
|
|
33
|
+
local file="$1"
|
|
34
|
+
local glob="$2"
|
|
35
|
+
|
|
36
|
+
if [ "${glob: -3}" = "/**" ]; then
|
|
37
|
+
local dir="${glob%/**}"
|
|
38
|
+
case "$file" in
|
|
39
|
+
"$dir"/* | */"$dir"/*) return 0 ;;
|
|
40
|
+
esac
|
|
41
|
+
return 1
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
case "$file" in
|
|
45
|
+
$glob | */$glob) return 0 ;;
|
|
46
|
+
esac
|
|
47
|
+
|
|
48
|
+
return 1
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
NORMALIZED_FILE=$(normalize_path "$FILE_PATH")
|
|
52
|
+
|
|
53
|
+
while IFS= read -r glob || [ -n "$glob" ]; do
|
|
54
|
+
[ -n "$glob" ] || continue
|
|
55
|
+
case "$glob" in \#*) continue ;; esac
|
|
56
|
+
|
|
57
|
+
if matches_glob "$NORMALIZED_FILE" "$glob"; then
|
|
58
|
+
cat >&2 <<MSG
|
|
59
|
+
Blocked: direct edit to generated Harper/Fabric artifact.
|
|
60
|
+
|
|
61
|
+
File: $FILE_PATH
|
|
62
|
+
Matched generated artifact pattern: $glob
|
|
63
|
+
|
|
64
|
+
TypeScript under src/ is the source of truth for Harper resources, web assets,
|
|
65
|
+
and shared libraries. Change the matching TypeScript source under src/ and run
|
|
66
|
+
the project build to regenerate harper-app outputs.
|
|
67
|
+
MSG
|
|
68
|
+
exit 2
|
|
69
|
+
fi
|
|
70
|
+
done <"$GLOBS_FILE"
|
|
71
|
+
|
|
72
|
+
exit 0
|
|
@@ -53,8 +53,25 @@ relevant deployed or smoke path agree.
|
|
|
53
53
|
|
|
54
54
|
## Deploying to Fabric
|
|
55
55
|
|
|
56
|
-
Fabric is Harper's distributed deploy network.
|
|
57
|
-
|
|
56
|
+
Fabric is Harper's distributed deploy network. Lisa ships a create-only GitHub
|
|
57
|
+
Actions workflow at `.github/workflows/deploy.yml` for Harper/Fabric projects. Use
|
|
58
|
+
that workflow as the canonical deployment path for repositories that have adopted
|
|
59
|
+
the template: it builds the project, runs `harper deploy_component` against the
|
|
60
|
+
configured Fabric target, and then runs the project's smoke verification script.
|
|
61
|
+
|
|
62
|
+
Required GitHub secrets:
|
|
63
|
+
|
|
64
|
+
- `CLI_TARGET` or `HARPER_FABRIC_TARGET` — Fabric target URL.
|
|
65
|
+
- `CLI_TARGET_USERNAME` — deploy username.
|
|
66
|
+
- `CLI_TARGET_PASSWORD` — deploy password.
|
|
67
|
+
|
|
68
|
+
Optional GitHub variables:
|
|
69
|
+
|
|
70
|
+
- `HARPER_PROJECT` — Fabric project name; defaults to the repository name.
|
|
71
|
+
- `HARPER_PACKAGE` — package path; defaults to `harper-app`.
|
|
72
|
+
|
|
73
|
+
For local debugging or one-off deploys, the equivalent CLI command packages the
|
|
74
|
+
component and sends it to a target instance:
|
|
58
75
|
|
|
59
76
|
```bash
|
|
60
77
|
harper deploy_component \
|
|
@@ -85,8 +102,11 @@ env var, which store) without recording their values.
|
|
|
85
102
|
1. `bun run build` — produces fresh `resources.js` / `web/**`.
|
|
86
103
|
2. `bun run typecheck`.
|
|
87
104
|
3. The smallest relevant test command.
|
|
88
|
-
4. For deploy-affecting changes, the
|
|
89
|
-
|
|
105
|
+
4. For deploy-affecting changes, run the create-only GitHub deploy workflow when
|
|
106
|
+
available, or manually run `harper deploy_component` plus the project **smoke
|
|
107
|
+
command** against the local or deployed Harper endpoint.
|
|
108
|
+
5. For public HTTP surfaces, run the create-only ZAP baseline workflow or
|
|
109
|
+
`bash scripts/zap-baseline.sh` with `ZAP_TARGET_URL` set to the deployed app.
|
|
90
110
|
|
|
91
111
|
If a verification command cannot run, report the exact command and the blocker —
|
|
92
112
|
do not claim completion. When you hit a Harper/Fabric limitation or workaround,
|