@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.
Files changed (102) hide show
  1. package/dist/codex/command-skill-transformer.d.ts +4 -2
  2. package/dist/codex/command-skill-transformer.d.ts.map +1 -1
  3. package/dist/codex/command-skill-transformer.js +10 -7
  4. package/dist/codex/command-skill-transformer.js.map +1 -1
  5. package/dist/codex/skills-installer.d.ts +1 -2
  6. package/dist/codex/skills-installer.d.ts.map +1 -1
  7. package/dist/codex/skills-installer.js +9 -176
  8. package/dist/codex/skills-installer.js.map +1 -1
  9. package/dist/core/config.d.ts +4 -3
  10. package/dist/core/config.d.ts.map +1 -1
  11. package/dist/core/config.js +1 -0
  12. package/dist/core/config.js.map +1 -1
  13. package/dist/core/lisa-skill-sources.d.ts +63 -0
  14. package/dist/core/lisa-skill-sources.d.ts.map +1 -0
  15. package/dist/core/lisa-skill-sources.js +197 -0
  16. package/dist/core/lisa-skill-sources.js.map +1 -0
  17. package/dist/core/lisa.d.ts +12 -0
  18. package/dist/core/lisa.d.ts.map +1 -1
  19. package/dist/core/lisa.js +53 -0
  20. package/dist/core/lisa.js.map +1 -1
  21. package/dist/opencode/manifest.d.ts +26 -0
  22. package/dist/opencode/manifest.d.ts.map +1 -0
  23. package/dist/opencode/manifest.js +94 -0
  24. package/dist/opencode/manifest.js.map +1 -0
  25. package/dist/opencode/mcp-installer.d.ts +89 -0
  26. package/dist/opencode/mcp-installer.d.ts.map +1 -0
  27. package/dist/opencode/mcp-installer.js +160 -0
  28. package/dist/opencode/mcp-installer.js.map +1 -0
  29. package/dist/opencode/settings-installer.d.ts +41 -0
  30. package/dist/opencode/settings-installer.d.ts.map +1 -0
  31. package/dist/opencode/settings-installer.js +127 -0
  32. package/dist/opencode/settings-installer.js.map +1 -0
  33. package/dist/opencode/skills-installer.d.ts +32 -0
  34. package/dist/opencode/skills-installer.d.ts.map +1 -0
  35. package/dist/opencode/skills-installer.js +159 -0
  36. package/dist/opencode/skills-installer.js.map +1 -0
  37. package/package.json +2 -1
  38. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  40. package/plugins/lisa/rules/reference/leaf-only-lifecycle.md +9 -4
  41. package/plugins/lisa/skills/github-build-intake/SKILL.md +10 -0
  42. package/plugins/lisa/skills/jira-build-intake/SKILL.md +10 -0
  43. package/plugins/lisa/skills/linear-build-intake/SKILL.md +10 -0
  44. package/plugins/lisa-agy/plugin.json +1 -1
  45. package/plugins/lisa-agy/skills/github-build-intake/SKILL.md +10 -0
  46. package/plugins/lisa-agy/skills/jira-build-intake/SKILL.md +10 -0
  47. package/plugins/lisa-agy/skills/linear-build-intake/SKILL.md +10 -0
  48. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  50. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  51. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-copilot/rules/reference/leaf-only-lifecycle.md +9 -4
  55. package/plugins/lisa-copilot/skills/github-build-intake/SKILL.md +10 -0
  56. package/plugins/lisa-copilot/skills/jira-build-intake/SKILL.md +10 -0
  57. package/plugins/lisa-copilot/skills/linear-build-intake/SKILL.md +10 -0
  58. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-cursor/rules/leaf-only-lifecycle-reference.mdc +9 -4
  60. package/plugins/lisa-cursor/skills/github-build-intake/SKILL.md +10 -0
  61. package/plugins/lisa-cursor/skills/jira-build-intake/SKILL.md +10 -0
  62. package/plugins/lisa-cursor/skills/linear-build-intake/SKILL.md +10 -0
  63. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  65. package/plugins/lisa-expo-agy/plugin.json +1 -1
  66. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  68. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  69. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  70. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  71. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  72. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  73. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  74. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  75. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  76. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  77. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  78. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  79. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  80. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  81. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  82. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  83. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  84. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  85. package/plugins/lisa-rails-agy/plugin.json +1 -1
  86. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  87. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  88. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  89. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  90. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  91. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  92. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  93. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  94. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  95. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  96. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  97. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  98. package/plugins/src/base/rules/reference/leaf-only-lifecycle.md +9 -4
  99. package/plugins/src/base/skills/github-build-intake/SKILL.md +10 -0
  100. package/plugins/src/base/skills/jira-build-intake/SKILL.md +10 -0
  101. package/plugins/src/base/skills/linear-build-intake/SKILL.md +10 -0
  102. 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
- * @returns The Codex skill SKILL.md content as a string
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;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAqCR"}
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
- * @returns The Codex skill SKILL.md content as a string
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 Codex skill name
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
- `- Codex invocation: \`$${skillName}\` or a plain-English request that matches this skill.`,
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(", ")}. Codex tool access is governed by the active Codex runtime and project policy.`,
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":"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"}
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":"AAiCA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAE9D,oDAAoD;AACpD,eAAO,MAAM,yBAAyB,UAAU,CAAC;AASjD,+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,CA0C9B"}
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 { copyFile, mkdir, readFile, readdir, rm, stat, writeFile, } from "node:fs/promises";
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 loadInternalCodexSkillPolicy(lisaDir);
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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"}
@@ -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;;;;;;;;;;GAUG;AACH,MAAM,MAAM,OAAO,GACf,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,KAAK,GACL,SAAS,GACT,MAAM,GACN,OAAO,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,OAAO,EAQnC,CAAC;AAEX;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;AAE/D;;;;;;;;;;;;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"}
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"}
@@ -42,6 +42,7 @@ export const HARNESS_VALUES = [
42
42
  "cursor",
43
43
  "agy",
44
44
  "copilot",
45
+ "opencode",
45
46
  "both",
46
47
  "fleet",
47
48
  ];
@@ -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;AAsBX;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAuB;IAChD,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,SAAS;IACT,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"}
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"}