opencode-swarm-plugin 0.42.5 → 0.42.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,63 @@
1
+ ---
2
+ "opencode-swarm-plugin": minor
3
+ ---
4
+
5
+ ## 🧠 Swarm Insights: Data-Driven Decomposition
6
+
7
+ > "It should allow the learner both to reflect on the quality of found solutions so that more effective cognitive schemata can be induced (including discriminations and generalizations) or further elaborated."
8
+ >
9
+ > — *Training Complex Cognitive Skills: A Four-Component Instructional Design Model for Technical Training*
10
+
11
+ **What changed:**
12
+
13
+ New data layer (`swarm-insights.ts`) aggregates learnings from swarm coordination events to inform future decompositions. Coordinators and workers now get concise, context-efficient summaries injected into their prompts.
14
+
15
+ **Key exports:**
16
+
17
+ - `getStrategyInsights(swarmMail, task)` - Strategy success rates and recommendations
18
+ - Queries `subtask_outcome` events, calculates win/loss ratios
19
+ - Returns: `{ strategy, successRate, totalAttempts, recommendation }`
20
+ - Powers coordinator strategy selection with empirical data
21
+
22
+ - `getFileInsights(swarmMail, files)` - File-specific gotchas from past failures
23
+ - Identifies files with high failure rates
24
+ - Returns: `{ file, failureCount, lastFailure, gotchas[] }`
25
+ - Workers see warnings about tricky files before touching them
26
+
27
+ - `getPatternInsights(swarmMail)` - Common failure patterns and anti-patterns
28
+ - Detects recurring error types (type_error, timeout, conflict, test_failure)
29
+ - Returns: `{ pattern, frequency, recommendation }`
30
+ - Surfaces systemic issues for proactive prevention
31
+
32
+ - `formatInsightsForPrompt(bundle, options)` - Context-aware formatting
33
+ - Token budget enforcement (default 500 tokens, ~2000 chars)
34
+ - Prioritizes top 3 strategies, 5 files, 3 patterns
35
+ - Clean markdown output for prompt injection
36
+
37
+ - `getCachedInsights(swarmMail, cacheKey, computeFn)` - 5-minute TTL caching
38
+ - Prevents redundant queries during active swarms
39
+ - Transparent cache miss fallback
40
+
41
+ **Why it matters:**
42
+
43
+ Before this, coordinators decomposed tasks blind to past failures. "Split by file type" might have failed 8 times, but the coordinator would try it again. Workers would touch `auth/tokens.ts` without knowing it caused 3 prior failures.
44
+
45
+ Now:
46
+ - **Better decomposition**: Coordinator prompts show strategy success rates (e.g., "file-based: 85% success, feature-based: 40% - avoid")
47
+ - **Fewer repeated mistakes**: Workers see file-specific warnings before editing
48
+ - **Compounding learning**: Each swarm completion feeds the insights engine, improving future decompositions
49
+ - **Context-efficient**: Hard token caps prevent insights from dominating prompt budgets
50
+
51
+ The swarm now learns from its mistakes, not just records them.
52
+
53
+ **Data sources:**
54
+ - Event store: `subtask_outcome`, `eval_finalized` events
55
+ - Semantic memory: File-specific learnings (TODO: full integration)
56
+ - Anti-pattern registry: Detection and inversion rules
57
+
58
+ **Integration points:**
59
+ - Coordinator prompts: Inject strategy insights during decomposition
60
+ - Worker prompts: Inject file insights when subtasks are spawned
61
+ - Learning layer: Confidence decay, pattern maturity, implicit feedback scoring
62
+
63
+ This is the foundation for adaptive swarm intelligence - decomposition that gets smarter with every task completed.
@@ -101,6 +101,24 @@
101
101
  {"id":"opencode-swarm-plugin--ys7z8-mjlm2nmlu3m","title":"Fix example.eval.ts data/task mismatch","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-25T15:42:19.677Z","updated_at":"2025-12-25T20:40:00.437Z","closed_at":"2025-12-25T20:40:00.437Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlm2nmf2hw","dependencies":[],"labels":[],"comments":[]}
102
102
  {"id":"opencode-swarm-plugin--ys7z8-mjlm2nmont1","title":"Fix compaction-prompt case-sensitive regex and missing tools","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-25T15:42:19.680Z","updated_at":"2025-12-25T20:40:02.213Z","closed_at":"2025-12-25T20:40:02.213Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlm2nmf2hw","dependencies":[],"labels":[],"comments":[]}
103
103
  {"id":"opencode-swarm-plugin--ys7z8-mjlm2nmt1kq","title":"Remove 4 unused coordinator scorers","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-25T15:42:19.685Z","updated_at":"2025-12-25T20:40:03.974Z","closed_at":"2025-12-25T20:40:03.974Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlm2nmf2hw","dependencies":[],"labels":[],"comments":[]}
