@codyswann/lisa 2.16.6 → 2.16.8

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 (49) hide show
  1. package/.agents/plugins/marketplace.json +80 -0
  2. package/dist/codex/agent-transformer.js +42 -17
  3. package/dist/codex/agent-transformer.js.map +1 -1
  4. package/dist/codex/agents-md-installer.d.ts +1 -1
  5. package/dist/codex/agents-md-installer.d.ts.map +1 -1
  6. package/dist/codex/agents-md-installer.js +7 -0
  7. package/dist/codex/agents-md-installer.js.map +1 -1
  8. package/dist/codex/command-skill-transformer.d.ts +14 -0
  9. package/dist/codex/command-skill-transformer.d.ts.map +1 -0
  10. package/dist/codex/command-skill-transformer.js +106 -0
  11. package/dist/codex/command-skill-transformer.js.map +1 -0
  12. package/dist/codex/hooks-installer.d.ts.map +1 -1
  13. package/dist/codex/hooks-installer.js +24 -0
  14. package/dist/codex/hooks-installer.js.map +1 -1
  15. package/dist/codex/plugin-marketplace-installer.d.ts +23 -0
  16. package/dist/codex/plugin-marketplace-installer.d.ts.map +1 -0
  17. package/dist/codex/plugin-marketplace-installer.js +131 -0
  18. package/dist/codex/plugin-marketplace-installer.js.map +1 -0
  19. package/dist/codex/settings-installer.d.ts +2 -0
  20. package/dist/codex/settings-installer.d.ts.map +1 -1
  21. package/dist/codex/settings-installer.js +120 -2
  22. package/dist/codex/settings-installer.js.map +1 -1
  23. package/dist/codex/skills-installer.d.ts +1 -12
  24. package/dist/codex/skills-installer.d.ts.map +1 -1
  25. package/dist/codex/skills-installer.js +5 -55
  26. package/dist/codex/skills-installer.js.map +1 -1
  27. package/dist/core/lisa.d.ts +6 -6
  28. package/dist/core/lisa.d.ts.map +1 -1
  29. package/dist/core/lisa.js +9 -7
  30. package/dist/core/lisa.js.map +1 -1
  31. package/package.json +2 -1
  32. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa/.codex-plugin/plugin.json +32 -0
  34. package/plugins/lisa/hooks/hooks.json +104 -0
  35. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-cdk/.codex-plugin/plugin.json +27 -0
  37. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-expo/.codex-plugin/plugin.json +31 -0
  39. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +31 -0
  41. package/plugins/lisa-nestjs/hooks/hooks.json +15 -0
  42. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-rails/.codex-plugin/plugin.json +31 -0
  44. package/plugins/lisa-rails/hooks/hooks.json +19 -0
  45. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-typescript/.codex-plugin/plugin.json +28 -0
  47. package/plugins/lisa-typescript/hooks/hooks.json +23 -0
  48. package/scripts/build-plugins.sh +2 -0
  49. package/scripts/generate-codex-plugin-artifacts.mjs +294 -0
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "lisa",
3
+ "interface": {
4
+ "displayName": "Lisa Plugins"
5
+ },
6
+ "plugins": [
7
+ {
8
+ "name": "lisa",
9
+ "source": {
10
+ "source": "local",
11
+ "path": "./plugins/lisa"
12
+ },
13
+ "policy": {
14
+ "installation": "INSTALLED_BY_DEFAULT",
15
+ "authentication": "ON_INSTALL"
16
+ },
17
+ "category": "Productivity"
18
+ },
19
+ {
20
+ "name": "lisa-typescript",
21
+ "source": {
22
+ "source": "local",
23
+ "path": "./plugins/lisa-typescript"
24
+ },
25
+ "policy": {
26
+ "installation": "AVAILABLE",
27
+ "authentication": "ON_INSTALL"
28
+ },
29
+ "category": "Productivity"
30
+ },
31
+ {
32
+ "name": "lisa-expo",
33
+ "source": {
34
+ "source": "local",
35
+ "path": "./plugins/lisa-expo"
36
+ },
37
+ "policy": {
38
+ "installation": "AVAILABLE",
39
+ "authentication": "ON_INSTALL"
40
+ },
41
+ "category": "Coding"
42
+ },
43
+ {
44
+ "name": "lisa-nestjs",
45
+ "source": {
46
+ "source": "local",
47
+ "path": "./plugins/lisa-nestjs"
48
+ },
49
+ "policy": {
50
+ "installation": "AVAILABLE",
51
+ "authentication": "ON_INSTALL"
52
+ },
53
+ "category": "Coding"
54
+ },
55
+ {
56
+ "name": "lisa-cdk",
57
+ "source": {
58
+ "source": "local",
59
+ "path": "./plugins/lisa-cdk"
60
+ },
61
+ "policy": {
62
+ "installation": "AVAILABLE",
63
+ "authentication": "ON_INSTALL"
64
+ },
65
+ "category": "Coding"
66
+ },
67
+ {
68
+ "name": "lisa-rails",
69
+ "source": {
70
+ "source": "local",
71
+ "path": "./plugins/lisa-rails"
72
+ },
73
+ "policy": {
74
+ "installation": "AVAILABLE",
75
+ "authentication": "ON_INSTALL"
76
+ },
77
+ "category": "Coding"
78
+ }
79
+ ]
80
+ }
@@ -7,8 +7,8 @@
7
7
  * ---
