@amsterdamdatalabs/enact-extensions 0.1.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 (111) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/README.md +88 -0
  3. package/catalog/enact-context.json +9 -0
  4. package/catalog/enact-factory.json +7 -0
  5. package/catalog/enact-operator.json +7 -0
  6. package/catalog/enact-wiki.json +7 -0
  7. package/catalog/net-revenue-management.json +8 -0
  8. package/dist/create/claude.d.ts +3 -0
  9. package/dist/create/claude.d.ts.map +1 -0
  10. package/dist/create/claude.js +12 -0
  11. package/dist/create/claude.js.map +1 -0
  12. package/dist/create/codex.d.ts +3 -0
  13. package/dist/create/codex.d.ts.map +1 -0
  14. package/dist/create/codex.js +14 -0
  15. package/dist/create/codex.js.map +1 -0
  16. package/dist/create/cursor.d.ts +3 -0
  17. package/dist/create/cursor.d.ts.map +1 -0
  18. package/dist/create/cursor.js +20 -0
  19. package/dist/create/cursor.js.map +1 -0
  20. package/dist/create/enact.d.ts +3 -0
  21. package/dist/create/enact.d.ts.map +1 -0
  22. package/dist/create/enact.js +32 -0
  23. package/dist/create/enact.js.map +1 -0
  24. package/dist/create/index.d.ts +18 -0
  25. package/dist/create/index.d.ts.map +1 -0
  26. package/dist/create/index.js +54 -0
  27. package/dist/create/index.js.map +1 -0
  28. package/dist/index.d.ts +14 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +9 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/install.d.ts +60 -0
  33. package/dist/install.d.ts.map +1 -0
  34. package/dist/install.js +250 -0
  35. package/dist/install.js.map +1 -0
  36. package/dist/internal/claude.d.ts +16 -0
  37. package/dist/internal/claude.d.ts.map +1 -0
  38. package/dist/internal/claude.js +35 -0
  39. package/dist/internal/claude.js.map +1 -0
  40. package/dist/internal/codex.d.ts +43 -0
  41. package/dist/internal/codex.d.ts.map +1 -0
  42. package/dist/internal/codex.js +205 -0
  43. package/dist/internal/codex.js.map +1 -0
  44. package/dist/internal/cursor.d.ts +2 -0
  45. package/dist/internal/cursor.d.ts.map +1 -0
  46. package/dist/internal/cursor.js +6 -0
  47. package/dist/internal/cursor.js.map +1 -0
  48. package/dist/internal/io.d.ts +3 -0
  49. package/dist/internal/io.d.ts.map +1 -0
  50. package/dist/internal/io.js +11 -0
  51. package/dist/internal/io.js.map +1 -0
  52. package/dist/internal/pick.d.ts +4 -0
  53. package/dist/internal/pick.d.ts.map +1 -0
  54. package/dist/internal/pick.js +17 -0
  55. package/dist/internal/pick.js.map +1 -0
  56. package/dist/internal/platform.d.ts +21 -0
  57. package/dist/internal/platform.d.ts.map +1 -0
  58. package/dist/internal/platform.js +120 -0
  59. package/dist/internal/platform.js.map +1 -0
  60. package/dist/internal/schema.d.ts +5 -0
  61. package/dist/internal/schema.d.ts.map +1 -0
  62. package/dist/internal/schema.js +37 -0
  63. package/dist/internal/schema.js.map +1 -0
  64. package/dist/internal/types.d.ts +49 -0
  65. package/dist/internal/types.d.ts.map +1 -0
  66. package/dist/internal/types.js +2 -0
  67. package/dist/internal/types.js.map +1 -0
  68. package/dist/validate/claude.d.ts +3 -0
  69. package/dist/validate/claude.d.ts.map +1 -0
  70. package/dist/validate/claude.js +11 -0
  71. package/dist/validate/claude.js.map +1 -0
  72. package/dist/validate/codex.d.ts +3 -0
  73. package/dist/validate/codex.d.ts.map +1 -0
  74. package/dist/validate/codex.js +11 -0
  75. package/dist/validate/codex.js.map +1 -0
  76. package/dist/validate/cursor.d.ts +3 -0
  77. package/dist/validate/cursor.d.ts.map +1 -0
  78. package/dist/validate/cursor.js +11 -0
  79. package/dist/validate/cursor.js.map +1 -0
  80. package/dist/validate/enact.d.ts +4 -0
  81. package/dist/validate/enact.d.ts.map +1 -0
  82. package/dist/validate/enact.js +18 -0
  83. package/dist/validate/enact.js.map +1 -0
  84. package/dist/validate/index.d.ts +17 -0
  85. package/dist/validate/index.d.ts.map +1 -0
  86. package/dist/validate/index.js +99 -0
  87. package/dist/validate/index.js.map +1 -0
  88. package/package.json +58 -0
  89. package/plugins/net-revenue-management/.codex-plugin/plugin.json +35 -0
  90. package/plugins/net-revenue-management/.mcp.json +9 -0
  91. package/plugins/net-revenue-management/skills/net-revenue-risks/SKILL.md +30 -0
  92. package/plugins/net-revenue-management/skills/net-revenue-scenario/SKILL.md +31 -0
  93. package/scripts/enact-extensions.mjs +105 -0
  94. package/scripts/install.sh +70 -0
  95. package/scripts/lib/resolve-plugin-root.mjs +9 -0
  96. package/scripts/lib/run-install.mjs +66 -0
  97. package/scripts/lib/run-sync.mjs +24 -0
  98. package/scripts/lib/run-validate.mjs +36 -0
  99. package/scripts/rename-supervisor-to-operator.pl +66 -0
  100. package/scripts/setup-enact-context.sh +23 -0
  101. package/scripts/sync-manifests.mjs +23 -0
  102. package/scripts/validate-catalog.mjs +37 -0
  103. package/scripts/validate-plugin.mjs +10 -0
  104. package/spec/claude.json +99 -0
  105. package/spec/claude.md +485 -0
  106. package/spec/codex.json +154 -0
  107. package/spec/codex.md +145 -0
  108. package/spec/cursor.json +88 -0
  109. package/spec/cursor.md +175 -0
  110. package/spec/enact.json +211 -0
  111. package/spec/enact.md +204 -0
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "enact-extensions",
3
+ "interface": {
4
+ "displayName": "Enact Extensions"
5
+ },
6
+ "plugins": [
7
+ {
8
+ "name": "net-revenue-management",
9
+ "source": {
10
+ "source": "local",
11
+ "path": "./plugins/net-revenue-management"
12
+ },
13
+ "policy": {
14
+ "installation": "AVAILABLE",
15
+ "authentication": "ON_INSTALL"
16
+ },
17
+ "category": "Analytics"
18
+ }
19
+ ]
20
+ }
package/README.md ADDED
@@ -0,0 +1,88 @@
1
+ # enact-extensions
2
+
3
+ Multi-surface **plugin manifest** tooling for Enact: schemas, validation, sync, and the plugin-dev toolkit for ENACT-native bundles plus derived Claude Code, Codex, and Cursor projections.
4
+
5
+ **Repository:** https://dev.azure.com/amsterdamdatalabs/Enact/_git/enact-extensions
6
+ **Package:** `@enact/extensions`
7
+ **CLI:** `enact-extensions`
8
+
9
+ ## Scope
10
+
11
+ This repo is the manifest tooling package (`@enact/extensions`) plus the bundled `plugin-dev` toolkit under `extensions/`. It owns:
12
+
13
+ - `spec/` — JSON schemas (canonical: `enact.json`) + per-host schemas (`claude-plugin.json`, `codex-plugin.json`, `cursor-plugin.json`)
14
+ - `src/` — `create/*` and `validate/*` TypeScript library
15
+ - `scripts/` — CLI: `enact-extensions` (`validate` | `sync` | `install`, path defaults to cwd)
16
+ - `extensions/` — distributable `plugin-dev` bundle (plugin-development skills, agents, commands)
17
+ - `catalog/` — registered sibling bundle roots for `validate:catalog` (ADR 0010)
18
+
19
+ It does **not** ship product plugins. The consumer product plugins — `enact-context`, `enact-factory`, `enact-operator`, `enact-wiki` — live as **sibling top-level submodules of `enact-os/`**, each owning its own `extensions/` bundle. They are listed in `catalog/` so this repo's `validate:catalog` script can audit them from a single place.
20
+
21
+ ## Surface Contract
22
+
23
+ `extensions/.agents/plugin.json` is the canonical source manifest. `enact-extensions sync` derives `.claude-plugin/`, `.codex-plugin/`, and `.cursor-plugin/` from that source.
24
+
25
+ Author skills, commands, and hooks so they are valid on **all projected surfaces by default**:
26
+
27
+ - Prefer surface-neutral workflow language in `SKILL.md` and hook prompts.
28
+ - Treat ENACT-native `.agents/plugin.json` as the source of truth, not a sidecar.
29
+ - Only use host-specific details when they are truly required, and isolate them clearly in references or host-specific examples.
30
+ - Do not assume a Claude-only tool, env var, or lifecycle quirk unless the same contract exists on Codex and ENACT, or the skill explicitly scopes that instruction.
31
+
32
+ Do not add ad-hoc sibling packages here (for example legacy `enact-feed-*` MCP prototypes).
33
+
34
+ ## Clone
35
+
36
+ ```bash
37
+ git clone https://amsterdamdatalabs@dev.azure.com/amsterdamdatalabs/Enact/_git/enact-extensions
38
+ ```
39
+
40
+ This repo has no submodules of its own. Sibling product packages are submoduled by `enact-os/`, not by `enact-extensions/`.
41
+
42
+ ## Workspace commands
43
+
44
+ ```bash
45
+ npm install
46
+ npm run build
47
+ npm run validate # validate this repo's own extensions/ bundle
48
+ npm run sync # regenerate host manifests for extensions/ from .agents/plugin.json
49
+ npm run validate:catalog
50
+ ```
51
+
52
+ To validate a sibling product bundle (e.g. the operator package at `../enact-operator/extensions`):
53
+
54
+ ```bash
55
+ npm run build
56
+ node scripts/enact-extensions.mjs validate ../enact-operator/extensions
57
+ ```
58
+
59
+ ## CLI (`enact-extensions`)
60
+
61
+ Published from `@enact/extensions`. Path defaults to **cwd**:
62
+
63
+ ```bash
64
+ cd ../enact-operator/extensions
65
+ enact-extensions validate
66
+ enact-extensions sync
67
+ ```
68
+
69
+ Link locally:
70
+
71
+ ```bash
72
+ npm run build && npm link
73
+ ```
74
+
75
+ ## Layout
76
+
77
+ ```text
78
+ enact-extensions/ # @enact/extensions package root
79
+ ├── src/ spec/ scripts/ # manifest library + CLI
80
+ ├── extensions/ # plugin-dev toolkit bundle (this repo's own plugin)
81
+ └── catalog/ # registered sibling bundle roots (validate:catalog target)
82
+ ```
83
+
84
+ ## enact-os integration
85
+
86
+ `enact-os` submodules **this** repo at `enact-extensions/` for manifest tooling, and separately submodules the product packages (`enact-context`, `enact-factory`, `enact-operator`, `enact-wiki`) at top level. Factory and config paths in `enact-os/config.toml` target each product package by its top-level path.
87
+
88
+ Skill or manifest changes for a product plugin ship from that product's own `extensions/` bundle (e.g. `enact-operator/extensions/`); validate with `enact-extensions` from inside that bundle. `@enact/extensions` owns manifest tooling only; `enact-factory setup` or `enact-factory plugins delivery` persists the local install scope.
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "enact-context",
3
+ "repo": "enact-context",
4
+ "bundlePath": "extensions",
5
+ "manifestName": "enact-context",
6
+ "operatorScope": "global",
7
+ "setupCommand": "enact-context setup",
8
+ "supportedAgents": ["claude", "codex", "opencode", "enact", "zed"]
9
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "id": "enact-factory",
3
+ "repo": "enact-factory",
4
+ "bundlePath": "extensions",
5
+ "manifestName": "enact-factory",
6
+ "operatorScope": "global"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "id": "enact-operator",
3
+ "repo": "enact-operator",
4
+ "bundlePath": "extensions",
5
+ "manifestName": "enact-operator",
6
+ "operatorScope": "global"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "id": "enact-wiki",
3
+ "repo": "enact-wiki",
4
+ "bundlePath": "extensions",
5
+ "manifestName": "enact-wiki",
6
+ "operatorScope": "global"
7
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "id": "net-revenue-management",
3
+ "repo": "enact-plugin-net-revenue-management",
4
+ "bundlePath": "plugins/net-revenue-management",
5
+ "manifestName": "net-revenue-management",
6
+ "operatorScope": "global",
7
+ "supportedAgents": ["claude", "codex", "enact", "cursor"]
8
+ }
@@ -0,0 +1,3 @@
1
+ import type { PluginManifest } from "../internal/types.js";
2
+ export declare function deriveClaudeManifest(enact: PluginManifest): PluginManifest;
3
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/create/claude.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAY1E"}
@@ -0,0 +1,12 @@
1
+ import { MANIFEST_FIELDS } from "../internal/platform.js";
2
+ import { pickManifestFields, withPlatformKeyword } from "../internal/pick.js";
3
+ export function deriveClaudeManifest(enact) {
4
+ const picked = pickManifestFields(enact, MANIFEST_FIELDS.claude);
5
+ return {
6
+ ...picked,
7
+ description: (typeof picked.description === "string" ? picked.description : undefined) ??
8
+ `${enact.name} plugin for Claude Code.`,
9
+ keywords: withPlatformKeyword(Array.isArray(picked.keywords) ? picked.keywords : undefined, "claude"),
10
+ };
11
+ }
12
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/create/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,MAAM,UAAU,oBAAoB,CAAC,KAAqB;IACxD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACjE,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EACT,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,GAAG,KAAK,CAAC,IAAI,0BAA0B;QACzC,QAAQ,EAAE,mBAAmB,CAC3B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAqB,CAAC,CAAC,CAAC,SAAS,EAC1E,QAAQ,CACT;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PluginManifest } from "../internal/types.js";
2
+ export declare function deriveCodexManifest(enact: PluginManifest): PluginManifest;
3
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/create/codex.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAczE"}
@@ -0,0 +1,14 @@
1
+ import { MANIFEST_FIELDS } from "../internal/platform.js";
2
+ import { pickManifestFields, withPlatformKeyword } from "../internal/pick.js";
3
+ export function deriveCodexManifest(enact) {
4
+ const picked = pickManifestFields(enact, MANIFEST_FIELDS.codex);
5
+ const iface = enact.interface;
6
+ return {
7
+ ...picked,
8
+ description: (typeof picked.description === "string" ? picked.description : undefined) ??
9
+ `${enact.name} plugin for Codex.`,
10
+ keywords: withPlatformKeyword(Array.isArray(picked.keywords) ? picked.keywords : undefined, "codex"),
11
+ ...(iface && typeof iface === "object" ? { interface: iface } : {}),
12
+ };
13
+ }
14
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/create/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,MAAM,UAAU,mBAAmB,CAAC,KAAqB;IACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9B,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EACT,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,GAAG,KAAK,CAAC,IAAI,oBAAoB;QACnC,QAAQ,EAAE,mBAAmB,CAC3B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAqB,CAAC,CAAC,CAAC,SAAS,EAC1E,OAAO,CACR;QACD,GAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PluginManifest } from "../internal/types.js";
2
+ export declare function deriveCursorManifest(enact: PluginManifest): PluginManifest;
3
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/create/cursor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAsB1E"}
@@ -0,0 +1,20 @@
1
+ import { MANIFEST_FIELDS } from "../internal/platform.js";
2
+ import { pickManifestFields, withPlatformKeyword } from "../internal/pick.js";
3
+ export function deriveCursorManifest(enact) {
4
+ const picked = pickManifestFields(enact, MANIFEST_FIELDS.cursor);
5
+ const iface = enact.interface;
6
+ const logo = iface &&
7
+ typeof iface === "object" &&
8
+ "logo" in iface &&
9
+ typeof iface.logo === "string"
10
+ ? iface.logo
11
+ : undefined;
12
+ return {
13
+ ...picked,
14
+ description: (typeof picked.description === "string" ? picked.description : undefined) ??
15
+ `${enact.name} plugin for Cursor.`,
16
+ keywords: withPlatformKeyword(Array.isArray(picked.keywords) ? picked.keywords : undefined, "cursor"),
17
+ ...(logo ? { logo } : {}),
18
+ };
19
+ }
20
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/create/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,MAAM,UAAU,oBAAoB,CAAC,KAAqB;IACxD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,IAAI,GACR,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,IAAI,KAAK;QACf,OAAQ,KAA2B,CAAC,IAAI,KAAK,QAAQ;QACnD,CAAC,CAAE,KAA0B,CAAC,IAAI;QAClC,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EACT,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,GAAG,KAAK,CAAC,IAAI,qBAAqB;QACpC,QAAQ,EAAE,mBAAmB,CAC3B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAqB,CAAC,CAAC,CAAC,SAAS,EAC1E,QAAQ,CACT;QACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CreateEnactInput, PluginManifest } from "../internal/types.js";
2
+ export declare function createEnactManifest(input: CreateEnactInput): PluginManifest;
3
+ //# sourceMappingURL=enact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enact.d.ts","sourceRoot":"","sources":["../../src/create/enact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG7E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,cAAc,CA6B3E"}
@@ -0,0 +1,32 @@
1
+ import { DEFAULT_PATHS, DEFAULT_TARGETS } from "../internal/platform.js";
2
+ export function createEnactManifest(input) {
3
+ const name = input.name.trim();
4
+ if (!/^[a-z][a-z0-9-]*$/.test(name)) {
5
+ throw new Error(`Invalid plugin name "${name}". Use lowercase kebab-case (e.g. enact-operator).`);
6
+ }
7
+ const manifest = {
8
+ name,
9
+ version: input.version ?? "0.1.0",
10
+ description: input.description ?? `${name} plugin for Enact agents.`,
11
+ author: input.author ?? { name: "amsterdamdatalabs" },
12
+ license: input.license ?? "UNLICENSED",
13
+ targets: input.targets ?? [...DEFAULT_TARGETS],
14
+ skills: DEFAULT_PATHS.skills,
15
+ commands: DEFAULT_PATHS.commands,
16
+ hooks: DEFAULT_PATHS.hooks,
17
+ mcpServers: DEFAULT_PATHS.mcpServers,
18
+ keywords: input.keywords ?? ["enact", name],
19
+ };
20
+ if (input.homepage)
21
+ manifest.homepage = input.homepage;
22
+ if (input.repository)
23
+ manifest.repository = input.repository;
24
+ if (input.interface)
25
+ manifest.interface = input.interface;
26
+ if (input.factory)
27
+ manifest.factory = input.factory;
28
+ if (input.operator)
29
+ manifest.operator = input.operator;
30
+ return manifest;
31
+ }
32
+ //# sourceMappingURL=enact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enact.js","sourceRoot":"","sources":["../../src/create/enact.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEzE,MAAM,UAAU,mBAAmB,CAAC,KAAuB;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,oDAAoD,CACjF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAmB;QAC/B,IAAI;QACJ,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,OAAO;QACjC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,GAAG,IAAI,2BAA2B;QACpE,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE;QACrD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,YAAY;QACtC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,GAAG,eAAe,CAAC;QAC9C,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,QAAQ,EAAE,aAAa,CAAC,QAAQ;QAChC,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,UAAU,EAAE,aAAa,CAAC,UAAU;QACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;KAC5C,CAAC;IAEF,IAAI,KAAK,CAAC,QAAQ;QAAE,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACvD,IAAI,KAAK,CAAC,UAAU;QAAE,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IAC7D,IAAI,KAAK,CAAC,SAAS;QAAE,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAC1D,IAAI,KAAK,CAAC,OAAO;QAAE,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IACpD,IAAI,KAAK,CAAC,QAAQ;QAAE,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEvD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { CreateEnactInput, Platform, PluginManifest, SyncResult, TargetPlatform } from "../internal/types.js";
2
+ export { createEnactManifest } from "./enact.js";
3
+ export { deriveClaudeManifest } from "./claude.js";
4
+ export { deriveCodexManifest } from "./codex.js";
5
+ export { deriveCursorManifest } from "./cursor.js";
6
+ export declare function deriveManifest(platform: TargetPlatform, enact: PluginManifest): PluginManifest;
7
+ export declare function resolveTargets(enact: PluginManifest): TargetPlatform[];
8
+ export type ScaffoldOptions = CreateEnactInput & {
9
+ pluginRoot: string;
10
+ scaffoldDirs?: boolean;
11
+ };
12
+ export declare function scaffoldPlugin(options: ScaffoldOptions): {
13
+ enact: PluginManifest;
14
+ sync: SyncResult[];
15
+ };
16
+ export declare function syncPlatformManifests(pluginRoot: string, enact: PluginManifest, targets?: TargetPlatform[]): SyncResult[];
17
+ export declare function manifestForPlatform(platform: Platform, enact: PluginManifest): PluginManifest;
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/create/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,UAAU,EACV,cAAc,EACf,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAWnD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,cAAc,GACpB,cAAc,CAEhB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,EAAE,CAMtE;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAIF,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG;IACxD,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,UAAU,EAAE,CAAC;CACpB,CASA;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,cAAc,EAAE,GACzB,UAAU,EAAE,CASd;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,cAAc,GACpB,cAAc,CAKhB"}
@@ -0,0 +1,54 @@
1
+ import { mkdirSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { DEFAULT_TARGETS, isTargetPlatform } from "../internal/platform.js";
4
+ import { writePlatformManifest } from "../internal/io.js";
5
+ import { createEnactManifest } from "./enact.js";
6
+ import { deriveClaudeManifest } from "./claude.js";
7
+ import { deriveCodexManifest } from "./codex.js";
8
+ import { deriveCursorManifest } from "./cursor.js";
9
+ export { createEnactManifest } from "./enact.js";
10
+ export { deriveClaudeManifest } from "./claude.js";
11
+ export { deriveCodexManifest } from "./codex.js";
12
+ export { deriveCursorManifest } from "./cursor.js";
13
+ const DERIVERS = {
14
+ claude: deriveClaudeManifest,
15
+ codex: deriveCodexManifest,
16
+ cursor: deriveCursorManifest,
17
+ };
18
+ export function deriveManifest(platform, enact) {
19
+ return DERIVERS[platform](enact);
20
+ }
21
+ export function resolveTargets(enact) {
22
+ const raw = enact.targets;
23
+ if (!Array.isArray(raw)) {
24
+ return [...DEFAULT_TARGETS];
25
+ }
26
+ return raw.filter((t) => typeof t === "string" && isTargetPlatform(t));
27
+ }
28
+ const COMPONENT_DIRS = ["skills", "commands", "hooks", "assets"];
29
+ export function scaffoldPlugin(options) {
30
+ const enact = createEnactManifest(options);
31
+ if (options.scaffoldDirs !== false) {
32
+ for (const dir of COMPONENT_DIRS) {
33
+ mkdirSync(join(options.pluginRoot, dir), { recursive: true });
34
+ }
35
+ }
36
+ const sync = syncPlatformManifests(options.pluginRoot, enact);
37
+ return { enact, sync };
38
+ }
39
+ export function syncPlatformManifests(pluginRoot, enact, targets) {
40
+ const results = [];
41
+ results.push(writePlatformManifest(pluginRoot, "enact", enact));
42
+ const selected = targets ?? resolveTargets(enact);
43
+ for (const platform of selected) {
44
+ results.push(writePlatformManifest(pluginRoot, platform, deriveManifest(platform, enact)));
45
+ }
46
+ return results;
47
+ }
48
+ export function manifestForPlatform(platform, enact) {
49
+ if (platform === "enact") {
50
+ return enact;
51
+ }
52
+ return deriveManifest(platform, enact);
53
+ }
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/create/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type { Platform, TargetPlatform, PluginManifest, ValidationResult, CreateEnactInput, SyncResult, } from "./internal/types.js";
2
+ export type { CodexConfig, CodexConfigProbe, CodexFeatureStatus, CodexInstallHomesOptions, } from "./internal/codex.js";
3
+ export { codexFeatureEnabled, readCodexFeatures } from "./internal/codex.js";
4
+ export { defaultClaudeHome, readKnownMarketplaces, writeKnownMarketplaces, registerLocalMarketplace, } from "./internal/claude.js";
5
+ export { defaultCursorHome } from "./internal/cursor.js";
6
+ export { MANIFEST_BY_PLATFORM, MANIFEST_FIELDS, manifestRelPath, DEFAULT_TARGETS, DEFAULT_PATHS, } from "./internal/platform.js";
7
+ export { defaultCodexHome, defaultEnactHome, ensureMarketplace, ensureMcpServer, isPluginEnabled, readCodexConfig, readCodexConfigProbe, resolveCodexInstallHomes, removeMcpServer, removePluginConfig, setPluginEnabled, writeCodexConfig, } from "./internal/codex.js";
8
+ export { createEnactManifest, deriveClaudeManifest, deriveCodexManifest, deriveCursorManifest, deriveManifest, resolveTargets, scaffoldPlugin, syncPlatformManifests, manifestForPlatform, } from "./create/index.js";
9
+ export { validateEnactManifest, assertEnactManifest, validateClaudeManifest, validateCodexManifest, validateCursorManifest, validateManifest, validatePluginManifest, validatePluginBundle, checkComponentPaths, checkPluginBundleComponentPaths, readManifestFile, } from "./validate/index.js";
10
+ export type { PluginValidationReport } from "./validate/index.js";
11
+ export type { ScaffoldOptions } from "./create/index.js";
12
+ export { installCodexPluginBundle, installPluginBundle, installClaudePluginBundle, installCursorPluginBundle, } from "./install.js";
13
+ export type { CodexPluginInstallOptions, CodexPluginInstallResult, MultiCodexPluginInstallOptions, MultiCodexPluginInstallResult, ClaudePluginInstallOptions, ClaudePluginInstallResult, CursorPluginInstallOptions, CursorPluginInstallResult, } from "./install.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,+BAA+B,EAC/B,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,cAAc,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export { codexFeatureEnabled, readCodexFeatures } from "./internal/codex.js";
2
+ export { defaultClaudeHome, readKnownMarketplaces, writeKnownMarketplaces, registerLocalMarketplace, } from "./internal/claude.js";
3
+ export { defaultCursorHome } from "./internal/cursor.js";
4
+ export { MANIFEST_BY_PLATFORM, MANIFEST_FIELDS, manifestRelPath, DEFAULT_TARGETS, DEFAULT_PATHS, } from "./internal/platform.js";
5
+ export { defaultCodexHome, defaultEnactHome, ensureMarketplace, ensureMcpServer, isPluginEnabled, readCodexConfig, readCodexConfigProbe, resolveCodexInstallHomes, removeMcpServer, removePluginConfig, setPluginEnabled, writeCodexConfig, } from "./internal/codex.js";
6
+ export { createEnactManifest, deriveClaudeManifest, deriveCodexManifest, deriveCursorManifest, deriveManifest, resolveTargets, scaffoldPlugin, syncPlatformManifests, manifestForPlatform, } from "./create/index.js";
7
+ export { validateEnactManifest, assertEnactManifest, validateClaudeManifest, validateCodexManifest, validateCursorManifest, validateManifest, validatePluginManifest, validatePluginBundle, checkComponentPaths, checkPluginBundleComponentPaths, readManifestFile, } from "./validate/index.js";
8
+ export { installCodexPluginBundle, installPluginBundle, installClaudePluginBundle, installCursorPluginBundle, } from "./install.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,+BAA+B,EAC/B,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,cAAc,CAAC"}
@@ -0,0 +1,60 @@
1
+ import type { SyncResult } from "./internal/types.js";
2
+ export interface CodexPluginInstallOptions {
3
+ pluginRoot: string;
4
+ codexHome?: string;
5
+ marketplaceName?: string;
6
+ enable?: boolean;
7
+ sync?: boolean;
8
+ }
9
+ export interface MultiCodexPluginInstallOptions extends CodexPluginInstallOptions {
10
+ cwd?: string;
11
+ }
12
+ export interface CodexPluginInstallResult {
13
+ name: string;
14
+ version: string;
15
+ marketplaceName: string;
16
+ pluginConfigKey: string;
17
+ configPath: string;
18
+ marketplacePath: string;
19
+ marketplacePluginPath: string;
20
+ installedPluginPath: string;
21
+ cachePluginPath: string;
22
+ refreshedPaths: string[];
23
+ syncResults: SyncResult[];
24
+ }
25
+ export interface MultiCodexPluginInstallResult {
26
+ codexHomes: string[];
27
+ results: CodexPluginInstallResult[];
28
+ }
29
+ export interface ClaudePluginInstallOptions {
30
+ pluginRoot: string;
31
+ claudeHome?: string;
32
+ marketplaceName?: string;
33
+ sync?: boolean;
34
+ }
35
+ export interface ClaudePluginInstallResult {
36
+ name: string;
37
+ version: string;
38
+ marketplaceName: string;
39
+ marketplaceDir: string;
40
+ installedPluginPath: string;
41
+ refreshedPaths: string[];
42
+ syncResults: SyncResult[];
43
+ }
44
+ export interface CursorPluginInstallOptions {
45
+ pluginRoot: string;
46
+ cursorHome?: string;
47
+ sync?: boolean;
48
+ }
49
+ export interface CursorPluginInstallResult {
50
+ name: string;
51
+ version: string;
52
+ installedPluginPath: string;
53
+ refreshedPaths: string[];
54
+ syncResults: SyncResult[];
55
+ }
56
+ export declare function installCodexPluginBundle(options: CodexPluginInstallOptions): CodexPluginInstallResult;
57
+ export declare function installPluginBundle(options: MultiCodexPluginInstallOptions): MultiCodexPluginInstallResult;
58
+ export declare function installClaudePluginBundle(options: ClaudePluginInstallOptions): ClaudePluginInstallResult;
59
+ export declare function installCursorPluginBundle(options: CursorPluginInstallOptions): CursorPluginInstallResult;
60
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAkB,UAAU,EAAkB,MAAM,qBAAqB,CAAC;AAYtF,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,8BAA+B,SAAQ,yBAAyB;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,wBAAwB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AA0KD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,wBAAwB,CAoDrG;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,8BAA8B,GAAG,6BAA6B,CAY1G;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,yBAAyB,CA2BxG;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,yBAAyB,CAsBxG"}