opencode-swarm-plugin 0.32.0 → 0.33.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.
package/bin/swarm.test.ts CHANGED
@@ -160,4 +160,35 @@ describe("File operation helpers", () => {
160
160
  expect(logger.logs.length).toBe(0);
161
161
  });
162
162
  });
163
+
164
+ describe("getResearcherAgent", () => {
165
+ // Mock implementation for testing - will match actual implementation
166
+ function getResearcherAgent(model: string): string {
167
+ return `---
168
+ name: swarm-researcher
169
+ description: Research agent for discovering and documenting context
170
+ model: ${model}
171
+ ---
172
+
173
+ READ-ONLY research agent. Never modifies code - only gathers intel and stores findings.`;
174
+ }
175
+
176
+ test("includes model in frontmatter", () => {
177
+ const template = getResearcherAgent("anthropic/claude-haiku-4-5");
178
+
179
+ expect(template).toContain("model: anthropic/claude-haiku-4-5");
180
+ });
181
+
182
+ test("emphasizes READ-ONLY nature", () => {
183
+ const template = getResearcherAgent("anthropic/claude-haiku-4-5");
184
+
185
+ expect(template).toContain("READ-ONLY");
186
+ });
187
+
188
+ test("includes agent name in frontmatter", () => {
189
+ const template = getResearcherAgent("anthropic/claude-haiku-4-5");
190
+
191
+ expect(template).toContain("name: swarm-researcher");
192
+ });
193
+ });
163
194
  });
package/bin/swarm.ts CHANGED
@@ -1322,6 +1322,233 @@ hive_update(id="<bead-id>", status="blocked")
1322
1322
  Begin by reading your full prompt and executing Step 1.
