@codyswann/lisa 2.148.0 → 2.150.0
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/codex/command-skill-transformer.d.ts +4 -2
- package/dist/codex/command-skill-transformer.d.ts.map +1 -1
- package/dist/codex/command-skill-transformer.js +10 -7
- package/dist/codex/command-skill-transformer.js.map +1 -1
- package/dist/codex/skills-installer.d.ts +1 -2
- package/dist/codex/skills-installer.d.ts.map +1 -1
- package/dist/codex/skills-installer.js +9 -176
- package/dist/codex/skills-installer.js.map +1 -1
- package/dist/core/config.d.ts +4 -3
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +1 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/lisa-skill-sources.d.ts +63 -0
- package/dist/core/lisa-skill-sources.d.ts.map +1 -0
- package/dist/core/lisa-skill-sources.js +197 -0
- package/dist/core/lisa-skill-sources.js.map +1 -0
- package/dist/core/lisa.d.ts +12 -0
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +53 -0
- package/dist/core/lisa.js.map +1 -1
- package/dist/opencode/manifest.d.ts +26 -0
- package/dist/opencode/manifest.d.ts.map +1 -0
- package/dist/opencode/manifest.js +94 -0
- package/dist/opencode/manifest.js.map +1 -0
- package/dist/opencode/mcp-installer.d.ts +89 -0
- package/dist/opencode/mcp-installer.d.ts.map +1 -0
- package/dist/opencode/mcp-installer.js +160 -0
- package/dist/opencode/mcp-installer.js.map +1 -0
- package/dist/opencode/settings-installer.d.ts +41 -0
- package/dist/opencode/settings-installer.d.ts.map +1 -0
- package/dist/opencode/settings-installer.js +127 -0
- package/dist/opencode/settings-installer.js.map +1 -0
- package/dist/opencode/skills-installer.d.ts +32 -0
- package/dist/opencode/skills-installer.d.ts.map +1 -0
- package/dist/opencode/skills-installer.js +159 -0
- package/dist/opencode/skills-installer.js.map +1 -0
- package/package.json +2 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/rules/reference/leaf-only-lifecycle.md +9 -4
- package/plugins/lisa/skills/github-build-intake/SKILL.md +10 -0
- package/plugins/lisa/skills/jira-build-intake/SKILL.md +10 -0
- package/plugins/lisa/skills/linear-build-intake/SKILL.md +10 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/github-build-intake/SKILL.md +10 -0
- package/plugins/lisa-agy/skills/jira-build-intake/SKILL.md +10 -0
- package/plugins/lisa-agy/skills/linear-build-intake/SKILL.md +10 -0
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/rules/reference/leaf-only-lifecycle.md +9 -4
- package/plugins/lisa-copilot/skills/github-build-intake/SKILL.md +10 -0
- package/plugins/lisa-copilot/skills/jira-build-intake/SKILL.md +10 -0
- package/plugins/lisa-copilot/skills/linear-build-intake/SKILL.md +10 -0
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/rules/leaf-only-lifecycle-reference.mdc +9 -4
- package/plugins/lisa-cursor/skills/github-build-intake/SKILL.md +10 -0
- package/plugins/lisa-cursor/skills/jira-build-intake/SKILL.md +10 -0
- package/plugins/lisa-cursor/skills/linear-build-intake/SKILL.md +10 -0
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-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/rules/reference/leaf-only-lifecycle.md +9 -4
- package/plugins/src/base/skills/github-build-intake/SKILL.md +10 -0
- package/plugins/src/base/skills/jira-build-intake/SKILL.md +10 -0
- package/plugins/src/base/skills/linear-build-intake/SKILL.md +10 -0
- package/scripts/internal-opencode-skill-policy.json +3 -0
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
* @param commandSource - Raw contents of the command .md file
|
|
9
9
|
* @param skillName - Target skill name (already includes the `lisa-` prefix)
|
|
10
10
|
* @param displayName - Human-readable name used as a fallback description
|
|
11
|
-
* @
|
|
11
|
+
* @param runtimeLabel - Runtime the compatibility note targets (e.g. "Codex",
|
|
12
|
+
* "OpenCode"). Defaults to "Codex" so existing Codex output is unchanged.
|
|
13
|
+
* @returns The skill SKILL.md content as a string
|
|
12
14
|
*/
|
|
13
|
-
export declare function convertCommandToSkill(commandSource: string, skillName: string, displayName: string): string;
|
|
15
|
+
export declare function convertCommandToSkill(commandSource: string, skillName: string, displayName: string, runtimeLabel?: string): string;
|
|
14
16
|
//# sourceMappingURL=command-skill-transformer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-skill-transformer.d.ts","sourceRoot":"","sources":["../../src/codex/command-skill-transformer.ts"],"names":[],"mappings":"AAYA
|
|
1
|
+
{"version":3,"file":"command-skill-transformer.d.ts","sourceRoot":"","sources":["../../src/codex/command-skill-transformer.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,YAAY,SAAU,GACrB,MAAM,CAsCR"}
|
|
@@ -12,9 +12,11 @@ import yaml from "js-yaml";
|
|
|
12
12
|
* @param commandSource - Raw contents of the command .md file
|
|
13
13
|
* @param skillName - Target skill name (already includes the `lisa-` prefix)
|
|
14
14
|
* @param displayName - Human-readable name used as a fallback description
|
|
15
|
-
* @
|
|
15
|
+
* @param runtimeLabel - Runtime the compatibility note targets (e.g. "Codex",
|
|
16
|
+
* "OpenCode"). Defaults to "Codex" so existing Codex output is unchanged.
|
|
17
|
+
* @returns The skill SKILL.md content as a string
|
|
16
18
|
*/
|
|
17
|
-
export function convertCommandToSkill(commandSource, skillName, displayName) {
|
|
19
|
+
export function convertCommandToSkill(commandSource, skillName, displayName, runtimeLabel = "Codex") {
|
|
18
20
|
const match = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/.exec(commandSource);
|
|
19
21
|
if (match === null || match[1] === undefined || match[2] === undefined) {
|
|
20
22
|
throw new Error(`Command source is missing YAML frontmatter for ${displayName}`);
|
|
@@ -33,7 +35,7 @@ export function convertCommandToSkill(commandSource, skillName, displayName) {
|
|
|
33
35
|
"---",
|
|
34
36
|
"",
|
|
35
37
|
].join("\n");
|
|
36
|
-
return `${frontmatter}${formatCommandCompatibilityBlock(parsedFrontmatter, skillName, displayName)}\n${body}\n`;
|
|
38
|
+
return `${frontmatter}${formatCommandCompatibilityBlock(parsedFrontmatter, skillName, displayName, runtimeLabel)}\n${body}\n`;
|
|
37
39
|
}
|
|
38
40
|
/**
|
|
39
41
|
* Parse the subset of Claude command frontmatter that Codex should preserve.
|
|
@@ -79,16 +81,17 @@ function parseAllowedTools(raw) {
|
|
|
79
81
|
/**
|
|
80
82
|
* Emit command compatibility notes at the top of generated Codex skills.
|
|
81
83
|
* @param frontmatter - Parsed Claude command metadata
|
|
82
|
-
* @param skillName - Generated
|
|
84
|
+
* @param skillName - Generated skill name
|
|
83
85
|
* @param displayName - Original Lisa command display name
|
|
86
|
+
* @param runtimeLabel - Runtime the note targets (e.g. "Codex", "OpenCode")
|
|
84
87
|
* @returns Markdown block
|
|
85
88
|
*/
|
|
86
|
-
function formatCommandCompatibilityBlock(frontmatter, skillName, displayName) {
|
|
89
|
+
function formatCommandCompatibilityBlock(frontmatter, skillName, displayName, runtimeLabel) {
|
|
87
90
|
const baseLines = [
|
|
88
91
|
"## Lisa Command Compatibility",
|
|
89
92
|
"",
|
|
90
93
|
`- Original Claude command: \`/${displayName}\``,
|
|
91
|
-
`-
|
|
94
|
+
`- ${runtimeLabel} invocation: \`$${skillName}\` or a plain-English request that matches this skill.`,
|
|
92
95
|
"- Treat the user's surrounding request as the command arguments.",
|
|
93
96
|
];
|
|
94
97
|
const argumentLines = frontmatter.argumentHint === undefined
|
|
@@ -99,7 +102,7 @@ function formatCommandCompatibilityBlock(frontmatter, skillName, displayName) {
|
|
|
99
102
|
: [
|
|
100
103
|
`- Claude allowed tools: ${frontmatter.allowedTools
|
|
101
104
|
.map(t => `\`${t}\``)
|
|
102
|
-
.join(", ")}.
|
|
105
|
+
.join(", ")}. ${runtimeLabel} tool access is governed by the active ${runtimeLabel} runtime and project policy.`,
|
|
103
106
|
];
|
|
104
107
|
return `${[...baseLines, ...argumentLines, ...toolLines].join("\n")}\n`;
|
|
105
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-skill-transformer.js","sourceRoot":"","sources":["../../src/codex/command-skill-transformer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,IAAI,MAAM,SAAS,CAAC;AAS3B
|
|
1
|
+
{"version":3,"file":"command-skill-transformer.js","sourceRoot":"","sources":["../../src/codex/command-skill-transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
export { convertCommandToSkill } from "./command-skill-transformer.js";
|
|
2
|
+
export { LISA_COMMAND_SKILL_PREFIX } from "../core/lisa-skill-sources.js";
|
|
2
3
|
/** Subdirectory inside `.codex/skills/` where Lisa-owned skills live */
|
|
3
4
|
export declare const LISA_SKILLS_SUBDIR: string;
|
|
4
|
-
/** Prefix applied to Lisa command-as-skill names */
|
|
5
|
-
export declare const LISA_COMMAND_SKILL_PREFIX = "lisa-";
|
|
6
5
|
/** Result of one skill copy */
|
|
7
6
|
export interface InstalledSkill {
|
|
8
7
|
/** Skill name (matches the SKILL.md `name` frontmatter) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-installer.d.ts","sourceRoot":"","sources":["../../src/codex/skills-installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skills-installer.d.ts","sourceRoot":"","sources":["../../src/codex/skills-installer.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,wEAAwE;AACxE,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,0CAA0C;IAC1C,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;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,SAAS,MAAM,EAAE,GACtC,OAAO,CAAC,mBAAmB,CAAC,CA6C9B"}
|
|
@@ -16,19 +16,24 @@
|
|
|
16
16
|
* The lisa-namespace prefix ensures Lisa's commands-as-skills don't collide
|
|
17
17
|
* with same-named skills (e.g., Lisa's `fix.md` command + Lisa's existing
|
|
18
18
|
* `fix` skill if one ever existed).
|
|
19
|
+
*
|
|
20
|
+
* Source discovery (walking the plugin tree, dedup, denylist) is shared with
|
|
21
|
+
* the OpenCode overlay via `core/lisa-skill-sources`; only the copy/stale/
|
|
22
|
+
* target-directory logic is Codex-specific and lives here.
|
|
19
23
|
* @module codex/skills-installer
|
|
20
24
|
*/
|
|
21
25
|
import * as fse from "fs-extra";
|
|
22
|
-
import {
|
|
26
|
+
import { mkdir, copyFile, readFile, rm, writeFile } from "node:fs/promises";
|
|
23
27
|
import * as path from "node:path";
|
|
28
|
+
import { discoverBundledSkills, discoverLisaCommands, loadSkillDenylist, } from "../core/lisa-skill-sources.js";
|
|
24
29
|
import { convertCommandToSkill } from "./command-skill-transformer.js";
|
|
25
30
|
export { convertCommandToSkill } from "./command-skill-transformer.js";
|
|
31
|
+
export { LISA_COMMAND_SKILL_PREFIX } from "../core/lisa-skill-sources.js";
|
|
26
32
|
/** Subdirectory inside `.codex/skills/` where Lisa-owned skills live */
|
|
27
33
|
export const LISA_SKILLS_SUBDIR = path.join("skills", "lisa");
|
|
28
|
-
/** Prefix applied to Lisa command-as-skill names */
|
|
29
|
-
export const LISA_COMMAND_SKILL_PREFIX = "lisa-";
|
|
30
34
|
/** Filename of the skill manifest at the root of every skill folder */
|
|
31
35
|
const SKILL_MD_FILENAME = "SKILL.md";
|
|
36
|
+
/** Path to the Codex skill distribution policy, relative to the Lisa root */
|
|
32
37
|
const INTERNAL_CODEX_SKILL_POLICY_RELATIVE_PATH = path.join("scripts", "internal-codex-skill-policy.json");
|
|
33
38
|
/**
|
|
34
39
|
* Install all Lisa-bundled skills + command-derived skills.
|
|
@@ -45,7 +50,7 @@ const INTERNAL_CODEX_SKILL_POLICY_RELATIVE_PATH = path.join("scripts", "internal
|
|
|
45
50
|
export async function installSkills(lisaDir, destDir, previousManagedFiles) {
|
|
46
51
|
const skillsDir = path.join(destDir, ".codex", LISA_SKILLS_SUBDIR);
|
|
47
52
|
await fse.ensureDir(skillsDir);
|
|
48
|
-
const denylistedSkills = await
|
|
53
|
+
const denylistedSkills = await loadSkillDenylist(lisaDir, INTERNAL_CODEX_SKILL_POLICY_RELATIVE_PATH);
|
|
49
54
|
// Step 1: bundled skills
|
|
50
55
|
const bundled = await discoverBundledSkills(lisaDir, denylistedSkills);
|
|
51
56
|
const bundledInstalls = await Promise.all(bundled.map(source => copyBundledSkill(source, skillsDir)));
|
|
@@ -66,32 +71,6 @@ export async function installSkills(lisaDir, destDir, previousManagedFiles) {
|
|
|
66
71
|
deleted: Object.freeze(deleted),
|
|
67
72
|
};
|
|
68
73
|
}
|
|
69
|
-
/**
|
|
70
|
-
* Load the Codex distribution policy that marks Lisa-maintainer-only skills as
|
|
71
|
-
* non-distributable.
|
|
72
|
-
*
|
|
73
|
-
* Missing or malformed policy files fail open to an empty set so tests and
|
|
74
|
-
* minimal package layouts remain usable.
|
|
75
|
-
* @param lisaDir - Absolute path to the Lisa repo / installed package
|
|
76
|
-
* @returns Skill directory names that must not be installed into host projects
|
|
77
|
-
*/
|
|
78
|
-
async function loadInternalCodexSkillPolicy(lisaDir) {
|
|
79
|
-
const policyPath = path.join(lisaDir, INTERNAL_CODEX_SKILL_POLICY_RELATIVE_PATH);
|
|
80
|
-
if (!(await fse.pathExists(policyPath))) {
|
|
81
|
-
return new Set();
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
const raw = await readFile(policyPath, "utf8");
|
|
85
|
-
const parsed = JSON.parse(raw);
|
|
86
|
-
if (!Array.isArray(parsed.denylistedSkills)) {
|
|
87
|
-
return new Set();
|
|
88
|
-
}
|
|
89
|
-
return new Set(parsed.denylistedSkills.filter((name) => typeof name === "string"));
|
|
90
|
-
}
|
|
91
|
-
catch {
|
|
92
|
-
return new Set();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
74
|
/**
|
|
96
75
|
* Delete skill directories that were Lisa-managed last run but aren't
|
|
97
76
|
* shipped this run. Identifies skill names from the previous manifest by
|
|
@@ -133,93 +112,6 @@ function extractPreviousSkillNames(previousManagedFiles, lisaSkillsPrefix) {
|
|
|
133
112
|
.filter((name) => Boolean(name));
|
|
134
113
|
return Array.from(new Set(names));
|
|
135
114
|
}
|
|
136
|
-
/**
|
|
137
|
-
* Walk `plugins/<plugin>/skills/<name>/` discovering each skill folder.
|
|
138
|
-
* De-duplicates by skill name with last-wins semantics: the base `lisa`
|
|
139
|
-
* plugin is always processed first, then remaining plugins in alphabetical
|
|
140
|
-
* order, so any stack-specific or third-party plugin overrides the base
|
|
141
|
-
* regardless of how the name sorts.
|
|
142
|
-
* @param lisaDir - Absolute path to the Lisa repo / installed package
|
|
143
|
-
* @param denylistedSkills - Skill names that must not ship to host projects
|
|
144
|
-
* @returns De-duplicated bundled-skill sources, sorted by skill name
|
|
145
|
-
*/
|
|
146
|
-
async function discoverBundledSkills(lisaDir, denylistedSkills) {
|
|
147
|
-
const pluginsDir = path.join(lisaDir, "plugins");
|
|
148
|
-
if (!(await fse.pathExists(pluginsDir))) {
|
|
149
|
-
return [];
|
|
150
|
-
}
|
|
151
|
-
// Put the base "lisa" plugin first so it is always overridable by any
|
|
152
|
-
// other plugin via last-wins Map dedup below. Remaining plugins are
|
|
153
|
-
// sorted for deterministic ordering across machines.
|
|
154
|
-
const all = (await readdir(pluginsDir)).filter(name => name !== "src");
|
|
155
|
-
const plugins = [
|
|
156
|
-
...all.filter(n => n === "lisa"),
|
|
157
|
-
...all.filter(n => n !== "lisa").sort((a, b) => a.localeCompare(b)),
|
|
158
|
-
];
|
|
159
|
-
const candidatesByPlugin = await Promise.all(plugins.map(pluginName => discoverSkillsInPlugin(pluginsDir, pluginName)));
|
|
160
|
-
// Base-first iteration order + last-wins Map → stack-specific (and any
|
|
161
|
-
// other non-base plugin) overrides base for duplicate skill names.
|
|
162
|
-
const flat = candidatesByPlugin.flat();
|
|
163
|
-
const deduped = Array.from(new Map(flat.map(source => [source.skillName, source])).values());
|
|
164
|
-
return Object.freeze([...deduped]
|
|
165
|
-
.filter(source => !denylistedSkills.has(source.skillName))
|
|
166
|
-
.sort((a, b) => a.skillName.localeCompare(b.skillName)));
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Discover every skill directory under one plugin's `skills/` folder. Skips
|
|
170
|
-
* any non-directory entries (defensive against stray .DS_Store and similar).
|
|
171
|
-
* @param pluginsDir - Absolute path to `<lisaDir>/plugins`
|
|
172
|
-
* @param pluginName - Plugin directory name (e.g. "lisa", "lisa-rails")
|
|
173
|
-
* @returns Bundled-skill sources discovered in this plugin (file order)
|
|
174
|
-
*/
|
|
175
|
-
async function discoverSkillsInPlugin(pluginsDir, pluginName) {
|
|
176
|
-
const skillsDir = path.join(pluginsDir, pluginName, "skills");
|
|
177
|
-
if (!(await fse.pathExists(skillsDir))) {
|
|
178
|
-
return [];
|
|
179
|
-
}
|
|
180
|
-
const skillNames = await readdir(skillsDir);
|
|
181
|
-
const candidates = await Promise.all(skillNames.map(async (skillName) => {
|
|
182
|
-
const sourceDir = path.join(skillsDir, skillName);
|
|
183
|
-
const dirStat = await stat(sourceDir);
|
|
184
|
-
if (!dirStat.isDirectory()) {
|
|
185
|
-
return undefined;
|
|
186
|
-
}
|
|
187
|
-
const files = await listFilesRecursive(sourceDir);
|
|
188
|
-
return { skillName, sourceDir, files };
|
|
189
|
-
}));
|
|
190
|
-
return candidates.filter((entry) => entry !== undefined);
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Recursively list all file paths under `root` as relative paths. Pure
|
|
194
|
-
* recursion (no mutable accumulator) so the result is referentially clean.
|
|
195
|
-
* @param root - Absolute path to the directory to walk
|
|
196
|
-
* @returns Relative paths of every regular file under `root`
|
|
197
|
-
*/
|
|
198
|
-
async function listFilesRecursive(root) {
|
|
199
|
-
return walkDir(root, "");
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Recursive helper for listFilesRecursive. The relative path is threaded
|
|
203
|
-
* down so nested files come back as `subdir/file.ext` etc.
|
|
204
|
-
* @param root - Absolute path to the directory to walk
|
|
205
|
-
* @param rel - Path under `root` we're currently visiting (relative)
|
|
206
|
-
* @returns Relative paths of every regular file at or below `root/rel`
|
|
207
|
-
*/
|
|
208
|
-
async function walkDir(root, rel) {
|
|
209
|
-
const abs = path.join(root, rel);
|
|
210
|
-
const entries = await readdir(abs, { withFileTypes: true });
|
|
211
|
-
const childResults = await Promise.all(entries.map(entry => {
|
|
212
|
-
const childRel = path.join(rel, entry.name);
|
|
213
|
-
if (entry.isDirectory()) {
|
|
214
|
-
return walkDir(root, childRel);
|
|
215
|
-
}
|
|
216
|
-
if (entry.isFile()) {
|
|
217
|
-
return Promise.resolve([childRel]);
|
|
218
|
-
}
|
|
219
|
-
return Promise.resolve([]);
|
|
220
|
-
}));
|
|
221
|
-
return childResults.flat();
|
|
222
|
-
}
|
|
223
115
|
/**
|
|
224
116
|
* Copy one bundled skill folder verbatim into the host's `.codex/skills/lisa/`.
|
|
225
117
|
* @param source - Bundled-skill source to copy
|
|
@@ -241,65 +133,6 @@ async function copyBundledSkill(source, skillsDir) {
|
|
|
241
133
|
relativePath: path.join(LISA_SKILLS_SUBDIR, source.skillName),
|
|
242
134
|
};
|
|
243
135
|
}
|
|
244
|
-
/**
|
|
245
|
-
* Walk `plugins/<plugin>/commands/**\/*.md` discovering each command file.
|
|
246
|
-
* Nested directories produce dash-joined skill names: `commands/git/commit.md`
|
|
247
|
-
* → `lisa-git-commit`.
|
|
248
|
-
*
|
|
249
|
-
* De-duplicates by final skill name with last-wins semantics: the base `lisa`
|
|
250
|
-
* plugin is always processed first, then remaining plugins in alphabetical
|
|
251
|
-
* order, so any stack-specific or third-party plugin overrides the base
|
|
252
|
-
* regardless of how the name sorts.
|
|
253
|
-
* @param lisaDir - Absolute path to the Lisa repo / installed package
|
|
254
|
-
* @returns De-duplicated command-derived skill sources, sorted by skill name
|
|
255
|
-
*/
|
|
256
|
-
async function discoverLisaCommands(lisaDir) {
|
|
257
|
-
const pluginsDir = path.join(lisaDir, "plugins");
|
|
258
|
-
if (!(await fse.pathExists(pluginsDir))) {
|
|
259
|
-
return [];
|
|
260
|
-
}
|
|
261
|
-
// Put the base "lisa" plugin first so it is always overridable by any
|
|
262
|
-
// other plugin via last-wins Map dedup below. Remaining plugins are
|
|
263
|
-
// sorted for deterministic ordering across machines.
|
|
264
|
-
const all = (await readdir(pluginsDir)).filter(name => name !== "src");
|
|
265
|
-
const plugins = [
|
|
266
|
-
...all.filter(n => n === "lisa"),
|
|
267
|
-
...all.filter(n => n !== "lisa").sort((a, b) => a.localeCompare(b)),
|
|
268
|
-
];
|
|
269
|
-
const candidatesByPlugin = await Promise.all(plugins.map(pluginName => discoverCommandsInPlugin(pluginsDir, pluginName)));
|
|
270
|
-
// Base-first iteration order + last-wins Map → stack-specific (and any
|
|
271
|
-
// other non-base plugin) overrides base for duplicate command names.
|
|
272
|
-
const flat = candidatesByPlugin.flat();
|
|
273
|
-
const deduped = Array.from(new Map(flat.map(source => [source.skillName, source])).values());
|
|
274
|
-
return Object.freeze([...deduped].sort((a, b) => a.skillName.localeCompare(b.skillName)));
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* Discover every Markdown command file under one plugin's `commands/`
|
|
278
|
-
* folder, turning each into a LisaCommandSource. Returns [] if the plugin
|
|
279
|
-
* has no commands directory.
|
|
280
|
-
* @param pluginsDir - Absolute path to `<lisaDir>/plugins`
|
|
281
|
-
* @param pluginName - Plugin directory name
|
|
282
|
-
* @returns Command sources discovered in this plugin (file order)
|
|
283
|
-
*/
|
|
284
|
-
async function discoverCommandsInPlugin(pluginsDir, pluginName) {
|
|
285
|
-
const commandsRoot = path.join(pluginsDir, pluginName, "commands");
|
|
286
|
-
if (!(await fse.pathExists(commandsRoot))) {
|
|
287
|
-
return [];
|
|
288
|
-
}
|
|
289
|
-
const files = await listFilesRecursive(commandsRoot);
|
|
290
|
-
return files
|
|
291
|
-
.filter(relFile => relFile.endsWith(".md"))
|
|
292
|
-
.map(relFile => {
|
|
293
|
-
// commands/git/commit.md → ["git", "commit"]
|
|
294
|
-
const segments = relFile.replace(/\.md$/, "").split(path.sep);
|
|
295
|
-
const skillName = `${LISA_COMMAND_SKILL_PREFIX}${segments.join("-")}`;
|
|
296
|
-
return {
|
|
297
|
-
skillName,
|
|
298
|
-
sourcePath: path.join(commandsRoot, relFile),
|
|
299
|
-
displayName: `lisa:${segments.join(":")}`,
|
|
300
|
-
};
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
136
|
/**
|
|
304
137
|
* Convert a Lisa command Markdown file into a Codex skill.
|
|
305
138
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-installer.js","sourceRoot":"","sources":["../../src/codex/skills-installer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills-installer.js","sourceRoot":"","sources":["../../src/codex/skills-installer.ts"],"names":[],"mappings":"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"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -26,10 +26,11 @@ export declare const COPY_STRATEGIES: readonly CopyStrategy[];
|
|
|
26
26
|
* - "cursor": emit Cursor artifacts (Cursor reads .claude-plugin/ natively; no per-project files)
|
|
27
27
|
* - "agy": emit Antigravity artifacts (~/.gemini/config/mcp_config.json + AGENTS.md with baked rules)
|
|
28
28
|
* - "copilot": emit GitHub Copilot artifacts (.github/copilot-instructions.md + plugin install)
|
|
29
|
+
* - "opencode": emit OpenCode artifacts (.opencode/skills/lisa/ + AGENTS.md, read natively)
|
|
29
30
|
* - "both": emit both Claude and Codex (back-compat — predates the per-agent expansion)
|
|
30
|
-
* - "fleet": emit for every supported agent (Claude + Codex + Cursor + agy + Copilot)
|
|
31
|
+
* - "fleet": emit for every supported agent (Claude + Codex + Cursor + agy + Copilot + OpenCode)
|
|
31
32
|
*/
|
|
32
|
-
export type Harness = "claude" | "codex" | "cursor" | "agy" | "copilot" | "both" | "fleet";
|
|
33
|
+
export type Harness = "claude" | "codex" | "cursor" | "agy" | "copilot" | "opencode" | "both" | "fleet";
|
|
33
34
|
/**
|
|
34
35
|
* All valid harness values, in canonical order
|
|
35
36
|
*/
|
|
@@ -39,7 +40,7 @@ export declare const HARNESS_VALUES: readonly Harness[];
|
|
|
39
40
|
* (Cursor is intentionally absent — it needs no per-project writes; it consumes
|
|
40
41
|
* the `lisa-cursor` plugin variant directly via its marketplace/loader.)
|
|
41
42
|
*/
|
|
42
|
-
export type EmitAgent = "claude" | "codex" | "agy" | "copilot";
|
|
43
|
+
export type EmitAgent = "claude" | "codex" | "agy" | "copilot" | "opencode";
|
|
43
44
|
/**
|
|
44
45
|
* Whether a configured harness should emit artifacts for a given agent.
|
|
45
46
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,OAAO,GACP,cAAc,GACd,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,KAAK,GACL,eAAe,GACf,aAAa,GACb,OAAO,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,CAS/B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,WAAW,EAQ3C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAOzC,CAAC;AAEX
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,OAAO,GACP,cAAc,GACd,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,KAAK,GACL,eAAe,GACf,aAAa,GACb,OAAO,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,CAS/B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,WAAW,EAQ3C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAOzC,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,OAAO,GACf,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,KAAK,GACL,SAAS,GACT,UAAU,GACV,MAAM,GACN,OAAO,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,OAAO,EASnC,CAAC;AAEX;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAE5E;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,GACf,OAAO,CAIT;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,OAAkB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B,gFAAgF;IAChF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,UAAU,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,MAAM,EACX,QAAQ,GACR,SAAS,GACT,aAAa,GACb,UAAU,GACV,QAAQ,GACR,SAAS,CAAC;IACd,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/C,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,iBAAiB,CAYzD"}
|
package/dist/core/config.js
CHANGED
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAuBA;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAE/B;IACF,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,YAAY;IACpB,GAAG,EAAE,YAAY;IACjB,eAAe,EAAE,YAAY;IAC7B,aAAa,EAAE,YAAY;IAC3B,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;CACR,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,YAAY;IACZ,aAAa;IACb,eAAe;IACf,MAAM;IACN,QAAQ;IACR,KAAK;IACL,OAAO;CACC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA4B;IACtD,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,OAAO;IACP,cAAc;IACd,cAAc;CACN,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAuBA;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAE/B;IACF,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,YAAY;IACpB,GAAG,EAAE,YAAY;IACjB,eAAe,EAAE,YAAY;IAC7B,aAAa,EAAE,YAAY;IAC3B,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;CACR,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,YAAY;IACZ,aAAa;IACb,eAAe;IACf,MAAM;IACN,QAAQ;IACR,KAAK;IACL,OAAO;CACC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA4B;IACtD,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,OAAO;IACP,cAAc;IACd,cAAc;CACN,CAAC;AAwBX;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAuB;IAChD,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,SAAS;IACT,UAAU;IACV,MAAM;IACN,OAAO;CACC,CAAC;AASX;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,KAAgB;IAEhB,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,CAAC;IACvE,OAAO,OAAO,KAAK,KAAK,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAY,QAAQ,CAAC;AAqFjD;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,CAAC;KACrB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** Prefix applied to Lisa command-as-skill names (e.g. `lisa-git-commit`). */
|
|
2
|
+
export declare const LISA_COMMAND_SKILL_PREFIX = "lisa-";
|
|
3
|
+
/** A single discovered bundled-skill folder source. */
|
|
4
|
+
export interface BundledSkillSource {
|
|
5
|
+
/** Skill name (matches the SKILL.md `name` frontmatter and folder name). */
|
|
6
|
+
readonly skillName: string;
|
|
7
|
+
/** Absolute path to the source skill folder. */
|
|
8
|
+
readonly sourceDir: string;
|
|
9
|
+
/** Relative file paths inside the skill folder (recursive). */
|
|
10
|
+
readonly files: readonly string[];
|
|
11
|
+
}
|
|
12
|
+
/** A discovered Lisa command source to be converted into a skill. */
|
|
13
|
+
export interface LisaCommandSource {
|
|
14
|
+
/** Final skill name including the `lisa-` prefix. */
|
|
15
|
+
readonly skillName: string;
|
|
16
|
+
/** Absolute path to the source command `.md` file. */
|
|
17
|
+
readonly sourcePath: string;
|
|
18
|
+
/** Original path components for display (e.g. "lisa:jira:create"). */
|
|
19
|
+
readonly displayName: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Load a skill distribution policy file that marks Lisa-maintainer-only skills
|
|
23
|
+
* as non-distributable.
|
|
24
|
+
*
|
|
25
|
+
* Missing or malformed policy files fail open to an empty set so tests and
|
|
26
|
+
* minimal package layouts remain usable.
|
|
27
|
+
* @param lisaDir - Absolute path to the Lisa repo / installed package.
|
|
28
|
+
* @param policyRelativePath - Path to the policy JSON, relative to `lisaDir`.
|
|
29
|
+
* @returns Skill directory names that must not be installed into host projects.
|
|
30
|
+
*/
|
|
31
|
+
export declare function loadSkillDenylist(lisaDir: string, policyRelativePath: string): Promise<ReadonlySet<string>>;
|
|
32
|
+
/**
|
|
33
|
+
* Walk `plugins/<plugin>/skills/<name>/` discovering each skill folder.
|
|
34
|
+
*
|
|
35
|
+
* De-duplicates by skill name with last-wins semantics: the base `lisa` plugin
|
|
36
|
+
* is always processed first, then remaining plugins in alphabetical order, so
|
|
37
|
+
* any stack-specific or third-party plugin overrides the base regardless of how
|
|
38
|
+
* the name sorts.
|
|
39
|
+
* @param lisaDir - Absolute path to the Lisa repo / installed package.
|
|
40
|
+
* @param denylistedSkills - Skill names that must not ship to host projects.
|
|
41
|
+
* @returns De-duplicated bundled-skill sources, sorted by skill name.
|
|
42
|
+
*/
|
|
43
|
+
export declare function discoverBundledSkills(lisaDir: string, denylistedSkills: ReadonlySet<string>): Promise<readonly BundledSkillSource[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Walk `plugins/<plugin>/commands/**\/*.md` discovering each command file.
|
|
46
|
+
* Nested directories produce dash-joined skill names: `commands/git/commit.md`
|
|
47
|
+
* → `lisa-git-commit`.
|
|
48
|
+
*
|
|
49
|
+
* De-duplicates by final skill name with last-wins semantics (base `lisa`
|
|
50
|
+
* first, then remaining plugins alphabetically) so stack-specific plugins
|
|
51
|
+
* override the base regardless of name sort order.
|
|
52
|
+
* @param lisaDir - Absolute path to the Lisa repo / installed package.
|
|
53
|
+
* @returns De-duplicated command-derived skill sources, sorted by skill name.
|
|
54
|
+
*/
|
|
55
|
+
export declare function discoverLisaCommands(lisaDir: string): Promise<readonly LisaCommandSource[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Recursively list all file paths under `root` as relative paths. Pure
|
|
58
|
+
* recursion (no mutable accumulator) so the result is referentially clean.
|
|
59
|
+
* @param root - Absolute path to the directory to walk.
|
|
60
|
+
* @returns Relative paths of every regular file under `root`.
|
|
61
|
+
*/
|
|
62
|
+
export declare function listFilesRecursive(root: string): Promise<readonly string[]>;
|
|
63
|
+
//# sourceMappingURL=lisa-skill-sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lisa-skill-sources.d.ts","sourceRoot":"","sources":["../../src/core/lisa-skill-sources.ts"],"names":[],"mappings":"AAsBA,8EAA8E;AAC9E,eAAO,MAAM,yBAAyB,UAAU,CAAC;AAEjD,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAmB9B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,GACpC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAoBxC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAgBvC;AAoFD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAE5B"}
|