opencode-swarm-plugin 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/.turbo/turbo-build.log +9 -0
  2. package/CHANGELOG.md +12 -0
  3. package/README.md +111 -166
  4. package/dist/agent-mail.d.ts +480 -0
  5. package/dist/agent-mail.d.ts.map +1 -0
  6. package/dist/anti-patterns.d.ts +257 -0
  7. package/dist/anti-patterns.d.ts.map +1 -0
  8. package/dist/beads.d.ts +377 -0
  9. package/dist/beads.d.ts.map +1 -0
  10. package/dist/eval-capture.d.ts +206 -0
  11. package/dist/eval-capture.d.ts.map +1 -0
  12. package/dist/index.d.ts +1299 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +776 -4387
  15. package/dist/learning.d.ts +670 -0
  16. package/dist/learning.d.ts.map +1 -0
  17. package/dist/mandate-promotion.d.ts +93 -0
  18. package/dist/mandate-promotion.d.ts.map +1 -0
  19. package/dist/mandate-storage.d.ts +209 -0
  20. package/dist/mandate-storage.d.ts.map +1 -0
  21. package/dist/mandates.d.ts +230 -0
  22. package/dist/mandates.d.ts.map +1 -0
  23. package/dist/output-guardrails.d.ts +125 -0
  24. package/dist/output-guardrails.d.ts.map +1 -0
  25. package/dist/pattern-maturity.d.ts +246 -0
  26. package/dist/pattern-maturity.d.ts.map +1 -0
  27. package/dist/plugin.d.ts +22 -0
  28. package/dist/plugin.d.ts.map +1 -0
  29. package/dist/plugin.js +755 -4375
  30. package/dist/rate-limiter.d.ts +218 -0
  31. package/dist/rate-limiter.d.ts.map +1 -0
  32. package/dist/repo-crawl.d.ts +146 -0
  33. package/dist/repo-crawl.d.ts.map +1 -0
  34. package/dist/schemas/bead.d.ts +255 -0
  35. package/dist/schemas/bead.d.ts.map +1 -0
  36. package/dist/schemas/evaluation.d.ts +161 -0
  37. package/dist/schemas/evaluation.d.ts.map +1 -0
  38. package/dist/schemas/index.d.ts +34 -0
  39. package/dist/schemas/index.d.ts.map +1 -0
  40. package/dist/schemas/mandate.d.ts +336 -0
  41. package/dist/schemas/mandate.d.ts.map +1 -0
  42. package/dist/schemas/swarm-context.d.ts +131 -0
  43. package/dist/schemas/swarm-context.d.ts.map +1 -0
  44. package/dist/schemas/task.d.ts +188 -0
  45. package/dist/schemas/task.d.ts.map +1 -0
  46. package/dist/skills.d.ts +471 -0
  47. package/dist/skills.d.ts.map +1 -0
  48. package/dist/storage.d.ts +260 -0
  49. package/dist/storage.d.ts.map +1 -0
  50. package/dist/structured.d.ts +196 -0
  51. package/dist/structured.d.ts.map +1 -0
  52. package/dist/swarm-decompose.d.ts +201 -0
  53. package/dist/swarm-decompose.d.ts.map +1 -0
  54. package/dist/swarm-mail.d.ts +240 -0
  55. package/dist/swarm-mail.d.ts.map +1 -0
  56. package/dist/swarm-orchestrate.d.ts +708 -0
  57. package/dist/swarm-orchestrate.d.ts.map +1 -0
  58. package/dist/swarm-prompts.d.ts +292 -0
  59. package/dist/swarm-prompts.d.ts.map +1 -0
  60. package/dist/swarm-strategies.d.ts +100 -0
  61. package/dist/swarm-strategies.d.ts.map +1 -0
  62. package/dist/swarm.d.ts +455 -0
  63. package/dist/swarm.d.ts.map +1 -0
  64. package/dist/tool-availability.d.ts +91 -0
  65. package/dist/tool-availability.d.ts.map +1 -0
  66. package/docs/planning/ADR-001-monorepo-structure.md +171 -0
  67. package/docs/planning/ADR-002-package-extraction.md +393 -0
  68. package/docs/planning/ADR-003-performance-improvements.md +451 -0
  69. package/docs/planning/ADR-004-message-queue-features.md +187 -0
  70. package/docs/planning/ADR-005-devtools-observability.md +202 -0
  71. package/docs/planning/ROADMAP.md +368 -0
  72. package/docs/semantic-memory-cli-syntax.md +123 -0
  73. package/docs/swarm-mail-architecture.md +1147 -0
  74. package/package.json +13 -24
  75. package/scripts/cleanup-test-memories.ts +346 -0
  76. package/src/agent-mail.ts +1 -1
  77. package/src/beads.ts +1 -2
  78. package/src/index.ts +2 -2
  79. package/src/learning.integration.test.ts +80 -10
  80. package/src/mandate-storage.test.ts +3 -3
  81. package/src/storage.ts +189 -9
  82. package/src/swarm-mail.ts +3 -3
  83. package/src/swarm-orchestrate.ts +399 -246
  84. package/src/swarm.integration.test.ts +124 -0
  85. package/src/tool-availability.ts +1 -1
  86. package/tsconfig.json +1 -1
  87. package/.beads/.local_version +0 -1
  88. package/.beads/README.md +0 -81
  89. package/.beads/analysis/skill-architecture-meta-skills.md +0 -1562
  90. package/.beads/config.yaml +0 -62
  91. package/.beads/issues.jsonl +0 -2186
  92. package/.beads/metadata.json +0 -4
  93. package/.gitattributes +0 -3
  94. package/.github/workflows/ci.yml +0 -30
  95. package/.github/workflows/opencode.yml +0 -31
  96. package/.opencode/skills/tdd/SKILL.md +0 -182
  97. package/INTEGRATION_EXAMPLE.md +0 -66
  98. package/VERIFICATION_QUALITY_PATTERNS.md +0 -565
  99. package/bun.lock +0 -286
  100. package/dist/pglite.data +0 -0
  101. package/dist/pglite.wasm +0 -0
  102. package/src/streams/agent-mail.test.ts +0 -777
  103. package/src/streams/agent-mail.ts +0 -535
  104. package/src/streams/debug.test.ts +0 -500
  105. package/src/streams/debug.ts +0 -727
  106. package/src/streams/effect/ask.integration.test.ts +0 -314
  107. package/src/streams/effect/ask.ts +0 -202
  108. package/src/streams/effect/cursor.integration.test.ts +0 -418
  109. package/src/streams/effect/cursor.ts +0 -288
  110. package/src/streams/effect/deferred.test.ts +0 -357
  111. package/src/streams/effect/deferred.ts +0 -445
  112. package/src/streams/effect/index.ts +0 -17
  113. package/src/streams/effect/layers.ts +0 -73
  114. package/src/streams/effect/lock.test.ts +0 -385
  115. package/src/streams/effect/lock.ts +0 -399
  116. package/src/streams/effect/mailbox.test.ts +0 -260
  117. package/src/streams/effect/mailbox.ts +0 -318
  118. package/src/streams/events.test.ts +0 -924
  119. package/src/streams/events.ts +0 -329
  120. package/src/streams/index.test.ts +0 -229
  121. package/src/streams/index.ts +0 -578
  122. package/src/streams/migrations.test.ts +0 -359
  123. package/src/streams/migrations.ts +0 -362
  124. package/src/streams/projections.test.ts +0 -611
  125. package/src/streams/projections.ts +0 -504
  126. package/src/streams/store.integration.test.ts +0 -658
  127. package/src/streams/store.ts +0 -1075
  128. package/src/streams/swarm-mail.ts +0 -552
  129. package/test-bug-fixes.ts +0 -86
  130. package/vitest.integration.config.ts +0 -13
  131. package/workflow-integration-analysis.md +0 -876
