@codyswann/lisa 4.71.11 → 4.71.13
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-hooks/discharge-work-item-gates.sh +90 -0
- package/all/copy-overwrite/scripts/npm-updater-helper-graph.json +1 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +16 -0
- package/dist/core/lisa-owned-hash-ledger.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 +12 -7
- 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 -0
- package/dist/opencode/hooks-installer.js.map +1 -1
- package/dist/opencode/plugin-catalog.d.ts.map +1 -1
- package/dist/opencode/plugin-catalog.js +5 -0
- package/dist/opencode/plugin-catalog.js.map +1 -1
- package/dist/opencode/plugin-templates/discharge-work-item-gates.sh +90 -0
- package/dist/opencode/plugin-templates/lisa-discharge-work-item-gates.ts +43 -0
- package/package.json +4 -4
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-linear-build-intake/SKILL.md +8 -0
- package/plugins/lisa/hooks/discharge-work-item-gates.sh +32 -2
- package/plugins/lisa/scripts/intake-blocker-reprobe.mjs +20 -2
- package/plugins/lisa/skills/lisa-linear-build-intake/SKILL.md +8 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/scripts/intake-blocker-reprobe.mjs +20 -2
- package/plugins/lisa-agy/skills/lisa-linear-build-intake/SKILL.md +8 -0
- 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-copilot/hooks/discharge-work-item-gates.sh +32 -2
- package/plugins/lisa-copilot/scripts/intake-blocker-reprobe.mjs +20 -2
- package/plugins/lisa-copilot/skills/lisa-linear-build-intake/SKILL.md +8 -0
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/discharge-work-item-gates.sh +32 -2
- package/plugins/lisa-cursor/scripts/intake-blocker-reprobe.mjs +20 -2
- package/plugins/lisa-cursor/skills/lisa-linear-build-intake/SKILL.md +8 -0
- 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 +2 -0
- package/plugins/src/base/hooks/discharge-work-item-gates.sh +29 -2
- package/plugins/src/base/scripts/intake-blocker-reprobe.mjs +20 -2
- package/plugins/src/base/skills/lisa-linear-build-intake/SKILL.md +8 -0
- package/scripts/build-plugins.sh +8 -0
- package/scripts/copy-opencode-plugin-templates.mjs +1 -0
- package/scripts/two-channel-couplings.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-installer.d.ts","sourceRoot":"","sources":["../../src/opencode/hooks-installer.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,WAAW,CAAC;AAE/C,sEAAsE;AACtE,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAKxD,wEAAwE;AACxE,eAAO,MAAM,0BAA0B,eAAe,CAAC;AAEvD,2EAA2E;AAC3E,eAAO,MAAM,gCAAgC,oCAAoE,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks-installer.d.ts","sourceRoot":"","sources":["../../src/opencode/hooks-installer.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,WAAW,CAAC;AAE/C,sEAAsE;AACtE,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAKxD,wEAAwE;AACxE,eAAO,MAAM,0BAA0B,eAAe,CAAC;AAEvD,2EAA2E;AAC3E,eAAO,MAAM,gCAAgC,oCAAoE,CAAC;AAwDlH,gDAAgD;AAChD,MAAM,WAAW,0BAA0B;IACzC,uEAAuE;IACvE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,mEAAmE;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,SAAS,WAAW,EAAE,EACrC,oBAAoB,EAAE,SAAS,MAAM,EAAE,GACtC,OAAO,CAAC,0BAA0B,CAAC,CAyDrC;AAgGD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAyCpE;AAiGD;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAa5B"}
|
|
@@ -96,6 +96,7 @@ const NO_VERIFY_DENY_PATTERNS = {
|
|
|
96
96
|
* in a source checkout and is missing from every installed copy.
|
|
97
97
|
*/
|
|
98
98
|
const PLUGIN_SUPPORT_FILES = [
|
|
99
|
+
"discharge-work-item-gates.sh",
|
|
99
100
|
"block-managed-file-edits.sh",
|
|
100
101
|
"block-no-verify.sh",
|
|
101
102
|
"parity-safety-net.sh",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-installer.js","sourceRoot":"","sources":["../../src/opencode/hooks-installer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks-installer.js","sourceRoot":"","sources":["../../src/opencode/hooks-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-catalog.d.ts","sourceRoot":"","sources":["../../src/opencode/plugin-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC;CAC1D;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,
|
|
1
|
+
{"version":3,"file":"plugin-catalog.d.ts","sourceRoot":"","sources":["../../src/opencode/plugin-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC;CAC1D;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,EA6DvD,CAAC"}
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
* plugin? Drop a template in `plugin-templates/`, add an entry here, add tests.
|
|
4
4
|
*/
|
|
5
5
|
export const PLUGIN_CATALOG = [
|
|
6
|
+
{
|
|
7
|
+
id: "discharge-work-item-gates",
|
|
8
|
+
templateFilename: "lisa-discharge-work-item-gates.ts",
|
|
9
|
+
forProjectTypes: ["*"],
|
|
10
|
+
},
|
|
6
11
|
{
|
|
7
12
|
id: "parity-safety-net",
|
|
8
13
|
templateFilename: "lisa-parity-safety-net.ts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-catalog.js","sourceRoot":"","sources":["../../src/opencode/plugin-catalog.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D;QACE,EAAE,EAAE,mBAAmB;QACvB,gBAAgB,EAAE,2BAA2B;QAC7C,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,gBAAgB,EAAE,yBAAyB;QAC3C,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,gBAAgB,EAAE,2BAA2B;QAC7C,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,8BAA8B;QAClC,gBAAgB,EAAE,sCAAsC;QACxD,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,gBAAgB,EAAE,kCAAkC;QACpD,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,gBAAgB,EAAE,mCAAmC;QACrD,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,gBAAgB,EAAE,mCAAmC;QACrD,eAAe,EAAE,CAAC,YAAY,CAAC;KAChC;IACD;QACE,EAAE,EAAE,cAAc;QAClB,gBAAgB,EAAE,sBAAsB;QACxC,eAAe,EAAE,CAAC,YAAY,CAAC;KAChC;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,gBAAgB,EAAE,yBAAyB;QAC3C,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC;KACzC;IACD;QACE,EAAE,EAAE,uBAAuB;QAC3B,gBAAgB,EAAE,+BAA+B;QACjD,eAAe,EAAE,CAAC,QAAQ,CAAC;KAC5B;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,gBAAgB,EAAE,yBAAyB;QAC3C,eAAe,EAAE,CAAC,OAAO,CAAC;KAC3B;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"plugin-catalog.js","sourceRoot":"","sources":["../../src/opencode/plugin-catalog.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D;QACE,EAAE,EAAE,2BAA2B;QAC/B,gBAAgB,EAAE,mCAAmC;QACrD,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,gBAAgB,EAAE,2BAA2B;QAC7C,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,gBAAgB,EAAE,yBAAyB;QAC3C,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,gBAAgB,EAAE,2BAA2B;QAC7C,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,8BAA8B;QAClC,gBAAgB,EAAE,sCAAsC;QACxD,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,gBAAgB,EAAE,kCAAkC;QACpD,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,gBAAgB,EAAE,mCAAmC;QACrD,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,gBAAgB,EAAE,mCAAmC;QACrD,eAAe,EAAE,CAAC,YAAY,CAAC;KAChC;IACD;QACE,EAAE,EAAE,cAAc;QAClB,gBAAgB,EAAE,sBAAsB;QACxC,eAAe,EAAE,CAAC,YAAY,CAAC;KAChC;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,gBAAgB,EAAE,yBAAyB;QAC3C,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC;KACzC;IACD;QACE,EAAE,EAAE,uBAAuB;QAC3B,gBAAgB,EAAE,+BAA+B;QACjD,eAAe,EAAE,CAAC,QAAQ,CAAC;KAC5B;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,gBAAgB,EAAE,yBAAyB;QAC3C,eAAe,EAAE,CAAC,OAAO,CAAC;KAC3B;CACF,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# This file is managed by Lisa and IS replaced on each `lisa` run.
|
|
3
|
+
# Do not edit directly — durable changes belong upstream in Lisa.
|
|
4
|
+
|
|
5
|
+
# =============================================================================
|
|
6
|
+
# Discharge Deferred Work-Item Gates Hook (PostToolUse - Bash)
|
|
7
|
+
# =============================================================================
|
|
8
|
+
# Two of the five Work-Item Traceability gates live OUTSIDE the commits: gate 4
|
|
9
|
+
# is the `Work-Item:` line in the pull-request BODY, and gate 5 is the managed
|
|
10
|
+
# `[lisa-pr-link]` backlink on the item. A push cannot check either one —
|
|
11
|
+
# both are properties of a pull request, and the push is what makes the pull
|
|
12
|
+
# request possible — so until this hook existed the next thing that looked was
|
|
13
|
+
# CI, one cycle later (CodySwannGT/lisa#3791).
|
|
14
|
+
#
|
|
15
|
+
# This fires the moment a pull request is created or its body edited, which is
|
|
16
|
+
# the FIRST moment both gates are checkable. It evaluates them, and posts the
|
|
17
|
+
# backlink that gate 5 needs, so neither waits for a red CI run to be revealed.
|
|
18
|
+
#
|
|
19
|
+
# Exit 2 blocks and hands the output back to the agent, which is the point: a
|
|
20
|
+
# non-blocking notice here would be the same defect the discharge exists to
|
|
21
|
+
# fix — a finding delivered somewhere nobody has to act on it.
|
|
22
|
+
# =============================================================================
|
|
23
|
+
set -uo pipefail
|
|
24
|
+
|
|
25
|
+
JSON_INPUT="$(cat)"
|
|
26
|
+
|
|
27
|
+
command -v jq >/dev/null 2>&1 || exit 0
|
|
28
|
+
command -v node >/dev/null 2>&1 || exit 0
|
|
29
|
+
|
|
30
|
+
COMMAND="$(printf '%s' "$JSON_INPUT" | jq -r '.tool_input.command // empty' 2>/dev/null || true)"
|
|
31
|
+
[ -n "$COMMAND" ] || exit 0
|
|
32
|
+
|
|
33
|
+
# `gh pr create` opens one; `gh pr edit` is the other way a body comes to carry
|
|
34
|
+
# — or lose — its declaration. Both change the answer to gate 4.
|
|
35
|
+
#
|
|
36
|
+
# `gh pr reopen` is here because a work item can hold more than one pull
|
|
37
|
+
# request, and a reopened one is a named case: it was closed, so nothing has
|
|
38
|
+
# discharged its gates since, and it is now live again with no CI run to reveal
|
|
39
|
+
# that. Its backlink no longer displaces anyone else's, so re-running the
|
|
40
|
+
# discharge for it is free (CodySwannGT/lisa#3916).
|
|
41
|
+
case "$COMMAND" in
|
|
42
|
+
*"gh pr create"* | *"gh pr edit"* | *"gh pr reopen"*) ;;
|
|
43
|
+
*) exit 0 ;;
|
|
44
|
+
esac
|
|
45
|
+
|
|
46
|
+
repo_root="$(git rev-parse --show-toplevel 2>/dev/null)" || exit 0
|
|
47
|
+
[ -f "$repo_root/scripts/lisa-work-item.mjs" ] || exit 0
|
|
48
|
+
|
|
49
|
+
output="$(cd "$repo_root" && node scripts/lisa-work-item.mjs discharge-pr-gates 2>&1)"
|
|
50
|
+
status=$?
|
|
51
|
+
|
|
52
|
+
# 0 is a clean discharge. 3 is the validator's own answer for "no pull request
|
|
53
|
+
# to check yet", which PostToolUse reaches on every `gh pr create` that FAILED
|
|
54
|
+
# — the tool call still ran, so the hook still fires. Collapsing 3 into the
|
|
55
|
+
# blocking arm would report a work-item violation on somebody's typo.
|
|
56
|
+
case "$status" in
|
|
57
|
+
0 | 3) exit 0 ;;
|
|
58
|
+
esac
|
|
59
|
+
|
|
60
|
+
# Plugin updates can precede a host's copied CLI. A generic usage refusal from
|
|
61
|
+
# before this subcommand existed is not a ticket violation. Recognize only a
|
|
62
|
+
# command-list line, then confirm that the no-argument usage probe returns the
|
|
63
|
+
# SAME response and status. Never infer capabilities by grepping the entrypoint:
|
|
64
|
+
# Lisa's own entrypoint is a thin import of the canonical implementation.
|
|
65
|
+
# This shared hook fans out to every agent with a PostToolUse surface; agy's
|
|
66
|
+
# documented lack of that surface remains covered by push/CI traceability.
|
|
67
|
+
if [ "$status" -eq 1 ]; then
|
|
68
|
+
usage_commands="$(printf '%s\n' "$output" | sed -n \
|
|
69
|
+
-e 's/^Usage: lisa-work-item\.mjs //p' \
|
|
70
|
+
-e 's/^❌ Work-item tracking blocked this operation: Usage: lisa-work-item\.mjs //p')"
|
|
71
|
+
case "$usage_commands" in
|
|
72
|
+
'' | *[!a-z\|-]*) ;;
|
|
73
|
+
*)
|
|
74
|
+
case "|$usage_commands|" in
|
|
75
|
+
*'|discharge-pr-gates|'*) ;;
|
|
76
|
+
*'|validate-pr|'*)
|
|
77
|
+
probe_output="$(cd "$repo_root" && node scripts/lisa-work-item.mjs 2>&1)"
|
|
78
|
+
probe_status=$?
|
|
79
|
+
if [ "$probe_status" -eq 1 ] && [ "$probe_output" = "$output" ]; then
|
|
80
|
+
printf '%s\n' 'Lisa PR check unavailable: the host has an older Lisa command. Update Lisa in this project to enable the check.' >&2
|
|
81
|
+
exit 0
|
|
82
|
+
fi
|
|
83
|
+
;;
|
|
84
|
+
esac
|
|
85
|
+
;;
|
|
86
|
+
esac
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
printf '%s\n' "$output" >&2
|
|
90
|
+
exit 2
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lisa-managed OpenCode adapter for the shared PostToolUse PR hook.
|
|
3
|
+
* Uses the canonical shell policy rather than copying its version-skew logic.
|
|
4
|
+
* The after-hook's command is input.args.command; a throw surfaces the failed
|
|
5
|
+
* gate to the agent after the PR operation has already run. Antigravity has no
|
|
6
|
+
* equivalent after-hook surface; the shared push report and CI retain its gates.
|
|
7
|
+
*/
|
|
8
|
+
export const LisaDischargeWorkItemGates = async ({
|
|
9
|
+
directory,
|
|
10
|
+
}: {
|
|
11
|
+
directory: string;
|
|
12
|
+
}) => ({
|
|
13
|
+
"tool.execute.after": async (input: {
|
|
14
|
+
tool: string;
|
|
15
|
+
args?: { command?: string; workdir?: string };
|
|
16
|
+
}) => {
|
|
17
|
+
if (input.tool !== "bash") return;
|
|
18
|
+
const command = String(input.args?.command ?? "");
|
|
19
|
+
// Avoid spawning on ordinary shell calls; routing remains in the shared hook.
|
|
20
|
+
if (!command.includes("gh pr ")) return;
|
|
21
|
+
const { resolve } = await import("node:path");
|
|
22
|
+
const cwd = resolve(directory, input.args?.workdir ?? ".");
|
|
23
|
+
const hook = Bun.spawn(
|
|
24
|
+
["/bin/bash", `${import.meta.dir}/discharge-work-item-gates.sh`],
|
|
25
|
+
{ cwd, stdin: "pipe", stdout: "ignore", stderr: "pipe" }
|
|
26
|
+
);
|
|
27
|
+
hook.stdin.write(
|
|
28
|
+
JSON.stringify({ tool_name: "Bash", tool_input: { command } })
|
|
29
|
+
);
|
|
30
|
+
hook.stdin.end();
|
|
31
|
+
const [status, reason] = await Promise.all([
|
|
32
|
+
hook.exited,
|
|
33
|
+
new Response(hook.stderr).text(),
|
|
34
|
+
]);
|
|
35
|
+
if (status === 0) {
|
|
36
|
+
if (reason.trim()) console.warn(reason.trim());
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
throw new Error(
|
|
40
|
+
reason.trim() || `Lisa PR check failed to run (status ${status}).`
|
|
41
|
+
);
|
|
42
|
+
},
|
|
43
|
+
});
|
package/package.json
CHANGED
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
"qs": "^6.16.0"
|
|
190
190
|
},
|
|
191
191
|
"name": "@codyswann/lisa",
|
|
192
|
-
"version": "4.71.
|
|
192
|
+
"version": "4.71.13",
|
|
193
193
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
194
194
|
"main": "dist/index.js",
|
|
195
195
|
"exports": {
|
|
@@ -345,7 +345,7 @@
|
|
|
345
345
|
"test": "tests"
|
|
346
346
|
},
|
|
347
347
|
"types": "./dist/index.d.ts",
|
|
348
|
-
"lisaReleaseCommit": "
|
|
349
|
-
"gitHead": "
|
|
350
|
-
"lisaReleaseTag": "v4.71.
|
|
348
|
+
"lisaReleaseCommit": "3a6f81c37c352a5a5e8f6c7feca64f6371b391d7",
|
|
349
|
+
"gitHead": "3a6f81c37c352a5a5e8f6c7feca64f6371b391d7",
|
|
350
|
+
"lisaReleaseTag": "v4.71.13"
|
|
351
351
|
}
|
|
@@ -199,6 +199,14 @@ If every pre-work lane is empty, or nothing survives Phase 2.5, exit on the **de
|
|
|
199
199
|
|
|
200
200
|
### Phase 2.5 — Re-probe the blockers instead of inheriting them
|
|
201
201
|
|
|
202
|
+
Pass original provider bodies and comments to the shared human-gate parsers;
|
|
203
|
+
they decode one Markdown escape layer after excluding code examples. For
|
|
204
|
+
bookkeeping searches that set `alreadyNotified`, use
|
|
205
|
+
`normalizeProviderMarkdown(comment.body)` from the same helper before checking
|
|
206
|
+
the reconciled, released, normalization or evidence marker. Never pre-normalize
|
|
207
|
+
text passed to the parsers: decoding twice can change literal backslashes into a
|
|
208
|
+
declaration.
|
|
209
|
+
|
|
202
210
|
A blocker is a **claim with a timestamp, not a fact**. It is written once and goes stale the moment its condition comes true — a dependency lands on trunk, an advisory gets patched, a package publishes. Nothing re-read one before this phase, so a discharged blocker held its Issue out of the queue indefinitely. Measured: one Issue's stated condition went true ~15 hours before anything noticed.
|
|
203
211
|
|
|
204
212
|
For each pre-work candidate that is **not** in `$READY`:
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
# This file is managed by Lisa.
|
|
3
|
-
# Do not edit directly — changes
|
|
2
|
+
# This file is managed by Lisa and IS replaced on each `lisa` run.
|
|
3
|
+
# Do not edit directly — durable changes belong upstream in Lisa.
|
|
4
|
+
|
|
4
5
|
# =============================================================================
|
|
5
6
|
# Discharge Deferred Work-Item Gates Hook (PostToolUse - Bash)
|
|
6
7
|
# =============================================================================
|
|
@@ -56,5 +57,34 @@ case "$status" in
|
|
|
56
57
|
0 | 3) exit 0 ;;
|
|
57
58
|
esac
|
|
58
59
|
|
|
60
|
+
# Plugin updates can precede a host's copied CLI. A generic usage refusal from
|
|
61
|
+
# before this subcommand existed is not a ticket violation. Recognize only a
|
|
62
|
+
# command-list line, then confirm that the no-argument usage probe returns the
|
|
63
|
+
# SAME response and status. Never infer capabilities by grepping the entrypoint:
|
|
64
|
+
# Lisa's own entrypoint is a thin import of the canonical implementation.
|
|
65
|
+
# This shared hook fans out to every agent with a PostToolUse surface; agy's
|
|
66
|
+
# documented lack of that surface remains covered by push/CI traceability.
|
|
67
|
+
if [ "$status" -eq 1 ]; then
|
|
68
|
+
usage_commands="$(printf '%s\n' "$output" | sed -n \
|
|
69
|
+
-e 's/^Usage: lisa-work-item\.mjs //p' \
|
|
70
|
+
-e 's/^❌ Work-item tracking blocked this operation: Usage: lisa-work-item\.mjs //p')"
|
|
71
|
+
case "$usage_commands" in
|
|
72
|
+
'' | *[!a-z\|-]*) ;;
|
|
73
|
+
*)
|
|
74
|
+
case "|$usage_commands|" in
|
|
75
|
+
*'|discharge-pr-gates|'*) ;;
|
|
76
|
+
*'|validate-pr|'*)
|
|
77
|
+
probe_output="$(cd "$repo_root" && node scripts/lisa-work-item.mjs 2>&1)"
|
|
78
|
+
probe_status=$?
|
|
79
|
+
if [ "$probe_status" -eq 1 ] && [ "$probe_output" = "$output" ]; then
|
|
80
|
+
printf '%s\n' 'Lisa PR check unavailable: the host has an older Lisa command. Update Lisa in this project to enable the check.' >&2
|
|
81
|
+
exit 0
|
|
82
|
+
fi
|
|
83
|
+
;;
|
|
84
|
+
esac
|
|
85
|
+
;;
|
|
86
|
+
esac
|
|
87
|
+
fi
|
|
88
|
+
|
|
59
89
|
printf '%s\n' "$output" >&2
|
|
60
90
|
exit 2
|
|
@@ -53,6 +53,22 @@ function normalizeLabels(labels) {
|
|
|
53
53
|
const LEADING_DECORATION =
|
|
54
54
|
/^[ \t>*_+#-]*(?:\d+[.)][ \t]*)?(?:<!--[ \t]*)?[ \t]*/u;
|
|
55
55
|
|
|
56
|
+
/**
|
|
57
|
+
* Decode one stored Markdown escape layer without changing the provider record.
|
|
58
|
+
* Linear escapes marker brackets and punctuation in reason keys. A single pass
|
|
59
|
+
* keeps literal backslash pairs intact instead of recursively inventing markers.
|
|
60
|
+
* Callers doing bookkeeping-marker searches use this same projection; hold and
|
|
61
|
+
* release parsers receive original bodies and apply it after excluding code.
|
|
62
|
+
* @param {unknown} body - Original provider text
|
|
63
|
+
* @returns {string} One-pass Markdown punctuation projection
|
|
64
|
+
*/
|
|
65
|
+
export function normalizeProviderMarkdown(body) {
|
|
66
|
+
return String(body ?? "").replace(
|
|
67
|
+
/\\([\u0021-\u002f\u003a-\u0040\u005b-\u0060\u007b-\u007e])/gu,
|
|
68
|
+
"$1"
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
56
72
|
/**
|
|
57
73
|
* The body with fenced blocks and inline code spans removed.
|
|
58
74
|
*
|
|
@@ -65,9 +81,10 @@ const LEADING_DECORATION =
|
|
|
65
81
|
* @returns {string} The body with quoted and code regions blanked out
|
|
66
82
|
*/
|
|
67
83
|
function declarativeText(body) {
|
|
68
|
-
|
|
84
|
+
const withoutCode = String(body ?? "")
|
|
69
85
|
.replace(/```[\s\S]*?```/gu, "")
|
|
70
86
|
.replace(/`[^`\n]*`/gu, "");
|
|
87
|
+
return normalizeProviderMarkdown(withoutCode);
|
|
71
88
|
}
|
|
72
89
|
|
|
73
90
|
/**
|
|
@@ -160,7 +177,8 @@ function declaresOnLine(line, marker = HUMAN_GATE_MARKER) {
|
|
|
160
177
|
*/
|
|
161
178
|
export function humanGateMentions(body) {
|
|
162
179
|
const raw = String(body ?? "");
|
|
163
|
-
const total =
|
|
180
|
+
const total =
|
|
181
|
+
normalizeProviderMarkdown(raw).split(HUMAN_GATE_MARKER).length - 1;
|
|
164
182
|
const declared = declarativeText(raw)
|
|
165
183
|
.split("\n")
|
|
166
184
|
.filter(line => declaresOnLine(line)).length;
|
|
@@ -199,6 +199,14 @@ If every pre-work lane is empty, or nothing survives Phase 2.5, exit on the **de
|
|
|
199
199
|
|
|
200
200
|
### Phase 2.5 — Re-probe the blockers instead of inheriting them
|
|
201
201
|
|
|
202
|
+
Pass original provider bodies and comments to the shared human-gate parsers;
|
|
203
|
+
they decode one Markdown escape layer after excluding code examples. For
|
|
204
|
+
bookkeeping searches that set `alreadyNotified`, use
|
|
205
|
+
`normalizeProviderMarkdown(comment.body)` from the same helper before checking
|
|
206
|
+
the reconciled, released, normalization or evidence marker. Never pre-normalize
|
|
207
|
+
text passed to the parsers: decoding twice can change literal backslashes into a
|
|
208
|
+
declaration.
|
|
209
|
+
|
|
202
210
|
A blocker is a **claim with a timestamp, not a fact**. It is written once and goes stale the moment its condition comes true — a dependency lands on trunk, an advisory gets patched, a package publishes. Nothing re-read one before this phase, so a discharged blocker held its Issue out of the queue indefinitely. Measured: one Issue's stated condition went true ~15 hours before anything noticed.
|
|
203
211
|
|
|
204
212
|
For each pre-work candidate that is **not** in `$READY`:
|
|
@@ -53,6 +53,22 @@ function normalizeLabels(labels) {
|
|
|
53
53
|
const LEADING_DECORATION =
|
|
54
54
|
/^[ \t>*_+#-]*(?:\d+[.)][ \t]*)?(?:<!--[ \t]*)?[ \t]*/u;
|
|
55
55
|
|
|
56
|
+
/**
|
|
57
|
+
* Decode one stored Markdown escape layer without changing the provider record.
|
|
58
|
+
* Linear escapes marker brackets and punctuation in reason keys. A single pass
|
|
59
|
+
* keeps literal backslash pairs intact instead of recursively inventing markers.
|
|
60
|
+
* Callers doing bookkeeping-marker searches use this same projection; hold and
|
|
61
|
+
* release parsers receive original bodies and apply it after excluding code.
|
|
62
|
+
* @param {unknown} body - Original provider text
|
|
63
|
+
* @returns {string} One-pass Markdown punctuation projection
|
|
64
|
+
*/
|
|
65
|
+
export function normalizeProviderMarkdown(body) {
|
|
66
|
+
return String(body ?? "").replace(
|
|
67
|
+
/\\([\u0021-\u002f\u003a-\u0040\u005b-\u0060\u007b-\u007e])/gu,
|
|
68
|
+
"$1"
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
56
72
|
/**
|
|
57
73
|
* The body with fenced blocks and inline code spans removed.
|
|
58
74
|
*
|
|
@@ -65,9 +81,10 @@ const LEADING_DECORATION =
|
|
|
65
81
|
* @returns {string} The body with quoted and code regions blanked out
|
|
66
82
|
*/
|
|
67
83
|
function declarativeText(body) {
|
|
68
|
-
|
|
84
|
+
const withoutCode = String(body ?? "")
|
|
69
85
|
.replace(/```[\s\S]*?```/gu, "")
|
|
70
86
|
.replace(/`[^`\n]*`/gu, "");
|
|
87
|
+
return normalizeProviderMarkdown(withoutCode);
|
|
71
88
|
}
|
|
72
89
|
|
|
73
90
|
/**
|
|
@@ -160,7 +177,8 @@ function declaresOnLine(line, marker = HUMAN_GATE_MARKER) {
|
|
|
160
177
|
*/
|
|
161
178
|
export function humanGateMentions(body) {
|
|
162
179
|
const raw = String(body ?? "");
|
|
163
|
-
const total =
|
|
180
|
+
const total =
|
|
181
|
+
normalizeProviderMarkdown(raw).split(HUMAN_GATE_MARKER).length - 1;
|
|
164
182
|
const declared = declarativeText(raw)
|
|
165
183
|
.split("\n")
|
|
166
184
|
.filter(line => declaresOnLine(line)).length;
|
|
@@ -199,6 +199,14 @@ If every pre-work lane is empty, or nothing survives Phase 2.5, exit on the **de
|
|
|
199
199
|
|
|
200
200
|
### Phase 2.5 — Re-probe the blockers instead of inheriting them
|
|
201
201
|
|
|
202
|
+
Pass original provider bodies and comments to the shared human-gate parsers;
|
|
203
|
+
they decode one Markdown escape layer after excluding code examples. For
|
|
204
|
+
bookkeeping searches that set `alreadyNotified`, use
|
|
205
|
+
`normalizeProviderMarkdown(comment.body)` from the same helper before checking
|
|
206
|
+
the reconciled, released, normalization or evidence marker. Never pre-normalize
|
|
207
|
+
text passed to the parsers: decoding twice can change literal backslashes into a
|
|
208
|
+
declaration.
|
|
209
|
+
|
|
202
210
|
A blocker is a **claim with a timestamp, not a fact**. It is written once and goes stale the moment its condition comes true — a dependency lands on trunk, an advisory gets patched, a package publishes. Nothing re-read one before this phase, so a discharged blocker held its Issue out of the queue indefinitely. Measured: one Issue's stated condition went true ~15 hours before anything noticed.
|
|
203
211
|
|
|
204
212
|
For each pre-work candidate that is **not** in `$READY`:
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
# This file is managed by Lisa.
|
|
3
|
-
# Do not edit directly — changes
|
|
2
|
+
# This file is managed by Lisa and IS replaced on each `lisa` run.
|
|
3
|
+
# Do not edit directly — durable changes belong upstream in Lisa.
|
|
4
|
+
|
|
4
5
|
# =============================================================================
|
|
5
6
|
# Discharge Deferred Work-Item Gates Hook (PostToolUse - Bash)
|
|
6
7
|
# =============================================================================
|
|
@@ -56,5 +57,34 @@ case "$status" in
|
|
|
56
57
|
0 | 3) exit 0 ;;
|
|
57
58
|
esac
|
|
58
59
|
|
|
60
|
+
# Plugin updates can precede a host's copied CLI. A generic usage refusal from
|
|
61
|
+
# before this subcommand existed is not a ticket violation. Recognize only a
|
|
62
|
+
# command-list line, then confirm that the no-argument usage probe returns the
|
|
63
|
+
# SAME response and status. Never infer capabilities by grepping the entrypoint:
|
|
64
|
+
# Lisa's own entrypoint is a thin import of the canonical implementation.
|
|
65
|
+
# This shared hook fans out to every agent with a PostToolUse surface; agy's
|
|
66
|
+
# documented lack of that surface remains covered by push/CI traceability.
|
|
67
|
+
if [ "$status" -eq 1 ]; then
|
|
68
|
+
usage_commands="$(printf '%s\n' "$output" | sed -n \
|
|
69
|
+
-e 's/^Usage: lisa-work-item\.mjs //p' \
|
|
70
|
+
-e 's/^❌ Work-item tracking blocked this operation: Usage: lisa-work-item\.mjs //p')"
|
|
71
|
+
case "$usage_commands" in
|
|
72
|
+
'' | *[!a-z\|-]*) ;;
|
|
73
|
+
*)
|
|
74
|
+
case "|$usage_commands|" in
|
|
75
|
+
*'|discharge-pr-gates|'*) ;;
|
|
76
|
+
*'|validate-pr|'*)
|
|
77
|
+
probe_output="$(cd "$repo_root" && node scripts/lisa-work-item.mjs 2>&1)"
|
|
78
|
+
probe_status=$?
|
|
79
|
+
if [ "$probe_status" -eq 1 ] && [ "$probe_output" = "$output" ]; then
|
|
80
|
+
printf '%s\n' 'Lisa PR check unavailable: the host has an older Lisa command. Update Lisa in this project to enable the check.' >&2
|
|
81
|
+
exit 0
|
|
82
|
+
fi
|
|
83
|
+
;;
|
|
84
|
+
esac
|
|
85
|
+
;;
|
|
86
|
+
esac
|
|
87
|
+
fi
|
|
88
|
+
|
|
59
89
|
printf '%s\n' "$output" >&2
|
|
60
90
|
exit 2
|
|
@@ -53,6 +53,22 @@ function normalizeLabels(labels) {
|
|
|
53
53
|
const LEADING_DECORATION =
|
|
54
54
|
/^[ \t>*_+#-]*(?:\d+[.)][ \t]*)?(?:<!--[ \t]*)?[ \t]*/u;
|
|
55
55
|
|
|
56
|
+
/**
|
|
57
|
+
* Decode one stored Markdown escape layer without changing the provider record.
|
|
58
|
+
* Linear escapes marker brackets and punctuation in reason keys. A single pass
|
|
59
|
+
* keeps literal backslash pairs intact instead of recursively inventing markers.
|
|
60
|
+
* Callers doing bookkeeping-marker searches use this same projection; hold and
|
|
61
|
+
* release parsers receive original bodies and apply it after excluding code.
|
|
62
|
+
* @param {unknown} body - Original provider text
|
|
63
|
+
* @returns {string} One-pass Markdown punctuation projection
|
|
64
|
+
*/
|
|
65
|
+
export function normalizeProviderMarkdown(body) {
|
|
66
|
+
return String(body ?? "").replace(
|
|
67
|
+
/\\([\u0021-\u002f\u003a-\u0040\u005b-\u0060\u007b-\u007e])/gu,
|
|
68
|
+
"$1"
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
56
72
|
/**
|
|
57
73
|
* The body with fenced blocks and inline code spans removed.
|
|
58
74
|
*
|
|
@@ -65,9 +81,10 @@ const LEADING_DECORATION =
|
|
|
65
81
|
* @returns {string} The body with quoted and code regions blanked out
|
|
66
82
|
*/
|
|
67
83
|
function declarativeText(body) {
|
|
68
|
-
|
|
84
|
+
const withoutCode = String(body ?? "")
|
|
69
85
|
.replace(/```[\s\S]*?```/gu, "")
|
|
70
86
|
.replace(/`[^`\n]*`/gu, "");
|
|
87
|
+
return normalizeProviderMarkdown(withoutCode);
|
|
71
88
|
}
|
|
72
89
|
|
|
73
90
|
/**
|
|
@@ -160,7 +177,8 @@ function declaresOnLine(line, marker = HUMAN_GATE_MARKER) {
|
|
|
160
177
|
*/
|
|
161
178
|
export function humanGateMentions(body) {
|
|
162
179
|
const raw = String(body ?? "");
|
|
163
|
-
const total =
|
|
180
|
+
const total =
|
|
181
|
+
normalizeProviderMarkdown(raw).split(HUMAN_GATE_MARKER).length - 1;
|
|
164
182
|
const declared = declarativeText(raw)
|
|
165
183
|
.split("\n")
|
|
166
184
|
.filter(line => declaresOnLine(line)).length;
|
|
@@ -199,6 +199,14 @@ If every pre-work lane is empty, or nothing survives Phase 2.5, exit on the **de
|
|
|
199
199
|
|
|
200
200
|
### Phase 2.5 — Re-probe the blockers instead of inheriting them
|
|
201
201
|
|
|
202
|
+
Pass original provider bodies and comments to the shared human-gate parsers;
|
|
203
|
+
they decode one Markdown escape layer after excluding code examples. For
|
|
204
|
+
bookkeeping searches that set `alreadyNotified`, use
|
|
205
|
+
`normalizeProviderMarkdown(comment.body)` from the same helper before checking
|
|
206
|
+
the reconciled, released, normalization or evidence marker. Never pre-normalize
|
|
207
|
+
text passed to the parsers: decoding twice can change literal backslashes into a
|
|
208
|
+
declaration.
|
|
209
|
+
|
|
202
210
|
A blocker is a **claim with a timestamp, not a fact**. It is written once and goes stale the moment its condition comes true — a dependency lands on trunk, an advisory gets patched, a package publishes. Nothing re-read one before this phase, so a discharged blocker held its Issue out of the queue indefinitely. Measured: one Issue's stated condition went true ~15 hours before anything noticed.
|
|
203
211
|
|
|
204
212
|
For each pre-work candidate that is **not** in `$READY`:
|