8
8
  * name: bug-fixer
9
9
  * description: ...
10
- * tools: Read, Bash # optional; ignored on the Codex side
11
- * model: sonnet # optional; mapped if present
10
+ * tools: Read, Bash # optional; preserved as compatibility context
11
+ * model: sonnet # optional; preserved as compatibility context
12
12
  * skills: [skill-a, skill-b] # optional; preserved in body as context
13
13
  * ---
14
14
  * # Body becomes developer_instructions
@@ -86,26 +86,29 @@ export function transformAgentMarkdownToToml(source, options = {}) {
86
86
  return transformAgentToToml(parseAgentMarkdown(source), options);
87
87
  }
88
88
  /**
89
- * Build the `developer_instructions` body. Claude Code agents sometimes
90
- * carry `skills:` in frontmatter that act as soft guidance; we surface that
91
- * as a header in the instructions so the Codex agent has the same context.
89
+ * Build the `developer_instructions` body. Claude Code agents sometimes carry
90
+ * `skills:`, `tools:`, and `model:` in frontmatter. Codex rejects unknown TOML
91
+ * fields, so Lisa preserves that metadata as normal instructions instead of
92
+ * dropping it on the floor.
92
93
  * @param parsed - Output of parseAgentMarkdown for the source agent file
93
94
  * @returns The composed body to write into `developer_instructions`
94
95
  */
95
96
  function composeDeveloperInstructions(parsed) {
97
+ const compatibilityBlock = formatCompatibilityBlock(parsed.frontmatter);
96
98
  const skills = parsed.frontmatter.skills;
97
- if (skills === undefined || skills.length === 0) {
98
- return parsed.body.trimEnd();
99
- }
100
- const skillsBlock = [
101
- "## Available Lisa Skills",
102
- "",
103
- "This agent operates in a Lisa-managed Codex environment with access to the following skills:",
104
- "",
105
- ...skills.map(s => `- ${s}`),
106
- "",
107
- ].join("\n");
108
- return `${skillsBlock}\n${parsed.body.trimEnd()}`;
99
+ const skillsBlock = skills === undefined || skills.length === 0
100
+ ? ""
101
+ : [
102
+ "## Available Lisa Skills",
103
+ "",
104
+ "This agent operates in a Lisa-managed Codex environment with access to the following skills:",
105
+ "",
106
+ ...skills.map(s => `- ${s}`),
107
+ "",
108
+ ].join("\n");
109
+ return [compatibilityBlock, skillsBlock, parsed.body.trimEnd()]
110
+ .filter(block => block.length > 0)
111
+ .join("\n\n");
109
112
  }
