@codyswann/lisa 4.25.1 → 4.25.3
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/lib/gate-failure-diagnosis.mjs +54 -11
- package/all/copy-overwrite/scripts/lisa-floor-collisions.mjs +33 -8
- package/all/copy-overwrite/scripts/lisa-work-item.mjs +28 -5
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +8 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/lisa.d.ts +15 -0
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +39 -17
- package/dist/core/lisa.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 +6 -4
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/agent-installer.d.ts +10 -4
- package/dist/opencode/agent-installer.d.ts.map +1 -1
- package/dist/opencode/agent-installer.js +11 -6
- package/dist/opencode/agent-installer.js.map +1 -1
- package/dist/opencode/command-installer.d.ts +10 -4
- package/dist/opencode/command-installer.d.ts.map +1 -1
- package/dist/opencode/command-installer.js +12 -6
- package/dist/opencode/command-installer.js.map +1 -1
- package/dist/opencode/project-plugin-gate.d.ts +36 -0
- package/dist/opencode/project-plugin-gate.d.ts.map +1 -0
- package/dist/opencode/project-plugin-gate.js +13 -0
- package/dist/opencode/project-plugin-gate.js.map +1 -0
- package/dist/opencode/skills-installer.d.ts +5 -1
- package/dist/opencode/skills-installer.d.ts.map +1 -1
- package/dist/opencode/skills-installer.js +9 -4
- package/dist/opencode/skills-installer.js.map +1 -1
- package/package.json +3 -3
- 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/scripts/check-security-floors.mjs +58 -5
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type AgentSource } from "../codex/agent-installer.js";
|
|
2
|
+
import type { ProjectType } from "../core/config.js";
|
|
2
3
|
export { type AgentSource, discoverLisaAgents, } from "../codex/agent-installer.js";
|
|
3
4
|
/** Subdirectory inside `.opencode/` where Lisa-owned agents live */
|
|
4
5
|
export declare const LISA_AGENTS_SUBDIR = "agents";
|
|
@@ -38,15 +39,20 @@ export declare function installAgents(sources: readonly AgentSource[], destDir:
|
|
|
38
39
|
/**
|
|
39
40
|
* Convenience one-shot: discover Lisa agents from `lisaDir` and install them.
|
|
40
41
|
*
|
|
41
|
-
* Discovery is restricted to canonical plugins
|
|
42
|
-
* (`*-agy`, `*-copilot`, `*-cursor`) are skipped
|
|
42
|
+
* Discovery is restricted to canonical plugins applicable to THIS project — the
|
|
43
|
+
* per-harness fanout variants (`*-agy`, `*-copilot`, `*-cursor`) are skipped,
|
|
44
|
+
* and so are stack plugins the host does not use. The copilot variants rename
|
|
43
45
|
* agents to `*.agent.md`, which would otherwise slip past id-dedup and ship a
|
|
44
46
|
* duplicate `lisa-<name>.agent` for every agent; the cursor/agy variants are
|
|
45
|
-
* just reformatted copies of the base agents.
|
|
47
|
+
* just reformatted copies of the base agents. See `opencodeProjectPluginFilter`
|
|
48
|
+
* for why both gates compose.
|
|
46
49
|
* @param lisaDir - Absolute path to the Lisa repo / installed package
|
|
47
50
|
* @param destDir - Absolute path to the destination project root
|
|
48
51
|
* @param previousManagedFiles - Files Lisa managed on the previous run
|
|
52
|
+
* @param detectedTypes - Expanded project types Lisa detected for the host.
|
|
53
|
+
* Gates stack plugins so an infrastructure repo never receives the
|
|
54
|
+
* game-development agents from the Phaser plugin.
|
|
49
55
|
* @returns Result describing installed/deleted/managedFiles
|
|
50
56
|
*/
|
|
51
|
-
export declare function discoverAndInstallAgents(lisaDir: string, destDir: string, previousManagedFiles: readonly string[]): Promise<AgentInstallResult>;
|
|
57
|
+
export declare function discoverAndInstallAgents(lisaDir: string, destDir: string, previousManagedFiles: readonly string[], detectedTypes?: readonly ProjectType[]): Promise<AgentInstallResult>;
|
|
52
58
|
//# sourceMappingURL=agent-installer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-installer.d.ts","sourceRoot":"","sources":["../../src/opencode/agent-installer.ts"],"names":[],"mappings":"AA0BA,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-installer.d.ts","sourceRoot":"","sources":["../../src/opencode/agent-installer.ts"],"names":[],"mappings":"AA0BA,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,OAAO,EACL,KAAK,WAAW,EAChB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAE9C,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,SAAS,MAAM,EAAE,GACtC,OAAO,CAAC,kBAAkB,CAAC,CAsB7B;AAuDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,SAAS,MAAM,EAAE,EACvC,aAAa,GAAE,SAAS,WAAW,EAAO,GACzC,OAAO,CAAC,kBAAkB,CAAC,CAM7B"}
|
|
@@ -25,7 +25,7 @@ import * as fse from "fs-extra";
|
|
|
25
25
|
import { readFile, unlink, writeFile } from "node:fs/promises";
|
|
26
26
|
import * as path from "node:path";
|
|
27
27
|
import { discoverLisaAgents, } from "../codex/agent-installer.js";
|
|
28
|
-
import {
|
|
28
|
+
import { opencodeProjectPluginFilter } from "./project-plugin-gate.js";
|
|
29
29
|
import { transformAgentMarkdownToOpencode } from "./agent-transformer.js";
|
|
30
30
|
import { OPENCODE_CONFIG_DIR } from "./manifest.js";
|
|
31
31
|
export { discoverLisaAgents, } from "../codex/agent-installer.js";
|
|
@@ -103,18 +103,23 @@ async function deleteStaleAgents(previousManagedFiles, currentManagedFiles, dest
|
|
|
103
103
|
/**
|
|
104
104
|
* Convenience one-shot: discover Lisa agents from `lisaDir` and install them.
|
|
105
105
|
*
|
|
106
|
-
* Discovery is restricted to canonical plugins
|
|
107
|
-
* (`*-agy`, `*-copilot`, `*-cursor`) are skipped
|
|
106
|
+
* Discovery is restricted to canonical plugins applicable to THIS project — the
|
|
107
|
+
* per-harness fanout variants (`*-agy`, `*-copilot`, `*-cursor`) are skipped,
|
|
108
|
+
* and so are stack plugins the host does not use. The copilot variants rename
|
|
108
109
|
* agents to `*.agent.md`, which would otherwise slip past id-dedup and ship a
|
|
109
110
|
* duplicate `lisa-<name>.agent` for every agent; the cursor/agy variants are
|
|
110
|
-
* just reformatted copies of the base agents.
|
|
111
|
+
* just reformatted copies of the base agents. See `opencodeProjectPluginFilter`
|
|
112
|
+
* for why both gates compose.
|
|
111
113
|
* @param lisaDir - Absolute path to the Lisa repo / installed package
|
|
112
114
|
* @param destDir - Absolute path to the destination project root
|
|
113
115
|
* @param previousManagedFiles - Files Lisa managed on the previous run
|
|
116
|
+
* @param detectedTypes - Expanded project types Lisa detected for the host.
|
|
117
|
+
* Gates stack plugins so an infrastructure repo never receives the
|
|
118
|
+
* game-development agents from the Phaser plugin.
|
|
114
119
|
* @returns Result describing installed/deleted/managedFiles
|
|
115
120
|
*/
|
|
116
|
-
export async function discoverAndInstallAgents(lisaDir, destDir, previousManagedFiles) {
|
|
117
|
-
const sources = await discoverLisaAgents(lisaDir,
|
|
121
|
+
export async function discoverAndInstallAgents(lisaDir, destDir, previousManagedFiles, detectedTypes = []) {
|
|
122
|
+
const sources = await discoverLisaAgents(lisaDir, await opencodeProjectPluginFilter(destDir, detectedTypes));
|
|
118
123
|
return installAgents(sources, destDir, previousManagedFiles);
|
|
119
124
|
}
|
|
120
125
|
//# sourceMappingURL=agent-installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-installer.js","sourceRoot":"","sources":["../../src/opencode/agent-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAEL,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-installer.js","sourceRoot":"","sources":["../../src/opencode/agent-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type LisaCommandSource } from "../core/lisa-skill-sources.js";
|
|
2
|
+
import type { ProjectType } from "../core/config.js";
|
|
2
3
|
export { type LisaCommandSource, discoverLisaCommands, } from "../core/lisa-skill-sources.js";
|
|
3
4
|
/** Subdirectory inside `.opencode/` where Lisa-owned commands live */
|
|
4
5
|
export declare const LISA_COMMANDS_SUBDIR = "commands";
|
|
@@ -34,13 +35,18 @@ export declare function installCommands(sources: readonly LisaCommandSource[], d
|
|
|
34
35
|
/**
|
|
35
36
|
* Convenience one-shot: discover Lisa commands from `lisaDir` and install them.
|
|
36
37
|
*
|
|
37
|
-
* Discovery is restricted to canonical plugins
|
|
38
|
-
* (`*-agy`, `*-copilot`, `*-cursor`) are skipped so
|
|
39
|
-
* of a command body never wins the last-wins dedup
|
|
38
|
+
* Discovery is restricted to canonical plugins applicable to THIS project — the
|
|
39
|
+
* per-harness fanout variants (`*-agy`, `*-copilot`, `*-cursor`) are skipped so
|
|
40
|
+
* a reformatted variant copy of a command body never wins the last-wins dedup
|
|
41
|
+
* over the canonical source, and stack plugins the host does not use are
|
|
42
|
+
* skipped too. See `opencodeProjectPluginFilter` for why both gates compose.
|
|
40
43
|
* @param lisaDir - Absolute path to the Lisa repo / installed package
|
|
41
44
|
* @param destDir - Absolute path to the destination project root
|
|
42
45
|
* @param previousManagedFiles - Files Lisa managed on the previous run
|
|
46
|
+
* @param detectedTypes - Expanded project types Lisa detected for the host.
|
|
47
|
+
* Gates stack plugins so a host never receives commands for a stack it does
|
|
48
|
+
* not have.
|
|
43
49
|
* @returns Result describing installed/deleted/managedFiles
|
|
44
50
|
*/
|
|
45
|
-
export declare function discoverAndInstallCommands(lisaDir: string, destDir: string, previousManagedFiles: readonly string[]): Promise<CommandInstallResult>;
|
|
51
|
+
export declare function discoverAndInstallCommands(lisaDir: string, destDir: string, previousManagedFiles: readonly string[], detectedTypes?: readonly ProjectType[]): Promise<CommandInstallResult>;
|
|
46
52
|
//# sourceMappingURL=command-installer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-installer.d.ts","sourceRoot":"","sources":["../../src/opencode/command-installer.ts"],"names":[],"mappings":"AA2BA,OAAO,EACL,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"command-installer.d.ts","sourceRoot":"","sources":["../../src/opencode/command-installer.ts"],"names":[],"mappings":"AA2BA,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,OAAO,EACL,KAAK,iBAAiB,EACtB,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAEvC,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,wBAAwB,UAA8B,CAAC;AAKpE,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,2CAA2C;AAC3C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,wFAAwF;IACxF,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,SAAS,iBAAiB,EAAE,EACrC,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,SAAS,MAAM,EAAE,GACtC,OAAO,CAAC,oBAAoB,CAAC,CA0B/B;AA8DD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,SAAS,MAAM,EAAE,EACvC,aAAa,GAAE,SAAS,WAAW,EAAO,GACzC,OAAO,CAAC,oBAAoB,CAAC,CAM/B"}
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
import * as fse from "fs-extra";
|
|
26
26
|
import { readFile, unlink, writeFile } from "node:fs/promises";
|
|
27
27
|
import * as path from "node:path";
|
|
28
|
-
import { LISA_COMMAND_DISPLAY_PREFIX, discoverLisaCommands,
|
|
28
|
+
import { LISA_COMMAND_DISPLAY_PREFIX, discoverLisaCommands, } from "../core/lisa-skill-sources.js";
|
|
29
|
+
import { opencodeProjectPluginFilter } from "./project-plugin-gate.js";
|
|
29
30
|
import { transformCommandToOpencode } from "./command-transformer.js";
|
|
30
31
|
import { OPENCODE_CONFIG_DIR } from "./manifest.js";
|
|
31
32
|
export { discoverLisaCommands, } from "../core/lisa-skill-sources.js";
|
|
@@ -104,16 +105,21 @@ async function deleteStaleCommands(previousManagedFiles, currentManagedFiles, de
|
|
|
104
105
|
/**
|
|
105
106
|
* Convenience one-shot: discover Lisa commands from `lisaDir` and install them.
|
|
106
107
|
*
|
|
107
|
-
* Discovery is restricted to canonical plugins
|
|
108
|
-
* (`*-agy`, `*-copilot`, `*-cursor`) are skipped so
|
|
109
|
-
* of a command body never wins the last-wins dedup
|
|
108
|
+
* Discovery is restricted to canonical plugins applicable to THIS project — the
|
|
109
|
+
* per-harness fanout variants (`*-agy`, `*-copilot`, `*-cursor`) are skipped so
|
|
110
|
+
* a reformatted variant copy of a command body never wins the last-wins dedup
|
|
111
|
+
* over the canonical source, and stack plugins the host does not use are
|
|
112
|
+
* skipped too. See `opencodeProjectPluginFilter` for why both gates compose.
|
|
110
113
|
* @param lisaDir - Absolute path to the Lisa repo / installed package
|
|
111
114
|
* @param destDir - Absolute path to the destination project root
|
|
112
115
|
* @param previousManagedFiles - Files Lisa managed on the previous run
|
|
116
|
+
* @param detectedTypes - Expanded project types Lisa detected for the host.
|
|
117
|
+
* Gates stack plugins so a host never receives commands for a stack it does
|
|
118
|
+
* not have.
|
|
113
119
|
* @returns Result describing installed/deleted/managedFiles
|
|
114
120
|
*/
|
|
115
|
-
export async function discoverAndInstallCommands(lisaDir, destDir, previousManagedFiles) {
|
|
116
|
-
const sources = await discoverLisaCommands(lisaDir,
|
|
121
|
+
export async function discoverAndInstallCommands(lisaDir, destDir, previousManagedFiles, detectedTypes = []) {
|
|
122
|
+
const sources = await discoverLisaCommands(lisaDir, await opencodeProjectPluginFilter(destDir, detectedTypes));
|
|
117
123
|
return installCommands(sources, destDir, previousManagedFiles);
|
|
118
124
|
}
|
|
119
125
|
//# sourceMappingURL=command-installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-installer.js","sourceRoot":"","sources":["../../src/opencode/command-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAEL,2BAA2B,EAC3B,oBAAoB,
|
|
1
|
+
{"version":3,"file":"command-installer.js","sourceRoot":"","sources":["../../src/opencode/command-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAEL,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAEL,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAEvC,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AAEpE,qFAAqF;AACrF,MAAM,+BAA+B,GAAG,OAAO,CAAC;AAmBhD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAqC,EACrC,OAAe,EACf,oBAAuC;IAEvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,OAAO,EACP,mBAAmB,EACnB,oBAAoB,CACrB,CAAC;IACF,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEjC,MAAM,SAAS,GAAgC,MAAM,OAAO,CAAC,GAAG,CAC9D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CACjE,CAAC;IACF,MAAM,YAAY,GAAsB,SAAS,CAAC,GAAG,CACnD,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAChC,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,mBAAmB,CACvC,oBAAoB,EACpB,YAAY,EACZ,OAAO,CACR,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QACnC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,oBAAoB,CACjC,MAAyB,EACzB,WAAmB;IAEnB,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,0BAA0B,CACzC,aAAa,EACb,MAAM,CAAC,WAAW,CACnB,CAAC;IACF,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,WAAW,KAAK,CAAC;IAC5C,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC;KACxD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,mBAAmB,CAChC,oBAAuC,EACvC,mBAAsC,EACtC,OAAe;IAEf,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChD,MAAM,mBAAmB,GAAG;QAC1B,GAAG,oBAAoB,GAAG,IAAI,CAAC,GAAG,GAAG,wBAAwB,EAAE;QAC/D,GAAG,oBAAoB,GAAG,IAAI,CAAC,GAAG,GAAG,+BAA+B,EAAE;KACvE,CAAC;IACF,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,CACvC,IAAI,CAAC,EAAE,CACL,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAC9D,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,MAAM,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAAe,EACf,OAAe,EACf,oBAAuC,EACvC,gBAAwC,EAAE;IAE1C,MAAM,OAAO,GAAG,MAAM,oBAAoB,CACxC,OAAO,EACP,MAAM,2BAA2B,CAAC,OAAO,EAAE,aAAa,CAAC,CAC1D,CAAC;IACF,OAAO,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The discovery predicate every OpenCode vendoring installer shares.
|
|
3
|
+
*
|
|
4
|
+
* OpenCode is the one agent surface where Lisa copies skills, agents, and
|
|
5
|
+
* commands verbatim into the host repo (`.opencode/`), so an ungated emit puts
|
|
6
|
+
* the entire bundled catalogue in front of the model — Expo/React skills with
|
|
7
|
+
* JSX worked examples in an infrastructure repo, game-design agents in a
|
|
8
|
+
* backend. That is not cosmetic noise: a reviewer agent will cite a vendored
|
|
9
|
+
* skill as if it were the host repo's own convention.
|
|
10
|
+
*
|
|
11
|
+
* Two independent concerns compose into one predicate here:
|
|
12
|
+
* 1. **Harness-variant exclusion** (#1412) — the `*-agy` / `*-copilot` /
|
|
13
|
+
* `*-cursor` fanout directories are reformatted copies of canonical
|
|
14
|
+
* sources; letting them into discovery ships duplicates and lets a variant
|
|
15
|
+
* body win the last-wins dedup.
|
|
16
|
+
* 2. **Project-type gating** (#3437) — only the base plugin, the detected
|
|
17
|
+
* stack plugins, and explicitly configured standalone plugins belong in a
|
|
18
|
+
* given host repo. This is the same gate the Codex skills installer
|
|
19
|
+
* (`codex/skills-installer`), the Codex project overlay, the OpenCode
|
|
20
|
+
* hooks installer, and the OpenCode MCP collector already apply.
|
|
21
|
+
*
|
|
22
|
+
* Both are kept: the project filter alone would already fail closed on variant
|
|
23
|
+
* directories (they are never in the selected set), but the harness-variant
|
|
24
|
+
* predicate states the #1412 intent independently so removing one gate does not
|
|
25
|
+
* silently take the other with it.
|
|
26
|
+
* @module opencode/project-plugin-gate
|
|
27
|
+
*/
|
|
28
|
+
import type { ProjectType } from "../core/config.js";
|
|
29
|
+
/**
|
|
30
|
+
* Build the plugin-discovery predicate for one host project's OpenCode emit.
|
|
31
|
+
* @param destDir - Absolute path to the host project root.
|
|
32
|
+
* @param detectedTypes - Expanded, ordered project types Lisa detected.
|
|
33
|
+
* @returns Predicate accepting only canonical plugins applicable to the project.
|
|
34
|
+
*/
|
|
35
|
+
export declare function opencodeProjectPluginFilter(destDir: string, detectedTypes: readonly ProjectType[]): Promise<(pluginName: string) => boolean>;
|
|
36
|
+
//# sourceMappingURL=project-plugin-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-plugin-gate.d.ts","sourceRoot":"","sources":["../../src/opencode/project-plugin-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,SAAS,WAAW,EAAE,GACpC,OAAO,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,CAM1C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { projectPluginFilter, selectProjectLisaPlugins, } from "../core/lisa-plugin-selection.js";
|
|
2
|
+
import { isHarnessVariantPlugin } from "../core/lisa-skill-sources.js";
|
|
3
|
+
/**
|
|
4
|
+
* Build the plugin-discovery predicate for one host project's OpenCode emit.
|
|
5
|
+
* @param destDir - Absolute path to the host project root.
|
|
6
|
+
* @param detectedTypes - Expanded, ordered project types Lisa detected.
|
|
7
|
+
* @returns Predicate accepting only canonical plugins applicable to the project.
|
|
8
|
+
*/
|
|
9
|
+
export async function opencodeProjectPluginFilter(destDir, detectedTypes) {
|
|
10
|
+
const inProject = projectPluginFilter(await selectProjectLisaPlugins(destDir, detectedTypes));
|
|
11
|
+
return pluginName => !isHarnessVariantPlugin(pluginName) && inProject(pluginName);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=project-plugin-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-plugin-gate.js","sourceRoot":"","sources":["../../src/opencode/project-plugin-gate.ts"],"names":[],"mappings":"AA4BA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAe,EACf,aAAqC;IAErC,MAAM,SAAS,GAAG,mBAAmB,CACnC,MAAM,wBAAwB,CAAC,OAAO,EAAE,aAAa,CAAC,CACvD,CAAC;IACF,OAAO,UAAU,CAAC,EAAE,CAClB,CAAC,sBAAsB,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ProjectType } from "../core/config.js";
|
|
1
2
|
/** Subdirectory inside `.opencode/skills/` where Lisa-owned skills live */
|
|
2
3
|
export declare const LISA_SKILLS_SUBDIR: string;
|
|
3
4
|
/** Result of one skill copy */
|
|
@@ -26,7 +27,10 @@ export interface SkillsInstallResult {
|
|
|
26
27
|
* @param destDir - Absolute path to the host project root.
|
|
27
28
|
* @param previousManagedFiles - Files Lisa managed on the previous run
|
|
28
29
|
* (relative to `.opencode/`); used to detect stale skill directories.
|
|
30
|
+
* @param detectedTypes - Expanded project types Lisa detected for the host.
|
|
31
|
+
* Gates stack plugins so a non-Expo repo never receives Expo skills; an
|
|
32
|
+
* empty list selects the base plugin plus configured standalone plugins only.
|
|
29
33
|
* @returns Result describing installed skills + managed files + deletions.
|
|
30
34
|
*/
|
|
31
|
-
export declare function installSkills(lisaDir: string, destDir: string, previousManagedFiles: readonly string[]): Promise<SkillsInstallResult>;
|
|
35
|
+
export declare function installSkills(lisaDir: string, destDir: string, previousManagedFiles: readonly string[], detectedTypes?: readonly ProjectType[]): Promise<SkillsInstallResult>;
|
|
32
36
|
//# sourceMappingURL=skills-installer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-installer.d.ts","sourceRoot":"","sources":["../../src/opencode/skills-installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skills-installer.d.ts","sourceRoot":"","sources":["../../src/opencode/skills-installer.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAW9D,+BAA+B;AAC/B,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IACvC,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAwB;AACxB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,SAAS,MAAM,EAAE,EACvC,aAAa,GAAE,SAAS,WAAW,EAAO,GACzC,OAAO,CAAC,mBAAmB,CAAC,CAyD9B"}
|
|
@@ -23,8 +23,9 @@
|
|
|
23
23
|
import * as fse from "fs-extra";
|
|
24
24
|
import { mkdir, copyFile, readFile, rm, writeFile } from "node:fs/promises";
|
|
25
25
|
import * as path from "node:path";
|
|
26
|
-
import { discoverBundledSkills, discoverLisaCommands,
|
|
26
|
+
import { discoverBundledSkills, discoverLisaCommands, loadSkillDenylist, } from "../core/lisa-skill-sources.js";
|
|
27
27
|
import { convertCommandToSkill } from "../codex/command-skill-transformer.js";
|
|
28
|
+
import { opencodeProjectPluginFilter } from "./project-plugin-gate.js";
|
|
28
29
|
import { OPENCODE_CONFIG_DIR } from "./manifest.js";
|
|
29
30
|
/** Runtime label threaded into generated command-as-skill compatibility notes */
|
|
30
31
|
const OPENCODE_RUNTIME_LABEL = "OpenCode";
|
|
@@ -44,20 +45,24 @@ const INTERNAL_OPENCODE_SKILL_POLICY_RELATIVE_PATH = path.join("scripts", "inter
|
|
|
44
45
|
* @param destDir - Absolute path to the host project root.
|
|
45
46
|
* @param previousManagedFiles - Files Lisa managed on the previous run
|
|
46
47
|
* (relative to `.opencode/`); used to detect stale skill directories.
|
|
48
|
+
* @param detectedTypes - Expanded project types Lisa detected for the host.
|
|
49
|
+
* Gates stack plugins so a non-Expo repo never receives Expo skills; an
|
|
50
|
+
* empty list selects the base plugin plus configured standalone plugins only.
|
|
47
51
|
* @returns Result describing installed skills + managed files + deletions.
|
|
48
52
|
*/
|
|
49
|
-
export async function installSkills(lisaDir, destDir, previousManagedFiles) {
|
|
53
|
+
export async function installSkills(lisaDir, destDir, previousManagedFiles, detectedTypes = []) {
|
|
50
54
|
const skillsDir = path.join(destDir, OPENCODE_CONFIG_DIR, LISA_SKILLS_SUBDIR);
|
|
51
55
|
await fse.ensureDir(skillsDir);
|
|
52
56
|
const denylistedSkills = await loadSkillDenylist(lisaDir, INTERNAL_OPENCODE_SKILL_POLICY_RELATIVE_PATH);
|
|
57
|
+
const pluginFilter = await opencodeProjectPluginFilter(destDir, detectedTypes);
|
|
53
58
|
// Step 1: bundled skills
|
|
54
|
-
const bundled = await discoverBundledSkills(lisaDir, denylistedSkills,
|
|
59
|
+
const bundled = await discoverBundledSkills(lisaDir, denylistedSkills, pluginFilter);
|
|
55
60
|
const bundledInstalls = await Promise.all(bundled.map(source => copyBundledSkill(source, skillsDir)));
|
|
56
61
|
const bundledFiles = bundled.flatMap(source => source.files.map(file => path.join(LISA_SKILLS_SUBDIR, source.skillName, file)));
|
|
57
62
|
// Step 2: command-as-skill conversions (skip when the bundled skill already
|
|
58
63
|
// owns the target name — native `/lisa:*` commands cover Claude-style entry).
|
|
59
64
|
const bundledSkillNames = new Set(bundled.map(source => source.skillName));
|
|
60
|
-
const commandSkills = (await discoverLisaCommands(lisaDir,
|
|
65
|
+
const commandSkills = (await discoverLisaCommands(lisaDir, pluginFilter)).filter(cmd => !bundledSkillNames.has(cmd.skillName));
|
|
61
66
|
const commandInstalls = await Promise.all(commandSkills.map(cmd => emitCommandAsSkill(cmd, skillsDir)));
|
|
62
67
|
const commandFiles = commandInstalls.map(install => path.join(LISA_SKILLS_SUBDIR, install.name, SKILL_MD_FILENAME));
|
|
63
68
|
const installed = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-installer.js","sourceRoot":"","sources":["../../src/opencode/skills-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAGL,qBAAqB,EACrB,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"skills-installer.js","sourceRoot":"","sources":["../../src/opencode/skills-installer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
"zod-validation-error": "^4.0.0"
|
|
162
162
|
},
|
|
163
163
|
"name": "@codyswann/lisa",
|
|
164
|
-
"version": "4.25.
|
|
164
|
+
"version": "4.25.3",
|
|
165
165
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
166
166
|
"main": "dist/index.js",
|
|
167
167
|
"exports": {
|
|
@@ -305,6 +305,6 @@
|
|
|
305
305
|
"test": "tests"
|
|
306
306
|
},
|
|
307
307
|
"types": "./dist/index.d.ts",
|
|
308
|
-
"lisaReleaseCommit": "
|
|
309
|
-
"gitHead": "
|
|
308
|
+
"lisaReleaseCommit": "1a8e48bd7dd767fb4ebce142a7e173121d0d734a",
|
|
309
|
+
"gitHead": "1a8e48bd7dd767fb4ebce142a7e173121d0d734a"
|
|
310
310
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.25.
|
|
3
|
+
"version": "4.25.3",
|
|
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"
|