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/.turbo/turbo-build.log +9 -10
- package/.turbo/turbo-test.log +347 -341
- package/CHANGELOG.md +260 -0
- package/README.md +127 -182
- package/bin/swarm.test.ts +31 -0
- package/bin/swarm.ts +247 -12
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +530 -5
- package/dist/observability-tools.d.ts +116 -0
- package/dist/observability-tools.d.ts.map +1 -0
- package/dist/plugin.js +530 -5
- package/dist/skills.d.ts.map +1 -1
- package/dist/swarm-prompts.d.ts +59 -0
- package/dist/swarm-prompts.d.ts.map +1 -1
- package/dist/swarm.d.ts +17 -0
- package/dist/swarm.d.ts.map +1 -1
- package/examples/plugin-wrapper-template.ts +297 -8
- package/package.json +3 -2
- package/src/index.ts +25 -1
- package/src/observability-tools.test.ts +346 -0
- package/src/observability-tools.ts +594 -0
- package/src/skills.integration.test.ts +137 -1
- package/src/skills.test.ts +42 -1
- package/src/skills.ts +8 -4
- package/src/swarm-orchestrate.test.ts +123 -0
- package/src/swarm-orchestrate.ts +183 -0
- package/src/swarm-prompts.test.ts +389 -0
- package/src/swarm-prompts.ts +228 -0
- package/src/swarm-research.integration.test.ts +544 -0
- package/src/swarm-research.test.ts +698 -0
- package/src/swarm-research.ts +472 -0
- package/src/swarm.ts +6 -3
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 + "/
|
|
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
|
|
2324
|
-
const
|
|
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
|
|
2337
|
-
{ path: workerAgentPath, desc: "@swarm
|
|
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
|
|
2489
|
-
@swarm
|
|
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")}
|
|
2494
|
-
${dim("~/.config/opencode/agent/swarm
|
|
2495
|
-
${dim("~/.config/opencode/agent/swarm
|
|
2496
|
-
${dim("~/.config/opencode/
|
|
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: {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|