110
113
  /**
111
114
  * Validate frontmatter shape, throwing on missing required fields or wrong
@@ -147,6 +150,28 @@ function parseSkills(raw) {
147
150
  const filtered = raw.filter((entry) => typeof entry === "string" && entry.length > 0);
148
151
  return filtered.length > 0 ? Object.freeze(filtered) : undefined;
149
152
  }
153
+ /**
154
+ * Preserve Claude-only agent frontmatter inside Codex instructions.
155
+ * @param frontmatter - Validated Claude agent metadata
156
+ * @returns Markdown compatibility block, or an empty string when unnecessary
157
+ */
158
+ function formatCompatibilityBlock(frontmatter) {
159
+ const modelLines = frontmatter.model === undefined
160
+ ? []
161
+ : [
162
+ `- Claude requested model: \`${frontmatter.model}\`. Use the active Codex model unless the host supplies a Codex agent override.`,
163
+ ];
164
+ const toolLines = frontmatter.tools === undefined
165
+ ? []
166
+ : [
167
+ `- Claude allowed tools: \`${frontmatter.tools}\`. Codex tool access is governed by the active Codex runtime, sandbox, and project policy.`,
168
+ ];
169
+ const lines = [...modelLines, ...toolLines];
170
+ if (lines.length === 0) {
171
+ return "";
172
+ }
173
+ return ["## Claude Agent Compatibility", "", ...lines].join("\n");
174
+ }
150
175
  /**
151
176
  * Emit a TOML basic string with proper escaping. Uses double-quoted form so
152
177
  * we can rely on standard escape sequences without worrying about literal
@@ -1 +1 @@
1
- {"version":3,"file":"agent-transformer.js","sourceRoot":"","sources":["../../src/codex/agent-transformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-transformer.js","sourceRoot":"","sources":["../../src/codex/agent-transformer.ts"],"names":[],"mappings":"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"}
@@ -20,5 +20,5 @@ export declare function installAgentsMd(destDir: string): Promise<AgentsMdInstal
20
20
  * is injected via the SessionStart hook, so AGENTS.md is reserved for
21
21
  * host-specific notes.
22
22
  */
23
- export declare const AGENTS_MD_TEMPLATE = "# Project Guidance for Codex\n\nThis project uses Lisa governance. Codex sessions automatically receive\nLisa's rules, agents, and skills via the SessionStart hook in\n`.codex/hooks/lisa/inject-rules.sh`.\n\nThis file is for **project-specific guidance** \u2014 add anything Codex should\nknow about *this particular* project that isn't covered by Lisa's rules.\n\n## What lives where\n\n- `.codex/agents/lisa/` \u2014 Lisa-managed subagent role definitions\n- `.codex/skills/lisa/` \u2014 Lisa-managed skills (invoke via `$<name>`)\n- `.codex/lisa-rules/` \u2014 Lisa rules content (injected at session start)\n- `.codex/hooks/lisa/` \u2014 Lisa-managed hook scripts\n- `.codex/config.toml` \u2014 partly Lisa-managed Codex config\n\n## Custom rules for this project\n\nAdd project-specific guidance below. This section is preserved across Lisa\nupdates (`AGENTS.md` is create-only).\n";
23
+ export declare const AGENTS_MD_TEMPLATE = "# Project Guidance for Codex\n\nThis project uses Lisa governance. Codex sessions automatically receive\nLisa's rules, agents, and skills via the SessionStart hook in\n`.codex/hooks/lisa/inject-rules.sh`.\n\nThis file is for **project-specific guidance** \u2014 add anything Codex should\nknow about *this particular* project that isn't covered by Lisa's rules.\n\n## What lives where\n\n- `.codex/agents/lisa/` \u2014 Lisa-managed subagent role definitions\n- `.codex/skills/lisa/` \u2014 Lisa-managed skills (invoke via `$<name>`)\n- `.codex/lisa-rules/` \u2014 Lisa rules content (injected at session start)\n- `.codex/hooks/lisa/` \u2014 Lisa-managed hook scripts\n- `.codex/config.toml` \u2014 partly Lisa-managed Codex config\n\n## Lisa harness parity\n\nClaude is Lisa's production harness. When adding or changing Lisa behavior in\nthis project, keep the Claude and Codex implementations in parity where Codex\nhas an equivalent surface. Document any intentional gap instead of silently\ndropping Claude behavior from the Codex path.\n\n## Custom rules for this project\n\nAdd project-specific guidance below. This section is preserved across Lisa\nupdates (`AGENTS.md` is create-only).\n";
24
24
  //# sourceMappingURL=agents-md-installer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents-md-installer.d.ts","sourceRoot":"","sources":["../../src/codex/agents-md-installer.ts"],"names":[],"mappings":"AAmBA,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAE9C,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAOhC;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,23BAqB9B,CAAC"}