104
- {"id":"opencode-swarm-plugin--ys7z8-mjltv0ievr0","title":"Swarm O11y & Eval Insights Pipeline","description":"Comprehensive observability and eval insights for swarm coordination.\n\nCOMPLETED:\n1. ✅ `swarm serve` command - starts SSE server on configurable port\n2. ✅ Dashboard panes wired to real data (CellsPane, AgentsPane)\n3. ✅ Vite + React dashboard with SSE hooks\n\nREMAINING:\n- GET /cells endpoint on server (dashboard blocked on this)\n- Fix dashboard test fixtures for mock server\n- CLI commands: `swarm stats`, `swarm history`\n- Prompt injection for insights","status":"open","priority":1,"issue_type":"epic","created_at":"2025-12-25T19:20:20.054Z","updated_at":"2025-12-25T20:40:19.433Z","dependencies":[],"labels":[],"comments":[]}
105
104
  {"id":"opencode-swarm-plugin--ys7z8-mjlwcoh8ut2","title":"Add `swarm serve` command to start SSE server","description":"Add a `serve` subcommand to bin/swarm.ts that starts the DurableStreamServer on a configurable port (default 3001).\n\nFiles: bin/swarm.ts\n\nImplementation:\n1. Add `serve` case to the switch statement\n2. Import createDurableStreamServer from swarm-mail\n3. Start server with adapter from getSwarmMailLibSQL()\n4. Print URL to console\n5. Keep process alive\n\nExample usage: `swarm serve --port 3001`\n\nThe dashboard at localhost:5173 will connect to this SSE endpoint.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T20:30:03.500Z","updated_at":"2025-12-25T20:40:05.728Z","closed_at":"2025-12-25T20:40:05.728Z","dependencies":[],"labels":[],"comments":[]}
106
105
  {"id":"opencode-swarm-plugin--ys7z8-mjlwcslohuv","title":"Wire dashboard panes to real swarm-mail data","description":"Connect CellsPane and AgentsPane to real data from the SSE server.\n\nFiles: \n- packages/swarm-dashboard/src/lib/api.ts\n- packages/swarm-dashboard/src/components/CellsPane.tsx\n- packages/swarm-dashboard/src/components/AgentsPane.tsx\n- packages/swarm-dashboard/src/hooks/useSwarmEvents.ts\n\nImplementation:\n1. Update api.ts to fetch cells from hive (can use REST endpoint or derive from events)\n2. Update CellsPane to use real cell data instead of mock\n3. Update AgentsPane to derive agent list from SSE events (agent_registered events)\n4. Ensure useSwarmEvents properly accumulates agent state\n\nThe SSE server runs at localhost:3001 (from `swarm serve` command).","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T20:30:08.844Z","updated_at":"2025-12-25T20:40:07.548Z","closed_at":"2025-12-25T20:40:07.548Z","dependencies":[],"labels":[],"comments":[]}
