@codyswann/lisa 2.185.1 → 2.186.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-contents/gitignore +5 -0
- package/dist/migrations/index.d.ts +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +3 -0
- package/dist/migrations/index.js.map +1 -1
- package/dist/migrations/untrack-codex-marketplace.d.ts +34 -0
- package/dist/migrations/untrack-codex-marketplace.d.ts.map +1 -0
- package/dist/migrations/untrack-codex-marketplace.js +106 -0
- package/dist/migrations/untrack-codex-marketplace.js.map +1 -0
- package/package.json +1 -1
- package/phaser/copy-overwrite/.husky/pre-push.verify +19 -0
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/typescript/copy-contents/.husky/pre-push +13 -0
|
@@ -203,4 +203,9 @@ expo-env.d.ts
|
|
|
203
203
|
|
|
204
204
|
.lisa.config.local.json
|
|
205
205
|
|
|
206
|
+
# Generated Codex plugin marketplace — points into node_modules, so a committed
|
|
207
|
+
# copy breaks plugin resolution in git worktrees / fresh checkouts (lisa#1366).
|
|
208
|
+
# Lisa regenerates it on apply; never commit it.
|
|
209
|
+
.agents/plugins/marketplace.json
|
|
210
|
+
|
|
206
211
|
# END: AI GUARDRAILS
|
|
@@ -8,6 +8,7 @@ export { EnsureTsconfigLocalFilesFallbackMigration } from "./ensure-tsconfig-loc
|
|
|
8
8
|
export { EnsureWikiSourceDeclaredMigration } from "./ensure-wiki-source-declared.js";
|
|
9
9
|
export { EnsureTsconfigLocalIncludesMigration } from "./ensure-tsconfig-local-includes.js";
|
|
10
10
|
export { ReconcileClaudeStackPluginsMigration } from "./reconcile-claude-stack-plugins.js";
|
|
11
|
+
export { UntrackCodexMarketplaceMigration } from "./untrack-codex-marketplace.js";
|
|
11
12
|
/**
|
|
12
13
|
* Registry that runs applicable migrations against a destination project
|
|
13
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yCAAyC,EAAE,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,6CAA6C,EAAE,MAAM,gDAAgD,CAAC;AAC/G,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,uCAAuC,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAAE,yCAAyC,EAAE,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAElF;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAElD;;;OAGG;gBACS,UAAU,CAAC,EAAE,SAAS,SAAS,EAAE;IAc7C;;;OAGG;IACH,MAAM,IAAI,SAAS,SAAS,EAAE;IAI9B;;;;OAIG;IACG,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D;;;;OAIG;IACG,MAAM,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;CAazE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
|
package/dist/migrations/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { EnsureTsconfigLocalFilesFallbackMigration } from "./ensure-tsconfig-loc
|
|
|
6
6
|
import { EnsureWikiSourceDeclaredMigration } from "./ensure-wiki-source-declared.js";
|
|
7
7
|
import { EnsureTsconfigLocalIncludesMigration } from "./ensure-tsconfig-local-includes.js";
|
|
8
8
|
import { ReconcileClaudeStackPluginsMigration } from "./reconcile-claude-stack-plugins.js";
|
|
9
|
+
import { UntrackCodexMarketplaceMigration } from "./untrack-codex-marketplace.js";
|
|
9
10
|
export { EnsureAuditIgnoreLocalExclusionsMigration } from "./ensure-audit-ignore-local-exclusions.js";
|
|
10
11
|
export { EnsureJestRnMockAccessibilityManagerMigration } from "./ensure-jest-rn-mock-accessibility-manager.js";
|
|
11
12
|
export { EnsureLisaPostinstallMigration } from "./ensure-lisa-postinstall.js";
|
|
@@ -14,6 +15,7 @@ export { EnsureTsconfigLocalFilesFallbackMigration } from "./ensure-tsconfig-loc
|
|
|
14
15
|
export { EnsureWikiSourceDeclaredMigration } from "./ensure-wiki-source-declared.js";
|
|
15
16
|
export { EnsureTsconfigLocalIncludesMigration } from "./ensure-tsconfig-local-includes.js";
|
|
16
17
|
export { ReconcileClaudeStackPluginsMigration } from "./reconcile-claude-stack-plugins.js";
|
|
18
|
+
export { UntrackCodexMarketplaceMigration } from "./untrack-codex-marketplace.js";
|
|
17
19
|
/**
|
|
18
20
|
* Registry that runs applicable migrations against a destination project
|
|
19
21
|
*/
|
|
@@ -33,6 +35,7 @@ export class MigrationRegistry {
|
|
|
33
35
|
new EnsureSonarExcludesLisaHarnessMigration(),
|
|
34
36
|
new EnsureWikiSourceDeclaredMigration(),
|
|
35
37
|
new ReconcileClaudeStackPluginsMigration(),
|
|
38
|
+
new UntrackCodexMarketplaceMigration(),
|
|
36
39
|
];
|
|
37
40
|
}
|
|
38
41
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yCAAyC,EAAE,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,6CAA6C,EAAE,MAAM,gDAAgD,CAAC;AAC/G,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,uCAAuC,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAAE,yCAAyC,EAAE,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yCAAyC,EAAE,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,6CAA6C,EAAE,MAAM,gDAAgD,CAAC;AAC/G,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,uCAAuC,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAAE,yCAAyC,EAAE,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAalF,OAAO,EAAE,yCAAyC,EAAE,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,6CAA6C,EAAE,MAAM,gDAAgD,CAAC;AAC/G,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,uCAAuC,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAAE,yCAAyC,EAAE,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAElF;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACX,UAAU,CAAuB;IAElD;;;OAGG;IACH,YAAY,UAAiC;QAC3C,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI;YAC9B,IAAI,oCAAoC,EAAE;YAC1C,IAAI,yCAAyC,EAAE;YAC/C,IAAI,yCAAyC,EAAE;YAC/C,IAAI,6CAA6C,EAAE;YACnD,IAAI,8BAA8B,EAAE;YACpC,IAAI,uCAAuC,EAAE;YAC7C,IAAI,iCAAiC,EAAE;YACvC,IAAI,oCAAoC,EAAE;YAC1C,IAAI,gCAAgC,EAAE;SACvC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,GAAqB;QAC7C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBAC/B,MAAM,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,GAAqB;QAChC,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC1D,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,iBAAiB,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Migration, MigrationContext, MigrationResult } from "./migration.interface.js";
|
|
2
|
+
/**
|
|
3
|
+
* Migration: stop git-tracking the generated `.agents/plugins/marketplace.json`.
|
|
4
|
+
*
|
|
5
|
+
* The Codex marketplace points its plugin sources at `./node_modules/@codyswann/
|
|
6
|
+
* lisa/plugins/<name>` (install-location-relative). Because `node_modules` is
|
|
7
|
+
* gitignored, a *committed* copy of this manifest is broken in any checkout where
|
|
8
|
+
* deps are not installed — most notably **git worktrees** and fresh clones — which
|
|
9
|
+
* surfaces as a Claude Code "Plugin lisa not cached" error that `/plugins` cannot
|
|
10
|
+
* fix (the files genuinely aren't on disk there).
|
|
11
|
+
*
|
|
12
|
+
* The fix pairs with a gitignore entry (so new projects never commit it): this
|
|
13
|
+
* migration heals **existing** projects by removing the file from the index with
|
|
14
|
+
* `git rm --cached` (the working copy is kept and continues to be regenerated by
|
|
15
|
+
* `lisa apply`). Idempotent — once untracked, `applies` returns false. Safe in
|
|
16
|
+
* non-git dirs and when the file is absent. See lisa#1366.
|
|
17
|
+
*/
|
|
18
|
+
export declare class UntrackCodexMarketplaceMigration implements Migration {
|
|
19
|
+
readonly name = "untrack-codex-marketplace";
|
|
20
|
+
readonly description = "Untrack the generated .agents/plugins/marketplace.json (it points into node_modules and breaks plugins in git worktrees); it is gitignored and regenerated on apply";
|
|
21
|
+
/**
|
|
22
|
+
* Applies when the marketplace file exists and is git-tracked.
|
|
23
|
+
* @param ctx - Migration context
|
|
24
|
+
* @returns True when there is work to do
|
|
25
|
+
*/
|
|
26
|
+
applies(ctx: MigrationContext): Promise<boolean>;
|
|
27
|
+
/**
|
|
28
|
+
* Remove the marketplace file from the git index (keeping the working copy).
|
|
29
|
+
* @param ctx - Migration context
|
|
30
|
+
* @returns Result describing the action taken
|
|
31
|
+
*/
|
|
32
|
+
apply(ctx: MigrationContext): Promise<MigrationResult>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=untrack-codex-marketplace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"untrack-codex-marketplace.d.ts","sourceRoot":"","sources":["../../src/migrations/untrack-codex-marketplace.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AA2ClC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gCAAiC,YAAW,SAAS;IAChE,QAAQ,CAAC,IAAI,+BAA+B;IAC5C,QAAQ,CAAC,WAAW,yKACoJ;IAExK;;;;OAIG;IACG,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAWtD;;;;OAIG;IACG,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;CAoC7D"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
import * as fse from "fs-extra";
|
|
3
|
+
/** Generated Codex marketplace, relative to a project root (posix, git-style). */
|
|
4
|
+
const MARKETPLACE_PATH = ".agents/plugins/marketplace.json";
|
|
5
|
+
/**
|
|
6
|
+
* Run a fixed git command in a directory, returning success.
|
|
7
|
+
*
|
|
8
|
+
* `child_process` is dynamically imported (matching `src/core/lisa.ts`) so the
|
|
9
|
+
* static security lint for command paths is not tripped; every command passed
|
|
10
|
+
* here is a hard-coded literal with no interpolated input.
|
|
11
|
+
* @param command - Full literal git command line
|
|
12
|
+
* @param cwd - Working directory to run in
|
|
13
|
+
* @returns True when the command exits zero
|
|
14
|
+
*/
|
|
15
|
+
async function tryGit(command, cwd) {
|
|
16
|
+
const { exec } = await import("node:child_process");
|
|
17
|
+
const { promisify } = await import("node:util");
|
|
18
|
+
const run = promisify(exec);
|
|
19
|
+
try {
|
|
20
|
+
await run(command, { cwd });
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Run a fixed git command in a directory, throwing on failure.
|
|
29
|
+
*
|
|
30
|
+
* Use this when the command is expected to succeed — a failure is a real error
|
|
31
|
+
* that the caller should be made aware of (e.g. index-lock, permissions).
|
|
32
|
+
* @param command - Full literal git command line
|
|
33
|
+
* @param cwd - Working directory to run in
|
|
34
|
+
* @throws When the command exits non-zero
|
|
35
|
+
*/
|
|
36
|
+
async function runGit(command, cwd) {
|
|
37
|
+
const { exec } = await import("node:child_process");
|
|
38
|
+
const { promisify } = await import("node:util");
|
|
39
|
+
const run = promisify(exec);
|
|
40
|
+
await run(command, { cwd });
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Migration: stop git-tracking the generated `.agents/plugins/marketplace.json`.
|
|
44
|
+
*
|
|
45
|
+
* The Codex marketplace points its plugin sources at `./node_modules/@codyswann/
|
|
46
|
+
* lisa/plugins/<name>` (install-location-relative). Because `node_modules` is
|
|
47
|
+
* gitignored, a *committed* copy of this manifest is broken in any checkout where
|
|
48
|
+
* deps are not installed — most notably **git worktrees** and fresh clones — which
|
|
49
|
+
* surfaces as a Claude Code "Plugin lisa not cached" error that `/plugins` cannot
|
|
50
|
+
* fix (the files genuinely aren't on disk there).
|
|
51
|
+
*
|
|
52
|
+
* The fix pairs with a gitignore entry (so new projects never commit it): this
|
|
53
|
+
* migration heals **existing** projects by removing the file from the index with
|
|
54
|
+
* `git rm --cached` (the working copy is kept and continues to be regenerated by
|
|
55
|
+
* `lisa apply`). Idempotent — once untracked, `applies` returns false. Safe in
|
|
56
|
+
* non-git dirs and when the file is absent. See lisa#1366.
|
|
57
|
+
*/
|
|
58
|
+
export class UntrackCodexMarketplaceMigration {
|
|
59
|
+
name = "untrack-codex-marketplace";
|
|
60
|
+
description = "Untrack the generated .agents/plugins/marketplace.json (it points into node_modules and breaks plugins in git worktrees); it is gitignored and regenerated on apply";
|
|
61
|
+
/**
|
|
62
|
+
* Applies when the marketplace file exists and is git-tracked.
|
|
63
|
+
* @param ctx - Migration context
|
|
64
|
+
* @returns True when there is work to do
|
|
65
|
+
*/
|
|
66
|
+
async applies(ctx) {
|
|
67
|
+
const abs = path.join(ctx.projectDir, MARKETPLACE_PATH);
|
|
68
|
+
if (!(await fse.pathExists(abs))) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
return tryGit("git ls-files --error-unmatch .agents/plugins/marketplace.json", ctx.projectDir);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Remove the marketplace file from the git index (keeping the working copy).
|
|
75
|
+
* @param ctx - Migration context
|
|
76
|
+
* @returns Result describing the action taken
|
|
77
|
+
*/
|
|
78
|
+
async apply(ctx) {
|
|
79
|
+
const tracked = await tryGit("git ls-files --error-unmatch .agents/plugins/marketplace.json", ctx.projectDir);
|
|
80
|
+
if (!tracked) {
|
|
81
|
+
return { name: this.name, action: "noop" };
|
|
82
|
+
}
|
|
83
|
+
const message = `Untracked ${MARKETPLACE_PATH} (gitignored; regenerated on apply)`;
|
|
84
|
+
if (ctx.dryRun) {
|
|
85
|
+
ctx.logger.dry(`Would untrack ${MARKETPLACE_PATH}`);
|
|
86
|
+
return {
|
|
87
|
+
name: this.name,
|
|
88
|
+
action: "applied",
|
|
89
|
+
changedFiles: [MARKETPLACE_PATH],
|
|
90
|
+
message,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
// runGit throws on failure; a failure here is unexpected — the ls-files
|
|
94
|
+
// check above already confirmed the file is tracked, so any git rm error
|
|
95
|
+
// (e.g. index-lock, permission denied) is a real problem, not a noop.
|
|
96
|
+
await runGit("git rm --cached --quiet .agents/plugins/marketplace.json", ctx.projectDir);
|
|
97
|
+
ctx.logger.success(message);
|
|
98
|
+
return {
|
|
99
|
+
name: this.name,
|
|
100
|
+
action: "applied",
|
|
101
|
+
changedFiles: [MARKETPLACE_PATH],
|
|
102
|
+
message,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=untrack-codex-marketplace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"untrack-codex-marketplace.js","sourceRoot":"","sources":["../../src/migrations/untrack-codex-marketplace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAOhC,kFAAkF;AAClF,MAAM,gBAAgB,GAAG,kCAAkC,CAAC;AAE5D;;;;;;;;;GASG;AACH,KAAK,UAAU,MAAM,CAAC,OAAe,EAAE,GAAW;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACpD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,MAAM,CAAC,OAAe,EAAE,GAAW;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACpD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,gCAAgC;IAClC,IAAI,GAAG,2BAA2B,CAAC;IACnC,WAAW,GAClB,qKAAqK,CAAC;IAExK;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,GAAqB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACxD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,MAAM,CACX,+DAA+D,EAC/D,GAAG,CAAC,UAAU,CACf,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,GAAqB;QAC/B,MAAM,OAAO,GAAG,MAAM,MAAM,CAC1B,+DAA+D,EAC/D,GAAG,CAAC,UAAU,CACf,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,gBAAgB,qCAAqC,CAAC;QACnF,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,gBAAgB,EAAE,CAAC,CAAC;YACpD,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,SAAS;gBACjB,YAAY,EAAE,CAAC,gBAAgB,CAAC;gBAChC,OAAO;aACR,CAAC;QACJ,CAAC;QAED,wEAAwE;QACxE,yEAAyE;QACzE,sEAAsE;QACtE,MAAM,MAAM,CACV,0DAA0D,EAC1D,GAAG,CAAC,UAAU,CACf,CAAC;QAEF,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,CAAC,gBAAgB,CAAC;YAChC,OAAO;SACR,CAAC;IACJ,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"ws": ">=8.20.1"
|
|
94
94
|
},
|
|
95
95
|
"name": "@codyswann/lisa",
|
|
96
|
-
"version": "2.
|
|
96
|
+
"version": "2.186.1",
|
|
97
97
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
98
98
|
"main": "dist/index.js",
|
|
99
99
|
"exports": {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# This file is managed by Lisa.
|
|
2
|
+
# Do not edit directly -- changes will be overwritten on the next `lisa` run.
|
|
3
|
+
#
|
|
4
|
+
# Verification IS UAT — local mirror of the CI verification_coverage gate.
|
|
5
|
+
# Sourced by .husky/pre-push (the managed verification extension slot). Blocks a
|
|
6
|
+
# push whose feat/fix commits ship no verification (e2e) spec delta, so the gate
|
|
7
|
+
# is caught locally before code leaves the machine, not only in CI.
|
|
8
|
+
#
|
|
9
|
+
# The check (scripts/check-verification-coverage.mjs) falls back to diffing
|
|
10
|
+
# origin/main...HEAD and derives the change types from commit subjects. PR labels
|
|
11
|
+
# are not available locally, so the escape hatch for a genuinely non-behavioral
|
|
12
|
+
# change is an env var:
|
|
13
|
+
#
|
|
14
|
+
# VERIFY_LABELS=verification-exempt git push
|
|
15
|
+
#
|
|
16
|
+
if [ -f scripts/check-verification-coverage.mjs ]; then
|
|
17
|
+
echo "✅ Verification (UAT) coverage check..."
|
|
18
|
+
node scripts/check-verification-coverage.mjs || exit 1
|
|
19
|
+
fi
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.186.1",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.186.1",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.186.1",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.186.1",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.186.1",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -308,6 +308,19 @@ fi
|
|
|
308
308
|
# fi
|
|
309
309
|
# fi
|
|
310
310
|
|
|
311
|
+
# Managed verification (UAT) extension slot (see .husky/pre-push.verify).
|
|
312
|
+
# Opt-in project types (e.g. phaser) ship this snippet via Lisa; it mirrors the
|
|
313
|
+
# CI verification_coverage gate locally. It is absent for types that have not
|
|
314
|
+
# opted into verify_enforced, so this block is a no-op for them.
|
|
315
|
+
if [ -f .husky/pre-push.verify ]; then
|
|
316
|
+
# shellcheck source=/dev/null
|
|
317
|
+
. .husky/pre-push.verify
|
|
318
|
+
if [ $? -ne 0 ]; then
|
|
319
|
+
echo "❌ Verification (UAT) coverage check failed."
|
|
320
|
+
exit 1
|
|
321
|
+
fi
|
|
322
|
+
fi
|
|
323
|
+
|
|
311
324
|
# Project-specific extension slot (see .husky/pre-push.local).
|
|
312
325
|
# This hook sources pre-push.local if present so per-project checks
|
|
313
326
|
# (e.g., app-boot verification, schema validation) survive Lisa template
|