1
+ {"version":3,"file":"agents-md-installer.d.ts","sourceRoot":"","sources":["../../src/codex/agents-md-installer.ts"],"names":[],"mappings":"AAmBA,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAE9C,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAOhC;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,irCA4B9B,CAAC"}
@@ -55,6 +55,13 @@ know about *this particular* project that isn't covered by Lisa's rules.
55
55
  - \`.codex/hooks/lisa/\` — Lisa-managed hook scripts
56
56
  - \`.codex/config.toml\` — partly Lisa-managed Codex config
57
57
 
58
+ ## Lisa harness parity
59
+
60
+ Claude is Lisa's production harness. When adding or changing Lisa behavior in
61
+ this project, keep the Claude and Codex implementations in parity where Codex
62
+ has an equivalent surface. Document any intentional gap instead of silently
63
+ dropping Claude behavior from the Codex path.
64
+
58
65
  ## Custom rules for this project
59
66
 
60
67
  Add project-specific guidance below. This section is preserved across Lisa
@@ -1 +1 @@
1
- {"version":3,"file":"agents-md-installer.js","sourceRoot":"","sources":["../../src/codex/agents-md-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,iEAAiE;AACjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAU9C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe;IAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACxD,IAAI,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACrD,CAAC;IACD,MAAM,SAAS,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBjC,CAAC"}
1
+ {"version":3,"file":"agents-md-installer.js","sourceRoot":"","sources":["../../src/codex/agents-md-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,iEAAiE;AACjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAU9C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe;IAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACxD,IAAI,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACrD,CAAC;IACD,MAAM,SAAS,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BjC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Pure transform: convert a Lisa command markdown to a Codex skill markdown.
3
+ *
4
+ * Preserves the description from the command's frontmatter; turns
5
+ * `argument-hint`, `allowed-tools`, the original slash command, and
6
+ * `$ARGUMENTS` into normal skill instructions so the Codex path does not lose
7
+ * the intent of Claude's command interface.
8
+ * @param commandSource - Raw contents of the command .md file
9
+ * @param skillName - Target skill name (already includes the `lisa-` prefix)
10
+ * @param displayName - Human-readable name used as a fallback description
11
+ * @returns The Codex skill SKILL.md content as a string
12
+ */
13
+ export declare function convertCommandToSkill(commandSource: string, skillName: string, displayName: string): string;
14
+ //# sourceMappingURL=command-skill-transformer.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Convert Claude slash-command markdown into Codex skill markdown.
3
+ */
4
+ import yaml from "js-yaml";
5
+ /**
6
+ * Pure transform: convert a Lisa command markdown to a Codex skill markdown.
7
+ *
8
+ * Preserves the description from the command's frontmatter; turns
9
+ * `argument-hint`, `allowed-tools`, the original slash command, and
10
+ * `$ARGUMENTS` into normal skill instructions so the Codex path does not lose
11
+ * the intent of Claude's command interface.
12
+ * @param commandSource - Raw contents of the command .md file
13
+ * @param skillName - Target skill name (already includes the `lisa-` prefix)
14
+ * @param displayName - Human-readable name used as a fallback description
15
+ * @returns The Codex skill SKILL.md content as a string
16
+ */
17
+ export function convertCommandToSkill(commandSource, skillName, displayName) {
18
+ const match = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/.exec(commandSource);
19
+ if (match === null || match[1] === undefined || match[2] === undefined) {
20
+ throw new Error(`Command source is missing YAML frontmatter for ${displayName}`);
21
+ }
22
+ const rawFrontmatter = match[1];
23
+ const rawBody = match[2];
24
+ const parsedFrontmatter = parseCommandFrontmatter(yaml.load(rawFrontmatter), displayName);
25
+ const body = rawBody
26
+ .trimStart()
27
+ .replace(/\$ARGUMENTS/g, "Use the user's surrounding request as this command's arguments.")
28
+ .trimEnd();
29
+ const frontmatter = [
30
+ "---",
31
+ `name: ${skillName}`,
32
+ `description: ${JSON.stringify(parsedFrontmatter.description)}`,
33
+ "---",
34
+ "",
35
+ ].join("\n");
36
+ return `${frontmatter}${formatCommandCompatibilityBlock(parsedFrontmatter, skillName, displayName)}\n${body}\n`;
37
+ }
38
+ /**
39
+ * Parse the subset of Claude command frontmatter that Codex should preserve.
40
+ * @param parsed - Output of `yaml.load(rawFrontmatter)` (untrusted shape)
41
+ * @param displayName - Fallback used when no description is available
42
+ * @returns Command frontmatter relevant to Codex skill conversion
43
+ */
44
+ function parseCommandFrontmatter(parsed, displayName) {
45
+ if (parsed === null || typeof parsed !== "object") {
46
+ return { description: displayName };
47
+ }
48
+ const obj = parsed;
49
+ const description = typeof obj.description === "string" && obj.description.length > 0
50
+ ? obj.description
51
+ : displayName;
52
+ const argumentHint = typeof obj["argument-hint"] === "string" && obj["argument-hint"].length > 0
53
+ ? obj["argument-hint"]
54
+ : undefined;
55
+ const allowedTools = parseAllowedTools(obj["allowed-tools"]);
56
+ return {
57
+ description,
58
+ ...(argumentHint !== undefined ? { argumentHint } : {}),
59
+ ...(allowedTools.length > 0 ? { allowedTools } : {}),
60
+ };
61
+ }
62
+ /**
63
+ * Normalize Claude command `allowed-tools` values to a string list.
64
+ * @param raw - Untrusted frontmatter value
65
+ * @returns Tool names
66
+ */
67
+ function parseAllowedTools(raw) {
68
+ if (typeof raw === "string") {
69
+ return raw
70
+ .split(",")
71
+ .map(tool => tool.trim())
72
+ .filter(Boolean);
73
+ }
74
+ if (Array.isArray(raw)) {
75
+ return raw.filter((tool) => typeof tool === "string" && tool.length > 0);
76
+ }
77
+ return [];
78
+ }
79
+ /**
80
+ * Emit command compatibility notes at the top of generated Codex skills.
81
+ * @param frontmatter - Parsed Claude command metadata
82
+ * @param skillName - Generated Codex skill name
83
+ * @param displayName - Original Lisa command display name
84
+ * @returns Markdown block
85
+ */
86
+ function formatCommandCompatibilityBlock(frontmatter, skillName, displayName) {
87
+ const baseLines = [
88
+ "## Lisa Command Compatibility",
89
+ "",
90
+ `- Original Claude command: \`/${displayName}\``,
91
+ `- Codex invocation: \`$${skillName}\` or a plain-English request that matches this skill.`,
92
+ "- Treat the user's surrounding request as the command arguments.",
93
+ ];
94
+ const argumentLines = frontmatter.argumentHint === undefined
95
+ ? []
96
+ : [`- Claude argument hint: \`${frontmatter.argumentHint}\``];
97
+ const toolLines = frontmatter.allowedTools === undefined
98
+ ? []
99
+ : [
100
+ `- Claude allowed tools: ${frontmatter.allowedTools
101
+ .map(t => `\`${t}\``)
102
+ .join(", ")}. Codex tool access is governed by the active Codex runtime and project policy.`,
103
+ ];
104
+ return `${[...baseLines, ...argumentLines, ...toolLines].join("\n")}\n`;
105
+ }
106
+ //# sourceMappingURL=command-skill-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-skill-transformer.js","sourceRoot":"","sources":["../../src/codex/command-skill-transformer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-installer.d.ts","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUrD,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAE5D,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,+DAA+D;AAC/D,eAAO,MAAM,cAAc,eAAe,CAAC;AAuF3C,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,SAAS,WAAW,EAAE,GACpC,OAAO,CAAC,kBAAkB,CAAC,CA2C7B"}
1
+ {"version":3,"file":"hooks-installer.d.ts","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUrD,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAE5D,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,+DAA+D;AAC/D,eAAO,MAAM,cAAc,eAAe,CAAC;AA+G3C,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,SAAS,WAAW,EAAE,GACpC,OAAO,CAAC,kBAAkB,CAAC,CA2C7B"}
@@ -48,6 +48,30 @@ const HOOK_CATALOG = [
48
48
  forProjectTypes: ["*"],
49
49
  statusMessage: "Injecting Lisa rules into session context",
50
50
  },
51
+ {
52
+ id: "install-pkgs",
53
+ event: "SessionStart",
54
+ matcher: "startup",
55
+ scriptFilename: "install-pkgs.sh",
56
+ forProjectTypes: ["*"],
57
+ statusMessage: "Checking project dependencies",
58
+ },
59
+ {
60
+ id: "setup-jira-cli",
61
+ event: "SessionStart",
62
+ matcher: "",
63
+ scriptFilename: "setup-jira-cli.sh",
64
+ forProjectTypes: ["*"],
65
+ statusMessage: "Preparing Jira CLI configuration",
66
+ },
67
+ {
68
+ id: "block-no-verify",
69
+ event: "PreToolUse",
70
+ matcher: "Bash",
71
+ scriptFilename: "block-no-verify.sh",
72
+ forProjectTypes: ["*"],
73
+ statusMessage: "Checking shell command policy",
74
+ },
51
75
  {
52
76
  id: "notify-ntfy",
53
77
  event: "Stop",
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-installer.js","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks-installer.js","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** Location of the Codex marketplace file relative to a host project root */
2
+ export declare const CODEX_MARKETPLACE_PATH: string;
3
+ /** Result of a marketplace install pass */
4
+ export interface MarketplaceInstallResult {
5
+ readonly created: boolean;
6
+ readonly pluginEntries: number;
7
+ }
8
+ /**
9
+ * Install or merge Lisa's Codex marketplace entries.
10
+ * @param lisaDir - Absolute path to the Lisa repo or installed package root
11
+ * @param destDir - Absolute path to the host project root
12
+ * @returns Install result
13
+ */
14
+ export declare function installCodexMarketplace(lisaDir: string, destDir: string): Promise<MarketplaceInstallResult>;
15
+ /**
16
+ * Merge Lisa plugin entries into an existing marketplace object.
17
+ * @param existing - Existing marketplace JSON
18
+ * @param lisaDir - Lisa package root
19
+ * @param destDir - Host project root
20
+ * @returns Merged marketplace JSON
21
+ */
22
+ export declare function mergeLisaMarketplace(existing: unknown, lisaDir: string, destDir: string): Record<string, unknown>;
23
+ //# sourceMappingURL=plugin-marketplace-installer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-marketplace-installer.d.ts","sourceRoot":"","sources":["../../src/codex/plugin-marketplace-installer.ts"],"names":[],"mappings":"AAWA,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,QAIlC,CAAC;AAsBF,2CAA2C;AAC3C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC,CAcnC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzB"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Install a repo-local Codex plugin marketplace for Lisa.
3
+ *
4
+ * Codex discovers repo marketplaces from `<repo>/.agents/plugins/marketplace.json`.
5
+ * In downstream projects, Lisa lives under `node_modules/@codyswann/lisa`, so
6
+ * this marketplace points Codex at the Lisa plugin directories shipped there.
7
+ */
8
+ import * as fse from "fs-extra";
9
+ import { readFile, writeFile } from "node:fs/promises";
10
+ import * as path from "node:path";
11
+ /** Location of the Codex marketplace file relative to a host project root */
12
+ export const CODEX_MARKETPLACE_PATH = path.join(".agents", "plugins", "marketplace.json");
13
+ /** Lisa plugin names exposed to Codex */
14
+ const LISA_CODEX_PLUGINS = [
15
+ "lisa",
16
+ "lisa-typescript",
17
+ "lisa-expo",
18
+ "lisa-nestjs",
19
+ "lisa-cdk",
20
+ "lisa-rails",
21
+ ];
22
+ /** Marketplace category should match each generated `.codex-plugin` manifest. */
23
+ const LISA_CODEX_PLUGIN_CATEGORIES = {
24
+ lisa: "Productivity",
25
+ "lisa-typescript": "Productivity",
26
+ "lisa-expo": "Coding",
27
+ "lisa-nestjs": "Coding",
28
+ "lisa-cdk": "Coding",
29
+ "lisa-rails": "Coding",
30
+ };
31
+ /**
32
+ * Install or merge Lisa's Codex marketplace entries.
33
+ * @param lisaDir - Absolute path to the Lisa repo or installed package root
34
+ * @param destDir - Absolute path to the host project root
35
+ * @returns Install result
36
+ */
37
+ export async function installCodexMarketplace(lisaDir, destDir) {
38
+ const marketplacePath = path.join(destDir, CODEX_MARKETPLACE_PATH);
39
+ await fse.ensureDir(path.dirname(marketplacePath));
40
+ const exists = await fse.pathExists(marketplacePath);
41
+ const existing = exists
42
+ ? JSON.parse(await readFile(marketplacePath, "utf8"))
43
+ : createEmptyMarketplace();
44
+ const merged = mergeLisaMarketplace(existing, lisaDir, destDir);
45
+ await writeFile(marketplacePath, `${JSON.stringify(merged, null, 2)}\n`, "utf8");
46
+ return { created: !exists, pluginEntries: LISA_CODEX_PLUGINS.length };
47
+ }
48
+ /**
49
+ * Merge Lisa plugin entries into an existing marketplace object.
50
+ * @param existing - Existing marketplace JSON
51
+ * @param lisaDir - Lisa package root
52
+ * @param destDir - Host project root
53
+ * @returns Merged marketplace JSON
54
+ */
55
+ export function mergeLisaMarketplace(existing, lisaDir, destDir) {
56
+ const base = normalizeMarketplace(existing);
57
+ const hostPlugins = base.plugins.filter(plugin => !LISA_CODEX_PLUGINS.includes(plugin.name));
58
+ return {
59
+ name: base.name,
60
+ interface: base.interface,
61
+ plugins: [
62
+ ...hostPlugins,
63
+ ...LISA_CODEX_PLUGINS.map(pluginName => lisaPluginMarketplaceEntry(pluginName, lisaDir, destDir)),
64
+ ],
65
+ };
66
+ }
67
+ /**
68
+ * Create Lisa's marketplace shell.
69
+ * @returns Empty Lisa marketplace
70
+ */
71
+ function createEmptyMarketplace() {
72
+ return {
73
+ name: "lisa",
74
+ interface: {
75
+ displayName: "Lisa Plugins",
76
+ },
77
+ plugins: [],
78
+ };
79
+ }
80
+ /**
81
+ * Normalize an arbitrary marketplace object enough for Lisa to merge entries.
82
+ * @param raw - Existing parsed JSON
83
+ * @returns Marketplace fields Lisa preserves
84
+ */
85
+ function normalizeMarketplace(raw) {
86
+ if (raw === null || typeof raw !== "object") {
87
+ return normalizeMarketplace(createEmptyMarketplace());
88
+ }
89
+ const obj = raw;
90
+ return {
91
+ name: typeof obj.name === "string" ? obj.name : "lisa",
92
+ interface: obj.interface !== null && typeof obj.interface === "object"
93
+ ? obj.interface
94
+ : { displayName: "Lisa Plugins" },
95
+ plugins: Array.isArray(obj.plugins)
96
+ ? obj.plugins.filter((plugin) => plugin !== null && typeof plugin === "object")
97
+ : [],
98
+ };
99
+ }
100
+ /**
101
+ * Build one Lisa plugin marketplace entry.
102
+ * @param pluginName - Lisa plugin directory name
103
+ * @param lisaDir - Lisa package root
104
+ * @param destDir - Host project root
105
+ * @returns Marketplace entry
106
+ */
107
+ function lisaPluginMarketplaceEntry(pluginName, lisaDir, destDir) {
108
+ return {
109
+ name: pluginName,
110
+ source: {
111
+ source: "local",
112
+ path: toMarketplaceRelativePath(path.join(lisaDir, "plugins", pluginName), destDir),
113
+ },
114
+ policy: {
115
+ installation: pluginName === "lisa" ? "INSTALLED_BY_DEFAULT" : "AVAILABLE",
116
+ authentication: "ON_INSTALL",
117
+ },
118
+ category: LISA_CODEX_PLUGIN_CATEGORIES[pluginName] ?? "Coding",
119
+ };
120
+ }
121
+ /**
122
+ * Render a marketplace path relative to the host root.
123
+ * @param targetPath - Absolute path to the plugin directory
124
+ * @param destDir - Absolute host root
125
+ * @returns `./`-prefixed POSIX-style relative path
126
+ */
127
+ function toMarketplaceRelativePath(targetPath, destDir) {
128
+ const relative = path.relative(destDir, targetPath).split(path.sep).join("/");
129
+ return relative.startsWith(".") ? relative : `./${relative}`;
130
+ }
131
+ //# sourceMappingURL=plugin-marketplace-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-marketplace-installer.js","sourceRoot":"","sources":["../../src/codex/plugin-marketplace-installer.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ export declare const CONFIG_FILENAME = "config.toml";
10
10
  * 64 KiB. Hosts can override upward if they need more headroom.
11
11
  */
12
12
  export declare const LISA_REQUIRED_SETTINGS: Readonly<Record<string, unknown>>;
13
+ /** Lisa-required feature flags under `[features]` */
14
+ export declare const LISA_REQUIRED_FEATURES: Readonly<Record<string, boolean>>;
13
15
  /** Result of a settings install pass */
14
16
  export interface SettingsInstallResult {
15
17
  /** Files written, relative to `.codex/`. Used to update the manifest. */
@@ -1 +1 @@
1
- {"version":3,"file":"settings-installer.d.ts","sourceRoot":"","sources":["../../src/codex/settings-installer.ts"],"names":[],"mappings":"AAsBA,yDAAyD;AACzD,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEpE,CAAC;AAEF,wCAAwC;AACxC,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAchC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAc1D"}
1
+ {"version":3,"file":"settings-installer.d.ts","sourceRoot":"","sources":["../../src/codex/settings-installer.ts"],"names":[],"mappings":"AAuBA,yDAAyD;AACzD,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEpE,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEpE,CAAC;AAEF,wCAAwC;AACxC,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAchC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAe1D"}