@codyswann/lisa 2.16.6 → 2.16.7
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/.agents/plugins/marketplace.json +80 -0
- package/dist/codex/agent-transformer.js +42 -17
- package/dist/codex/agent-transformer.js.map +1 -1
- package/dist/codex/agents-md-installer.d.ts +1 -1
- package/dist/codex/agents-md-installer.d.ts.map +1 -1
- package/dist/codex/agents-md-installer.js +7 -0
- package/dist/codex/agents-md-installer.js.map +1 -1
- package/dist/codex/command-skill-transformer.d.ts +14 -0
- package/dist/codex/command-skill-transformer.d.ts.map +1 -0
- package/dist/codex/command-skill-transformer.js +106 -0
- package/dist/codex/command-skill-transformer.js.map +1 -0
- package/dist/codex/hooks-installer.d.ts.map +1 -1
- package/dist/codex/hooks-installer.js +24 -0
- package/dist/codex/hooks-installer.js.map +1 -1
- package/dist/codex/plugin-marketplace-installer.d.ts +23 -0
- package/dist/codex/plugin-marketplace-installer.d.ts.map +1 -0
- package/dist/codex/plugin-marketplace-installer.js +131 -0
- package/dist/codex/plugin-marketplace-installer.js.map +1 -0
- package/dist/codex/settings-installer.d.ts +2 -0
- package/dist/codex/settings-installer.d.ts.map +1 -1
- package/dist/codex/settings-installer.js +120 -2
- package/dist/codex/settings-installer.js.map +1 -1
- package/dist/codex/skills-installer.d.ts +1 -12
- package/dist/codex/skills-installer.d.ts.map +1 -1
- package/dist/codex/skills-installer.js +5 -55
- package/dist/codex/skills-installer.js.map +1 -1
- package/dist/core/lisa.d.ts +6 -6
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +9 -7
- package/dist/core/lisa.js.map +1 -1
- package/package.json +2 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +32 -0
- package/plugins/lisa/hooks/hooks.json +104 -0
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +27 -0
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +31 -0
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +31 -0
- package/plugins/lisa-nestjs/hooks/hooks.json +15 -0
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +31 -0
- package/plugins/lisa-rails/hooks/hooks.json +19 -0
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +28 -0
- package/plugins/lisa-typescript/hooks/hooks.json +23 -0
- package/scripts/build-plugins.sh +2 -0
- 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;
|
|
11
|
-
* model: sonnet # optional;
|
|
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
|
-
*
|
|
91
|
-
*
|
|
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
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
""
|
|
107
|
-
|
|
108
|
-
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC;AA0B9C;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,KAAK,GAAG,6CAA6C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAY,CAAC;IACpD,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAmB,EACnB,UAAiC,EAAE;IAEnC,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IACzC,MAAM,SAAS,GAAG,WAAW;QAC3B,CAAC,CAAC,GAAG,sBAAsB,GAAG,QAAQ,EAAE;QACxC,CAAC,CAAC,QAAQ,CAAC;IACb,MAAM,qBAAqB,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAEnE,MAAM,KAAK,GAAG;QACZ,UAAU,UAAU,CAAC,SAAS,CAAC,EAAE;QACjC,iBAAiB,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;QAC7D,4BAA4B,mBAAmB,CAAC,qBAAqB,CAAC,EAAE;KACzE,CAAC;IACF,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAAc,EACd,UAAiC,EAAE;IAEnC,OAAO,oBAAoB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED
|
|
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,
|
|
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
|
|
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;
|
|
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":"
|
|
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"}
|