@codyswann/lisa 4.29.8 → 4.29.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +2 -0
- package/dist/core/lisa.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/nightly-e2e-guard-behavior-certificate.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +4 -2
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/migrations/ensure-seeded-gates.d.ts +43 -2
- package/dist/migrations/ensure-seeded-gates.d.ts.map +1 -1
- package/dist/migrations/ensure-seeded-gates.js +82 -4
- package/dist/migrations/ensure-seeded-gates.js.map +1 -1
- package/dist/migrations/migration.interface.d.ts +18 -0
- package/dist/migrations/migration.interface.d.ts.map +1 -1
- 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-parity-sentry-sdk-setup/SKILL.md +27 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
- package/plugins/lisa/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
- package/plugins/lisa/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
- package/plugins/lisa-agy/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
- 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/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
- package/plugins/lisa-copilot/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
- package/plugins/lisa-cursor/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
- 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/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
- package/plugins/src/base/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
|
@@ -19,8 +19,17 @@ import type { Migration, MigrationContext, MigrationResult } from "./migration.i
|
|
|
19
19
|
* ungoverned — and stays reported by `lisa-gates.mjs unconfigured`, which the
|
|
20
20
|
* pre-push hook and every gated CI job now print. Visible beats declared-away.
|
|
21
21
|
*
|
|
22
|
+
* WHY AN INSTALL DOES NOT DO IT. This is a migration on `lisa apply`, and the
|
|
23
|
+
* package-manager install lifecycle runs an apply too — so without a guard the
|
|
24
|
+
* seeding would happen on `bun install`, which is nobody's request to change
|
|
25
|
+
* what their repository requires of a push. In `postinstall-safe` mode it
|
|
26
|
+
* therefore declines and reports what it withheld; see {@link
|
|
27
|
+
* EnsureSeededGatesMigration.refuse}.
|
|
28
|
+
*
|
|
22
29
|
* Idempotent: an existing declaration always wins, so a second run seeds
|
|
23
|
-
* nothing. Never removes or rewrites a declaration the project made
|
|
30
|
+
* nothing. Never removes or rewrites a declaration the project made, and never
|
|
31
|
+
* moves one — including `gates.runner`, which is not a gate and is passed
|
|
32
|
+
* through untouched.
|
|
24
33
|
*/
|
|
25
34
|
export declare class EnsureSeededGatesMigration implements Migration {
|
|
26
35
|
readonly name = "ensure-seeded-gates";
|
|
@@ -38,10 +47,42 @@ export declare class EnsureSeededGatesMigration implements Migration {
|
|
|
38
47
|
*/
|
|
39
48
|
applies(ctx: MigrationContext): Promise<boolean>;
|
|
40
49
|
/**
|
|
41
|
-
* Write the seeded declarations into `.lisa.config.json
|
|
50
|
+
* Write the seeded declarations into `.lisa.config.json`, unless this apply
|
|
51
|
+
* is a package manager's install — in which case report and write nothing.
|
|
42
52
|
* @param ctx - Migration context
|
|
43
53
|
* @returns Result describing the action taken
|
|
44
54
|
*/
|
|
45
55
|
apply(ctx: MigrationContext): Promise<MigrationResult>;
|
|
56
|
+
/**
|
|
57
|
+
* Decline to seed during a package manager's install, and say what was
|
|
58
|
+
* declined and how to get it deliberately.
|
|
59
|
+
*
|
|
60
|
+
* WHY AN INSTALL MAY NOT DO THIS. What this migration writes is not a
|
|
61
|
+
* generated file — it is the project's declaration of what its own pushes
|
|
62
|
+
* and pull requests must prove, checked in and reviewed like any other
|
|
63
|
+
* contract. Seeding is a legitimate change to make; making it during
|
|
64
|
+
* `bun install` is not, because nobody typed that command meaning to change
|
|
65
|
+
* what the repository requires. Measured in a caller repo in the portfolio:
|
|
66
|
+
* an install added `dependency-vulnerability` at `push` as `required`, the
|
|
67
|
+
* change appeared only as one modified file in `git status`, four different
|
|
68
|
+
* agents on four different branches each stashed it as not-theirs, and any
|
|
69
|
+
* one routine `git add -A` would have committed a CI-contract change nobody
|
|
70
|
+
* authored (CodySwannGT/lisa#3574).
|
|
71
|
+
*
|
|
72
|
+
* The direction observed there was tightening, which is the lucky case. The
|
|
73
|
+
* same silence would carry a LOOSENED gate identically — one modified JSON
|
|
74
|
+
* file, nothing in the signal distinguishing the two — so the rule is about
|
|
75
|
+
* who asked, not about which way the change points.
|
|
76
|
+
*
|
|
77
|
+
* WHY IT REPORTS RATHER THAN GOING QUIET. A migration that simply skipped
|
|
78
|
+
* here would be this codebase's signature defect: work that stops happening
|
|
79
|
+
* with nothing anywhere saying so. The seeding is still wanted — it is how a
|
|
80
|
+
* hardcoded fallback gets retired — so the install names every declaration
|
|
81
|
+
* it withheld and the one command that applies them into a reviewable diff.
|
|
82
|
+
* @param ctx - Migration context
|
|
83
|
+
* @param plan - What seeding would have written
|
|
84
|
+
* @returns A skipped result carrying the operator-readable explanation
|
|
85
|
+
*/
|
|
86
|
+
private refuse;
|
|
46
87
|
}
|
|
47
88
|
//# sourceMappingURL=ensure-seeded-gates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-seeded-gates.d.ts","sourceRoot":"","sources":["../../src/migrations/ensure-seeded-gates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ensure-seeded-gates.d.ts","sourceRoot":"","sources":["../../src/migrations/ensure-seeded-gates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAmElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,0BAA2B,YAAW,SAAS;IAC1D,QAAQ,CAAC,IAAI,yBAAyB;IACtC,QAAQ,CAAC,WAAW,8GACyF;IAE7G;;;;OAIG;YACW,IAAI;IAgDlB;;;;OAIG;IACG,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD;;;;;OAKG;IACG,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IA2B5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,OAAO,CAAC,MAAM;CA6Bf"}
|
|
@@ -50,8 +50,17 @@ async function detectRunner(projectDir) {
|
|
|
50
50
|
* ungoverned — and stays reported by `lisa-gates.mjs unconfigured`, which the
|
|
51
51
|
* pre-push hook and every gated CI job now print. Visible beats declared-away.
|
|
52
52
|
*
|
|
53
|
+
* WHY AN INSTALL DOES NOT DO IT. This is a migration on `lisa apply`, and the
|
|
54
|
+
* package-manager install lifecycle runs an apply too — so without a guard the
|
|
55
|
+
* seeding would happen on `bun install`, which is nobody's request to change
|
|
56
|
+
* what their repository requires of a push. In `postinstall-safe` mode it
|
|
57
|
+
* therefore declines and reports what it withheld; see {@link
|
|
58
|
+
* EnsureSeededGatesMigration.refuse}.
|
|
59
|
+
*
|
|
53
60
|
* Idempotent: an existing declaration always wins, so a second run seeds
|
|
54
|
-
* nothing. Never removes or rewrites a declaration the project made
|
|
61
|
+
* nothing. Never removes or rewrites a declaration the project made, and never
|
|
62
|
+
* moves one — including `gates.runner`, which is not a gate and is passed
|
|
63
|
+
* through untouched.
|
|
55
64
|
*/
|
|
56
65
|
export class EnsureSeededGatesMigration {
|
|
57
66
|
name = "ensure-seeded-gates";
|
|
@@ -76,9 +85,20 @@ export class EnsureSeededGatesMigration {
|
|
|
76
85
|
const registry = await importGateRegistry();
|
|
77
86
|
if (registry === null)
|
|
78
87
|
return null;
|
|
79
|
-
|
|
88
|
+
// READ `runner`, do not SPLIT IT OUT. The previous form destructured it
|
|
89
|
+
// (`const { runner, ...gates }`) purely to obtain the declared value, and
|
|
90
|
+
// the rest-spread that came free with that syntax dropped the key from the
|
|
91
|
+
// block — so `seedGates` re-appended it at the END, moving a key the
|
|
92
|
+
// project had placed somewhere else. That is a change to a checked-in file
|
|
93
|
+
// that says nothing and means nothing, and it landed in consumers as an
|
|
94
|
+
// unexplained line in `git status`. `seedGates` only ever writes keys that
|
|
95
|
+
// are gate ids, and `runner` is not one, so passing the block whole is
|
|
96
|
+
// equally safe and leaves every declared key exactly where its author put
|
|
97
|
+
// it.
|
|
98
|
+
const gates = config.gates ?? {};
|
|
99
|
+
const declaredRunner = gates.runner;
|
|
80
100
|
const result = registry.seedGates({
|
|
81
|
-
gates
|
|
101
|
+
gates,
|
|
82
102
|
scripts: manifest.scripts ?? {},
|
|
83
103
|
runner: typeof declaredRunner === "string"
|
|
84
104
|
? declaredRunner
|
|
@@ -93,6 +113,7 @@ export class EnsureSeededGatesMigration {
|
|
|
93
113
|
seeded: result.seeded.map(entry => ({
|
|
94
114
|
gate: entry.gate,
|
|
95
115
|
moment: entry.moment,
|
|
116
|
+
run: entry.run,
|
|
96
117
|
})),
|
|
97
118
|
};
|
|
98
119
|
}
|
|
@@ -105,7 +126,8 @@ export class EnsureSeededGatesMigration {
|
|
|
105
126
|
return (await this.plan(ctx)) !== null;
|
|
106
127
|
}
|
|
107
128
|
/**
|
|
108
|
-
* Write the seeded declarations into `.lisa.config.json
|
|
129
|
+
* Write the seeded declarations into `.lisa.config.json`, unless this apply
|
|
130
|
+
* is a package manager's install — in which case report and write nothing.
|
|
109
131
|
* @param ctx - Migration context
|
|
110
132
|
* @returns Result describing the action taken
|
|
111
133
|
*/
|
|
@@ -113,6 +135,8 @@ export class EnsureSeededGatesMigration {
|
|
|
113
135
|
const plan = await this.plan(ctx);
|
|
114
136
|
if (plan === null)
|
|
115
137
|
return { name: this.name, action: "noop" };
|
|
138
|
+
if (ctx.postinstallSafe === true)
|
|
139
|
+
return this.refuse(ctx, plan);
|
|
116
140
|
const declared = plan.seeded
|
|
117
141
|
.map(entry => `${entry.gate}@${entry.moment}`)
|
|
118
142
|
.join(", ");
|
|
@@ -135,5 +159,59 @@ export class EnsureSeededGatesMigration {
|
|
|
135
159
|
message,
|
|
136
160
|
};
|
|
137
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Decline to seed during a package manager's install, and say what was
|
|
164
|
+
* declined and how to get it deliberately.
|
|
165
|
+
*
|
|
166
|
+
* WHY AN INSTALL MAY NOT DO THIS. What this migration writes is not a
|
|
167
|
+
* generated file — it is the project's declaration of what its own pushes
|
|
168
|
+
* and pull requests must prove, checked in and reviewed like any other
|
|
169
|
+
* contract. Seeding is a legitimate change to make; making it during
|
|
170
|
+
* `bun install` is not, because nobody typed that command meaning to change
|
|
171
|
+
* what the repository requires. Measured in a caller repo in the portfolio:
|
|
172
|
+
* an install added `dependency-vulnerability` at `push` as `required`, the
|
|
173
|
+
* change appeared only as one modified file in `git status`, four different
|
|
174
|
+
* agents on four different branches each stashed it as not-theirs, and any
|
|
175
|
+
* one routine `git add -A` would have committed a CI-contract change nobody
|
|
176
|
+
* authored (CodySwannGT/lisa#3574).
|
|
177
|
+
*
|
|
178
|
+
* The direction observed there was tightening, which is the lucky case. The
|
|
179
|
+
* same silence would carry a LOOSENED gate identically — one modified JSON
|
|
180
|
+
* file, nothing in the signal distinguishing the two — so the rule is about
|
|
181
|
+
* who asked, not about which way the change points.
|
|
182
|
+
*
|
|
183
|
+
* WHY IT REPORTS RATHER THAN GOING QUIET. A migration that simply skipped
|
|
184
|
+
* here would be this codebase's signature defect: work that stops happening
|
|
185
|
+
* with nothing anywhere saying so. The seeding is still wanted — it is how a
|
|
186
|
+
* hardcoded fallback gets retired — so the install names every declaration
|
|
187
|
+
* it withheld and the one command that applies them into a reviewable diff.
|
|
188
|
+
* @param ctx - Migration context
|
|
189
|
+
* @param plan - What seeding would have written
|
|
190
|
+
* @returns A skipped result carrying the operator-readable explanation
|
|
191
|
+
*/
|
|
192
|
+
refuse(ctx, plan) {
|
|
193
|
+
const lines = plan.seeded.map(entry => ` • ${entry.gate} at ${entry.moment} → required${entry.run === null ? "" : ` (runs \`${entry.run}\`)`}`);
|
|
194
|
+
const message = [
|
|
195
|
+
`Left ${LISA_CONFIG} unchanged: an install must not change what this repository requires of a push.`,
|
|
196
|
+
"",
|
|
197
|
+
` Lisa would declare ${plan.seeded.length} gate(s) that a Lisa-shipped hook or workflow is already running here:`,
|
|
198
|
+
"",
|
|
199
|
+
...lines,
|
|
200
|
+
"",
|
|
201
|
+
" Nothing is enforced any differently until you apply them — those checks",
|
|
202
|
+
" already run. Declaring them is what lets the project control them.",
|
|
203
|
+
"",
|
|
204
|
+
" To apply them deliberately, so the change lands in a commit somebody reviews:",
|
|
205
|
+
"",
|
|
206
|
+
" npx @codyswann/lisa@latest .",
|
|
207
|
+
].join("\n");
|
|
208
|
+
ctx.logger.warn(message);
|
|
209
|
+
return {
|
|
210
|
+
name: this.name,
|
|
211
|
+
action: "skipped",
|
|
212
|
+
changedFiles: [],
|
|
213
|
+
message,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
138
216
|
}
|
|
139
217
|
//# sourceMappingURL=ensure-seeded-gates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-seeded-gates.js","sourceRoot":"","sources":["../../src/migrations/ensure-seeded-gates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOnE,MAAM,WAAW,GAAG,mBAAmB,CAAC;AACxC,MAAM,YAAY,GAAG,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ensure-seeded-gates.js","sourceRoot":"","sources":["../../src/migrations/ensure-seeded-gates.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,24 @@ export interface MigrationContext {
|
|
|
16
16
|
readonly detectedTypes: readonly ProjectType[];
|
|
17
17
|
/** If true, describe what would change without modifying files */
|
|
18
18
|
readonly dryRun: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* True when this apply is the reduced subset a package manager's install
|
|
21
|
+
* lifecycle runs — the mode `--postinstall-safe` / `LISA_POSTINSTALL=1`
|
|
22
|
+
* selects (see `core/apply-mode.ts`).
|
|
23
|
+
*
|
|
24
|
+
* A migration reads this to answer one question: "did an operator ask for
|
|
25
|
+
* this, or did a dependency install?" Nobody types `bun install` meaning to
|
|
26
|
+
* change what their repository requires of a push, so a migration that
|
|
27
|
+
* rewrites a REVIEWED, checked-in declaration must decline here and report
|
|
28
|
+
* instead. Migrations that only reconcile generated or ignored files have no
|
|
29
|
+
* reason to read it.
|
|
30
|
+
*
|
|
31
|
+
* Optional, and absent means the full apply an operator invoked. That is the
|
|
32
|
+
* safe default for the reading above — a context that never learned the
|
|
33
|
+
* answer behaves as though a human is standing there, which is exactly the
|
|
34
|
+
* case where writing is legitimate.
|
|
35
|
+
*/
|
|
36
|
+
readonly postinstallSafe?: boolean;
|
|
19
37
|
/** Logger for user-facing output */
|
|
20
38
|
readonly logger: ILogger;
|
|
21
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.interface.d.ts","sourceRoot":"","sources":["../../src/migrations/migration.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,yDAAyD;IACzD,QAAQ,CAAC,aAAa,EAAE,SAAS,WAAW,EAAE,CAAC;IAE/C,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACxD"}
|
|
1
|
+
{"version":3,"file":"migration.interface.d.ts","sourceRoot":"","sources":["../../src/migrations/migration.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,yDAAyD;IACzD,QAAQ,CAAC,aAAa,EAAE,SAAS,WAAW,EAAE,CAAC;IAE/C,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAEnC,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACxD"}
|
package/package.json
CHANGED
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"zod-validation-error": "^4.0.0"
|
|
165
165
|
},
|
|
166
166
|
"name": "@codyswann/lisa",
|
|
167
|
-
"version": "4.29.
|
|
167
|
+
"version": "4.29.10",
|
|
168
168
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
169
169
|
"main": "dist/index.js",
|
|
170
170
|
"exports": {
|
|
@@ -312,7 +312,7 @@
|
|
|
312
312
|
"test": "tests"
|
|
313
313
|
},
|
|
314
314
|
"types": "./dist/index.d.ts",
|
|
315
|
-
"lisaReleaseCommit": "
|
|
316
|
-
"gitHead": "
|
|
317
|
-
"lisaReleaseTag": "v4.29.
|
|
315
|
+
"lisaReleaseCommit": "8bd61916212e8db84f55b9a39fd71262c9981dca",
|
|
316
|
+
"gitHead": "8bd61916212e8db84f55b9a39fd71262c9981dca",
|
|
317
|
+
"lisaReleaseTag": "v4.29.10"
|
|
318
318
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: lisa-parity-sentry-sdk-setup
|
|
3
3
|
description: "Install and configure the…"
|
|
4
4
|
allowed-tools: ["Read", "Edit", "Write", "Bash"]
|
|
5
|
-
synced-from: sentry@claude-plugins-official@1.
|
|
5
|
+
synced-from: sentry@claude-plugins-official@1.4.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Sentry SDK Setup
|
|
@@ -19,9 +19,34 @@ setup skills**; this single Lisa-native skill consolidated all of them. As of
|
|
|
19
19
|
upstream **1.2.0** Sentry itself consolidated the suite into one
|
|
20
20
|
`sentry-instrument` playbook, so the shapes now match — but this skill remains a
|
|
21
21
|
from-scratch reimplementation against Lisa conventions, **not** a translation of
|
|
22
|
-
the upstream skill. Pinned to `sentry@claude-plugins-official@1.
|
|
22
|
+
the upstream skill. Pinned to `sentry@claude-plugins-official@1.4.0` via
|
|
23
23
|
`synced-from` so the parity drift detector tracks it as one unit.
|
|
24
24
|
|
|
25
|
+
### Reviewed at 1.4.0 — the progress-reporting protocol is deliberately declined
|
|
26
|
+
|
|
27
|
+
Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0*. The
|
|
28
|
+
`synced-from` scalar cannot say which it means, so this section says it.
|
|
29
|
+
|
|
30
|
+
Upstream 1.4.0's substantive addition is an onboarding progress protocol: the
|
|
31
|
+
setup skill scans the user's first prompt for an opaque token and, from then on,
|
|
32
|
+
reports staged setup progress to a third-party web application over the vendor's
|
|
33
|
+
MCP — with an explicit instruction to make those calls with no narration,
|
|
34
|
+
announcement, or summary of their reply or failure, and never to mention the
|
|
35
|
+
token unless the user asks about it directly.
|
|
36
|
+
|
|
37
|
+
**Lisa does not reimplement it, at 1.4.0 or on a later bump.** Data about the
|
|
38
|
+
user's session leaving their environment as a silent side effect of running a
|
|
39
|
+
skill is not a behavior Lisa adopts by default, and a skill that is told to
|
|
40
|
+
withhold a tool call from the person running it is the specific part being
|
|
41
|
+
refused. This is a statement about what a Lisa-native skill may do unobserved,
|
|
42
|
+
not a judgment on the upstream product — an operator who wants that reporting
|
|
43
|
+
can run the upstream plugin directly, where the behavior is the vendor's to
|
|
44
|
+
explain.
|
|
45
|
+
|
|
46
|
+
The rest of the 1.3.2 → 1.4.0 delta is two per-integration Beta → Stable label
|
|
47
|
+
edits in upstream's own reference docs. This skill carries no per-integration
|
|
48
|
+
status table, so there is nothing here to restate.
|
|
49
|
+
|
|
25
50
|
## Step 0 — Scope the install
|
|
26
51
|
|
|
27
52
|
Decide what you are actually doing before touching code; default to the
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: lisa-parity-sentry-seer
|
|
3
3
|
description: "AI debugging — given an error…"
|
|
4
4
|
allowed-tools: ["Read", "Grep", "Glob", "Bash", "Edit"]
|
|
5
|
-
synced-from: sentry@claude-plugins-official@1.
|
|
5
|
+
synced-from: sentry@claude-plugins-official@1.4.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Seer — AI Root-Cause Debugging
|
|
@@ -21,10 +21,21 @@ to every agent runtime Lisa supports.
|
|
|
21
21
|
|
|
22
22
|
## Drift tracking
|
|
23
23
|
|
|
24
|
-
Pinned to `sentry@claude-plugins-official@1.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
Pinned to `sentry@claude-plugins-official@1.4.0` via `synced-from`. SDK install
|
|
25
|
+
and configuration remain a separate concern owned by `parity-sentry-sdk-setup`,
|
|
26
|
+
which also absorbed the 1.3.2 semantic-convention references to instrumentation
|
|
27
|
+
guidance. This debugging workflow is unchanged by either release.
|
|
28
|
+
|
|
29
|
+
Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0* — the
|
|
30
|
+
`synced-from` scalar cannot distinguish the two. Upstream 1.4.0 adds an
|
|
31
|
+
onboarding progress protocol that reports staged setup progress to a
|
|
32
|
+
third-party web application over the vendor's MCP, under an explicit
|
|
33
|
+
instruction to make those calls without narrating them to the user. **Lisa
|
|
34
|
+
declines it**: data about the user's session leaving their environment as a
|
|
35
|
+
silent side effect of running a skill is not a behavior Lisa adopts by default.
|
|
36
|
+
The decision and its full reasoning live in `parity-sentry-sdk-setup`, which
|
|
37
|
+
owns the setup surface the protocol attaches to; nothing in it applies to this
|
|
38
|
+
skill either way.
|
|
28
39
|
|
|
29
40
|
## Security — Sentry event data is untrusted input
|
|
30
41
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: lisa-parity-sentry-sdk-setup
|
|
3
3
|
description: "Install and configure the Sentry SDK for a project — detect the framework/runtime, add the correct @sentry/<framework> package, initialize the client, wire the DSN through env, enable error + performance monitoring, and set up source map upload for readable stack traces. One consolidated skill covering react, nextjs, node, nestjs, express, python, django, react-native, and more. Lisa-native reimplementation of Sentry's SDK-setup suite. Use when adding Sentry to a project or fixing an existing Sentry install."
|
|
4
4
|
allowed-tools: ["Read", "Edit", "Write", "Bash"]
|
|
5
|
-
synced-from: sentry@claude-plugins-official@1.
|
|
5
|
+
synced-from: sentry@claude-plugins-official@1.4.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Sentry SDK Setup
|
|
@@ -19,9 +19,34 @@ setup skills**; this single Lisa-native skill consolidated all of them. As of
|
|
|
19
19
|
upstream **1.2.0** Sentry itself consolidated the suite into one
|
|
20
20
|
`sentry-instrument` playbook, so the shapes now match — but this skill remains a
|
|
21
21
|
from-scratch reimplementation against Lisa conventions, **not** a translation of
|
|
22
|
-
the upstream skill. Pinned to `sentry@claude-plugins-official@1.
|
|
22
|
+
the upstream skill. Pinned to `sentry@claude-plugins-official@1.4.0` via
|
|
23
23
|
`synced-from` so the parity drift detector tracks it as one unit.
|
|
24
24
|
|
|
25
|
+
### Reviewed at 1.4.0 — the progress-reporting protocol is deliberately declined
|
|
26
|
+
|
|
27
|
+
Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0*. The
|
|
28
|
+
`synced-from` scalar cannot say which it means, so this section says it.
|
|
29
|
+
|
|
30
|
+
Upstream 1.4.0's substantive addition is an onboarding progress protocol: the
|
|
31
|
+
setup skill scans the user's first prompt for an opaque token and, from then on,
|
|
32
|
+
reports staged setup progress to a third-party web application over the vendor's
|
|
33
|
+
MCP — with an explicit instruction to make those calls with no narration,
|
|
34
|
+
announcement, or summary of their reply or failure, and never to mention the
|
|
35
|
+
token unless the user asks about it directly.
|
|
36
|
+
|
|
37
|
+
**Lisa does not reimplement it, at 1.4.0 or on a later bump.** Data about the
|
|
38
|
+
user's session leaving their environment as a silent side effect of running a
|
|
39
|
+
skill is not a behavior Lisa adopts by default, and a skill that is told to
|
|
40
|
+
withhold a tool call from the person running it is the specific part being
|
|
41
|
+
refused. This is a statement about what a Lisa-native skill may do unobserved,
|
|
42
|
+
not a judgment on the upstream product — an operator who wants that reporting
|
|
43
|
+
can run the upstream plugin directly, where the behavior is the vendor's to
|
|
44
|
+
explain.
|
|
45
|
+
|
|
46
|
+
The rest of the 1.3.2 → 1.4.0 delta is two per-integration Beta → Stable label
|
|
47
|
+
edits in upstream's own reference docs. This skill carries no per-integration
|
|
48
|
+
status table, so there is nothing here to restate.
|
|
49
|
+
|
|
25
50
|
## Step 0 — Scope the install
|
|
26
51
|
|
|
27
52
|
Decide what you are actually doing before touching code; default to the
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: lisa-parity-sentry-seer
|
|
3
3
|
description: "AI debugging — given an error message, stack trace, or failing test, analyze the signal, form ranked hypotheses, locate the root cause in the codebase with file:line evidence, and propose a minimal fix. Lisa-native reimplementation of Sentry's seer workflow, available across all agent runtimes. Use when handed an exception, crash, regression, or red test and asked to find and fix the cause."
|
|
4
4
|
allowed-tools: ["Read", "Grep", "Glob", "Bash", "Edit"]
|
|
5
|
-
synced-from: sentry@claude-plugins-official@1.
|
|
5
|
+
synced-from: sentry@claude-plugins-official@1.4.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Seer — AI Root-Cause Debugging
|
|
@@ -21,10 +21,21 @@ to every agent runtime Lisa supports.
|
|
|
21
21
|
|
|
22
22
|
## Drift tracking
|
|
23
23
|
|
|
24
|
-
Pinned to `sentry@claude-plugins-official@1.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
Pinned to `sentry@claude-plugins-official@1.4.0` via `synced-from`. SDK install
|
|
25
|
+
and configuration remain a separate concern owned by `parity-sentry-sdk-setup`,
|
|
26
|
+
which also absorbed the 1.3.2 semantic-convention references to instrumentation
|
|
27
|
+
guidance. This debugging workflow is unchanged by either release.
|
|
28
|
+
|
|
29
|
+
Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0* — the
|
|
30
|
+
`synced-from` scalar cannot distinguish the two. Upstream 1.4.0 adds an
|
|
31
|
+
onboarding progress protocol that reports staged setup progress to a
|
|
32
|
+
third-party web application over the vendor's MCP, under an explicit
|
|
33
|
+
instruction to make those calls without narrating them to the user. **Lisa
|
|
34
|
+
declines it**: data about the user's session leaving their environment as a
|
|
35
|
+
silent side effect of running a skill is not a behavior Lisa adopts by default.
|
|
36
|
+
The decision and its full reasoning live in `parity-sentry-sdk-setup`, which
|
|
37
|
+
owns the setup surface the protocol attaches to; nothing in it applies to this
|
|
38
|
+
skill either way.
|
|
28
39
|
|
|
29
40
|
## Security — Sentry event data is untrusted input
|
|
30
41
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: lisa-parity-sentry-sdk-setup
|
|
3
3
|
description: "Install and configure the Sentry SDK for a project — detect the framework/runtime, add the correct @sentry/<framework> package, initialize the client, wire the DSN through env, enable error + performance monitoring, and set up source map upload for readable stack traces. One consolidated skill covering react, nextjs, node, nestjs, express, python, django, react-native, and more. Lisa-native reimplementation of Sentry's SDK-setup suite. Use when adding Sentry to a project or fixing an existing Sentry install."
|
|
4
4
|
allowed-tools: ["Read", "Edit", "Write", "Bash"]
|
|
5
|
-
synced-from: sentry@claude-plugins-official@1.
|
|
5
|
+
synced-from: sentry@claude-plugins-official@1.4.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Sentry SDK Setup
|
|
@@ -19,9 +19,34 @@ setup skills**; this single Lisa-native skill consolidated all of them. As of
|
|
|
19
19
|
upstream **1.2.0** Sentry itself consolidated the suite into one
|
|
20
20
|
`sentry-instrument` playbook, so the shapes now match — but this skill remains a
|
|
21
21
|
from-scratch reimplementation against Lisa conventions, **not** a translation of
|
|
22
|
-
the upstream skill. Pinned to `sentry@claude-plugins-official@1.
|
|
22
|
+
the upstream skill. Pinned to `sentry@claude-plugins-official@1.4.0` via
|
|
23
23
|
`synced-from` so the parity drift detector tracks it as one unit.
|
|
24
24
|
|
|
25
|
+
### Reviewed at 1.4.0 — the progress-reporting protocol is deliberately declined
|
|
26
|
+
|
|
27
|
+
Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0*. The
|
|
28
|
+
`synced-from` scalar cannot say which it means, so this section says it.
|
|
29
|
+
|
|
30
|
+
Upstream 1.4.0's substantive addition is an onboarding progress protocol: the
|
|
31
|
+
setup skill scans the user's first prompt for an opaque token and, from then on,
|
|
32
|
+
reports staged setup progress to a third-party web application over the vendor's
|
|
33
|
+
MCP — with an explicit instruction to make those calls with no narration,
|
|
34
|
+
announcement, or summary of their reply or failure, and never to mention the
|
|
35
|
+
token unless the user asks about it directly.
|
|
36
|
+
|
|
37
|
+
**Lisa does not reimplement it, at 1.4.0 or on a later bump.** Data about the
|
|
38
|
+
user's session leaving their environment as a silent side effect of running a
|
|
39
|
+
skill is not a behavior Lisa adopts by default, and a skill that is told to
|
|
40
|
+
withhold a tool call from the person running it is the specific part being
|
|
41
|
+
refused. This is a statement about what a Lisa-native skill may do unobserved,
|
|
42
|
+
not a judgment on the upstream product — an operator who wants that reporting
|
|
43
|
+
can run the upstream plugin directly, where the behavior is the vendor's to
|
|
44
|
+
explain.
|
|
45
|
+
|
|
46
|
+
The rest of the 1.3.2 → 1.4.0 delta is two per-integration Beta → Stable label
|
|
47
|
+
edits in upstream's own reference docs. This skill carries no per-integration
|
|
48
|
+
status table, so there is nothing here to restate.
|
|
49
|
+
|
|
25
50
|
## Step 0 — Scope the install
|
|
26
51
|
|
|
27
52
|
Decide what you are actually doing before touching code; default to the
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: lisa-parity-sentry-seer
|
|
3
3
|
description: "AI debugging — given an error message, stack trace, or failing test, analyze the signal, form ranked hypotheses, locate the root cause in the codebase with file:line evidence, and propose a minimal fix. Lisa-native reimplementation of Sentry's seer workflow, available across all agent runtimes. Use when handed an exception, crash, regression, or red test and asked to find and fix the cause."
|
|
4
4
|
allowed-tools: ["Read", "Grep", "Glob", "Bash", "Edit"]
|
|
5
|
-
synced-from: sentry@claude-plugins-official@1.
|
|
5
|
+
synced-from: sentry@claude-plugins-official@1.4.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Seer — AI Root-Cause Debugging
|
|
@@ -21,10 +21,21 @@ to every agent runtime Lisa supports.
|
|
|
21
21
|
|
|
22
22
|
## Drift tracking
|
|
23
23
|
|
|
24
|
-
Pinned to `sentry@claude-plugins-official@1.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
Pinned to `sentry@claude-plugins-official@1.4.0` via `synced-from`. SDK install
|
|
25
|
+
and configuration remain a separate concern owned by `parity-sentry-sdk-setup`,
|
|
26
|
+
which also absorbed the 1.3.2 semantic-convention references to instrumentation
|
|
27
|
+
guidance. This debugging workflow is unchanged by either release.
|
|
28
|
+
|
|
29
|
+
Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0* — the
|
|
30
|
+
`synced-from` scalar cannot distinguish the two. Upstream 1.4.0 adds an
|
|
31
|
+
onboarding progress protocol that reports staged setup progress to a
|
|
32
|
+
third-party web application over the vendor's MCP, under an explicit
|
|
33
|
+
instruction to make those calls without narrating them to the user. **Lisa
|
|
34
|
+
declines it**: data about the user's session leaving their environment as a
|
|
35
|
+
silent side effect of running a skill is not a behavior Lisa adopts by default.
|
|
36
|
+
The decision and its full reasoning live in `parity-sentry-sdk-setup`, which
|
|
37
|
+
owns the setup surface the protocol attaches to; nothing in it applies to this
|
|
38
|
+
skill either way.
|
|
28
39
|
|
|
29
40
|
## Security — Sentry event data is untrusted input
|
|
30
41
|
|