106
+ {"id":"opencode-swarm-plugin--ys7z8-mjltv0ievr0","title":"Swarm O11y & Eval Insights Pipeline","description":"Comprehensive observability and eval insights for swarm coordination.\n\nCOMPLETED:\n1. ✅ `swarm serve` command - starts SSE server on configurable port\n2. ✅ Dashboard panes wired to real data (CellsPane, AgentsPane)\n3. ✅ Vite + React dashboard with SSE hooks\n\nREMAINING:\n- GET /cells endpoint on server (dashboard blocked on this)\n- Fix dashboard test fixtures for mock server\n- CLI commands: `swarm stats`, `swarm history`\n- Prompt injection for insights","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T19:20:20.054Z","updated_at":"2025-12-26T02:08:19.642Z","closed_at":"2025-12-26T02:08:19.642Z","dependencies":[],"labels":[],"comments":[]}
107
+ {"id":"opencode-swarm-plugin--ys7z8-mjm7ecfjfk6","title":"Add GET /cells endpoint to DurableStreamServer","description":"Add a REST endpoint to DurableStreamServer that returns cells from the hive.\n\nFile: packages/swarm-mail/src/streams/durable-server.ts\n\nImplementation:\n1. Add GET /cells route handler\n2. Query cells from HiveAdapter (already available via createHiveAdapter)\n3. Return JSON array of cells with tree structure\n4. Add tests in durable-server.test.ts\n\nThe dashboard CellsPane is blocked on this endpoint.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-26T01:39:16.975Z","updated_at":"2025-12-26T01:49:06.122Z","closed_at":"2025-12-26T01:49:06.122Z","dependencies":[],"labels":[],"comments":[]}
108
+ {"id":"opencode-swarm-plugin--ys7z8-mjm7eejlqob","title":"Fix dashboard test fixtures for mock server","description":"Fix failing dashboard tests by adding proper mock server fixtures.\n\nFiles:\n- packages/swarm-dashboard/src/components/CellsPane.test.tsx\n- packages/swarm-dashboard/src/lib/api.test.ts\n\nImplementation:\n1. Mock fetch() for /cells endpoint\n2. Provide realistic cell data fixtures\n3. Fix async timing issues in tests\n4. Ensure all 32 tests pass","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T01:39:19.713Z","updated_at":"2025-12-26T01:49:09.474Z","closed_at":"2025-12-26T01:49:09.474Z","dependencies":[],"labels":[],"comments":[]}
109
+ {"id":"opencode-swarm-plugin--ys7z8-mjm7egyyxnu","title":"Add `swarm stats` CLI command","description":"Add a `stats` subcommand to bin/swarm.ts that displays swarm analytics.\n\nFile: bin/swarm.ts\n\nImplementation:\n1. Add `stats` case to switch statement\n2. Query analytics from swarm-mail (getAnalytics or similar)\n3. Display: total swarms, success rate, avg duration, top strategies\n4. Use @clack/prompts for nice formatting\n5. Add tests in bin/swarm.test.ts","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T01:39:22.858Z","updated_at":"2025-12-26T01:52:09.421Z","closed_at":"2025-12-26T01:52:09.421Z","dependencies":[],"labels":[],"comments":[]}
110
+ {"id":"opencode-swarm-plugin--ys7z8-mjm7ej3gkdr","title":"Add `swarm history` CLI command","description":"Add a `history` subcommand to bin/swarm.ts that shows past swarm executions.\n\nFile: bin/swarm.ts\n\nImplementation:\n1. Add `history` case to switch statement\n2. Query eval_records from swarm-mail\n3. Display: epic title, date, workers, success/fail, duration\n4. Support --limit flag (default 10)\n5. Add tests in bin/swarm.test.ts","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T01:39:25.612Z","updated_at":"2025-12-26T01:52:10.181Z","closed_at":"2025-12-26T01:52:10.181Z","dependencies":[],"labels":[],"comments":[]}
111
+ {"id":"opencode-swarm-plugin--ys7z8-mjm7elm2poh","title":"Create swarm-insights data layer","description":"Create a data layer that aggregates insights for prompt injection.\n\nFile: src/swarm-insights.ts (NEW)\n\nImplementation:\n1. getStrategyInsights(task) - success rates by strategy for similar tasks\n2. getFileInsights(files) - past issues, gotchas for specific files\n3. getPatternInsights() - common failure patterns, anti-patterns\n4. Cache results to avoid repeated queries\n5. Add tests in swarm-insights.test.ts","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T01:39:28.874Z","updated_at":"2025-12-26T01:57:17.504Z","closed_at":"2025-12-26T01:57:17.504Z","dependencies":[],"labels":[],"comments":[]}
112
+ {"id":"opencode-swarm-plugin--ys7z8-mjm7eo34l57","title":"Inject insights into coordinator prompts","description":"Inject aggregated insights into coordinator prompts before decomposition.\n\nFile: src/swarm-prompts.ts\n\nImplementation:\n1. Call getStrategyInsights() in swarm_plan_prompt\n2. Add \"## Historical Insights\" section to prompt\n3. Include: strategy success rates, common pitfalls, recommendations\n4. Keep injection concise (<500 tokens)\n5. Add tests verifying injection","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T01:39:32.080Z","updated_at":"2025-12-26T02:03:27.468Z","closed_at":"2025-12-26T02:03:27.468Z","dependencies":[],"labels":[],"comments":[]}
113
+ {"id":"opencode-swarm-plugin--ys7z8-mjm7eq8o1oq","title":"Inject insights into worker prompts","description":"Inject file-specific insights into worker prompts.\n\nFile: src/swarm-prompts.ts\n\nImplementation:\n1. Call getFileInsights(files) in swarm_spawn_subtask\n2. Add \"## File-Specific Gotchas\" section to worker prompt\n3. Include: past bugs in these files, known issues, patterns\n4. Query semantic-memory for relevant learnings\n5. Keep injection concise (<300 tokens per file)\n6. Add tests verifying injection","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T01:39:34.872Z","updated_at":"2025-12-26T02:08:10.131Z","closed_at":"2025-12-26T02:08:10.131Z","dependencies":[],"labels":[],"comments":[]}
114
+ {"id":"opencode-swarm-plugin--ys7z8-mjmadcpu98d","title":"Document swarm-insights layer + CLI help + plugin template","description":"Full documentation for the new swarm-insights data layer:\n- README.md: Add swarm-insights architecture section\n- CLI help: Update swarm stats/history descriptions\n- Plugin template: Add swarm-insights tool descriptions\n- AGENTS.md: Document insights tools for agents\n- JSDoc: Ensure swarm-insights.ts has complete docs\n- Changeset: Document the new feature for release","status":"open","priority":1,"issue_type":"epic","created_at":"2025-12-26T03:02:29.538Z","updated_at":"2025-12-26T03:02:29.538Z","dependencies":[],"labels":[],"comments":[]}
115
+ {"id":"opencode-swarm-plugin--ys7z8-mjmadcq6aib","title":"Update CLI help text for stats/history commands","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-26T03:02:29.550Z","updated_at":"2025-12-26T03:02:29.550Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmadcpu98d","dependencies":[],"labels":[],"comments":[]}
116
+ {"id":"opencode-swarm-plugin--ys7z8-mjmadcq85et","title":"Add swarm-insights tools to plugin-wrapper-template.ts","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-26T03:02:29.552Z","updated_at":"2025-12-26T03:02:29.552Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmadcpu98d","dependencies":[],"labels":[],"comments":[]}
117
+ {"id":"opencode-swarm-plugin--ys7z8-mjmadcqag0y","title":"Ensure swarm-insights.ts has complete JSDoc","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-26T03:02:29.554Z","updated_at":"2025-12-26T03:02:29.554Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmadcpu98d","dependencies":[],"labels":[],"comments":[]}
118
+ {"id":"opencode-swarm-plugin--ys7z8-mjmadcqcklk","title":"Create changeset for swarm-insights feature","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-26T03:02:29.556Z","updated_at":"2025-12-26T03:02:29.556Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmadcpu98d","dependencies":[],"labels":[],"comments":[]}
119
+ {"id":"opencode-swarm-plugin--ys7z8-mjmadcq2s4l","title":"Update README.md with swarm-insights architecture","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T03:02:29.546Z","updated_at":"2025-12-26T03:12:28.691Z","closed_at":"2025-12-26T03:12:28.691Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmadcpu98d","dependencies":[],"labels":[],"comments":[]}
120
+ {"id":"opencode-swarm-plugin--ys7z8-mjmavq7f31x","title":"ADR-010: CASS Inhousing Feasibility Study","description":"Deep dive into CASS (coding_agent_session_search) to determine if we should bring cross-agent session search in-house, eliminating the Python dependency.\n\n**Deliverables:**\n1. Full architecture analysis of CASS\n2. Gap analysis vs our semantic-memory\n3. Agent session format survey\n4. ADR-010 with TDD implementation plan, docs, and observability\n\n**Success Criteria:**\n- Clear recommendation: inhouse vs keep vs hybrid\n- If inhouse: schema design, TDD test plan, effort estimate\n- Observability hooks designed (aligns with ADR-005)\n- Migration path documented","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-26T03:16:46.827Z","updated_at":"2025-12-26T03:29:01.651Z","closed_at":"2025-12-26T03:29:01.651Z","dependencies":[],"labels":[],"comments":[]}
121
+ {"id":"opencode-swarm-plugin--ys7z8-mjmavq7m7od","title":"T1: CASS Architecture Deep Dive","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-26T03:16:46.834Z","updated_at":"2025-12-26T03:22:05.154Z","closed_at":"2025-12-26T03:22:05.154Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmavq7f31x","dependencies":[],"labels":[],"comments":[]}
122
+ {"id":"opencode-swarm-plugin--ys7z8-mjmavq7pz17","title":"T2: Semantic Memory Gap Analysis","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-26T03:16:46.837Z","updated_at":"2025-12-26T03:22:06.745Z","closed_at":"2025-12-26T03:22:06.745Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmavq7f31x","dependencies":[],"labels":[],"comments":[]}
123
+ {"id":"opencode-swarm-plugin--ys7z8-mjmavq7rt9z","title":"T3: Agent Session Format Survey","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-26T03:16:46.839Z","updated_at":"2025-12-26T03:22:08.486Z","closed_at":"2025-12-26T03:22:08.486Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmavq7f31x","dependencies":[],"labels":[],"comments":[]}
124
+ {"id":"opencode-swarm-plugin--ys7z8-mjmavq7va7b","title":"T4: Write ADR-010 with TDD Plan","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-26T03:16:46.843Z","updated_at":"2025-12-26T03:28:59.753Z","closed_at":"2025-12-26T03:28:59.753Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmavq7f31x","dependencies":[],"labels":[],"comments":[]}
@@ -1,9 +1,9 @@
1
1
  $ bun build ./src/index.ts --outdir ./dist --target node --external @electric-sql/pglite --external swarm-mail --external vitest --external @vitest/ui --external lightningcss && bun build ./src/plugin.ts --outfile ./dist/plugin.js --target node --external @electric-sql/pglite --external swarm-mail --external vitest --external @vitest/ui --external lightningcss && tsc