1323
1323
  `;
1324
1324
 
1325
+ const getResearcherAgent = (model: string) => `---
1326
+ name: swarm-researcher
1327
+ description: READ-ONLY research agent - discovers tools, fetches docs, stores findings
1328
+ model: ${model}
1329
+ ---
1330
+
1331
+ You are a research agent. Your job is to discover context and document findings - NEVER modify code.
1332
+
1333
+ ## CRITICAL: You Are READ-ONLY
1334
+
1335
+ **YOU DO NOT:**
1336
+ - Edit code files
1337
+ - Run tests
1338
+ - Make commits
1339
+ - Reserve files (you don't edit, so no reservations needed)
1340
+ - Implement features
1341
+
1342
+ **YOU DO:**
1343
+ - Discover available tools (MCP servers, skills, CLI tools)
1344
+ - Read lockfiles to get current package versions
1345
+ - Fetch documentation for those versions
1346
+ - Store findings in semantic-memory (full details)
1347
+ - Broadcast summaries via swarm mail (condensed)
1348
+ - Return structured summary for shared context
1349
+
1350
+ ## Workflow
1351
+
1352
+ ### Step 1: Initialize (MANDATORY FIRST)
1353
+
1354
+ \`\`\`
1355
+ swarmmail_init(project_path="/abs/path/to/project", task_description="Research: <what you're researching>")
1356
+ \`\`\`
1357
+
1358
+ ### Step 2: Discover Available Tools
1359
+
1360
+ **DO NOT assume what tools are installed. Discover them:**
1361
+
1362
+ \`\`\`
1363
+ # Check what skills user has installed
1364
+ skills_list()
1365
+
1366
+ # Check what MCP servers are available (look for context7, pdf-brain, fetch, etc.)
1367
+ # Note: No direct MCP listing tool - infer from task context or ask coordinator
1368
+
1369
+ # Check for CLI tools if relevant (bd, cass, ubs, ollama)
1370
+ # Use Bash tool to check: which <tool-name>
1371
+ \`\`\`
1372
+
1373
+ ### Step 3: Load Relevant Skills
1374
+
1375
+ Based on research task, load appropriate skills:
1376
+
1377
+ \`\`\`
1378
+ skills_use(name="<skill-name>", context="Researching <topic>")
1379
+ \`\`\`
1380
+
1381
+ ### Step 4: Read Lockfiles (if researching dependencies)
1382
+
1383
+ **DO NOT read implementation code.** Only read metadata:
1384
+
1385
+ \`\`\`
1386
+ # For package.json projects
1387
+ read("package.json")
1388
+ read("package-lock.json") or read("bun.lock") or read("pnpm-lock.yaml")
1389
+
1390
+ # For Python
1391
+ read("requirements.txt") or read("pyproject.toml")
1392
+
1393
+ # For Go
1394
+ read("go.mod")
1395
+ \`\`\`
1396
+
1397
+ Extract current version numbers for libraries you need to research.
1398
+
1399
+ ### Step 5: Fetch Documentation
1400
+
1401
+ Use available doc tools to get version-specific docs:
1402
+
1403
+ \`\`\`
1404
+ # If context7 available (check skills_list or task context)
1405
+ # Use it for library docs
1406
+
1407
+ # If pdf-brain available
1408
+ pdf-brain_search(query="<library> <version> <topic>", limit=5)
1409
+
1410
+ # If fetch tool available
1411
+ fetch(url="https://docs.example.com/v2.0/...")
1412
+
1413
+ # If repo-crawl available for OSS libraries
1414
+ repo-crawl_readme(repo="owner/repo")
1415
+ repo-crawl_file(repo="owner/repo", path="docs/...")
1416
+ \`\`\`
1417
+
1418
+ ### Step 6: Store Full Findings in Semantic Memory
1419
+
1420
+ **Store detailed findings for future agents:**
1421
+
1422
+ \`\`\`
1423
+ semantic-memory_store(
1424
+ information="Researched <library> v<version>. Key findings: <detailed notes with examples, gotchas, patterns>",
1425
+ metadata="<library>, <version>, <topic>, research"
1426
+ )
1427
+ \`\`\`
1428
+
1429
+ **Include:**
1430
+ - Library/framework versions discovered
1431
+ - Key API patterns
1432
+ - Breaking changes from previous versions
1433
+ - Common gotchas
1434
+ - Relevant examples
1435
+
1436
+ ### Step 7: Broadcast Condensed Summary via Swarm Mail
1437
+
1438
+ **Send concise summary to coordinator:**
1439
+
1440
+ \`\`\`
1441
+ swarmmail_send(
1442
+ to=["coordinator"],
1443
+ subject="Research Complete: <topic>",
1444
+ body="<3-5 bullet points with key takeaways>",
1445
+ thread_id="<epic-id>"
1446
+ )
1447
+ \`\`\`
1448
+
1449
+ ### Step 8: Return Structured Summary
1450
+
1451
+ **Output format for shared_context:**
1452
+
1453
+ \`\`\`json
1454
+ {
1455
+ "researched": "<topic>",
1456
+ "tools_discovered": ["skill-1", "skill-2", "mcp-server-1"],
1457
+ "versions": {
1458
+ "library-1": "1.2.3",
1459
+ "library-2": "4.5.6"
1460
+ },
1461
+ "key_findings": [
1462
+ "Finding 1 with actionable insight",
1463
+ "Finding 2 with actionable insight",
1464
+ "Finding 3 with actionable insight"
1465
+ ],
1466
+ "relevant_skills": ["skill-to-use-1", "skill-to-use-2"],
1467
+ "stored_in_memory": true
1468
+ }
1469
+ \`\`\`
1470
+
1471
+ ## Tool Discovery Patterns
1472
+
1473
+ ### Skills Discovery
1474
+
1475
+ \`\`\`
1476
+ skills_list()
1477
+ # Returns: Available skills from global, project, bundled sources
1478
+
1479
+ # Load relevant skill for research domain
1480
+ skills_use(name="<skill>", context="Researching <topic>")
1481
+ \`\`\`
1482
+
1483
+ ### MCP Server Detection
1484
+
1485
+ **No direct listing tool.** Infer from:
1486
+ - Task context (coordinator may mention available tools)
1487
+ - Trial: Try calling a tool and catch error if not available
1488
+ - Read OpenCode config if accessible
1489
+
1490
+ ### CLI Tool Detection
1491
+
1492
+ \`\`\`
1493
+ # Check if tool is installed
1494
+ bash("which <tool>", description="Check if <tool> is available")
1495
+
1496
+ # Examples:
1497
+ bash("which cass", description="Check CASS availability")
1498
+ bash("which ubs", description="Check UBS availability")
1499
+ bash("ollama --version", description="Check Ollama availability")
1500
+ \`\`\`
1501
+
1502
+ ## Context Efficiency Rules (MANDATORY)
1503
+
1504
+ **NEVER dump raw documentation.** Always summarize.
1505
+
1506
+ | ❌ Bad (Context Bomb) | ✅ Good (Condensed) |
1507
+ |---------------------|-------------------|
1508
+ | Paste entire API reference | "Library uses hooks API. Key hooks: useQuery, useMutation. Breaking change in v2: callbacks removed." |
1509
+ | Copy full changelog | "v2.0 breaking changes: renamed auth() → authenticate(), dropped IE11 support" |
1510
+ | Include all examples | "Common pattern: async/await with error boundaries (stored full example in semantic-memory)" |
1511
+
1512
+ **Storage Strategy:**
1513
+ - **Semantic Memory**: Full details, examples, code snippets
1514
+ - **Swarm Mail**: 3-5 bullet points only
1515
+ - **Return Value**: Structured JSON summary
1516
+
1517
+ ## When to Use This Agent
1518
+
1519
+ **DO spawn researcher when:**
1520
+ - Task requires understanding current tech stack versions
1521
+ - Need to fetch library/framework documentation
1522
+ - Discovering project conventions from config files
1523
+ - Researching best practices for unfamiliar domain
1524
+
1525
+ **DON'T spawn researcher when:**
1526
+ - Information is already in semantic memory (query first!)
1527
+ - Task doesn't need external docs
1528
+ - Time-sensitive work (research adds latency)
1529
+
1530
+ ## Example Research Tasks
1531
+
1532
+ **"Research Next.js 16 caching APIs"**
1533
+
1534
+ 1. Read package.json → extract Next.js version
1535
+ 2. Use context7 or fetch to get Next.js 16 cache docs
1536
+ 3. Store findings: unstable_cache, revalidatePath, cache patterns
1537
+ 4. Broadcast: "Next.js 16 uses native fetch caching + unstable_cache for functions"
1538
+ 5. Return structured summary with key APIs
1539
+
1540
+ **"Discover available testing tools"**
1541
+
1542
+ 1. Check skills_list for testing-patterns skill
1543
+ 2. Check which jest/vitest/bun (bash tool)
1544
+ 3. Read package.json devDependencies
1545
+ 4. Store findings: test runner, assertion library, coverage tool
1546
+ 5. Broadcast: "Project uses Bun test with happy-dom"
1547
+ 6. Return tool inventory
1548
+
1549
+ Begin by executing Step 1 (swarmmail_init).
1550
+ `;
1551
+
1325
1552
  // ============================================================================
1326
1553
  // Commands
1327
1554
  // ============================================================================
@@ -1533,6 +1760,7 @@ async function setup() {
1533
1760
  const swarmAgentDir = join(agentDir, "swarm");
1534
1761
  const plannerAgentPath = join(swarmAgentDir, "planner.md");
1535
1762
  const workerAgentPath = join(swarmAgentDir, "worker.md");
1763
+ const researcherAgentPath = join(swarmAgentDir, "researcher.md");
1536
1764
  // Legacy flat paths (for detection/cleanup)
1537
1765
  const legacyPlannerPath = join(agentDir, "swarm-planner.md");
1538
1766
  const legacyWorkerPath = join(agentDir, "swarm-worker.md");
@@ -1542,13 +1770,14 @@ async function setup() {
1542
1770
  commandPath,
1543
1771
  plannerAgentPath,
1544
1772
  workerAgentPath,
1773
+ researcherAgentPath,
1545
1774
  legacyPlannerPath,
1546
1775
  legacyWorkerPath,
1547
1776
  ].filter((f) => existsSync(f));
1548
1777
 
1549
1778
  if (existingFiles.length > 0) {
1550
1779
  p.log.success("Swarm is already configured!");
1551
- p.log.message(dim(" Found " + existingFiles.length + "/4 config files"));
1780
+ p.log.message(dim(" Found " + existingFiles.length + "/5 config files"));
1552
1781
 
1553
1782
  const action = await p.select({
1554
1783
  message: "What would you like to do?",
@@ -2015,11 +2244,12 @@ async function setup() {
2015
2244
  stats[writeFileWithStatus(pluginPath, getPluginWrapper(), "Plugin")]++;
2016
2245
  stats[writeFileWithStatus(commandPath, SWARM_COMMAND, "Command")]++;
2017
2246
 
2018
- // Write nested agent files (swarm/planner.md, swarm/worker.md)
2247
+ // Write nested agent files (swarm/planner.md, swarm/worker.md, swarm/researcher.md)
2019
2248
  // This is the format used by Task(subagent_type="swarm/worker")
2020
2249
  p.log.step("Writing agent configuration...");
2021
2250
  stats[writeFileWithStatus(plannerAgentPath, getPlannerAgent(coordinatorModel as string), "Planner agent")]++;
2022
2251
  stats[writeFileWithStatus(workerAgentPath, getWorkerAgent(workerModel as string), "Worker agent")]++;
2252
+ stats[writeFileWithStatus(researcherAgentPath, getResearcherAgent(workerModel as string), "Researcher agent")]++;
2023
2253
 
2024
2254
  // Clean up legacy flat agent files if they exist
2025
2255
  if (existsSync(legacyPlannerPath) || existsSync(legacyWorkerPath)) {
@@ -2320,8 +2550,10 @@ function config() {
2320
2550
  const configDir = join(homedir(), ".config", "opencode");
2321
2551
  const pluginPath = join(configDir, "plugin", "swarm.ts");
2322
2552
  const commandPath = join(configDir, "command", "swarm.md");
2323
- const plannerAgentPath = join(configDir, "agent", "swarm-planner.md");
2324
- const workerAgentPath = join(configDir, "agent", "swarm-worker.md");
2553
+ const swarmAgentDir = join(configDir, "agent", "swarm");
2554
+ const plannerAgentPath = join(swarmAgentDir, "planner.md");
2555
+ const workerAgentPath = join(swarmAgentDir, "worker.md");
2556
+ const researcherAgentPath = join(swarmAgentDir, "researcher.md");
2325
2557
  const globalSkillsPath = join(configDir, "skills");
2326
2558
 
2327
2559
  console.log(yellow(BANNER));
@@ -2333,8 +2565,9 @@ function config() {
2333
2565
  const files = [
2334
2566
  { path: pluginPath, desc: "Plugin loader", emoji: "🔌" },
2335
2567
  { path: commandPath, desc: "/swarm command prompt", emoji: "📜" },
2336
- { path: plannerAgentPath, desc: "@swarm-planner agent", emoji: "🤖" },
2337
- { path: workerAgentPath, desc: "@swarm-worker agent", emoji: "🐝" },
2568
+ { path: plannerAgentPath, desc: "@swarm/planner agent", emoji: "🤖" },
2569
+ { path: workerAgentPath, desc: "@swarm/worker agent", emoji: "🐝" },
2570
+ { path: researcherAgentPath, desc: "@swarm/researcher agent", emoji: "🔬" },
2338
2571
  ];
2339
2572
 
2340
2573
  for (const { path, desc, emoji } of files) {
@@ -2485,15 +2718,17 @@ ${cyan("Tool Execution:")}
2485
2718
 
2486
2719
  ${cyan("Usage in OpenCode:")}
2487
2720
  /swarm "Add user authentication with OAuth"
2488
- @swarm-planner "Decompose this into parallel tasks"
2489
- @swarm-worker "Execute this specific subtask"
2721
+ @swarm/planner "Decompose this into parallel tasks"
2722
+ @swarm/worker "Execute this specific subtask"
2723
+ @swarm/researcher "Research Next.js caching APIs"
2490
2724
 
2491
2725
  ${cyan("Customization:")}
2492
2726
  Edit the generated files to customize behavior:
2493
- ${dim("~/.config/opencode/command/swarm.md")} - /swarm command prompt
2494
- ${dim("~/.config/opencode/agent/swarm-planner.md")} - @swarm-planner (coordinator)
2495
- ${dim("~/.config/opencode/agent/swarm-worker.md")} - @swarm-worker (fast executor)
2496
- ${dim("~/.config/opencode/plugin/swarm.ts")} - Plugin loader
2727
+ ${dim("~/.config/opencode/command/swarm.md")} - /swarm command prompt
2728
+ ${dim("~/.config/opencode/agent/swarm/planner.md")} - @swarm/planner (coordinator)
2729
+ ${dim("~/.config/opencode/agent/swarm/worker.md")} - @swarm/worker (task executor)
2730
+ ${dim("~/.config/opencode/agent/swarm/researcher.md")} - @swarm/researcher (read-only research)
2731
+ ${dim("~/.config/opencode/plugin/swarm.ts")} - Plugin loader
2497
2732
 
2498
2733
  ${dim("Docs: https://github.com/joelhooks/opencode-swarm-plugin")}
2499
2734
  `);
package/dist/index.d.ts CHANGED
@@ -942,6 +942,23 @@ export declare const allTools: {
942
942
  model?: string | undefined;
943
943
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
944
944
  };
945
+ readonly swarm_spawn_researcher: {
946
+ description: string;
947
+ args: {
948
+ research_id: import("zod").ZodString;
949
+ epic_id: import("zod").ZodString;
950
+ tech_stack: import("zod").ZodArray<import("zod").ZodString>;
951
+ project_path: import("zod").ZodString;
952
+ check_upgrades: import("zod").ZodOptional<import("zod").ZodBoolean>;
953
+ };
954
+ execute(args: {
955
+ research_id: string;
956
+ epic_id: string;
957
+ tech_stack: string[];
958
+ project_path: string;
959
+ check_upgrades?: boolean | undefined;
960
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
961
+ };
945
962
  readonly swarm_evaluation_prompt: {
946
963
  description: string;
947
964
  args: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAsB,MAAM,qBAAqB,CAAC;AAsCtE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,WAAW,EAAE,MAwLzB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAe,WAAW,CAAC;AAM3B;;GAEG;AACH,cAAc,WAAW,CAAC;AAE1B;;;;;;;;;;;GAWG;AACH,cAAc,QAAQ,CAAC;AAEvB;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,4BAA4B,EAC5B,oBAAoB,EACpB,4BAA4B,EAC5B,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;GAMG;AACH,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EAEjB,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,GACxB,MAAM,SAAS,CAAC;AAMjB;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWX,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,QAAQ,CAAC;AAEhD;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC;AAEnB;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,SAAS,EACT,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,WAAW,EACX,sBAAsB,EACtB,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9D;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,WAAW,EACX,cAAc,EACd,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,QAAQ,GACd,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,EAC5B,8BAA8B,EAC9B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,GAC/B,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;GAWG;AACH,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,wBAAwB,EACxB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEnF;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}