agent-switchboard 0.2.3 → 0.3.1

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 (104) hide show
  1. package/README.md +29 -28
  2. package/dist/agents/registry.d.ts +0 -6
  3. package/dist/agents/registry.js +0 -13
  4. package/dist/agents/registry.js.map +1 -1
  5. package/dist/commands/distribution.d.ts +3 -4
  6. package/dist/commands/distribution.js +18 -116
  7. package/dist/commands/distribution.js.map +1 -1
  8. package/dist/config/application-config.d.ts +1 -1
  9. package/dist/config/application-config.js +2 -10
  10. package/dist/config/application-config.js.map +1 -1
  11. package/dist/config/mcp-config.js +1 -3
  12. package/dist/config/mcp-config.js.map +1 -1
  13. package/dist/config/paths.d.ts +11 -7
  14. package/dist/config/paths.js +29 -9
  15. package/dist/config/paths.js.map +1 -1
  16. package/dist/config/schemas.d.ts +331 -43
  17. package/dist/config/schemas.js +109 -15
  18. package/dist/config/schemas.js.map +1 -1
  19. package/dist/config/switchboard-config.js +0 -1
  20. package/dist/config/switchboard-config.js.map +1 -1
  21. package/dist/extensions/api.d.ts +49 -0
  22. package/dist/extensions/api.js +41 -0
  23. package/dist/extensions/api.js.map +1 -0
  24. package/dist/extensions/loader.d.ts +17 -0
  25. package/dist/extensions/loader.js +73 -0
  26. package/dist/extensions/loader.js.map +1 -0
  27. package/dist/hooks/distribution.js +1 -16
  28. package/dist/hooks/distribution.js.map +1 -1
  29. package/dist/index.js +77 -123
  30. package/dist/index.js.map +1 -1
  31. package/dist/library/distribute-bundle.js +1 -19
  32. package/dist/library/distribute-bundle.js.map +1 -1
  33. package/dist/library/fs.d.ts +12 -0
  34. package/dist/library/fs.js +81 -0
  35. package/dist/library/fs.js.map +1 -1
  36. package/dist/library/sources.d.ts +6 -1
  37. package/dist/library/sources.js +73 -16
  38. package/dist/library/sources.js.map +1 -1
  39. package/dist/rules/agents.d.ts +0 -4
  40. package/dist/rules/agents.js +0 -10
  41. package/dist/rules/agents.js.map +1 -1
  42. package/dist/rules/distribution.d.ts +1 -2
  43. package/dist/rules/distribution.js +20 -79
  44. package/dist/rules/distribution.js.map +1 -1
  45. package/dist/skills/distribution.d.ts +0 -22
  46. package/dist/skills/distribution.js +70 -185
  47. package/dist/skills/distribution.js.map +1 -1
  48. package/dist/skills/importer.js +2 -33
  49. package/dist/skills/importer.js.map +1 -1
  50. package/dist/subagents/codex-distribute.d.ts +13 -0
  51. package/dist/subagents/codex-distribute.js +273 -0
  52. package/dist/subagents/codex-distribute.js.map +1 -0
  53. package/dist/subagents/distribution.d.ts +3 -4
  54. package/dist/subagents/distribution.js +30 -410
  55. package/dist/subagents/distribution.js.map +1 -1
  56. package/dist/targets/builtin/claude-code.d.ts +2 -0
  57. package/dist/targets/builtin/claude-code.js +73 -0
  58. package/dist/targets/builtin/claude-code.js.map +1 -0
  59. package/dist/targets/builtin/claude-desktop.d.ts +2 -0
  60. package/dist/targets/builtin/claude-desktop.js +14 -0
  61. package/dist/targets/builtin/claude-desktop.js.map +1 -0
  62. package/dist/targets/builtin/codex.d.ts +3 -0
  63. package/dist/targets/builtin/codex.js +57 -0
  64. package/dist/targets/builtin/codex.js.map +1 -0
  65. package/dist/targets/builtin/common.d.ts +22 -0
  66. package/dist/targets/builtin/common.js +55 -0
  67. package/dist/targets/builtin/common.js.map +1 -0
  68. package/dist/targets/builtin/cursor.d.ts +2 -0
  69. package/dist/targets/builtin/cursor.js +95 -0
  70. package/dist/targets/builtin/cursor.js.map +1 -0
  71. package/dist/targets/builtin/gemini.d.ts +2 -0
  72. package/dist/targets/builtin/gemini.js +62 -0
  73. package/dist/targets/builtin/gemini.js.map +1 -0
  74. package/dist/targets/builtin/index.d.ts +10 -0
  75. package/dist/targets/builtin/index.js +19 -0
  76. package/dist/targets/builtin/index.js.map +1 -0
  77. package/dist/targets/builtin/opencode.d.ts +2 -0
  78. package/dist/targets/builtin/opencode.js +67 -0
  79. package/dist/targets/builtin/opencode.js.map +1 -0
  80. package/dist/targets/builtin/trae.d.ts +3 -0
  81. package/dist/targets/builtin/trae.js +56 -0
  82. package/dist/targets/builtin/trae.js.map +1 -0
  83. package/dist/targets/dsl/compiler.d.ts +13 -0
  84. package/dist/targets/dsl/compiler.js +215 -0
  85. package/dist/targets/dsl/compiler.js.map +1 -0
  86. package/dist/targets/dsl/index.d.ts +2 -0
  87. package/dist/targets/dsl/index.js +3 -0
  88. package/dist/targets/dsl/index.js.map +1 -0
  89. package/dist/targets/dsl/transforms.d.ts +77 -0
  90. package/dist/targets/dsl/transforms.js +159 -0
  91. package/dist/targets/dsl/transforms.js.map +1 -0
  92. package/dist/targets/init.d.ts +14 -0
  93. package/dist/targets/init.js +28 -0
  94. package/dist/targets/init.js.map +1 -0
  95. package/dist/targets/registry.d.ts +38 -0
  96. package/dist/targets/registry.js +101 -0
  97. package/dist/targets/registry.js.map +1 -0
  98. package/dist/targets/types.d.ts +93 -0
  99. package/dist/targets/types.js +28 -0
  100. package/dist/targets/types.js.map +1 -0
  101. package/dist/ui/plugin-ui.d.ts +1 -1
  102. package/dist/ui/plugin-ui.js +5 -12
  103. package/dist/ui/plugin-ui.js.map +1 -1
  104. package/package.json +1 -1