@@ -0,0 +1,1299 @@
1
+ /**
2
+ * OpenCode Swarm Plugin
3
+ *
4
+ * A type-safe plugin for multi-agent coordination with beads issue tracking
5
+ * and Agent Mail integration. Provides structured tools for swarm operations.
6
+ *
7
+ * @module opencode-swarm-plugin
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // In opencode.jsonc
12
+ * {
13
+ * "plugins": ["opencode-swarm-plugin"]
14
+ * }
15
+ * ```
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * // Programmatic usage
20
+ * import { beadsTools, agentMailTools, swarmMailTools } from "opencode-swarm-plugin"
21
+ * ```
22
+ */
23
+ import type { Plugin } from "@opencode-ai/plugin";
24
+ /**
25
+ * OpenCode Swarm Plugin
26
+ *
27
+ * Registers all swarm coordination tools:
28
+ * - beads:* - Type-safe beads issue tracker wrappers
29
+ * - agent-mail:* - Multi-agent coordination via Agent Mail MCP (legacy)
30
+ * - swarm-mail:* - Multi-agent coordination with embedded event sourcing (recommended)
31
+ * - structured:* - Structured output parsing and validation
32
+ * - swarm:* - Swarm orchestration and task decomposition
33
+ * - repo-crawl:* - GitHub API tools for repository research
34
+ * - skills:* - Agent skills discovery, activation, and execution
35
+ * - mandate:* - Agent voting system for collaborative knowledge curation
36
+ *
37
+ * @param input - Plugin context from OpenCode
38
+ * @returns Plugin hooks including tools, events, and tool execution hooks
39
+ */
40
+ export declare const SwarmPlugin: Plugin;
41
+ /**
42
+ * Default export for OpenCode plugin loading
43
+ *
44
+ * OpenCode loads plugins by their default export, so this allows:
45
+ * ```json
46
+ * { "plugins": ["opencode-swarm-plugin"] }
47
+ * ```
48
+ */
49
+ export default SwarmPlugin;
50
+ /**
51
+ * Re-export all schemas for type-safe usage
52
+ */
53
+ export * from "./schemas";
54
+ /**
55
+ * Re-export beads module
56
+ *
57
+ * Includes:
58
+ * - beadsTools - All bead tool definitions
59
+ * - Individual tool exports (beads_create, beads_query, etc.)
60
+ * - BeadError, BeadValidationError - Error classes
61
+ */
62
+ export * from "./beads";
63
+ /**
64
+ * Re-export agent-mail module (legacy MCP-based)
65
+ *
66
+ * Includes:
67
+ * - agentMailTools - All agent mail tool definitions
68
+ * - AgentMailError, FileReservationConflictError - Error classes
69
+ * - AgentMailState - Session state type
70
+ *
71
+ * NOTE: For OpenCode plugin usage, import from "opencode-swarm-plugin/plugin" instead
72
+ * to avoid the plugin loader trying to call these classes as functions.
73
+ *
74
+ * DEPRECATED: Use swarm-mail module instead for embedded event-sourced implementation.
75
+ */
76
+ export { agentMailTools, AgentMailError, AgentMailNotInitializedError, FileReservationConflictError, createAgentMailError, setAgentMailProjectDirectory, getAgentMailProjectDirectory, mcpCallWithAutoInit, isProjectNotFoundError, isAgentNotFoundError, type AgentMailState, } from "./agent-mail";
77
+ /**
78
+ * Re-export swarm-mail module (embedded event-sourced)
79
+ *
80
+ * Includes:
81
+ * - swarmMailTools - All swarm mail tool definitions
82
+ * - setSwarmMailProjectDirectory, getSwarmMailProjectDirectory - Directory management
83
+ * - clearSessionState - Session cleanup
84
+ * - SwarmMailState - Session state type
85
+ *
86
+ * Features:
87
+ * - Embedded PGLite storage (no external server dependency)
88
+ * - Event sourcing for full audit trail
89
+ * - Offset-based resumability
90
+ * - Materialized views for fast queries
91
+ * - File reservation with conflict detection
92
+ */
93
+ export { swarmMailTools, setSwarmMailProjectDirectory, getSwarmMailProjectDirectory, clearSessionState, type SwarmMailState, } from "./swarm-mail";
94
+ /**
95
+ * Re-export shared types from swarm-mail package
96
+ *
97
+ * Includes:
98
+ * - MailSessionState - Shared session state type for Agent Mail and Swarm Mail
99
+ */
100
+ export { type MailSessionState } from "swarm-mail";
101
+ /**
102
+ * Re-export structured module
103
+ *
104
+ * Includes:
105
+ * - structuredTools - Structured output parsing tools
106
+ * - Utility functions for JSON extraction
107
+ */
108
+ export { structuredTools, extractJsonFromText, formatZodErrors, getSchemaByName, } from "./structured";
109
+ /**
110
+ * Re-export swarm module
111
+ *
112
+ * Includes:
113
+ * - swarmTools - Swarm orchestration tools
114
+ * - SwarmError, DecompositionError - Error classes
115
+ * - formatSubtaskPrompt, formatEvaluationPrompt - Prompt helpers
116
+ * - selectStrategy, formatStrategyGuidelines - Strategy selection helpers
117
+ * - STRATEGIES - Strategy definitions
118
+ *
119
+ * Types:
120
+ * - DecompositionStrategy - Strategy type union
121
+ * - StrategyDefinition - Strategy definition interface
122
+ *
123
+ * NOTE: Prompt template strings (DECOMPOSITION_PROMPT, etc.) are NOT exported
124
+ * to avoid confusing the plugin loader which tries to call all exports as functions
125
+ */
126
+ export { swarmTools, SwarmError, DecompositionError, formatSubtaskPrompt, formatSubtaskPromptV2, formatEvaluationPrompt, SUBTASK_PROMPT_V2, STRATEGIES, selectStrategy, formatStrategyGuidelines, type DecompositionStrategy, type StrategyDefinition, } from "./swarm";
127
+ /**
128
+ * All tools in a single registry for CLI tool execution
129
+ *
130
+ * This is used by `swarm tool <name>` command to dynamically execute tools.
131
+ * Each tool has an `execute` function that takes (args, ctx) and returns a string.
132
+ */
133
+ export declare const allTools: {
134
+ readonly mandate_file: {
135
+ description: string;
136
+ args: {
137
+ content: import("zod").ZodString;
138
+ content_type: import("zod").ZodEnum<{
139
+ idea: "idea";
140
+ tip: "tip";
141
+ lore: "lore";
142
+ snippet: "snippet";
143
+ feature_request: "feature_request";
144
+ }>;
145
+ tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
146
+ metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
147
+ };
148
+ execute(args: {
149
+ content: string;
150
+ content_type: "idea" | "tip" | "lore" | "snippet" | "feature_request";
151
+ tags?: string[] | undefined;
152
+ metadata?: Record<string, unknown> | undefined;
153
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
154
+ };
155
+ readonly mandate_vote: {
156
+ description: string;
157
+ args: {
158
+ mandate_id: import("zod").ZodString;
159
+ vote_type: import("zod").ZodEnum<{
160
+ upvote: "upvote";
161
+ downvote: "downvote";
162
+ }>;
163
+ agent_name: import("zod").ZodString;
164
+ };
165
+ execute(args: {
166
+ mandate_id: string;
167
+ vote_type: "upvote" | "downvote";
168
+ agent_name: string;
169
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
170
+ };
171
+ readonly mandate_query: {
172
+ description: string;
173
+ args: {
174
+ query: import("zod").ZodString;
175
+ limit: import("zod").ZodOptional<import("zod").ZodNumber>;
176
+ status: import("zod").ZodOptional<import("zod").ZodEnum<{
177
+ candidate: "candidate";
178
+ established: "established";
179
+ mandate: "mandate";
180
+ rejected: "rejected";
181
+ }>>;
182
+ content_type: import("zod").ZodOptional<import("zod").ZodEnum<{
183
+ idea: "idea";
184
+ tip: "tip";
185
+ lore: "lore";
186
+ snippet: "snippet";
187
+ feature_request: "feature_request";
188
+ }>>;
189
+ };
190
+ execute(args: {
191
+ query: string;
192
+ limit?: number | undefined;
193
+ status?: "candidate" | "established" | "mandate" | "rejected" | undefined;
194
+ content_type?: "idea" | "tip" | "lore" | "snippet" | "feature_request" | undefined;
195
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
196
+ };
197
+ readonly mandate_list: {
198
+ description: string;
199
+ args: {
200
+ status: import("zod").ZodOptional<import("zod").ZodEnum<{
201
+ candidate: "candidate";
202
+ established: "established";
203
+ mandate: "mandate";
204
+ rejected: "rejected";
205
+ }>>;
206
+ content_type: import("zod").ZodOptional<import("zod").ZodEnum<{
207
+ idea: "idea";
208
+ tip: "tip";
209
+ lore: "lore";
210
+ snippet: "snippet";
211
+ feature_request: "feature_request";
212
+ }>>;
213
+ limit: import("zod").ZodOptional<import("zod").ZodNumber>;
214
+ };
215
+ execute(args: {
216
+ status?: "candidate" | "established" | "mandate" | "rejected" | undefined;
217
+ content_type?: "idea" | "tip" | "lore" | "snippet" | "feature_request" | undefined;
218
+ limit?: number | undefined;
219
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
220
+ };
221
+ readonly mandate_stats: {
222
+ description: string;
223
+ args: {
224
+ mandate_id: import("zod").ZodOptional<import("zod").ZodString>;
225
+ };
226
+ execute(args: {
227
+ mandate_id?: string | undefined;
228
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
229
+ };
230
+ readonly skills_list: {
231
+ description: string;
232
+ args: {
233
+ tag: import("zod").ZodOptional<import("zod").ZodString>;
234
+ };
235
+ execute(args: {
236
+ tag?: string | undefined;
237
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
238
+ };
239
+ readonly skills_use: {
240
+ description: string;
241
+ args: {
242
+ name: import("zod").ZodString;
243
+ include_scripts: import("zod").ZodOptional<import("zod").ZodBoolean>;
244
+ };
245
+ execute(args: {
246
+ name: string;
247
+ include_scripts?: boolean | undefined;
248
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
249
+ };
250
+ readonly skills_execute: {
251
+ description: string;
252
+ args: {
253
+ skill: import("zod").ZodString;
254
+ script: import("zod").ZodString;
255
+ args: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
256
+ };
257
+ execute(args: {
258
+ skill: string;
259
+ script: string;
260
+ args?: string[] | undefined;
261
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
262
+ };
263
+ readonly skills_read: {
264
+ description: string;
265
+ args: {
266
+ skill: import("zod").ZodString;
267
+ file: import("zod").ZodString;
268
+ };
269
+ execute(args: {
270
+ skill: string;
271
+ file: string;
272
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
273
+ };
274
+ readonly skills_create: {
275
+ description: string;
276
+ args: {
277
+ name: import("zod").ZodString;
278
+ description: import("zod").ZodString;
279
+ body: import("zod").ZodString;
280
+ tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
281
+ tools: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
282
+ directory: import("zod").ZodOptional<import("zod").ZodEnum<{
283
+ ".opencode/skills": ".opencode/skills";
284
+ ".claude/skills": ".claude/skills";
285
+ skills: "skills";
286
+ global: "global";
287
+ "global-claude": "global-claude";
288
+ }>>;
289
+ };
290
+ execute(args: {
291
+ name: string;
292
+ description: string;
293
+ body: string;
294
+ tags?: string[] | undefined;
295
+ tools?: string[] | undefined;
296
+ directory?: ".opencode/skills" | ".claude/skills" | "skills" | "global" | "global-claude" | undefined;
297
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
298
+ };
299
+ readonly skills_update: {
300
+ description: string;
301
+ args: {
302
+ name: import("zod").ZodString;
303
+ description: import("zod").ZodOptional<import("zod").ZodString>;
304
+ body: import("zod").ZodOptional<import("zod").ZodString>;
305
+ append_body: import("zod").ZodOptional<import("zod").ZodString>;
306
+ tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
307
+ add_tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
308
+ tools: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
309
+ };
310
+ execute(args: {
311
+ name: string;
312
+ description?: string | undefined;
313
+ body?: string | undefined;
314
+ append_body?: string | undefined;
315
+ tags?: string[] | undefined;
316
+ add_tags?: string[] | undefined;
317
+ tools?: string[] | undefined;
318
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
319
+ };
320
+ readonly skills_delete: {
321
+ description: string;
322
+ args: {
323
+ name: import("zod").ZodString;
324
+ confirm: import("zod").ZodBoolean;
325
+ };
326
+ execute(args: {
327
+ name: string;
328
+ confirm: boolean;
329
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
330
+ };
331
+ readonly skills_add_script: {
332
+ description: string;
333
+ args: {
334
+ skill: import("zod").ZodString;
335
+ script_name: import("zod").ZodString;
336
+ content: import("zod").ZodString;
337
+ executable: import("zod").ZodDefault<import("zod").ZodBoolean>;
338
+ };
339
+ execute(args: {
340
+ skill: string;
341
+ script_name: string;
342
+ content: string;
343
+ executable: boolean;
344
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
345
+ };
346
+ readonly skills_init: {
347
+ description: string;
348
+ args: {
349
+ name: import("zod").ZodString;
350
+ description: import("zod").ZodOptional<import("zod").ZodString>;
351
+ directory: import("zod").ZodOptional<import("zod").ZodEnum<{
352
+ ".opencode/skills": ".opencode/skills";
353
+ ".claude/skills": ".claude/skills";
354
+ skills: "skills";
355
+ global: "global";
356
+ }>>;
357
+ include_example_script: import("zod").ZodDefault<import("zod").ZodBoolean>;
358
+ include_reference: import("zod").ZodDefault<import("zod").ZodBoolean>;
359
+ };
360
+ execute(args: {
361
+ name: string;
362
+ include_example_script: boolean;
363
+ include_reference: boolean;
364
+ description?: string | undefined;
365
+ directory?: ".opencode/skills" | ".claude/skills" | "skills" | "global" | undefined;
366
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
367
+ };
368
+ readonly repo_readme: {
369
+ description: string;
370
+ args: {
371
+ repo: import("zod").ZodString;
372
+ maxLength: import("zod").ZodOptional<import("zod").ZodNumber>;
373
+ };
374
+ execute(args: {
375
+ repo: string;
376
+ maxLength?: number | undefined;
377
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
378
+ };
379
+ readonly repo_structure: {
380
+ description: string;
381
+ args: {
382
+ repo: import("zod").ZodString;
383
+ depth: import("zod").ZodOptional<import("zod").ZodNumber>;
384
+ };
385
+ execute(args: {
386
+ repo: string;
387
+ depth?: number | undefined;
388
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
389
+ };
390
+ readonly repo_tree: {
391
+ description: string;
392
+ args: {
393
+ repo: import("zod").ZodString;
394
+ path: import("zod").ZodOptional<import("zod").ZodString>;
395
+ maxDepth: import("zod").ZodOptional<import("zod").ZodNumber>;
396
+ };
397
+ execute(args: {
398
+ repo: string;
399
+ path?: string | undefined;
400
+ maxDepth?: number | undefined;
401
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
402
+ };
403
+ readonly repo_file: {
404
+ description: string;
405
+ args: {
406
+ repo: import("zod").ZodString;
407
+ path: import("zod").ZodString;
408
+ maxLength: import("zod").ZodOptional<import("zod").ZodNumber>;
409
+ };
410
+ execute(args: {
411
+ repo: string;
412
+ path: string;
413
+ maxLength?: number | undefined;
414
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
415
+ };
416
+ readonly repo_search: {
417
+ description: string;
418
+ args: {
419
+ repo: import("zod").ZodString;
420
+ query: import("zod").ZodString;
421
+ maxResults: import("zod").ZodOptional<import("zod").ZodNumber>;
422
+ };
423
+ execute(args: {
424
+ repo: string;
425
+ query: string;
426
+ maxResults?: number | undefined;
427
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
428
+ };
429
+ readonly swarm_init: {
430
+ description: string;
431
+ args: {
432
+ project_path: import("zod").ZodOptional<import("zod").ZodString>;
433
+ };
434
+ execute(args: {
435
+ project_path?: string | undefined;
436
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
437
+ };
438
+ readonly swarm_status: {
439
+ description: string;
440
+ args: {
441
+ epic_id: import("zod").ZodString;
442
+ project_key: import("zod").ZodString;
443
+ };
444
+ execute(args: {
445
+ epic_id: string;
446
+ project_key: string;
447
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
448
+ };
449
+ readonly swarm_progress: {
450
+ description: string;
451
+ args: {
452
+ project_key: import("zod").ZodString;
453
+ agent_name: import("zod").ZodString;
454
+ bead_id: import("zod").ZodString;
455
+ status: import("zod").ZodEnum<{
456
+ in_progress: "in_progress";
457
+ blocked: "blocked";
458
+ failed: "failed";
459
+ completed: "completed";
460
+ }>;
461
+ message: import("zod").ZodOptional<import("zod").ZodString>;
462
+ progress_percent: import("zod").ZodOptional<import("zod").ZodNumber>;
463
+ files_touched: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
464
+ };
465
+ execute(args: {
466
+ project_key: string;
467
+ agent_name: string;
468
+ bead_id: string;
469
+ status: "in_progress" | "blocked" | "failed" | "completed";
470
+ message?: string | undefined;
471
+ progress_percent?: number | undefined;
472
+ files_touched?: string[] | undefined;
473
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
474
+ };
475
+ readonly swarm_broadcast: {
476
+ description: string;
477
+ args: {
478
+ project_path: import("zod").ZodString;
479
+ agent_name: import("zod").ZodString;
480
+ epic_id: import("zod").ZodString;
481
+ message: import("zod").ZodString;
482
+ importance: import("zod").ZodDefault<import("zod").ZodEnum<{
483
+ info: "info";
484
+ warning: "warning";
485
+ blocker: "blocker";
486
+ }>>;
487
+ files_affected: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
488
+ };
489
+ execute(args: {
490
+ project_path: string;
491
+ agent_name: string;
492
+ epic_id: string;
493
+ message: string;
494
+ importance: "info" | "warning" | "blocker";
495
+ files_affected?: string[] | undefined;
496
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
497
+ };
498
+ readonly swarm_complete: {
499
+ description: string;
500
+ args: {
501
+ project_key: import("zod").ZodString;
502
+ agent_name: import("zod").ZodString;
503
+ bead_id: import("zod").ZodString;
504
+ summary: import("zod").ZodString;
505
+ evaluation: import("zod").ZodOptional<import("zod").ZodString>;
506
+ files_touched: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
507
+ skip_ubs_scan: import("zod").ZodOptional<import("zod").ZodBoolean>;
508
+ skip_verification: import("zod").ZodOptional<import("zod").ZodBoolean>;
509
+ planned_files: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
510
+ start_time: import("zod").ZodOptional<import("zod").ZodNumber>;
511
+ error_count: import("zod").ZodOptional<import("zod").ZodNumber>;
512
+ retry_count: import("zod").ZodOptional<import("zod").ZodNumber>;
513
+ };
514
+ execute(args: {
515
+ project_key: string;
516
+ agent_name: string;
517
+ bead_id: string;
518
+ summary: string;
519
+ evaluation?: string | undefined;
520
+ files_touched?: string[] | undefined;
521
+ skip_ubs_scan?: boolean | undefined;
522
+ skip_verification?: boolean | undefined;
523
+ planned_files?: string[] | undefined;
524
+ start_time?: number | undefined;
525
+ error_count?: number | undefined;
526
+ retry_count?: number | undefined;
527
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
528
+ };
529
+ readonly swarm_record_outcome: {
530
+ description: string;
531
+ args: {
532
+ bead_id: import("zod").ZodString;
533
+ duration_ms: import("zod").ZodNumber;
534
+ error_count: import("zod").ZodDefault<import("zod").ZodNumber>;
535
+ retry_count: import("zod").ZodDefault<import("zod").ZodNumber>;
536
+ success: import("zod").ZodBoolean;
537
+ files_touched: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
538
+ criteria: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
539
+ strategy: import("zod").ZodOptional<import("zod").ZodEnum<{
540
+ "file-based": "file-based";
541
+ "feature-based": "feature-based";
542
+ "risk-based": "risk-based";
543
+ "research-based": "research-based";
544
+ }>>;
545
+ failure_mode: import("zod").ZodOptional<import("zod").ZodEnum<{
546
+ timeout: "timeout";
547
+ unknown: "unknown";
548
+ conflict: "conflict";
549
+ validation: "validation";
550
+ tool_failure: "tool_failure";
551
+ context_overflow: "context_overflow";
552
+ dependency_blocked: "dependency_blocked";
553
+ user_cancelled: "user_cancelled";
554
+ }>>;
555
+ failure_details: import("zod").ZodOptional<import("zod").ZodString>;
556
+ };
557
+ execute(args: {
558
+ bead_id: string;
559
+ duration_ms: number;
560
+ error_count: number;
561
+ retry_count: number;
562
+ success: boolean;
563
+ files_touched?: string[] | undefined;
564
+ criteria?: string[] | undefined;
565
+ strategy?: "file-based" | "feature-based" | "risk-based" | "research-based" | undefined;
566
+ failure_mode?: "timeout" | "unknown" | "conflict" | "validation" | "tool_failure" | "context_overflow" | "dependency_blocked" | "user_cancelled" | undefined;
567
+ failure_details?: string | undefined;
568
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
569
+ };
570
+ readonly swarm_accumulate_error: {
571
+ description: string;
572
+ args: {
573
+ bead_id: import("zod").ZodString;
574
+ error_type: import("zod").ZodEnum<{
575
+ timeout: "timeout";
576
+ unknown: "unknown";
577
+ conflict: "conflict";
578
+ validation: "validation";
579
+ tool_failure: "tool_failure";
580
+ }>;
581
+ message: import("zod").ZodString;
582
+ stack_trace: import("zod").ZodOptional<import("zod").ZodString>;
583
+ tool_name: import("zod").ZodOptional<import("zod").ZodString>;
584
+ context: import("zod").ZodOptional<import("zod").ZodString>;
585
+ };
586
+ execute(args: {
587
+ bead_id: string;
588
+ error_type: "timeout" | "unknown" | "conflict" | "validation" | "tool_failure";
589
+ message: string;
590
+ stack_trace?: string | undefined;
591
+ tool_name?: string | undefined;
592
+ context?: string | undefined;
593
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
594
+ };
595
+ readonly swarm_get_error_context: {
596
+ description: string;
597
+ args: {
598
+ bead_id: import("zod").ZodString;
599
+ include_resolved: import("zod").ZodOptional<import("zod").ZodBoolean>;
600
+ };
601
+ execute(args: {
602
+ bead_id: string;
603
+ include_resolved?: boolean | undefined;
604
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
605
+ };
606
+ readonly swarm_resolve_error: {
607
+ description: string;
608
+ args: {
609
+ error_id: import("zod").ZodString;
610
+ };
611
+ execute(args: {
612
+ error_id: string;
613
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
614
+ };
615
+ readonly swarm_check_strikes: {
616
+ description: string;
617
+ args: {
618
+ bead_id: import("zod").ZodString;
619
+ action: import("zod").ZodEnum<{
620
+ check: "check";
621
+ add_strike: "add_strike";
622
+ clear: "clear";
623
+ get_prompt: "get_prompt";
624
+ }>;
625
+ attempt: import("zod").ZodOptional<import("zod").ZodString>;
626
+ reason: import("zod").ZodOptional<import("zod").ZodString>;
627
+ };
628
+ execute(args: {
629
+ bead_id: string;
630
+ action: "check" | "add_strike" | "clear" | "get_prompt";
631
+ attempt?: string | undefined;
632
+ reason?: string | undefined;
633
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
634
+ };
635
+ readonly swarm_checkpoint: {
636
+ description: string;
637
+ args: {
638
+ project_key: import("zod").ZodString;
639
+ agent_name: import("zod").ZodString;
640
+ bead_id: import("zod").ZodString;
641
+ epic_id: import("zod").ZodString;
642
+ files_modified: import("zod").ZodArray<import("zod").ZodString>;
643
+ progress_percent: import("zod").ZodNumber;
644
+ directives: import("zod").ZodOptional<import("zod").ZodObject<{
645
+ shared_context: import("zod").ZodOptional<import("zod").ZodString>;
646
+ skills_to_load: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
647
+ coordinator_notes: import("zod").ZodOptional<import("zod").ZodString>;
648
+ }, import("zod/v4/core").$strip>>;
649
+ error_context: import("zod").ZodOptional<import("zod").ZodString>;
650
+ };
651
+ execute(args: {
652
+ project_key: string;
653
+ agent_name: string;
654
+ bead_id: string;
655
+ epic_id: string;
656
+ files_modified: string[];
657
+ progress_percent: number;
658
+ directives?: {
659
+ shared_context?: string | undefined;
660
+ skills_to_load?: string[] | undefined;
661
+ coordinator_notes?: string | undefined;
662
+ } | undefined;
663
+ error_context?: string | undefined;
664
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
665
+ };
666
+ readonly swarm_recover: {
667
+ description: string;
668
+ args: {
669
+ project_key: import("zod").ZodString;
670
+ epic_id: import("zod").ZodString;
671
+ };
672
+ execute(args: {
673
+ project_key: string;
674
+ epic_id: string;
675
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
676
+ };
677
+ readonly swarm_learn: {
678
+ description: string;
679
+ args: {
680
+ summary: import("zod").ZodString;
681
+ pattern_type: import("zod").ZodEnum<{
682
+ "code-pattern": "code-pattern";
683
+ "best-practice": "best-practice";
684
+ gotcha: "gotcha";
685
+ "tool-usage": "tool-usage";
686
+ "domain-knowledge": "domain-knowledge";
687
+ workflow: "workflow";
688
+ }>;
689
+ details: import("zod").ZodString;
690
+ example: import("zod").ZodOptional<import("zod").ZodString>;
691
+ when_to_use: import("zod").ZodString;
692
+ files_context: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
693
+ create_skill: import("zod").ZodOptional<import("zod").ZodBoolean>;
694
+ skill_name: import("zod").ZodOptional<import("zod").ZodString>;
695
+ skill_tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
696
+ };
697
+ execute(args: {
698
+ summary: string;
699
+ pattern_type: "code-pattern" | "best-practice" | "gotcha" | "tool-usage" | "domain-knowledge" | "workflow";
700
+ details: string;
701
+ when_to_use: string;
702
+ example?: string | undefined;
703
+ files_context?: string[] | undefined;
704
+ create_skill?: boolean | undefined;
705
+ skill_name?: string | undefined;
706
+ skill_tags?: string[] | undefined;
707
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
708
+ };
709
+ readonly swarm_subtask_prompt: {
710
+ description: string;
711
+ args: {
712
+ agent_name: import("zod").ZodString;
713
+ bead_id: import("zod").ZodString;
714
+ epic_id: import("zod").ZodString;
715
+ subtask_title: import("zod").ZodString;
716
+ subtask_description: import("zod").ZodOptional<import("zod").ZodString>;
717
+ files: import("zod").ZodArray<import("zod").ZodString>;
718
+ shared_context: import("zod").ZodOptional<import("zod").ZodString>;
719
+ project_path: import("zod").ZodOptional<import("zod").ZodString>;
720
+ };
721
+ execute(args: {
722
+ agent_name: string;
723
+ bead_id: string;
724
+ epic_id: string;
725
+ subtask_title: string;
726
+ files: string[];
727
+ subtask_description?: string | undefined;
728
+ shared_context?: string | undefined;
729
+ project_path?: string | undefined;
730
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
731
+ };
732
+ readonly swarm_spawn_subtask: {
733
+ description: string;
734
+ args: {
735
+ bead_id: import("zod").ZodString;
736
+ epic_id: import("zod").ZodString;
737
+ subtask_title: import("zod").ZodString;
738
+ subtask_description: import("zod").ZodOptional<import("zod").ZodString>;
739
+ files: import("zod").ZodArray<import("zod").ZodString>;
740
+ shared_context: import("zod").ZodOptional<import("zod").ZodString>;
741
+ project_path: import("zod").ZodOptional<import("zod").ZodString>;
742
+ recovery_context: import("zod").ZodOptional<import("zod").ZodObject<{
743
+ shared_context: import("zod").ZodOptional<import("zod").ZodString>;
744
+ skills_to_load: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
745
+ coordinator_notes: import("zod").ZodOptional<import("zod").ZodString>;
746
+ }, import("zod/v4/core").$strip>>;
747
+ };
748
+ execute(args: {
749
+ bead_id: string;
750
+ epic_id: string;
751
+ subtask_title: string;
752
+ files: string[];
753
+ subtask_description?: string | undefined;
754
+ shared_context?: string | undefined;
755
+ project_path?: string | undefined;
756
+ recovery_context?: {
757
+ shared_context?: string | undefined;
758
+ skills_to_load?: string[] | undefined;
759
+ coordinator_notes?: string | undefined;
760
+ } | undefined;
761
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
762
+ };
763
+ readonly swarm_evaluation_prompt: {
764
+ description: string;
765
+ args: {
766
+ bead_id: import("zod").ZodString;
767
+ subtask_title: import("zod").ZodString;
768
+ files_touched: import("zod").ZodArray<import("zod").ZodString>;
769
+ };
770
+ execute(args: {
771
+ bead_id: string;
772
+ subtask_title: string;
773
+ files_touched: string[];
774
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
775
+ };
776
+ readonly swarm_plan_prompt: {
777
+ description: string;
778
+ args: {
779
+ task: import("zod").ZodString;
780
+ strategy: import("zod").ZodOptional<import("zod").ZodEnum<{
781
+ "file-based": "file-based";
782
+ "feature-based": "feature-based";
783
+ "risk-based": "risk-based";
784
+ auto: "auto";
785
+ }>>;
786
+ max_subtasks: import("zod").ZodDefault<import("zod").ZodNumber>;
787
+ context: import("zod").ZodOptional<import("zod").ZodString>;
788
+ query_cass: import("zod").ZodOptional<import("zod").ZodBoolean>;
789
+ cass_limit: import("zod").ZodOptional<import("zod").ZodNumber>;
790
+ include_skills: import("zod").ZodOptional<import("zod").ZodBoolean>;
791
+ };
792
+ execute(args: {
793
+ task: string;
794
+ max_subtasks: number;
795
+ strategy?: "file-based" | "feature-based" | "risk-based" | "auto" | undefined;
796
+ context?: string | undefined;
797
+ query_cass?: boolean | undefined;
798
+ cass_limit?: number | undefined;
799
+ include_skills?: boolean | undefined;
800
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
801
+ };
802
+ readonly swarm_decompose: {
803
+ description: string;
804
+ args: {
805
+ task: import("zod").ZodString;
806
+ max_subtasks: import("zod").ZodDefault<import("zod").ZodNumber>;
807
+ context: import("zod").ZodOptional<import("zod").ZodString>;
808
+ query_cass: import("zod").ZodOptional<import("zod").ZodBoolean>;
809
+ cass_limit: import("zod").ZodOptional<import("zod").ZodNumber>;
810
+ };
811
+ execute(args: {
812
+ task: string;
813
+ max_subtasks: number;
814
+ context?: string | undefined;
815
+ query_cass?: boolean | undefined;
816
+ cass_limit?: number | undefined;
817
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
818
+ };
819
+ readonly swarm_validate_decomposition: {
820
+ description: string;
821
+ args: {
822
+ response: import("zod").ZodString;
823
+ };
824
+ execute(args: {
825
+ response: string;
826
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
827
+ };
828
+ readonly swarm_delegate_planning: {
829
+ description: string;
830
+ args: {
831
+ task: import("zod").ZodString;
832
+ context: import("zod").ZodOptional<import("zod").ZodString>;
833
+ max_subtasks: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
834
+ strategy: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<{
835
+ "file-based": "file-based";
836
+ "feature-based": "feature-based";
837
+ "risk-based": "risk-based";
838
+ auto: "auto";
839
+ }>>>;
840
+ query_cass: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
841
+ };
842
+ execute(args: {
843
+ task: string;
844
+ max_subtasks: number;
845
+ strategy: "file-based" | "feature-based" | "risk-based" | "auto";
846
+ query_cass: boolean;
847
+ context?: string | undefined;
848
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
849
+ };
850
+ readonly swarm_select_strategy: {
851
+ description: string;
852
+ args: {
853
+ task: import("zod").ZodString;
854
+ codebase_context: import("zod").ZodOptional<import("zod").ZodString>;
855
+ };
856
+ execute(args: {
857
+ task: string;
858
+ codebase_context?: string | undefined;
859
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
860
+ };
861
+ readonly structured_extract_json: {
862
+ description: string;
863
+ args: {
864
+ text: import("zod").ZodString;
865
+ };
866
+ execute(args: {
867
+ text: string;
868
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
869
+ };
870
+ readonly structured_validate: {
871
+ description: string;
872
+ args: {
873
+ response: import("zod").ZodString;
874
+ schema_name: import("zod").ZodEnum<{
875
+ evaluation: "evaluation";
876
+ task_decomposition: "task_decomposition";
877
+ bead_tree: "bead_tree";
878
+ }>;
879
+ max_retries: import("zod").ZodOptional<import("zod").ZodNumber>;
880
+ };
881
+ execute(args: {
882
+ response: string;
883
+ schema_name: "evaluation" | "task_decomposition" | "bead_tree";
884
+ max_retries?: number | undefined;
885
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
886
+ };
887
+ readonly structured_parse_evaluation: {
888
+ description: string;
889
+ args: {
890
+ response: import("zod").ZodString;
891
+ };
892
+ execute(args: {
893
+ response: string;
894
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
895
+ };
896
+ readonly structured_parse_decomposition: {
897
+ description: string;
898
+ args: {
899
+ response: import("zod").ZodString;
900
+ };
901
+ execute(args: {
902
+ response: string;
903
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
904
+ };
905
+ readonly structured_parse_bead_tree: {
906
+ description: string;
907
+ args: {
908
+ response: import("zod").ZodString;
909
+ };
910
+ execute(args: {
911
+ response: string;
912
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
913
+ };
914
+ readonly swarmmail_init: {
915
+ description: string;
916
+ args: {
917
+ project_path: import("zod").ZodOptional<import("zod").ZodString>;
918
+ agent_name: import("zod").ZodOptional<import("zod").ZodString>;
919
+ task_description: import("zod").ZodOptional<import("zod").ZodString>;
920
+ };
921
+ execute(args: {
922
+ project_path?: string | undefined;
923
+ agent_name?: string | undefined;
924
+ task_description?: string | undefined;
925
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
926
+ };
927
+ readonly swarmmail_send: {
928
+ description: string;
929
+ args: {
930
+ to: import("zod").ZodArray<import("zod").ZodString>;
931
+ subject: import("zod").ZodString;
932
+ body: import("zod").ZodString;
933
+ thread_id: import("zod").ZodOptional<import("zod").ZodString>;
934
+ importance: import("zod").ZodOptional<import("zod").ZodEnum<{
935
+ low: "low";
936
+ normal: "normal";
937
+ high: "high";
938
+ urgent: "urgent";
939
+ }>>;
940
+ ack_required: import("zod").ZodOptional<import("zod").ZodBoolean>;
941
+ };
942
+ execute(args: {
943
+ to: string[];
944
+ subject: string;
945
+ body: string;
946
+ thread_id?: string | undefined;
947
+ importance?: "low" | "normal" | "high" | "urgent" | undefined;
948
+ ack_required?: boolean | undefined;
949
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
950
+ };
951
+ readonly swarmmail_inbox: {
952
+ description: string;
953
+ args: {
954
+ limit: import("zod").ZodOptional<import("zod").ZodNumber>;
955
+ urgent_only: import("zod").ZodOptional<import("zod").ZodBoolean>;
956
+ };
957
+ execute(args: {
958
+ limit?: number | undefined;
959
+ urgent_only?: boolean | undefined;
960
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
961
+ };
962
+ readonly swarmmail_read_message: {
963
+ description: string;
964
+ args: {
965
+ message_id: import("zod").ZodNumber;
966
+ };
967
+ execute(args: {
968
+ message_id: number;
969
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
970
+ };
971
+ readonly swarmmail_reserve: {
972
+ description: string;
973
+ args: {
974
+ paths: import("zod").ZodArray<import("zod").ZodString>;
975
+ reason: import("zod").ZodOptional<import("zod").ZodString>;
976
+ exclusive: import("zod").ZodOptional<import("zod").ZodBoolean>;
977
+ ttl_seconds: import("zod").ZodOptional<import("zod").ZodNumber>;
978
+ };
979
+ execute(args: {
980
+ paths: string[];
981
+ reason?: string | undefined;
982
+ exclusive?: boolean | undefined;
983
+ ttl_seconds?: number | undefined;
984
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
985
+ };
986
+ readonly swarmmail_release: {
987
+ description: string;
988
+ args: {
989
+ paths: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
990
+ reservation_ids: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodNumber>>;
991
+ };
992
+ execute(args: {
993
+ paths?: string[] | undefined;
994
+ reservation_ids?: number[] | undefined;
995
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
996
+ };
997
+ readonly swarmmail_ack: {
998
+ description: string;
999
+ args: {
1000
+ message_id: import("zod").ZodNumber;
1001
+ };
1002
+ execute(args: {
1003
+ message_id: number;
1004
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
1005
+ };
1006
+ readonly swarmmail_health: {
1007
+ description: string;
1008
+ args: {};
1009
+ execute(args: Record<string, never>, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
1010
+ };
1011
+ readonly beads_create: {
1012
+ description: string;
1013
+ args: {
1014
+ title: import("zod").ZodString;
1015
+ type: import("zod").ZodOptional<import("zod").ZodEnum<{
1016
+ bug: "bug";
1017
+ feature: "feature";
1018
+ task: "task";
1019
+ epic: "epic";
1020
+ chore: "chore";
1021
+ }>>;
1022
+ priority: import("zod").ZodOptional<import("zod").ZodNumber>;
1023
+ description: import("zod").ZodOptional<import("zod").ZodString>;
1024
+ parent_id: import("zod").ZodOptional<import("zod").ZodString>;
1025
+ };
1026
+ execute(args: {
1027
+ title: string;
1028
+ type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
1029
+ priority?: number | undefined;
1030
+ description?: string | undefined;
1031
+ parent_id?: string | undefined;
1032
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
1033
+ };
1034
+ readonly beads_create_epic: {
1035
+ description: string;
1036
+ args: {
1037
+ epic_title: import("zod").ZodString;
1038
+ epic_description: import("zod").ZodOptional<import("zod").ZodString>;
1039
+ epic_id: import("zod").ZodOptional<import("zod").ZodString>;
1040
+ subtasks: import("zod").ZodArray<import("zod").ZodObject<{
1041
+ title: import("zod").ZodString;
1042
+ priority: import("zod").ZodOptional<import("zod").ZodNumber>;
1043
+ files: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
1044
+ id_suffix: import("zod").ZodOptional<import("zod").ZodString>;
1045
+ }, import("zod/v4/core").$strip>>;
1046
+ strategy: import("zod").ZodOptional<import("zod").ZodEnum<{
1047
+ "file-based": "file-based";
1048
+ "feature-based": "feature-based";
1049
+ "risk-based": "risk-based";
1050
+ }>>;
1051
+ task: import("zod").ZodOptional<import("zod").ZodString>;
1052
+ project_key: import("zod").ZodOptional<import("zod").ZodString>;
1053
+ recovery_context: import("zod").ZodOptional<import("zod").ZodObject<{
1054
+ shared_context: import("zod").ZodOptional<import("zod").ZodString>;
1055
+ skills_to_load: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
1056
+ coordinator_notes: import("zod").ZodOptional<import("zod").ZodString>;
1057
+ }, import("zod/v4/core").$strip>>;
1058
+ };
1059
+ execute(args: {
1060
+ epic_title: string;
1061
+ subtasks: {
1062
+ title: string;
1063
+ priority?: number | undefined;
1064
+ files?: string[] | undefined;
1065
+ id_suffix?: string | undefined;
1066
+ }[];
1067
+ epic_description?: string | undefined;
1068
+ epic_id?: string | undefined;
1069
+ strategy?: "file-based" | "feature-based" | "risk-based" | undefined;
1070
+ task?: string | undefined;
1071
+ project_key?: string | undefined;
1072
+ recovery_context?: {
1073
+ shared_context?: string | undefined;
1074
+ skills_to_load?: string[] | undefined;
1075
+ coordinator_notes?: string | undefined;
1076
+ } | undefined;
1077
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
1078
+ };
1079
+ readonly beads_query: {
1080
+ description: string;
1081
+ args: {
1082
+ status: import("zod").ZodOptional<import("zod").ZodEnum<{
1083
+ open: "open";
1084
+ in_progress: "in_progress";
1085
+ blocked: "blocked";
1086
+ closed: "closed";
1087
+ }>>;
1088
+ type: import("zod").ZodOptional<import("zod").ZodEnum<{
1089
+ bug: "bug";
1090
+ feature: "feature";
1091
+ task: "task";
1092
+ epic: "epic";
1093
+ chore: "chore";
1094
+ }>>;
1095
+ ready: import("zod").ZodOptional<import("zod").ZodBoolean>;
1096
+ limit: import("zod").ZodOptional<import("zod").ZodNumber>;
1097
+ };
1098
+ execute(args: {
1099
+ status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
1100
+ type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
1101
+ ready?: boolean | undefined;
1102
+ limit?: number | undefined;
1103
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
1104
+ };
1105
+ readonly beads_update: {
1106
+ description: string;
1107
+ args: {
1108
+ id: import("zod").ZodString;
1109
+ status: import("zod").ZodOptional<import("zod").ZodEnum<{
1110
+ open: "open";
1111
+ in_progress: "in_progress";
1112
+ blocked: "blocked";
1113
+ closed: "closed";
1114
+ }>>;
1115
+ description: import("zod").ZodOptional<import("zod").ZodString>;
1116
+ priority: import("zod").ZodOptional<import("zod").ZodNumber>;
1117
+ };
1118
+ execute(args: {
1119
+ id: string;
1120
+ status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
1121
+ description?: string | undefined;
1122
+ priority?: number | undefined;
1123
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
1124
+ };
1125
+ readonly beads_close: {
1126
+ description: string;
1127
+ args: {
1128
+ id: import("zod").ZodString;
1129
+ reason: import("zod").ZodString;
1130
+ };
1131
+ execute(args: {
1132
+ id: string;
1133
+ reason: string;
1134
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
1135
+ };
1136
+ readonly beads_start: {
1137
+ description: string;
1138
+ args: {
1139
+ id: import("zod").ZodString;
1140
+ };
1141
+ execute(args: {
1142
+ id: string;
1143
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
1144
+ };
1145
+ readonly beads_ready: {
1146
+ description: string;
1147
+ args: {};
1148
+ execute(args: Record<string, never>, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
1149
+ };
1150
+ readonly beads_sync: {
1151
+ description: string;
1152
+ args: {
1153
+ auto_pull: import("zod").ZodOptional<import("zod").ZodBoolean>;
1154
+ };
1155
+ execute(args: {
1156
+ auto_pull?: boolean | undefined;
1157
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
1158
+ };
1159
+ readonly beads_link_thread: {
1160
+ description: string;
1161
+ args: {
1162
+ bead_id: import("zod").ZodString;
1163
+ thread_id: import("zod").ZodString;
1164
+ };
1165
+ execute(args: {
1166
+ bead_id: string;
1167
+ thread_id: string;
1168
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
1169
+ };
1170
+ };
1171
+ /**
1172
+ * Type for CLI tool names (all available tools)
1173
+ */
1174
+ export type CLIToolName = keyof typeof allTools;
1175
+ /**
1176
+ * Re-export storage module
1177
+ *
1178
+ * Includes:
1179
+ * - createStorage, createStorageWithFallback - Factory functions
1180
+ * - getStorage, setStorage, resetStorage - Global instance management
1181
+ * - InMemoryStorage, SemanticMemoryStorage - Storage implementations
1182
+ * - isSemanticMemoryAvailable - Availability check
1183
+ * - DEFAULT_STORAGE_CONFIG - Default configuration
1184
+ *
1185
+ * Types:
1186
+ * - LearningStorage - Unified storage interface
1187
+ * - StorageConfig, StorageBackend, StorageCollections - Configuration types
1188
+ */
1189
+ export { createStorage, createStorageWithFallback, getStorage, setStorage, resetStorage, InMemoryStorage, SemanticMemoryStorage, isSemanticMemoryAvailable, DEFAULT_STORAGE_CONFIG, type LearningStorage, type StorageConfig, type StorageBackend, type StorageCollections, } from "./storage";
1190
+ /**
1191
+ * Re-export tool-availability module
1192
+ *
1193
+ * Includes:
1194
+ * - checkTool, isToolAvailable - Check individual tool availability
1195
+ * - checkAllTools - Check all tools at once
1196
+ * - withToolFallback, ifToolAvailable - Execute with graceful fallback
1197
+ * - formatToolAvailability - Format availability for display
1198
+ * - resetToolCache - Reset cached availability (for testing)
1199
+ *
1200
+ * Types:
1201
+ * - ToolName - Supported tool names
1202
+ * - ToolStatus, ToolAvailability - Status types
1203
+ */
1204
+ export { checkTool, isToolAvailable, checkAllTools, getToolAvailability, withToolFallback, ifToolAvailable, warnMissingTool, requireTool, formatToolAvailability, resetToolCache, type ToolName, type ToolStatus, type ToolAvailability, } from "./tool-availability";
1205
+ /**
1206
+ * Re-export repo-crawl module
1207
+ *
1208
+ * Includes:
1209
+ * - repoCrawlTools - All GitHub API repository research tools
1210
+ * - repo_readme, repo_structure, repo_tree, repo_file, repo_search - Individual tools
1211
+ * - RepoCrawlError - Error class
1212
+ *
1213
+ * Features:
1214
+ * - Parse repos from various formats (owner/repo, URLs)
1215
+ * - Optional GITHUB_TOKEN auth for higher rate limits (5000 vs 60 req/hour)
1216
+ * - Tech stack detection from file patterns
1217
+ * - Graceful rate limit handling
1218
+ */
1219
+ export { repoCrawlTools, RepoCrawlError } from "./repo-crawl";
1220
+ /**
1221
+ * Re-export skills module
1222
+ *
1223
+ * Implements Anthropic's Agent Skills specification for OpenCode.
1224
+ *
1225
+ * Includes:
1226
+ * - skillsTools - All skills tools (list, use, execute, read)
1227
+ * - discoverSkills, getSkill, listSkills - Discovery functions
1228
+ * - parseFrontmatter - YAML frontmatter parser
1229
+ * - getSkillsContextForSwarm - Swarm integration helper
1230
+ * - findRelevantSkills - Task-based skill matching
1231
+ *
1232
+ * Types:
1233
+ * - Skill, SkillMetadata, SkillRef - Skill data types
1234
+ */
1235
+ export { skillsTools, discoverSkills, getSkill, listSkills, parseFrontmatter, setSkillsProjectDirectory, invalidateSkillsCache, getSkillsContextForSwarm, findRelevantSkills, type Skill, type SkillMetadata, type SkillRef, } from "./skills";
1236
+ /**
1237
+ * Re-export mandates module
1238
+ *
1239
+ * Agent voting system for collaborative knowledge curation.
1240
+ *
1241
+ * Includes:
1242
+ * - mandateTools - All mandate tools (file, vote, query, list, stats)
1243
+ * - MandateError - Error class
1244
+ *
1245
+ * Features:
1246
+ * - Submit ideas, tips, lore, snippets, and feature requests
1247
+ * - Vote on entries (upvote/downvote) with 90-day decay
1248
+ * - Semantic search for relevant mandates
1249
+ * - Status transitions based on consensus (candidate → established → mandate)
1250
+ * - Persistent storage with semantic-memory
1251
+ *
1252
+ * Types:
1253
+ * - MandateEntry, Vote, MandateScore - Core data types
1254
+ * - MandateStatus, MandateContentType - Enum types
1255
+ */
1256
+ export { mandateTools, MandateError } from "./mandates";
1257
+ /**
1258
+ * Re-export mandate-storage module
1259
+ *
1260
+ * Includes:
1261
+ * - createMandateStorage - Factory function
1262
+ * - getMandateStorage, setMandateStorage, resetMandateStorage - Global instance management
1263
+ * - updateMandateStatus, updateAllMandateStatuses - Status update helpers
1264
+ * - InMemoryMandateStorage, SemanticMemoryMandateStorage - Storage implementations
1265
+ *
1266
+ * Types:
1267
+ * - MandateStorage - Unified storage interface
1268
+ * - MandateStorageConfig, MandateStorageBackend, MandateStorageCollections - Configuration types
1269
+ */
1270
+ export { createMandateStorage, getMandateStorage, setMandateStorage, resetMandateStorage, updateMandateStatus, updateAllMandateStatuses, InMemoryMandateStorage, SemanticMemoryMandateStorage, DEFAULT_MANDATE_STORAGE_CONFIG, type MandateStorage, type MandateStorageConfig, type MandateStorageBackend, type MandateStorageCollections, } from "./mandate-storage";
1271
+ /**
1272
+ * Re-export mandate-promotion module
1273
+ *
1274
+ * Includes:
1275
+ * - evaluatePromotion - Evaluate status transitions
1276
+ * - shouldPromote - Determine new status based on score
1277
+ * - formatPromotionResult - Format promotion result for display
1278
+ * - evaluateBatchPromotions, getStatusChanges, groupByTransition - Batch helpers
1279
+ *
1280
+ * Types:
1281
+ * - PromotionResult - Promotion evaluation result
1282
+ */
1283
+ export { evaluatePromotion, shouldPromote, formatPromotionResult, evaluateBatchPromotions, getStatusChanges, groupByTransition, type PromotionResult, } from "./mandate-promotion";
1284
+ /**
1285
+ * Re-export output-guardrails module
1286
+ *
1287
+ * Includes:
1288
+ * - guardrailOutput - Main entry point for truncating tool output
1289
+ * - truncateWithBoundaries - Smart truncation preserving structure
1290
+ * - getToolLimit - Get character limit for a tool
1291
+ * - DEFAULT_GUARDRAIL_CONFIG - Default configuration
1292
+ *
1293
+ * Types:
1294
+ * - GuardrailConfig - Configuration interface
1295
+ * - GuardrailResult - Result of guardrail processing
1296
+ * - GuardrailMetrics - Analytics data
1297
+ */
1298
+ export { guardrailOutput, truncateWithBoundaries, createMetrics, DEFAULT_GUARDRAIL_CONFIG, type GuardrailConfig, type GuardrailResult, type GuardrailMetrics, } from "./output-guardrails";
1299
+ //# sourceMappingURL=index.d.ts.map