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.
- package/.changeset/swarm-insights-data-layer.md +63 -0
- package/.hive/issues.jsonl +19 -1
- package/.turbo/turbo-build.log +4 -4
- package/CHANGELOG.md +54 -0
- package/README.md +147 -0
- package/bin/swarm.ts +4 -4
- package/dist/hive.d.ts +12 -0
- package/dist/hive.d.ts.map +1 -1
- package/dist/index.d.ts +86 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +236 -42
- package/dist/plugin.js +236 -42
- package/dist/schemas/cell.d.ts +2 -0
- package/dist/schemas/cell.d.ts.map +1 -1
- package/dist/swarm-insights.d.ts +155 -0
- package/dist/swarm-insights.d.ts.map +1 -0
- package/dist/swarm-prompts.d.ts.map +1 -1
- package/examples/plugin-wrapper-template.ts +30 -0
- package/package.json +2 -2
- package/src/hive.integration.test.ts +105 -0
- package/src/hive.ts +8 -0
- package/src/index.ts +1 -0
- package/src/schemas/cell.ts +1 -0
- package/src/swarm-insights.test.ts +214 -0
- package/src/swarm-insights.ts +459 -0
- package/src/swarm-prompts.test.ts +165 -0
- package/src/swarm-prompts.ts +74 -56
|
@@ -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.
|
package/.hive/issues.jsonl
CHANGED
|
@@ -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":[]}
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -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
|
|
2
|
+
Bundled 1349 modules in 230ms
|
|
3
3
|
|
|
4
|
-
index.js 4.
|
|
4
|
+
index.js 4.34 MB (entry point)
|
|
5
5
|
|
|
6
|
-
Bundled
|
|
6
|
+
Bundled 1350 modules in 215ms
|
|
7
7
|
|
|
8
|
-
plugin.js 4.
|
|
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
|
|
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
|
|
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
|
};
|
package/dist/hive.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hive.d.ts","sourceRoot":"","sources":["../src/hive.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAKL,KAAK,WAAW,EAIjB,MAAM,YAAY,CAAC;AAepB;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAGD,eAAO,MAAM,wBAAwB,gCAA0B,CAAC;AAChE,eAAO,MAAM,wBAAwB,gCAA0B,CAAC;AAuChE;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;aAGhB,OAAO,EAAE,MAAM;aACf,QAAQ,CAAC,EAAE,MAAM;aACjB,MAAM,CAAC,EAAE,MAAM;gBAH/B,OAAO,EAAE,MAAM,EACC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,MAAM,CAAC,EAAE,MAAM,YAAA;CAKlC;AAGD,eAAO,MAAM,SAAS,kBAAY,CAAC;AAEnC;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBADpC,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,CAAC,CAAC,QAAQ;CAKvC;AAGD,eAAO,MAAM,mBAAmB,4BAAsB,CAAC;AAMvD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CAgBnF;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAyBtF;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAO7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CA6CxG;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAmGD;AAoFD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAiB7E;AAGD,eAAO,MAAM,eAAe,uBAAiB,CAAC;AA+E9C;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;CA+CtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoM3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU
|
|
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>;
|
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;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
|
|
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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"}
|