package/README.md CHANGED
@@ -30,17 +30,17 @@ Library entries are agent-agnostic Markdown files (or directories for skills, JS
30
30
 
31
31
  ## Compatibility
32
32
 
33
- | Feature | Claude Code | Codex | Cursor | Gemini | OpenCode | Claude Desktop |
34
- |:-----------------|:-----------:|:-----:|:------:|:------:|:--------:|:--------------:|
35
- | MCP servers | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
36
- | Project-level MCP| ✓ | ✓ | ✓ | ✓ | ✓ | |
37
- | Rules | ✓ | ✓ | ✓ mdc | ✓ | ✓ | |
38
- | Commands | ✓ | ✓\* | ✓ | ✓ | ✓ | |
39
- | Agents | ✓ | | ✓ | | ✓ | |
40
- | Skills | ✓ | ✓ | ✓ | ✓ | ✓ | |
41
- | Hooks | ✓ | | | | | |
42
-
43
- \* Codex commands use deprecated `~/.codex/prompts/`; prefer skills instead.
33
+ | Feature | Claude Code | Codex | Cursor | Gemini | OpenCode | Trae | Claude Desktop |
34
+ |:-----------------|:-----------:|:-----:|:------:|:------:|:--------:|:----:|:--------------:|
35
+ | MCP servers | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
36
+ | Project-level MCP| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
37
+ | Rules | ✓ | ✓ | ✓ mdc | ✓ | ✓ | ✓ | |
38
+ | Commands | ✓ | ✓\* | ✓ | ✓ | ✓ | | |
39
+ | Agents | ✓ || ✓ | | ✓ | | |
40
+ | Skills | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
41
+ | Hooks | ✓ | | | | | | |
42
+
43
+ \* Codex commands use deprecated `~/.codex/prompts/`; prefer skills instead. Trae column applies to both `trae` and `trae-cn` variants.
44
44
 
45
45
  Cursor rules are composed into a single `asb-rules.mdc` file at `~/.cursor/rules/` with `alwaysApply: true`.
46
46
 
@@ -94,8 +94,8 @@ Library content lives under `~/.agent-switchboard/` and agent configs are update
94
94
  | `asb plugin list` | List all discovered plugins and their states |
95
95
  | `asb plugin info <ref>` | Show plugin details and components |
96
96
  | `asb plugin enable <ref>` | Enable a plugin |
97
- | `asb plugin disable <ref>` | Disable a plugin (keep in config) |
98
- | `asb plugin uninstall <ref>` | Remove a plugin from enabled config |
97
+ | `asb plugin disable <ref>` | Remove a plugin from the enabled list |
98
+ | `asb plugin uninstall <ref>` | Alias for `disable` |
99
99
  | `asb plugin marketplace add` | Add a plugin source (local path or git URL) |
100
100
  | `asb plugin marketplace remove` | Remove a plugin source |
101
101
  | `asb plugin marketplace list` | List configured plugin sources |
@@ -121,21 +121,18 @@ includeDelimiters = false
121
121
  [commands]
122
122
  enabled = ["docs", "deploy"]
123
123
 
124
+ [plugins]
125
+ enabled = ["context7", "plugin-a@team-lib"]
126
+
124
127
  [plugins.sources]
125
- context7 = "/path/to/context7-plugin"
126
128
  team-lib = "https://github.com/org/team-library"
127
-
128
- [plugins.enabled]
129
- context7 = true
130
- "plugin-a@team-lib" = true
131
- "plugin-b@team-lib" = false
132
129
  ```
133
130
 
134
- Supported application IDs: `claude-code`, `claude-desktop`, `codex`, `cursor`, `gemini`, `opencode`.
131
+ Supported application IDs: `claude-code`, `claude-desktop`, `codex`, `cursor`, `gemini`, `opencode`, `trae`, `trae-cn`.
135
132
 
136
- Entry-level sections (`rules`, `commands`, `agents`, `skills`, `hooks`) use `enabled = [...]` where array order defines composition priority. Plugin references in `enabled` arrays use `plugin:bareId` or `plugin@source:bareId` syntax.
133
+ All entry-level sections (`rules`, `commands`, `agents`, `skills`, `hooks`, `plugins`) use `enabled = [...]` where array order defines composition priority. Plugin references in `enabled` arrays use `plugin:bareId` or `plugin@source:bareId` syntax.
137
134
 
138
- `[plugins.enabled]` is a boolean map with three states: `true` (enabled), `false` (disabled but tracked), absent (uninstalled).
135
+ The `[plugins.sources]` sub-table declares explicit plugin locations. Local plugins in `~/.asb/plugins/` are auto-discovered without configuration.
139
136
 
140
137
  ### Per-Application Overrides
141
138
 
@@ -225,6 +222,8 @@ The interactive selector lets you **reorder** snippets. For most agents, rules a
225
222
  | Cursor | `~/.cursor/rules/asb-rules.mdc` | `<project>/.cursor/rules/asb-rules.mdc` |
226
223
  | Gemini | `~/.gemini/AGENTS.md` | `<project>/.gemini/AGENTS.md` |
227
224
  | OpenCode | `~/.config/opencode/AGENTS.md` | `<project>/AGENTS.md` |
225
+ | Trae | `~/.trae/user_rules/asb-rules.md` | `<project>/.trae/rules/asb-rules.md` |
226
+ | Trae-CN | `~/.trae-cn/user_rules/asb-rules.md` | `<project>/.trae/rules/asb-rules.md` |
228
227
 
229
228
  ### Commands
230
229
 
@@ -245,7 +244,7 @@ Same format as commands, stored in `~/.agent-switchboard/agents/`.
245
244
  asb agent load claude-code # import from ~/.claude/agents/
246
245
  ```
247
246
 
248
- Platforms: `claude-code`, `opencode`, `cursor`.
247
+ Platforms: `claude-code`, `codex`, `cursor`, `opencode`.
249
248
 
250
249
  ### Skills
251
250
 
@@ -305,15 +304,17 @@ No manifest is required. A bare directory with just `rules/` and `skills/` subdi
305
304
 
306
305
  ### Sources
307
306
 
308
- Plugin sources are registered in `[plugins.sources]` and can be a local path, a Git URL, or a GitHub tree URL:
307
+ Plugin sources are declared in `[plugins.sources]`:
309
308
 
310
309
  ```toml
311
310
  [plugins.sources]
312
311
  my-plugin = "/path/to/my-plugin"
313
- team-lib = "https://github.com/org/team-library"
314
- mono-sub = "https://github.com/org/monorepo/tree/main/plugins/my-plugin"
312
+ team-lib = "https://github.com/org/team-library"
313
+ mono-sub = "https://github.com/org/monorepo/tree/main/plugins/my-plugin"
315
314
  ```
316
315
 
316
+ Local plugins placed in `~/.asb/plugins/` are auto-discovered without explicit configuration.
317
+
317
318
  ASB auto-detects two source kinds:
318
319
 
319
320
  | Kind | Detection | Structure |
@@ -330,8 +331,8 @@ asb plugin marketplace list # list sources
330
331
  asb plugin marketplace remove my-plugin # remove source
331
332
 
332
333
  asb plugin enable context7 # activate (all components enter distribution)
333
- asb plugin disable context7 # deactivate (keep in config)
334
- asb plugin uninstall context7 # remove from config
334
+ asb plugin disable context7 # remove from the enabled list
335
+ asb plugin uninstall context7 # alias for disable
335
336
  asb plugin list # show all discovered plugins
336
337
  asb plugin info context7 # show plugin details + components
337
338
  ```
@@ -15,9 +15,3 @@ export declare function getAgentById(id: string): AgentAdapter;
15
15
  * @returns Array of agent IDs
16
16
  */
17
17
  export declare function supportedAgentIds(): string[];
18
- /**
19
- * Register a new agent adapter
20
- * Used for dynamic registration or testing
21
- * @param adapter - Agent adapter to register
22
- */
23
- export declare function registerAgent(adapter: AgentAdapter): void;
@@ -43,17 +43,4 @@ export function getAgentById(id) {
43
43
  export function supportedAgentIds() {
44
44
  return agents.map((a) => a.id);
45
45
  }
46
- /**
47
- * Register a new agent adapter
48
- * Used for dynamic registration or testing
49
- * @param adapter - Agent adapter to register
50
- */
51
- export function registerAgent(adapter) {
52
- // Check if already registered
53
- const exists = agents.find((a) => a.id === adapter.id);
54
- if (exists) {
55
- throw new Error(`Agent ${adapter.id} is already registered`);
56
- }
57
- agents.push(adapter);
58
- }
59
46
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,GAAmB;IAC7B,IAAI,eAAe,EAAE;IACrB,IAAI,kBAAkB,EAAE;IACxB,IAAI,UAAU,EAAE;IAChB,IAAI,WAAW,EAAE;IACjB,IAAI,WAAW,EAAE;IACjB,IAAI,aAAa,EAAE;IACnB,IAAI,SAAS,CAAC,MAAM,CAAC;IACrB,IAAI,SAAS,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,uBAAuB,iBAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChG,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,8BAA8B;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;IACvD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,CAAC,EAAE,wBAAwB,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,GAAmB;IAC7B,IAAI,eAAe,EAAE;IACrB,IAAI,kBAAkB,EAAE;IACxB,IAAI,UAAU,EAAE;IAChB,IAAI,WAAW,EAAE;IACjB,IAAI,WAAW,EAAE;IACjB,IAAI,aAAa,EAAE;IACnB,IAAI,SAAS,CAAC,MAAM,CAAC;IACrB,IAAI,SAAS,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,uBAAuB,iBAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChG,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC"}
@@ -1,13 +1,12 @@
1
1
  import type { ConfigScope } from '../config/scope.js';
2
2
  import { type DistributeOutcome } from '../library/distribute.js';
3
- export type CommandPlatform = 'claude-code' | 'codex' | 'cursor' | 'gemini' | 'opencode';
4
3
  export interface CommandDistributionResult {
5
- platform: CommandPlatform;
4
+ platform: string;
6
5
  filePath: string;
7
6
  status: 'written' | 'skipped' | 'error';
8
7
  reason?: string;
9
8
  error?: string;
10
9
  }
11
- export type CommandDistributionOutcome = DistributeOutcome<CommandPlatform>;
12
- export declare function resolveCommandFilePath(platform: CommandPlatform, id: string, scope?: ConfigScope): string;
10
+ export type CommandDistributionOutcome = DistributeOutcome<string>;
11
+ export declare function resolveCommandFilePath(platform: string, id: string, scope?: ConfigScope): string;
13
12
  export declare function distributeCommands(scope?: ConfigScope): CommandDistributionOutcome;
@@ -1,123 +1,25 @@
1
1
  import path from 'node:path';
2
- import { stringify as toToml } from '@iarna/toml';
3
- import { getClaudeDir, getCodexDir, getCursorDir, getGeminiDir, getOpencodePath, getProjectClaudeDir, getProjectCursorDir, getProjectGeminiDir, getProjectOpencodePath, } from '../config/paths.js';
4
2
  import { distributeLibrary, } from '../library/distribute.js';
5
3
  import { loadLibraryStateSectionForApplication } from '../library/state.js';
6
- import { wrapFrontmatter } from '../util/frontmatter.js';
4
+ import { filterInstalled, getTargetById, getTargetsForSection } from '../targets/registry.js';
7
5
  import { loadCommandLibrary } from './library.js';
8
- /**
9
- * Map platform to agent ID for per-agent configuration lookup
10
- */
11
- function platformToAgentId(platform) {
12
- return platform;
13
- }
14
6
  export function resolveCommandFilePath(platform, id, scope) {
15
- return path.join(resolveCommandTargetDir(platform, scope), getCommandFilename(platform, id));
16
- }
17
- function resolveCommandTargetDir(platform, scope) {
18
- const projectRoot = scope?.project?.trim();
19
- switch (platform) {
20
- case 'claude-code': {
21
- if (projectRoot && projectRoot.length > 0) {
22
- return path.join(getProjectClaudeDir(projectRoot), 'commands');
23
- }
24
- return path.join(getClaudeDir(), 'commands');
25
- }
26
- case 'codex': {
27
- return path.join(getCodexDir(), 'prompts');
28
- }
29
- case 'cursor': {
30
- if (projectRoot && projectRoot.length > 0) {
31
- return path.join(getProjectCursorDir(projectRoot), 'commands');
32
- }
33
- return path.join(getCursorDir(), 'commands');
34
- }
35
- case 'gemini': {
36
- if (projectRoot && projectRoot.length > 0) {
37
- return path.join(getProjectGeminiDir(projectRoot), 'commands');
38
- }
39
- return path.join(getGeminiDir(), 'commands');
40
- }
41
- case 'opencode': {
42
- if (projectRoot && projectRoot.length > 0) {
43
- return getProjectOpencodePath(projectRoot, 'command');
44
- }
45
- return getOpencodePath('command');
46
- }
47
- }
48
- }
49
- function getCommandFilename(platform, id) {
50
- return platform === 'gemini' ? `${id}.toml` : `${id}.md`;
51
- }
52
- function buildFrontmatterForClaude(entry) {
53
- const base = {};
54
- if (entry.metadata.description)
55
- base.description = entry.metadata.description;
56
- const extras = entry.metadata.extras;
57
- const cc = extras?.['claude-code'] ?? undefined;
58
- if (cc && typeof cc === 'object') {
59
- for (const [k, v] of Object.entries(cc))
60
- base[k] = v;
61
- }
62
- return base;
63
- }
64
- function buildFrontmatterForOpencode(entry) {
65
- const extras = entry.metadata.extras;
66
- const opencode = extras?.opencode ?? undefined;
67
- const base = {};
68
- if (entry.metadata.description)
69
- base.description = entry.metadata.description;
70
- if (opencode && typeof opencode === 'object') {
71
- for (const [k, v] of Object.entries(opencode))
72
- base[k] = v;
73
- }
74
- return base;
75
- }
76
- function renderForPlatform(platform, entry) {
77
- switch (platform) {
78
- case 'claude-code': {
79
- const fm = buildFrontmatterForClaude(entry);
80
- return wrapFrontmatter(fm, entry.content);
81
- }
82
- case 'codex': {
83
- const desc = entry.metadata.description?.trim();
84
- const header = desc && desc.length > 0 ? `<!-- ${desc} -->\n\n` : '';
85
- return (`<!-- [deprecated] Codex custom prompts are deprecated. Consider migrating to skills: https://developers.openai.com/codex/skills -->\n\n` +
86
- `${header}${entry.content.trimStart()}`);
87
- }
88
- case 'gemini': {
89
- const extras = entry.metadata.extras;
90
- const g = extras?.gemini ?? undefined;
91
- const obj = {
92
- prompt: entry.content.trimStart(),
93
- };
94
- if (entry.metadata.description)
95
- obj.description = entry.metadata.description;
96
- if (g && typeof g === 'object') {
97
- for (const [k, v] of Object.entries(g))
98
- obj[k] = v;
99
- }
100
- // biome-ignore lint/suspicious/noExplicitAny: TOML stringify expects JSON-like values; cast is safe here
101
- return toToml(obj);
102
- }
103
- case 'opencode': {
104
- const fm = buildFrontmatterForOpencode(entry);
105
- return wrapFrontmatter(fm, entry.content);
106
- }
107
- case 'cursor': {
108
- return `${entry.content.trimEnd()}\n`;
109
- }
7
+ const target = getTargetById(platform);
8
+ if (!target?.commands) {
9
+ throw new Error(`Unknown command platform: ${platform}`);
110
10
  }
