@codyswann/lisa 2.329.0 → 2.330.1
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-enforcement-fallback.sh +4 -2
- package/all/copy-overwrite/scripts/lisa-hooks/block-instruction-file-edits.sh +142 -0
- package/all/merge/.claude/settings.json +9 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -15
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/standards-proof-cmd.d.ts +22 -0
- package/dist/cli/standards-proof-cmd.d.ts.map +1 -1
- package/dist/cli/standards-proof-cmd.js +18 -0
- package/dist/cli/standards-proof-cmd.js.map +1 -1
- package/dist/cli/workstation-cmd.d.ts +91 -0
- package/dist/cli/workstation-cmd.d.ts.map +1 -0
- package/dist/cli/workstation-cmd.js +127 -0
- package/dist/cli/workstation-cmd.js.map +1 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +25 -8
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/hooks-installer.d.ts.map +1 -1
- package/dist/opencode/hooks-installer.js +1 -41
- package/dist/opencode/hooks-installer.js.map +1 -1
- package/dist/opencode/plugin-catalog.d.ts +25 -0
- package/dist/opencode/plugin-catalog.d.ts.map +1 -0
- package/dist/opencode/plugin-catalog.js +47 -0
- package/dist/opencode/plugin-catalog.js.map +1 -0
- package/dist/opencode/plugin-templates/lisa-block-instruction-file-edits.ts +72 -0
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +14 -1
- package/plugins/lisa/.codex-plugin/hooks.json +13 -0
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-workstation/SKILL.md +27 -6
- package/plugins/lisa/commands/setup/workstation.md +2 -0
- package/plugins/lisa/hooks/block-instruction-file-edits.agy.sh +58 -0
- package/plugins/lisa/hooks/block-instruction-file-edits.sh +142 -0
- package/plugins/lisa/skills/lisa-setup-workstation/SKILL.md +27 -6
- package/plugins/lisa-agy/commands/lisa/setup/workstation.md +2 -0
- package/plugins/lisa-agy/hooks/block-instruction-file-edits.agy.sh +58 -0
- package/plugins/lisa-agy/hooks/block-instruction-file-edits.sh +142 -0
- package/plugins/lisa-agy/hooks.json +13 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-setup-workstation/SKILL.md +27 -6
- 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 +14 -1
- package/plugins/lisa-copilot/commands/lisa/setup/workstation.md +2 -0
- package/plugins/lisa-copilot/hooks/block-instruction-file-edits.sh +142 -0
- package/plugins/lisa-copilot/skills/lisa-setup-workstation/SKILL.md +27 -6
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/commands/lisa/setup/workstation.md +2 -0
- package/plugins/lisa-cursor/hooks/block-instruction-file-edits.sh +142 -0
- package/plugins/lisa-cursor/hooks/hooks.json +8 -0
- package/plugins/lisa-cursor/skills/lisa-setup-workstation/SKILL.md +27 -6
- 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/.claude-plugin/plugin.json +13 -0
- package/plugins/src/base/commands/setup/workstation.md +2 -0
- package/plugins/src/base/hooks/block-instruction-file-edits.agy.sh +58 -0
- package/plugins/src/base/hooks/block-instruction-file-edits.sh +142 -0
- package/plugins/src/base/skills/lisa-setup-workstation/SKILL.md +27 -6
- package/scripts/build-plugins.sh +2 -1
- package/scripts/generate-agy-plugin-artifacts.mjs +11 -0
- package/scripts/lib/per-agent-hook-filter.mjs +10 -0
- package/scripts/lisa-enforcement-fallback.sh +4 -2
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
# is not installed.
|
|
5
5
|
#
|
|
6
6
|
# Every PreToolUse guard — block-no-verify, parity-safety-net,
|
|
7
|
-
# block-shell-json-parsing — is declared in the
|
|
7
|
+
# block-shell-json-parsing, block-instruction-file-edits — is declared in the
|
|
8
|
+
# Lisa plugin. A cloud session
|
|
8
9
|
# installs plugins at session start from the marketplace the repository
|
|
9
10
|
# declares, and when that does not happen the container runs with
|
|
10
11
|
# `installed_plugins.json` empty and no enforcement whatsoever.
|
|
@@ -41,7 +42,8 @@ fi
|
|
|
41
42
|
# host project whose plugin install fails has exactly the same hole and no
|
|
42
43
|
# `plugins/` directory to fall back on.
|
|
43
44
|
status=0
|
|
44
|
-
for guard in block-no-verify parity-safety-net block-shell-json-parsing
|
|
45
|
+
for guard in block-no-verify parity-safety-net block-shell-json-parsing \
|
|
46
|
+
block-instruction-file-edits; do
|
|
45
47
|
script=""
|
|
46
48
|
for candidate in \
|
|
47
49
|
"$repo_root/scripts/lisa-hooks/$guard.sh" \
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# PreToolUse hook: refuse agent writes to the session-instruction files.
|
|
3
|
+
#
|
|
4
|
+
# `AGENTS.md`, `CLAUDE.md`, and `.github/copilot-instructions.md` are the files
|
|
5
|
+
# every agent loads at session start. They are human-authored and curated on
|
|
6
|
+
# purpose — Lisa's own contract says so in two places:
|
|
7
|
+
# - plugins/src/base/rules/reference/project-learnings.md
|
|
8
|
+
# - plugins/src/base/skills/lisa-debrief-apply/SKILL.md ("CLAUDE.md is
|
|
9
|
+
# human-authored ... apply never writes to any of the three")
|
|
10
|
+
#
|
|
11
|
+
# Nothing enforced it, so agents appended their own findings anyway: one fleet
|
|
12
|
+
# repo reached 949 lines of ticket-keyed trap dumps in `AGENTS.md` while its
|
|
13
|
+
# learnings ledger held 22. Every one of those lines is charged to the context
|
|
14
|
+
# of every later session in that project, forever. Prose did not hold; this is
|
|
15
|
+
# the executable control that does.
|
|
16
|
+
#
|
|
17
|
+
# Blocked signatures:
|
|
18
|
+
# 1. Write / Edit / MultiEdit / NotebookEdit whose target basename is one of
|
|
19
|
+
# the instruction files;
|
|
20
|
+
# 2. Bash output redirection (`>`, `>>`), `tee`, or `sed -i` aimed at one.
|
|
21
|
+
# Reads (`cat AGENTS.md`, `rg pattern AGENTS.md`) never fire.
|
|
22
|
+
#
|
|
23
|
+
# Exemptions (allowed):
|
|
24
|
+
# - `LISA_ALLOW_INSTRUCTION_FILE_WRITE` set — the operator's explicit override,
|
|
25
|
+
# named in the refusal so a human who really wants the edit can take it;
|
|
26
|
+
# - payloads carrying a `<!-- LISA_` marker: Lisa's own marker-bounded regions
|
|
27
|
+
# (the agy project-learnings bridge, cross-pollinate's rule section) replace
|
|
28
|
+
# in place on re-run and cannot grow the file;
|
|
29
|
+
# - paths under `node_modules/` or `dist/` — vendored copies, not the host's.
|
|
30
|
+
set -euo pipefail
|
|
31
|
+
|
|
32
|
+
input="$(cat)"
|
|
33
|
+
|
|
34
|
+
command -v jq >/dev/null 2>&1 || exit 0
|
|
35
|
+
|
|
36
|
+
# The operator's override. Checked before anything else so it is always the
|
|
37
|
+
# cheapest way out of a refusal a human deliberately wants to overrule.
|
|
38
|
+
if [ -n "${LISA_ALLOW_INSTRUCTION_FILE_WRITE:-}" ]; then
|
|
39
|
+
exit 0
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
tool_name="$(printf '%s' "$input" | jq -r '.tool_name // empty')"
|
|
43
|
+
[ -n "$tool_name" ] || exit 0
|
|
44
|
+
|
|
45
|
+
# Lisa's own bounded bridges write marked regions. A payload carrying a marker
|
|
46
|
+
# is replacing a delimited block, not appending prose, so it cannot be the
|
|
47
|
+
# unbounded growth this guard exists to stop.
|
|
48
|
+
if printf '%s' "$input" | grep -q '<!-- LISA_'; then
|
|
49
|
+
exit 0
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
# Basename match, case-insensitively: `agents.md` and `AGENTS.md` are the same
|
|
53
|
+
# file on the macOS checkouts this fleet runs on.
|
|
54
|
+
is_instruction_file() {
|
|
55
|
+
local candidate="$1"
|
|
56
|
+
case "$candidate" in
|
|
57
|
+
*/node_modules/* | node_modules/* | */dist/* | dist/*) return 1 ;;
|
|
58
|
+
esac
|
|
59
|
+
local base="${candidate##*/}"
|
|
60
|
+
case "$(printf '%s' "$base" | tr '[:upper:]' '[:lower:]')" in
|
|
61
|
+
agents.md | claude.md | copilot-instructions.md) return 0 ;;
|
|
62
|
+
esac
|
|
63
|
+
return 1
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
refuse() {
|
|
67
|
+
local target="$1"
|
|
68
|
+
cat >&2 <<EOF
|
|
69
|
+
BLOCKED: refusing to write \`$target\`.
|
|
70
|
+
|
|
71
|
+
WHY: this is a session-instruction file, not a place to record what you just
|
|
72
|
+
learned. Every line in it is loaded into the context of every agent, in every
|
|
73
|
+
future session, in this project, forever. It is human-curated on purpose. An
|
|
74
|
+
agent appending its own findings is how these files grow into hundreds of lines
|
|
75
|
+
of stale, ticket-specific trivia that every later session pays for and half of
|
|
76
|
+
which was only ever true once.
|
|
77
|
+
|
|
78
|
+
WHERE IT GOES INSTEAD — take the first one that fits:
|
|
79
|
+
|
|
80
|
+
1. Every agent genuinely needs this in every session, and only in this project.
|
|
81
|
+
That is a project rule — but do not write it yourself. Capture it with
|
|
82
|
+
\`/lisa:persist-learning\` so it lands in the learnings ledger with provenance
|
|
83
|
+
and a confidence score. The gardener (\`/lisa:learnings:audit\`) then proposes
|
|
84
|
+
promotion into \`.claude/rules/PROJECT_RULES.md\` as a human-gated ticket.
|
|
85
|
+
|
|
86
|
+
2. It changes how an existing skill should behave. Edit that skill's SKILL.md.
|
|
87
|
+
Knowledge belongs next to the procedure it modifies, not in a global preamble.
|
|
88
|
+
|
|
89
|
+
3. It is true beyond this project. Propose it upstream to Lisa via
|
|
90
|
+
\`/lisa:cross-pollinate\`, or open an issue on CodySwannGT/lisa. A local copy of
|
|
91
|
+
a general rule silently drifts the moment upstream changes.
|
|
92
|
+
|
|
93
|
+
4. None of the above — it is background someone may want to look up, not a
|
|
94
|
+
standing instruction. Write it into the project documentation (\`wiki/\` or
|
|
95
|
+
\`docs/\`).
|
|
96
|
+
|
|
97
|
+
If a human explicitly asked for this edit, they can re-run with
|
|
98
|
+
\`LISA_ALLOW_INSTRUCTION_FILE_WRITE=1\` set, which bypasses this guard.
|
|
99
|
+
EOF
|
|
100
|
+
exit 2
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
case "$tool_name" in
|
|
104
|
+
Write | Edit | MultiEdit | NotebookEdit | Update)
|
|
105
|
+
# `file_path` covers Write/Edit; `edits[].file_path` covers the MultiEdit
|
|
106
|
+
# shapes that carry a path per edit; `notebook_path` covers NotebookEdit.
|
|
107
|
+
paths="$(printf '%s' "$input" | jq -r '
|
|
108
|
+
[ .tool_input.file_path?,
|
|
109
|
+
.tool_input.path?,
|
|
110
|
+
.tool_input.notebook_path?,
|
|
111
|
+
(.tool_input.edits? // [] | .[].file_path?)
|
|
112
|
+
] | map(select(. != null and . != "")) | .[]' 2>/dev/null || true)"
|
|
113
|
+
while IFS= read -r candidate; do
|
|
114
|
+
[ -n "$candidate" ] || continue
|
|
115
|
+
if is_instruction_file "$candidate"; then
|
|
116
|
+
refuse "$candidate"
|
|
117
|
+
fi
|
|
118
|
+
done <<EOF
|
|
119
|
+
$paths
|
|
120
|
+
EOF
|
|
121
|
+
;;
|
|
122
|
+
Bash)
|
|
123
|
+
command_str="$(printf '%s' "$input" | jq -r '.tool_input.command // empty')"
|
|
124
|
+
[ -n "$command_str" ] || exit 0
|
|
125
|
+
# Fast path: no instruction filename mentioned means nothing to classify.
|
|
126
|
+
if ! printf '%s' "$command_str" |
|
|
127
|
+
grep -Eqi '(agents|claude|copilot-instructions)\.md'; then
|
|
128
|
+
exit 0
|
|
129
|
+
fi
|
|
130
|
+
# Write signatures only. A bare mention (`cat AGENTS.md`, `rg x AGENTS.md`)
|
|
131
|
+
# is a read and must stay allowed — the filename has to appear as the target
|
|
132
|
+
# of a redirection, a tee, or an in-place sed.
|
|
133
|
+
write_target='[^ |;&]*(agents|claude|copilot-instructions)\.md'
|
|
134
|
+
if printf '%s' "$command_str" |
|
|
135
|
+
grep -Eqi ">>?[[:space:]]*['\"]?$write_target|tee([[:space:]]+-[a-z]+)*[[:space:]]+['\"]?$write_target|sed[[:space:]]+[^|;&]*-i[^|;&]*$write_target"; then
|
|
136
|
+
refuse "$(printf '%s' "$command_str" |
|
|
137
|
+
grep -Eoi "$write_target" | head -1)"
|
|
138
|
+
fi
|
|
139
|
+
;;
|
|
140
|
+
esac
|
|
141
|
+
|
|
142
|
+
exit 0
|
|
@@ -48,6 +48,15 @@
|
|
|
48
48
|
"command": "bash \"$CLAUDE_PROJECT_DIR\"/scripts/lisa-enforcement-fallback.sh"
|
|
49
49
|
}
|
|
50
50
|
]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"matcher": "Write|Edit|MultiEdit",
|
|
54
|
+
"hooks": [
|
|
55
|
+
{
|
|
56
|
+
"type": "command",
|
|
57
|
+
"command": "bash \"$CLAUDE_PROJECT_DIR\"/scripts/lisa-enforcement-fallback.sh"
|
|
58
|
+
}
|
|
59
|
+
]
|
|
51
60
|
}
|
|
52
61
|
]
|
|
53
62
|
}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAEL,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAyB,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAEL,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAEL,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAyB,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAEL,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAEL,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAuB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAqB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,kEAAkE;IAClE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,4DAA4D;IAC5D,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,wCAAwC;IACxC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,yDAAyD;IACzD,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,qCAAqC;IACrC,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,4EAA4E;IAC5E,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,2EAA2E;IAC3E,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,8DAA8D;IAC9D,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,iEAAiE;IACjE,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,sEAAsE;IACtE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,uDAAuD;IACvD,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,qEAAqE;IACrE,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,iEAAiE;IACjE,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,4EAA4E;IAC5E,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,kEAAkE;IAClE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,gFAAgF;IAChF,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,0EAA0E;IAC1E,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;CAC/C;AAsND;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,YAAY,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC9C,OAAO,CAgET;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -12,13 +12,14 @@ import { DEFAULT_SETUP_PROJECT_DEPENDENCIES, runSetupProject, } from "./setup-pr
|
|
|
12
12
|
import { runSetupWiki } from "./setup-wiki.js";
|
|
13
13
|
import { addSharedOptions } from "./shared-options.js";
|
|
14
14
|
import { SETUP_TYPES } from "./starters.js";
|
|
15
|
-
import { runStandardsProofCli } from "./standards-proof-cmd.js";
|
|
15
|
+
import { addStandardsProofCommand, runStandardsProofCli, } from "./standards-proof-cmd.js";
|
|
16
16
|
import { runSync } from "./sync-cmd.js";
|
|
17
17
|
import { runUi } from "./ui-cmd.js";
|
|
18
18
|
import { runUpdate } from "./update-cmd.js";
|
|
19
19
|
import { runUpdateCheck } from "./update-check.js";
|
|
20
20
|
import { addUpdateCheckHook } from "./update-check-hook.js";
|
|
21
21
|
import { runVersion } from "./version-cmd.js";
|
|
22
|
+
import { addWorkstationCommand } from "./workstation-cmd.js";
|
|
22
23
|
import { getPackageVersion } from "./version.js";
|
|
23
24
|
const DEFAULT_DEPENDENCIES = {
|
|
24
25
|
runApply,
|
|
@@ -117,20 +118,6 @@ function addHealthCommand(program, deps) {
|
|
|
117
118
|
await deps.runHealthCli(targetPath, options);
|
|
118
119
|
});
|
|
119
120
|
}
|
|
120
|
-
/**
|
|
121
|
-
* Register the explicit, mutating standards proof command.
|
|
122
|
-
* @param program - Commander program to mutate
|
|
123
|
-
* @param deps - Program dependencies
|
|
124
|
-
*/
|
|
125
|
-
function addStandardsProofCommand(program, deps) {
|
|
126
|
-
program
|
|
127
|
-
.command("standards-proof")
|
|
128
|
-
.description("Run all applicable Lisa standards checks and prove the current Git artifact")
|
|
129
|
-
.argument("[path]", PATH_ARG_DESCRIPTION)
|
|
130
|
-
.action(async (targetPath) => {
|
|
131
|
-
await deps.runStandardsProofCli(targetPath);
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
121
|
/**
|
|
135
122
|
* Register CLI maintenance commands that do not run the root update warning.
|
|
136
123
|
* @param program - Commander program to mutate
|
|
@@ -154,6 +141,7 @@ function addMaintenanceCommands(program, deps) {
|
|
|
154
141
|
process.exitCode = code;
|
|
155
142
|
}
|
|
156
143
|
});
|
|
144
|
+
addWorkstationCommand(program);
|
|
157
145
|
addDoctorCommand(program, deps);
|
|
158
146
|
addHealthCommand(program, deps);
|
|
159
147
|
addStandardsProofCommand(program, deps);
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAEL,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAyB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,GAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,kCAAkC,EAClC,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAmB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,29 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
1
2
|
/**
|
|
2
3
|
* Run every applicable standards command and publish a current proof.
|
|
3
4
|
* @param projectPath - Optional project path
|
|
4
5
|
* @param cwd - Injectable process working directory
|
|
5
6
|
*/
|
|
6
7
|
export declare function runStandardsProofCli(projectPath: string | undefined, cwd?: string): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* The only dependency this registration needs, structurally.
|
|
10
|
+
*
|
|
11
|
+
* Declared here rather than importing `ProgramDependencies` from the program
|
|
12
|
+
* module, which would import this one back.
|
|
13
|
+
*/
|
|
14
|
+
interface StandardsProofCommandDeps {
|
|
15
|
+
/** Runs every standards command and writes freshness-bound proof. */
|
|
16
|
+
readonly runStandardsProofCli: typeof runStandardsProofCli;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Register the explicit, mutating standards proof command.
|
|
20
|
+
*
|
|
21
|
+
* Lives beside its command rather than in the program module, matching
|
|
22
|
+
* `addGateCommands` — registration is part of the command, and keeping it here
|
|
23
|
+
* is what stops the program file growing without bound.
|
|
24
|
+
* @param program Commander program to mutate.
|
|
25
|
+
* @param deps Program dependencies.
|
|
26
|
+
*/
|
|
27
|
+
export declare function addStandardsProofCommand(program: Command, deps: StandardsProofCommandDeps): void;
|
|
28
|
+
export {};
|
|
7
29
|
//# sourceMappingURL=standards-proof-cmd.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-proof-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/standards-proof-cmd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"standards-proof-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/standards-proof-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;;;GAKG;AACH,UAAU,yBAAyB;IACjC,qEAAqE;IACrE,QAAQ,CAAC,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;CAC5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,yBAAyB,GAC9B,IAAI,CAUN"}
|
|
@@ -11,4 +11,22 @@ export async function runStandardsProofCli(projectPath, cwd = process.cwd()) {
|
|
|
11
11
|
const proof = await captureStandardsProof(root);
|
|
12
12
|
process.stdout.write(`standards-proof: PASS ${proof.repository.identity}@${proof.repository.head} (${proof.results.length} checks)\n`);
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Register the explicit, mutating standards proof command.
|
|
16
|
+
*
|
|
17
|
+
* Lives beside its command rather than in the program module, matching
|
|
18
|
+
* `addGateCommands` — registration is part of the command, and keeping it here
|
|
19
|
+
* is what stops the program file growing without bound.
|
|
20
|
+
* @param program Commander program to mutate.
|
|
21
|
+
* @param deps Program dependencies.
|
|
22
|
+
*/
|
|
23
|
+
export function addStandardsProofCommand(program, deps) {
|
|
24
|
+
program
|
|
25
|
+
.command("standards-proof")
|
|
26
|
+
.description("Run all applicable Lisa standards checks and prove the current Git artifact")
|
|
27
|
+
.argument("[path]", "Project path (default: current directory)")
|
|
28
|
+
.action(async (targetPath) => {
|
|
29
|
+
await deps.runStandardsProofCli(targetPath);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
14
32
|
//# sourceMappingURL=standards-proof-cmd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-proof-cmd.js","sourceRoot":"","sources":["../../src/cli/standards-proof-cmd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"standards-proof-cmd.js","sourceRoot":"","sources":["../../src/cli/standards-proof-cmd.ts"],"names":[],"mappings":"AAEA,oEAAoE;AACpE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAA+B,EAC/B,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,IAAI,GAAG,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,yBAAyB,KAAK,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,YAAY,CACjH,CAAC;AACJ,CAAC;AAaD;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAgB,EAChB,IAA+B;IAE/B,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CACV,6EAA6E,CAC9E;SACA,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC;SAC/D,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,EAAE;QAC/C,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI entry point for the workstation bootstrap.
|
|
3
|
+
*
|
|
4
|
+
* `lisa-setup-workstation` exists to prepare a machine that has no coding agent
|
|
5
|
+
* and no checkout. As a skill it could only be reached by typing a slash command
|
|
6
|
+
* into an agent — and Lisa ships as a devDependency, so it does not exist until
|
|
7
|
+
* a repo is cloned and its dependencies installed.
|
|
8
|
+
*
|
|
9
|
+
* Both of those are precisely the state the skill is supposed to CREATE. The
|
|
10
|
+
* bootstrap was unreachable in the one scenario it was designed for.
|
|
11
|
+
*
|
|
12
|
+
* This is the way in that presumes nothing:
|
|
13
|
+
*
|
|
14
|
+
* npx -y `@codyswann/lisa@latest` workstation --install --provider=bitwarden
|
|
15
|
+
*
|
|
16
|
+
* npx resolves the package into its own cache, so no repository is involved and
|
|
17
|
+
* no agent has to exist yet. The skill stays as the surface for people who
|
|
18
|
+
* already have an agent; this is for people who do not.
|
|
19
|
+
* @module cli/workstation-cmd
|
|
20
|
+
*/
|
|
21
|
+
import type { Command } from "commander";
|
|
22
|
+
/**
|
|
23
|
+
* The only dependency this command needs, structurally.
|
|
24
|
+
*
|
|
25
|
+
* Declared here rather than importing `ProgramDependencies` from the program
|
|
26
|
+
* module, which imports this one — a cycle for the sake of a single field.
|
|
27
|
+
*/
|
|
28
|
+
interface WorkstationCommandDeps {
|
|
29
|
+
/** Runs the bootstrap and returns its exit code. */
|
|
30
|
+
readonly runWorkstation: (flags: readonly string[]) => number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Register `lisa workstation`.
|
|
34
|
+
*
|
|
35
|
+
* Kept out of the program module so registering it does not push that file past
|
|
36
|
+
* its size limits — the same reason `addGateCommands` lives beside its own
|
|
37
|
+
* command rather than in the middle of the program.
|
|
38
|
+
* @param program Commander program to mutate.
|
|
39
|
+
* @param deps Program dependencies.
|
|
40
|
+
*/
|
|
41
|
+
export declare function addWorkstationCommand(program: Command, deps?: WorkstationCommandDeps): void;
|
|
42
|
+
/**
|
|
43
|
+
* Everything the operator typed after the subcommand name.
|
|
44
|
+
*
|
|
45
|
+
* Taken from argv because the flags are the bootstrap script's vocabulary, not
|
|
46
|
+
* commander's, and forwarding them verbatim is what keeps the CLI and the skill
|
|
47
|
+
* from drifting into two dialects.
|
|
48
|
+
*
|
|
49
|
+
* Searched from index 2 so a project path that happens to be named
|
|
50
|
+
* `workstation` cannot be mistaken for the subcommand.
|
|
51
|
+
* @param argv Full process argv.
|
|
52
|
+
* @param name Subcommand name.
|
|
53
|
+
* @returns Forwarded flags, empty when the subcommand is absent.
|
|
54
|
+
*/
|
|
55
|
+
export declare function flagsAfterCommand(argv: readonly string[], name?: string): string[];
|
|
56
|
+
/** Injectable seams so the command is testable without provisioning anything. */
|
|
57
|
+
export interface WorkstationDeps {
|
|
58
|
+
/** Resolve the installed package root. */
|
|
59
|
+
readonly installPath?: () => string;
|
|
60
|
+
/** Run the script. */
|
|
61
|
+
readonly run?: (command: string, args: string[]) => {
|
|
62
|
+
status: number | null;
|
|
63
|
+
};
|
|
64
|
+
/** Report a problem. */
|
|
65
|
+
readonly error?: (message: string) => void;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Locate the bootstrap script inside the installed package.
|
|
69
|
+
*
|
|
70
|
+
* Resolved from the MODULE's own location rather than the working directory:
|
|
71
|
+
* under npx the cwd is wherever the operator happens to be standing, and is
|
|
72
|
+
* frequently not a project at all — which is the entire point of this command.
|
|
73
|
+
* @param installPath Package root.
|
|
74
|
+
* @returns Absolute path to the script.
|
|
75
|
+
* @throws {Error} When the package is incomplete.
|
|
76
|
+
*/
|
|
77
|
+
export declare function resolveWorkstationScript(installPath?: string): string;
|
|
78
|
+
/**
|
|
79
|
+
* Run the workstation bootstrap, passing every flag through untouched.
|
|
80
|
+
*
|
|
81
|
+
* Flags are forwarded rather than re-declared. Restating `--install`,
|
|
82
|
+
* `--agents`, `--provider` and the rest here would give the CLI and the skill
|
|
83
|
+
* two vocabularies to keep in step, and the one nobody runs is the one that
|
|
84
|
+
* drifts.
|
|
85
|
+
* @param flags Arguments for the script.
|
|
86
|
+
* @param deps Injected seams.
|
|
87
|
+
* @returns Process exit code.
|
|
88
|
+
*/
|
|
89
|
+
export declare function runWorkstation(flags?: readonly string[], deps?: WorkstationDeps): number;
|
|
90
|
+
export {};
|
|
91
|
+
//# sourceMappingURL=workstation-cmd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workstation-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/workstation-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC;;;;;GAKG;AACH,UAAU,sBAAsB;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC;CAC/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,IAAI,GAAE,sBAA2C,GAChD,IAAI,CAuBN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,SAAgB,GACnB,MAAM,EAAE,CAGV;AAaD,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC;IACpC,sBAAsB;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC9E,wBAAwB;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,GAAE,MAA4B,GACxC,MAAM,CAUR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,KAAK,GAAE,SAAS,MAAM,EAAO,EAC7B,IAAI,GAAE,eAAoB,GACzB,MAAM,CA2BR"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI entry point for the workstation bootstrap.
|
|
3
|
+
*
|
|
4
|
+
* `lisa-setup-workstation` exists to prepare a machine that has no coding agent
|
|
5
|
+
* and no checkout. As a skill it could only be reached by typing a slash command
|
|
6
|
+
* into an agent — and Lisa ships as a devDependency, so it does not exist until
|
|
7
|
+
* a repo is cloned and its dependencies installed.
|
|
8
|
+
*
|
|
9
|
+
* Both of those are precisely the state the skill is supposed to CREATE. The
|
|
10
|
+
* bootstrap was unreachable in the one scenario it was designed for.
|
|
11
|
+
*
|
|
12
|
+
* This is the way in that presumes nothing:
|
|
13
|
+
*
|
|
14
|
+
* npx -y `@codyswann/lisa@latest` workstation --install --provider=bitwarden
|
|
15
|
+
*
|
|
16
|
+
* npx resolves the package into its own cache, so no repository is involved and
|
|
17
|
+
* no agent has to exist yet. The skill stays as the surface for people who
|
|
18
|
+
* already have an agent; this is for people who do not.
|
|
19
|
+
* @module cli/workstation-cmd
|
|
20
|
+
*/
|
|
21
|
+
import { spawnSync } from "node:child_process";
|
|
22
|
+
import { existsSync } from "node:fs";
|
|
23
|
+
import path from "node:path";
|
|
24
|
+
import { getCliInstallPath } from "./version-cmd.js";
|
|
25
|
+
/**
|
|
26
|
+
* Register `lisa workstation`.
|
|
27
|
+
*
|
|
28
|
+
* Kept out of the program module so registering it does not push that file past
|
|
29
|
+
* its size limits — the same reason `addGateCommands` lives beside its own
|
|
30
|
+
* command rather than in the middle of the program.
|
|
31
|
+
* @param program Commander program to mutate.
|
|
32
|
+
* @param deps Program dependencies.
|
|
33
|
+
*/
|
|
34
|
+
export function addWorkstationCommand(program, deps = { runWorkstation }) {
|
|
35
|
+
program
|
|
36
|
+
.command("workstation")
|
|
37
|
+
.description("Prepare this machine to run coding agents — before any repo exists. " +
|
|
38
|
+
"Detects installed agents, asks which credential manager to use, and " +
|
|
39
|
+
"installs what is missing. Needs no checkout and no agent: run it with " +
|
|
40
|
+
"'npx -y @codyswann/lisa@latest workstation --install'.")
|
|
41
|
+
// Flags belong to the bootstrap script, not to commander. Re-declaring them
|
|
42
|
+
// here would give the CLI and the skill two vocabularies to keep in step.
|
|
43
|
+
//
|
|
44
|
+
// Read straight off argv rather than via passThroughOptions, which
|
|
45
|
+
// commander only permits once the PARENT enables positional options — a
|
|
46
|
+
// global parsing change affecting every other command, to serve one.
|
|
47
|
+
.allowUnknownOption(true)
|
|
48
|
+
.argument("[flags...]", "flags forwarded to the bootstrap")
|
|
49
|
+
.action(() => {
|
|
50
|
+
const code = deps.runWorkstation(flagsAfterCommand(process.argv));
|
|
51
|
+
if (code !== 0) {
|
|
52
|
+
process.exitCode = code;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Everything the operator typed after the subcommand name.
|
|
58
|
+
*
|
|
59
|
+
* Taken from argv because the flags are the bootstrap script's vocabulary, not
|
|
60
|
+
* commander's, and forwarding them verbatim is what keeps the CLI and the skill
|
|
61
|
+
* from drifting into two dialects.
|
|
62
|
+
*
|
|
63
|
+
* Searched from index 2 so a project path that happens to be named
|
|
64
|
+
* `workstation` cannot be mistaken for the subcommand.
|
|
65
|
+
* @param argv Full process argv.
|
|
66
|
+
* @param name Subcommand name.
|
|
67
|
+
* @returns Forwarded flags, empty when the subcommand is absent.
|
|
68
|
+
*/
|
|
69
|
+
export function flagsAfterCommand(argv, name = "workstation") {
|
|
70
|
+
const at = argv.indexOf(name, 2);
|
|
71
|
+
return at === -1 ? [] : argv.slice(at + 1);
|
|
72
|
+
}
|
|
73
|
+
/** Where the bootstrap script sits inside the published package. */
|
|
74
|
+
const SCRIPT_RELATIVE = path.join("plugins", "src", "base", "skills", "lisa-setup-workstation", "scripts", "cli.mjs");
|
|
75
|
+
/**
|
|
76
|
+
* Locate the bootstrap script inside the installed package.
|
|
77
|
+
*
|
|
78
|
+
* Resolved from the MODULE's own location rather than the working directory:
|
|
79
|
+
* under npx the cwd is wherever the operator happens to be standing, and is
|
|
80
|
+
* frequently not a project at all — which is the entire point of this command.
|
|
81
|
+
* @param installPath Package root.
|
|
82
|
+
* @returns Absolute path to the script.
|
|
83
|
+
* @throws {Error} When the package is incomplete.
|
|
84
|
+
*/
|
|
85
|
+
export function resolveWorkstationScript(installPath = getCliInstallPath()) {
|
|
86
|
+
const script = path.join(installPath, SCRIPT_RELATIVE);
|
|
87
|
+
if (!existsSync(script)) {
|
|
88
|
+
throw new Error(`cannot find the workstation script at ${script}.\n` +
|
|
89
|
+
`This means the installed Lisa package is incomplete — reinstall, or ` +
|
|
90
|
+
`run a newer version with 'npx -y @codyswann/lisa@latest workstation'.`);
|
|
91
|
+
}
|
|
92
|
+
return script;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Run the workstation bootstrap, passing every flag through untouched.
|
|
96
|
+
*
|
|
97
|
+
* Flags are forwarded rather than re-declared. Restating `--install`,
|
|
98
|
+
* `--agents`, `--provider` and the rest here would give the CLI and the skill
|
|
99
|
+
* two vocabularies to keep in step, and the one nobody runs is the one that
|
|
100
|
+
* drifts.
|
|
101
|
+
* @param flags Arguments for the script.
|
|
102
|
+
* @param deps Injected seams.
|
|
103
|
+
* @returns Process exit code.
|
|
104
|
+
*/
|
|
105
|
+
export function runWorkstation(flags = [], deps = {}) {
|
|
106
|
+
const report = deps.error ?? ((message) => process.stderr.write(message));
|
|
107
|
+
const located = (() => {
|
|
108
|
+
try {
|
|
109
|
+
return resolveWorkstationScript((deps.installPath ?? getCliInstallPath)());
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
report(`${error.message}\n`);
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
})();
|
|
116
|
+
if (located === null)
|
|
117
|
+
return 1;
|
|
118
|
+
const run = deps.run ??
|
|
119
|
+
((command, args) => spawnSync(command, args, { stdio: "inherit" }));
|
|
120
|
+
// Spawned rather than imported: the script is plain ESM with no build step,
|
|
121
|
+
// and running it as its own process keeps the interactive prompt attached to
|
|
122
|
+
// the real terminal — a credential-manager question read through a bundler's
|
|
123
|
+
// stdio is how a bootstrap ends up hanging with nothing on screen.
|
|
124
|
+
const result = run(process.execPath, [located, ...flags]);
|
|
125
|
+
return result.status ?? 1;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=workstation-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workstation-cmd.js","sourceRoot":"","sources":["../../src/cli/workstation-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0pEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAyqNjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
|