2
- Bundled 1348 modules in 220ms
2
+ Bundled 1349 modules in 230ms
3
3
 
4
- index.js 4.33 MB (entry point)
4
+ index.js 4.34 MB (entry point)
5
5
 
6
- Bundled 1349 modules in 210ms
6
+ Bundled 1350 modules in 215ms
7
7
 
8
- plugin.js 4.30 MB (entry point)
8
+ plugin.js 4.31 MB (entry point)
9
9
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,59 @@
1
1
  # opencode-swarm-plugin
2
2
 
3
+ ## 0.42.7
4
+
5
+ ### Patch Changes
6
+
7
+ - [`7a6a4a3`](https://github.com/joelhooks/swarm-tools/commit/7a6a4a37c4ea753de359dac5062d11186ee98ccd) Thanks [@joelhooks](https://github.com/joelhooks)! - ## 📐 Swarm Insights Gets Its Blueprint
8
+
9
+ > _"The major documentation tool for information architecture... diagrams."_
10
+ > — Jesse James Garrett, The Elements of User Experience
11
+
12
+ The README now shows you how the swarm learns, not just that it does.
13
+
14
+ **Added:**
15
+
16
+ - ASCII diagram of the swarm learning loop (task → decompose → execute → complete → insights → repeat)
17
+ - Data flow architecture showing Event Store → Insights Aggregation → Agents
18
+ - Full API reference with TypeScript examples for coordinators and workers
19
+ - Token budget table (500 for coordinators, 300 for workers)
20
+ - Recommendation threshold table (≥80% = good, <40% = AVOID)
21
+ - Data sources table (Event Store, Semantic Memory, Anti-Pattern Registry)
22
+
23
+ **Why it matters:**
24
+ Diagrams > prose for architecture. Now you can see the feedback loop at a glance instead of reading paragraphs. The API examples are copy-pasteable.
25
+
26
+ ```
27
+ ┌──────────┐ ┌──────────┐ ┌──────────┐
28
+ │ TASK │───▶│ INSIGHTS │───▶│ BETTER │
29
+ │ │ │ LAYER │ │ SWARMS │
30
+ └──────────┘ └──────────┘ └──────────┘
31
+ ```
32
+
33
+ - [`0ad79d5`](https://github.com/joelhooks/swarm-tools/commit/0ad79d57cd119517a8e04d0e74b4909f20a7f0be) Thanks [@joelhooks](https://github.com/joelhooks)! - ## Release Tweets Link to Source, PR Titles Get Smart
34
+
35
+ - Tweets now include link to the feature PR (or commit if pushed direct to main)
36
+ - Version bump PRs get AI-generated titles from changeset content via Opus
37
+ - No more "chore: update versions" - titles describe what actually shipped
38
+
39
+ ## 0.42.6
40
+
41
+ ### Patch Changes
42
+
43
+ - [`ab90238`](https://github.com/joelhooks/swarm-tools/commit/ab902386883fa9654c9977d28888582fafc093e5) Thanks [@joelhooks](https://github.com/joelhooks)! - ## Query Epic Children Without Rawdogging JSONL
44
+
45
+ `hive_cells` and `hive_query` now support `parent_id` filter. Find all children of an epic in one call:
46
+
47
+ ```typescript
48
+ hive_cells({ parent_id: "epic-id" }); // Returns all subtasks
49
+ hive_query({ parent_id: "epic-id", status: "open" }); // Open subtasks only
50
+ ```
51
+
52
+ No more grep/jq on issues.jsonl. The tools do what they should.
53
+
54
+ - Updated dependencies [[`ab90238`](https://github.com/joelhooks/swarm-tools/commit/ab902386883fa9654c9977d28888582fafc093e5)]:
55
+ - swarm-mail@1.5.5
56
+
3
57
  ## 0.42.5
4
58
 
5
59
  ### Patch Changes
package/README.md CHANGED
@@ -49,6 +49,152 @@ Done. You're swarming.
49
49
 
50
50
  ---
51
51
 
52
+ ## How Swarms Get Smarter Over Time
53
+
54
+ Swarms learn from outcomes. Every completed subtask records what worked and what failed - then injects that wisdom into future prompts.
55
+
56
+ ```
57
+ ┌─────────────────────────────────────────────────────────────────────────┐
58
+ │ SWARM LEARNING LOOP │
59
+ ├─────────────────────────────────────────────────────────────────────────┤
60
+ │ │
61
+ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
62
+ │ │ TASK │───▶│ DECOMPOSE│───▶│ EXECUTE │───▶│ COMPLETE │ │
63
+ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
64
+ │ ▲ │ │ │ │
65
+ │ │ ▼ ▼ ▼ │
66
+ │ │ ┌─────────────────────────────────────────┐ │
67
+ │ │ │ EVENT STORE │ │
68
+ │ │ │ subtask_outcome, eval_finalized, ... │ │
69
+ │ │ └─────────────────────────────────────────┘ │
70
+ │ │ │ │
71
+ │ │ ▼ │
72
+ │ │ ┌─────────────────────────────────────────┐ │
73
+ │ │ │ INSIGHTS LAYER │ │
74
+ │ │ │ Strategy | File | Pattern insights │ │
75
+ │ │ └─────────────────────────────────────────┘ │
76
+ │ │ │ │
77
+ │ └───────────────────────────┘ │
78
+ │ (injected into next decomposition) │
79
+ │ │
80
+ └─────────────────────────────────────────────────────────────────────────┘
81
+ ```
82
+
83
+ ### The Insights Layer
84
+
85
+ **swarm-insights** (`src/swarm-insights.ts`) is the data aggregation layer that queries historical outcomes and semantic memory to provide context-efficient summaries for coordinator and worker agents.
86
+
87
+ **Three insight types:**
88
+
89
+ | Type | What It Tracks | Used By |
90
+ |------|----------------|---------|
91
+ | **StrategyInsight** | Success rates by decomposition strategy (file-based, feature-based, risk-based) | Coordinators |
92
+ | **FileInsight** | File-specific failure patterns and gotchas from past subtasks | Workers |
93
+ | **PatternInsight** | Common failure patterns across all subtasks (type errors, timeouts, conflicts) | Coordinators |
94
+
95
+ ### Architecture
96
+
97
+ ```
98
+ ┌─────────────────────────────────────────────────────────────────────────┐
99
+ │ DATA FLOW │
100
+ ├─────────────────────────────────────────────────────────────────────────┤
101
+ │ │
102
+ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
103
+ │ │ Event Store │ │ Semantic Memory │ │ Anti-Patterns │ │
104
+ │ │ (libSQL) │ │ (Ollama/FTS) │ │ (Registry) │ │
105
+ │ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │
106
+ │ │ │ │ │
107
+ │ ▼ ▼ ▼ │
108
+ │ ┌─────────────────────────────────────────────────────────────────┐ │
109
+ │ │ INSIGHTS AGGREGATION │ │
110
+ │ │ │ │
111
+ │ │ getStrategyInsights() getFileInsights() getPatternInsights() │ │
112
+ │ │ │ │ │ │ │
113
+ │ │ └──────────────────────┼────────────────────┘ │ │
114
+ │ │ ▼ │ │
115
+ │ │ formatInsightsForPrompt() │ │
116
+ │ │ (token-budgeted output) │ │
117
+ │ └─────────────────────────────────────────────────────────────────┘ │
118
+ │ │ │
119
+ │ ┌───────────────────────┼───────────────────────┐ │
120
+ │ ▼ ▼ ▼ │
121
+ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
122
+ │ │ Coordinator │ │ Worker │ │ Worker │ │
123
+ │ │ (strategy + │ │ (file-specific │ │ (file-specific │ │
124
+ │ │ patterns) │ │ gotchas) │ │ gotchas) │ │
125
+ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
126
+ │ │
127
+ └─────────────────────────────────────────────────────────────────────────┘
128
+ ```
129
+
130
+ ### API Reference
131
+
132
+ **For coordinators** (strategy selection):
133
+ ```typescript
134
+ import { getStrategyInsights, getPatternInsights, formatInsightsForPrompt } from "opencode-swarm-plugin";
135
+
136
+ const strategies = await getStrategyInsights(swarmMail, task);
137
+ // Returns: [{ strategy: "file-based", successRate: 85.5, totalAttempts: 12, recommendation: "..." }]
138
+
139
+ const patterns = await getPatternInsights(swarmMail);
140
+ // Returns: [{ pattern: "type_error", frequency: 5, recommendation: "Add type annotations" }]
141
+
142
+ const summary = formatInsightsForPrompt({ strategies, patterns }, { maxTokens: 500 });
143
+ // Injected into decomposition prompt
144
+ ```
145
+
146
+ **For workers** (file-specific context):
147
+ ```typescript
148
+ import { getFileInsights, formatInsightsForPrompt } from "opencode-swarm-plugin";
149
+
150
+ const fileInsights = await getFileInsights(swarmMail, ["src/auth.ts", "src/db.ts"]);
151
+ // Returns: [{ file: "src/auth.ts", failureCount: 3, lastFailure: "2025-12-20T...", gotchas: [...] }]
152
+
153
+ const summary = formatInsightsForPrompt({ files: fileInsights }, { maxTokens: 300 });
154
+ // Injected into worker prompt
155
+ ```
156
+
157
+ **Caching** (5-minute TTL):
158
+ ```typescript
159
+ import { getCachedInsights, clearInsightsCache } from "opencode-swarm-plugin";
160
+
161
+ const insights = await getCachedInsights(swarmMail, "strategies:auth-task", async () => ({
162
+ strategies: await getStrategyInsights(swarmMail, "add auth"),
163
+ }));
164
+
165
+ clearInsightsCache(); // Force fresh computation
166
+ ```
167
+
168
+ ### Token Budgets
169
+
170
+ | Agent Type | Max Tokens | What's Included |
171
+ |------------|------------|-----------------|
172
+ | Coordinator | 500 | Top 3 strategies + top 3 patterns |
173
+ | Worker | 300 | Top 5 files with gotchas |
174
+
175
+ ### Recommendation Thresholds
176
+
177
+ Strategy success rates map to recommendations:
178
+
179
+ | Success Rate | Recommendation |
180
+ |--------------|----------------|
181
+ | ≥80% | "performing well" |
182
+ | 60-79% | "moderate - monitor for issues" |
183
+ | 40-59% | "low success - consider alternatives" |
184
+ | <40% | "AVOID - high failure rate" |
185
+
186
+ ### Data Sources
187
+
188
+ | Source | What It Provides | Query Pattern |
189
+ |--------|------------------|---------------|
190
+ | Event Store | `subtask_outcome` events with strategy, success, files_touched, error_type | SQL aggregation |
191
+ | Semantic Memory | File-specific learnings from past debugging | Semantic search (TODO) |
192
+ | Anti-Pattern Registry | Patterns with >60% failure rate | Direct lookup |
193
+
194
+ **See [swarmtools.ai/docs/insights](https://swarmtools.ai/docs) for full details.**
195
+
196
+ ---
197
+
52
198
  ## Optional But Recommended
53
199
 
54
200
  ### Semantic Memory (for pattern learning)
@@ -209,6 +355,7 @@ src/
209
355
  ├── swarm-mail.ts # Agent coordination tools
210
356
  ├── swarm-orchestrate.ts # Coordinator logic (spawns workers)
211
357
  ├── swarm-decompose.ts # Task decomposition strategies
358
+ ├── swarm-insights.ts # Historical insights aggregation (strategy/file/pattern)
212
359
  ├── swarm-review.ts # Review gate for completed work
213
360
  ├── skills.ts # Knowledge injection system
214
361
  ├── learning.ts # Pattern maturity, outcomes
package/bin/swarm.ts CHANGED
@@ -2522,8 +2522,8 @@ ${cyan("Commands:")}
2522
2522
  --port <n> Port to listen on (default: 3001)
2523
2523
  swarm cells List or get cells from database (replaces 'swarm tool hive_query')
2524
2524
  swarm log View swarm logs with filtering
2525
- swarm stats Show swarm health metrics and success rates
2526
- swarm history Show recent swarm activity timeline
2525
+ swarm stats Show swarm health metrics powered by swarm-insights (strategy success rates, patterns)
2526
+ swarm history Show recent swarm activity timeline with insights data
2527
2527
  swarm eval Eval-driven development commands
2528
2528
  swarm update Update to latest version
2529
2529
  swarm version Show version and banner
@@ -2559,10 +2559,10 @@ ${cyan("Log Viewing:")}
2559
2559
  swarm log sessions --json Raw JSON output for jq
2560
2560
 
2561
2561
  ${cyan("Stats & History:")}
2562
- swarm stats Show swarm health metrics (last 7 days)
2562
+ swarm stats Show swarm health metrics powered by swarm-insights (last 7 days)
2563
2563
  swarm stats --since 24h Show stats for custom time period
2564
2564
  swarm stats --json Output as JSON for scripting
2565
- swarm history Show recent swarms (last 10)
2565
+ swarm history Show recent swarm activity timeline with insights data (last 10)
2566
2566
  swarm history --limit 20 Show more swarms
2567
2567
  swarm history --status success Filter by success/failed/in_progress
2568
2568
  swarm history --strategy file-based Filter by decomposition strategy
package/dist/hive.d.ts CHANGED
@@ -217,12 +217,14 @@ export declare const hive_query: {
217
217
  chore: "chore";
218
218
  }>>;
219
219
  ready: z.ZodOptional<z.ZodBoolean>;
220
+ parent_id: z.ZodOptional<z.ZodString>;
220
221
  limit: z.ZodOptional<z.ZodNumber>;
221
222
  };
222
223
  execute(args: {
223
224
  status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
224
225
  type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
225
226
  ready?: boolean | undefined;
227
+ parent_id?: string | undefined;
226
228
  limit?: number | undefined;
227
229
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
228
230
  };
@@ -303,6 +305,7 @@ export declare const hive_cells: {
303
305
  epic: "epic";
304
306
  chore: "chore";
305
307
  }>>;
308
+ parent_id: z.ZodOptional<z.ZodString>;
306
309
  ready: z.ZodOptional<z.ZodBoolean>;
307
310
  limit: z.ZodOptional<z.ZodNumber>;
308
311
  };
@@ -310,6 +313,7 @@ export declare const hive_cells: {
310
313
  id?: string | undefined;
311
314
  status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
312
315
  type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
316
+ parent_id?: string | undefined;
313
317
  ready?: boolean | undefined;
314
318
  limit?: number | undefined;
315
319
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
@@ -426,12 +430,14 @@ export declare const hiveTools: {
426
430
  chore: "chore";
427
431
  }>>;
428
432
  ready: z.ZodOptional<z.ZodBoolean>;
433
+ parent_id: z.ZodOptional<z.ZodString>;
429
434
  limit: z.ZodOptional<z.ZodNumber>;
430
435
  };
431
436
  execute(args: {
432
437
  status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
433
438
  type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
434
439
  ready?: boolean | undefined;
440
+ parent_id?: string | undefined;
435
441
  limit?: number | undefined;
436
442
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
437
443
  };
@@ -497,6 +503,7 @@ export declare const hiveTools: {
497
503
  epic: "epic";
498
504
  chore: "chore";
499
505
  }>>;
506
+ parent_id: z.ZodOptional<z.ZodString>;
500
507
  ready: z.ZodOptional<z.ZodBoolean>;
501
508
  limit: z.ZodOptional<z.ZodNumber>;
502
509
  };
@@ -504,6 +511,7 @@ export declare const hiveTools: {
504
511
  id?: string | undefined;
505
512
  status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
506
513
  type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
514
+ parent_id?: string | undefined;
507
515
  ready?: boolean | undefined;
508
516
  limit?: number | undefined;
509
517
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
@@ -623,12 +631,14 @@ export declare const beads_query: {
623
631
  chore: "chore";
624
632
  }>>;
625
633
  ready: z.ZodOptional<z.ZodBoolean>;
634
+ parent_id: z.ZodOptional<z.ZodString>;
626
635
  limit: z.ZodOptional<z.ZodNumber>;
627
636
  };
628
637
  execute(args: {
629
638
  status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
630
639
  type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
631
640
  ready?: boolean | undefined;
641
+ parent_id?: string | undefined;
632
642
  limit?: number | undefined;
633
643
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
634
644
  };
@@ -804,12 +814,14 @@ export declare const beadsTools: {
804
814
  chore: "chore";
805
815
  }>>;
806
816
  ready: z.ZodOptional<z.ZodBoolean>;
817
+ parent_id: z.ZodOptional<z.ZodString>;
807
818
  limit: z.ZodOptional<z.ZodNumber>;
808
819
  };
809
820
  execute(args: {
810
821
  status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
811
822
  type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
812
823
  ready?: boolean | undefined;
824
+ parent_id?: string | undefined;
813
825
  limit?: number | undefined;
814
826
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
815
827
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hive.d.ts","sourceRoot":"","sources":["../src/hive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hive.d.ts","sourceRoot":"","sources":["../src/hive.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -139,6 +139,88 @@ export { swarmTools, SwarmError, DecompositionError, formatSubtaskPrompt, format
139
139
  * Note: hiveTools includes both hive_* and beads_* (legacy aliases)
140
140
  */
141
141
  export declare const allTools: {
142
+ readonly swarm_analytics: {
143
+ description: string;
144
+ args: {
145
+ query: import("zod").ZodEnum<{
146
+ "failed-decompositions": "failed-decompositions";
147
+ "strategy-success-rates": "strategy-success-rates";
148
+ "lock-contention": "lock-contention";
149
+ "agent-activity": "agent-activity";
150
+ "message-latency": "message-latency";
151
+ "scope-violations": "scope-violations";
152
+ "task-duration": "task-duration";
153
+ "checkpoint-frequency": "checkpoint-frequency";
154
+ "recovery-success": "recovery-success";
155
+ "human-feedback": "human-feedback";
156
+ }>;
157
+ since: import("zod").ZodOptional<import("zod").ZodString>;
158
+ format: import("zod").ZodOptional<import("zod").ZodEnum<{
159
+ summary: "summary";
160
+ json: "json";
161
+ }>>;
162
+ };
163
+ execute(args: {
164
+ query: "failed-decompositions" | "strategy-success-rates" | "lock-contention" | "agent-activity" | "message-latency" | "scope-violations" | "task-duration" | "checkpoint-frequency" | "recovery-success" | "human-feedback";
165
+ since?: string | undefined;
166
+ format?: "summary" | "json" | undefined;
167
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
168
+ };
169
+ readonly swarm_query: {
170
+ description: string;
171
+ args: {
172
+ sql: import("zod").ZodString;
173
+ format: import("zod").ZodOptional<import("zod").ZodEnum<{
174
+ json: "json";
175
+ table: "table";
176
+ }>>;
177
+ };
178
+ execute(args: {
179
+ sql: string;
180
+ format?: "json" | "table" | undefined;
181
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
182
+ };
183
+ readonly swarm_diagnose: {
184
+ description: string;
185
+ args: {
186
+ epic_id: import("zod").ZodOptional<import("zod").ZodString>;
187
+ bead_id: import("zod").ZodOptional<import("zod").ZodString>;
188
+ include: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
189
+ errors: "errors";
190
+ blockers: "blockers";
191
+ conflicts: "conflicts";
192
+ slow_tasks: "slow_tasks";
193
+ timeline: "timeline";
194
+ }>>>;
195
+ };
196
+ execute(args: {
197
+ epic_id?: string | undefined;
198
+ bead_id?: string | undefined;
199
+ include?: ("errors" | "blockers" | "conflicts" | "slow_tasks" | "timeline")[] | undefined;
200
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
201
+ };
202
+ readonly swarm_insights: {
203
+ description: string;
204
+ args: {
205
+ scope: import("zod").ZodEnum<{
206
+ project: "project";
207
+ epic: "epic";
208
+ recent: "recent";
209
+ }>;
210
+ epic_id: import("zod").ZodOptional<import("zod").ZodString>;
211
+ metrics: import("zod").ZodArray<import("zod").ZodEnum<{
212
+ success_rate: "success_rate";
213
+ avg_duration: "avg_duration";
214
+ conflict_rate: "conflict_rate";
215
+ retry_rate: "retry_rate";
216
+ }>>;
217
+ };
218
+ execute(args: {
219
+ scope: "project" | "epic" | "recent";
220
+ metrics: ("success_rate" | "avg_duration" | "conflict_rate" | "retry_rate")[];
221
+ epic_id?: string | undefined;
222
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
223
+ };
142
224
  readonly "semantic-memory_store": {
143
225
  description: string;
144
226
  args: {
@@ -1415,12 +1497,14 @@ export declare const allTools: {
1415
1497
  chore: "chore";
1416
1498
  }>>;
1417
1499
  ready: import("zod").ZodOptional<import("zod").ZodBoolean>;
1500
+ parent_id: import("zod").ZodOptional<import("zod").ZodString>;
1418
1501
  limit: import("zod").ZodOptional<import("zod").ZodNumber>;
1419
1502
  };
1420
1503
  execute(args: {
1421
1504
  status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
1422
1505
  type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
1423
1506
  ready?: boolean | undefined;
1507
+ parent_id?: string | undefined;
1424
1508
  limit?: number | undefined;
1425
1509
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
1426
1510
  };
@@ -1486,6 +1570,7 @@ export declare const allTools: {
1486
1570
  epic: "epic";
1487
1571
  chore: "chore";
1488
1572
  }>>;
1573
+ parent_id: import("zod").ZodOptional<import("zod").ZodString>;
1489
1574
  ready: import("zod").ZodOptional<import("zod").ZodBoolean>;
1490
1575
  limit: import("zod").ZodOptional<import("zod").ZodNumber>;
1491
1576
  };
@@ -1493,6 +1578,7 @@ export declare const allTools: {
1493
1578
  id?: string | undefined;
1494
1579
  status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
1495
1580
  type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
1581
+ parent_id?: string | undefined;
1496
1582
  ready?: boolean | undefined;
1497
1583
  limit?: number | undefined;
1498
1584
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
@@ -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;AA8CtE;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,WAAW,EAAE,MA2QlB,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,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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;AA8CtE;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,WAAW,EAAE,MA2QlB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}