11
+ const h = target.commands;
12
+ return path.join(h.resolveTargetDir(scope), h.getFilename(id));
111
13
  }
112
14
  export function distributeCommands(scope) {
113
15
  const entries = loadCommandLibrary();
114
16
  const byId = new Map(entries.map((e) => [e.id, e]));
115
- const platforms = ['claude-code', 'codex', 'cursor', 'gemini', 'opencode'];
116
- // Cleanup config to remove orphan command files
17
+ const targets = filterInstalled(getTargetsForSection('commands'));
18
+ const handlerMap = new Map(targets.map((t) => [t.id, t.commands]));
19
+ const platforms = targets.map((t) => t.id);
117
20
  const cleanup = {
118
- resolveTargetDir: (p) => resolveCommandTargetDir(p, scope),
21
+ resolveTargetDir: (p) => handlerMap.get(p).resolveTargetDir(scope),
119
22
  extractId: (filename) => {
120
- // Try both extensions since we don't know platform in extractId
121
23
  if (filename.endsWith('.toml'))
122
24
  return filename.slice(0, -5);
123
25
  if (filename.endsWith('.md'))
@@ -125,10 +27,8 @@ export function distributeCommands(scope) {
125
27
  return null;
126
28
  },
127
29
  };
128
- // Filter entries based on per-agent configuration
129
30
  const filterSelected = (platform, _allEntries) => {
130
- const agentId = platformToAgentId(platform);
131
- const state = loadLibraryStateSectionForApplication('commands', agentId, scope);
31
+ const state = loadLibraryStateSectionForApplication('commands', platform, scope);
132
32
  const activeIds = state.enabled;
133
33
  const selected = [];
134
34
  for (const id of activeIds) {
@@ -140,19 +40,21 @@ export function distributeCommands(scope) {
140
40
  };
141
41
  const outcome = distributeLibrary({
142
42
  section: 'commands',
143
- selected: entries, // Pass all entries, filtering happens per-platform
43
+ selected: entries,
144
44
  platforms,
145
- resolveFilePath: (p, e) => resolveCommandFilePath(p, e.id, scope),
146
- render: (p, e) => renderForPlatform(p, e),
45
+ resolveFilePath: (p, e) => {
46
+ const h = handlerMap.get(p);
47
+ return path.join(h.resolveTargetDir(scope), h.getFilename(e.id));
48
+ },
49
+ render: (p, e) => handlerMap.get(p).render(e),
147
50
  getId: (e) => e.id,
148
51
  cleanup,
149
52
  scope,
150
53
  filterSelected,
151
54
  });
152
- // Warn about Codex custom prompts deprecation
153
55
  const codexWrites = outcome.results.filter((r) => r.platform === 'codex' && r.status === 'written');
154
56
  if (codexWrites.length > 0) {
155
- console.warn(`[codex] Custom prompts are deprecated. Consider migrating to skills: https://developers.openai.com/codex/skills`);
57
+ console.warn('[codex] Custom prompts are deprecated. Consider migrating to skills: https://developers.openai.com/codex/skills');
156
58
  }
157
59
  return outcome;
158
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/commands/distribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/commands/distribution.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ export declare function getApplicationsWithOverrides(config: SwitchboardConfig):
38
38
  /**
39
39
  * Resolve the effective enabled list for a section, merging:
40
40
  * 1. Global `config.<section>.enabled`
41
- * 2. Plugin expansion: `config.plugins.enabled` (true keys) -> PluginIndex.expand -> per-section IDs
41
+ * 2. Plugin expansion: `config.plugins.enabled` -> PluginIndex.expand -> per-section IDs
42
42
  * 3. Plugin exclude: `config.plugins.exclude.<section>` removals
43
43
  * 4. Per-application overrides (`add`/`remove`/`enabled`)
44
44
  *
@@ -82,18 +82,10 @@ export function getApplicationsWithOverrides(config) {
82
82
  return result;
83
83
  }
84
84
  // ── Plugin-aware effective config ──────────────────────────────────
85
- /**
86
- * Get enabled plugin refs from `plugins.enabled` boolean map (true keys only).
87
- */
88
- function getEnabledPluginRefs(config) {
89
- return Object.entries(config.plugins.enabled)
90
- .filter(([, v]) => v === true)
91
- .map(([k]) => k);
92
- }
93
85
  /**
94
86
  * Resolve the effective enabled list for a section, merging:
95
87
  * 1. Global `config.<section>.enabled`
96
- * 2. Plugin expansion: `config.plugins.enabled` (true keys) -> PluginIndex.expand -> per-section IDs
88
+ * 2. Plugin expansion: `config.plugins.enabled` -> PluginIndex.expand -> per-section IDs
97
89
  * 3. Plugin exclude: `config.plugins.exclude.<section>` removals
98
90
  * 4. Per-application overrides (`add`/`remove`/`enabled`)
99
91
  *
@@ -104,7 +96,7 @@ export function resolveEffectiveSectionConfig(section, appId, scope) {
104
96
  const layerOptions = scopeToLayerOptions(scope);
105
97
  const { config } = loadMergedSwitchboardConfig(layerOptions);
106
98
  const globalEnabled = [...config[section].enabled];
107
- const enabledPluginRefs = getEnabledPluginRefs(config);
99
+ const { enabled: enabledPluginRefs } = config.plugins;
108
100
  let merged;
109
101
  if (enabledPluginRefs.length > 0) {
110
102
  const index = buildPluginIndex(scope);
@@ -1 +1 @@
1
- {"version":3,"file":"application-config.js","sourceRoot":"","sources":["../../src/config/application-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application-config.js","sourceRoot":"","sources":["../../src/config/application-config.ts"],"names":[],"mappings":"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"}
@@ -62,9 +62,7 @@ export function loadMcpConfigWithPlugins() {
62
62
  if (pluginIndex.mcpServers.length === 0)
63
63
  return base;
64
64
  const config = loadSwitchboardConfig();
65
- const enabledPlugins = new Set(Object.entries(config.plugins.enabled)
66
- .filter(([, v]) => v === true)
67
- .map(([k]) => k));
65
+ const enabledPlugins = new Set(config.plugins.enabled);
68
66
  const merged = { ...base.mcpServers };
69
67
  for (const ps of pluginIndex.mcpServers) {
70
68
  if (!(ps.serverId in merged) && enabledPlugins.has(ps.pluginId)) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../src/config/mcp-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../src/config/mcp-config.ts"],"names":[],"mappings":"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"}
@@ -19,10 +19,8 @@ export declare function getConfigDir(): string;
19
19
  */
20
20
  export declare function getMcpConfigPath(): string;
21
21
  /**
22
- * Returns the absolute path to the Agent Switchboard config file (config.toml)
23
- * This file stores the list of agents to apply MCP configs to
24
- *
25
- * @returns {string} Absolute path to ~/.agent-switchboard/config.toml
22
+ * Returns the absolute path to the Agent Switchboard config file (config.toml).
23
+ * Resolution: ASB_CONFIG env var > <ASB_HOME>/config.toml
26
24
  */
27
25
  export declare function getSwitchboardConfigPath(): string;
28
26
  /**
@@ -55,9 +53,15 @@ export declare function getSkillsDir(): string;
55
53
  */
56
54
  export declare function getHooksDir(): string;
57
55
  /**
58
- * Returns the directory for remote source clones.
59
- * Without namespace: returns the base marketplaces dir (~/.asb/marketplaces/).
60
- * With namespace: returns the namespace-specific dir (~/.asb/marketplaces/<namespace>/).
56
+ * Returns the plugins directory (~/.asb/plugins/).
57
+ * Local plugin sources can be placed here and referenced by short name.
58
+ */
59
+ export declare function getPluginsDir(): string;
60
+ /**
61
+ * Returns the directory for remote source clones (~/.asb/plugins/.cache/).
62
+ * Migrates transparently from the legacy ~/.asb/marketplaces/ location.
63
+ * Without namespace: returns the base cache dir.
64
+ * With namespace: returns the namespace-specific dir.
61
65
  */
62
66
  export declare function getSourceCacheDir(namespace?: string): string;
63
67
  /**
@@ -40,12 +40,13 @@ export function getMcpConfigPath() {
40
40
  return path.join(getConfigDir(), 'mcp.json');
41
41
  }
42
42
  /**
43
- * Returns the absolute path to the Agent Switchboard config file (config.toml)
44
- * This file stores the list of agents to apply MCP configs to
45
- *
46
- * @returns {string} Absolute path to ~/.agent-switchboard/config.toml
43
+ * Returns the absolute path to the Agent Switchboard config file (config.toml).
44
+ * Resolution: ASB_CONFIG env var > <ASB_HOME>/config.toml
47
45
  */
48
46
  export function getSwitchboardConfigPath() {
47
+ const override = process.env.ASB_CONFIG?.trim();
48
+ if (override && override.length > 0)
49
+ return override;
49
50
  return path.join(getConfigDir(), 'config.toml');
50
51
  }
51
52
  /**
@@ -96,13 +97,32 @@ export function getHooksDir() {
96
97
  return path.join(getConfigDir(), 'hooks');
97
98
  }
98
99
  /**
99
- * Returns the directory for remote source clones.
100
- * Without namespace: returns the base marketplaces dir (~/.asb/marketplaces/).
101
- * With namespace: returns the namespace-specific dir (~/.asb/marketplaces/<namespace>/).
100
+ * Returns the plugins directory (~/.asb/plugins/).
101
+ * Local plugin sources can be placed here and referenced by short name.
102
+ */
103
+ export function getPluginsDir() {
104
+ return path.join(getConfigDir(), 'plugins');
105
+ }
106
+ /**
107
+ * Returns the directory for remote source clones (~/.asb/plugins/.cache/).
108
+ * Migrates transparently from the legacy ~/.asb/marketplaces/ location.
109
+ * Without namespace: returns the base cache dir.
110
+ * With namespace: returns the namespace-specific dir.
102
111
  */
103
112
  export function getSourceCacheDir(namespace) {
104
- const base = path.join(getConfigDir(), 'marketplaces');
105
- return namespace ? path.join(base, namespace) : base;
113
+ const newBase = path.join(getPluginsDir(), '.cache');
114
+ const legacyBase = path.join(getConfigDir(), 'marketplaces');
115
+ if (!fs.existsSync(newBase) && fs.existsSync(legacyBase)) {
116
+ try {
117
+ fs.mkdirSync(path.dirname(newBase), { recursive: true });
118
+ fs.renameSync(legacyBase, newBase);
119
+ }
120
+ catch {
121
+ if (!fs.existsSync(newBase))
122
+ throw new Error('Failed to migrate marketplaces/ to plugins/.cache/');
123
+ }
124
+ }
125
+ return namespace ? path.join(newBase, namespace) : newBase;
106
126
  }
107
127
  /**
108
128
  * Returns the home directory for installed agent apps (Claude Code, OpenCode, etc.)
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,8CAA8C;AAC9C,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,mCAAmC;AACnC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAElD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAErD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IACrD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,OAAO,OAAO,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAkB;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,cAAc,CAAC,CAAC;IAE7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IACrD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IACrD,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;AACtB,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO;QACjC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAG,QAAkB;IACnD,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAmB;IAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACnE,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAmB,EAAE,GAAG,QAAkB;IAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;AACrE,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,cAAc,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,eAAe,CAAC,CAAC;AACpD,CAAC;AAID,MAAM,aAAa,GAAgC;IACjD,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,SAAS;CACrB,CAAC;AAEF,MAAM,gBAAgB,GAAgC;IACpD,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,UAAU;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAoB;IACrD,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;QACpE,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACxD;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,iBAAiB,CAAC,OAAoB;IACpD,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,cAAc,CAAC,OAAoB;IACjD,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,IAAI,CACd,IAAI,EACJ,SAAS,EACT,qBAAqB,EACrB,QAAQ,EACR,4BAA4B,CAC7B,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QACvF,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QAC5E;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC"}