opencode-swarm-plugin 0.22.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.
- package/.turbo/turbo-build.log +9 -0
- package/CHANGELOG.md +12 -0
- package/README.md +109 -429
- package/dist/agent-mail.d.ts +480 -0
- package/dist/agent-mail.d.ts.map +1 -0
- package/dist/anti-patterns.d.ts +257 -0
- package/dist/anti-patterns.d.ts.map +1 -0
- package/dist/beads.d.ts +377 -0
- package/dist/beads.d.ts.map +1 -0
- package/dist/eval-capture.d.ts +206 -0
- package/dist/eval-capture.d.ts.map +1 -0
- package/dist/index.d.ts +1299 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +498 -4246
- package/dist/learning.d.ts +670 -0
- package/dist/learning.d.ts.map +1 -0
- package/dist/mandate-promotion.d.ts +93 -0
- package/dist/mandate-promotion.d.ts.map +1 -0
- package/dist/mandate-storage.d.ts +209 -0
- package/dist/mandate-storage.d.ts.map +1 -0
- package/dist/mandates.d.ts +230 -0
- package/dist/mandates.d.ts.map +1 -0
- package/dist/output-guardrails.d.ts +125 -0
- package/dist/output-guardrails.d.ts.map +1 -0
- package/dist/pattern-maturity.d.ts +246 -0
- package/dist/pattern-maturity.d.ts.map +1 -0
- package/dist/plugin.d.ts +22 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +493 -4241
- package/dist/rate-limiter.d.ts +218 -0
- package/dist/rate-limiter.d.ts.map +1 -0
- package/dist/repo-crawl.d.ts +146 -0
- package/dist/repo-crawl.d.ts.map +1 -0
- package/dist/schemas/bead.d.ts +255 -0
- package/dist/schemas/bead.d.ts.map +1 -0
- package/dist/schemas/evaluation.d.ts +161 -0
- package/dist/schemas/evaluation.d.ts.map +1 -0
- package/dist/schemas/index.d.ts +34 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/mandate.d.ts +336 -0
- package/dist/schemas/mandate.d.ts.map +1 -0
- package/dist/schemas/swarm-context.d.ts +131 -0
- package/dist/schemas/swarm-context.d.ts.map +1 -0
- package/dist/schemas/task.d.ts +188 -0
- package/dist/schemas/task.d.ts.map +1 -0
- package/dist/skills.d.ts +471 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/storage.d.ts +260 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/structured.d.ts +196 -0
- package/dist/structured.d.ts.map +1 -0
- package/dist/swarm-decompose.d.ts +201 -0
- package/dist/swarm-decompose.d.ts.map +1 -0
- package/dist/swarm-mail.d.ts +240 -0
- package/dist/swarm-mail.d.ts.map +1 -0
- package/dist/swarm-orchestrate.d.ts +708 -0
- package/dist/swarm-orchestrate.d.ts.map +1 -0
- package/dist/swarm-prompts.d.ts +292 -0
- package/dist/swarm-prompts.d.ts.map +1 -0
- package/dist/swarm-strategies.d.ts +100 -0
- package/dist/swarm-strategies.d.ts.map +1 -0
- package/dist/swarm.d.ts +455 -0
- package/dist/swarm.d.ts.map +1 -0
- package/dist/tool-availability.d.ts +91 -0
- package/dist/tool-availability.d.ts.map +1 -0
- package/docs/planning/ADR-001-monorepo-structure.md +171 -0
- package/docs/planning/ADR-002-package-extraction.md +393 -0
- package/docs/planning/ADR-003-performance-improvements.md +451 -0
- package/docs/planning/ADR-004-message-queue-features.md +187 -0
- package/docs/planning/ADR-005-devtools-observability.md +202 -0
- package/docs/planning/ROADMAP.md +368 -0
- package/package.json +13 -24
- package/src/agent-mail.ts +1 -1
- package/src/beads.ts +1 -2
- package/src/index.ts +2 -2
- package/src/learning.integration.test.ts +66 -11
- package/src/mandate-storage.test.ts +3 -3
- package/src/storage.ts +78 -10
- package/src/swarm-mail.ts +3 -3
- package/src/swarm-orchestrate.ts +7 -7
- package/src/tool-availability.ts +1 -1
- package/tsconfig.json +1 -1
- package/.beads/.local_version +0 -1
- package/.beads/README.md +0 -81
- package/.beads/analysis/skill-architecture-meta-skills.md +0 -1562
- package/.beads/config.yaml +0 -62
- package/.beads/issues.jsonl +0 -2197
- package/.beads/metadata.json +0 -4
- package/.gitattributes +0 -3
- package/.github/workflows/ci.yml +0 -30
- package/.github/workflows/opencode.yml +0 -31
- package/.opencode/skills/tdd/SKILL.md +0 -182
- package/INTEGRATION_EXAMPLE.md +0 -66
- package/VERIFICATION_QUALITY_PATTERNS.md +0 -565
- package/bun.lock +0 -286
- package/dist/pglite.data +0 -0
- package/dist/pglite.wasm +0 -0
- package/src/streams/agent-mail.test.ts +0 -777
- package/src/streams/agent-mail.ts +0 -535
- package/src/streams/debug.test.ts +0 -500
- package/src/streams/debug.ts +0 -727
- package/src/streams/effect/ask.integration.test.ts +0 -314
- package/src/streams/effect/ask.ts +0 -202
- package/src/streams/effect/cursor.integration.test.ts +0 -418
- package/src/streams/effect/cursor.ts +0 -288
- package/src/streams/effect/deferred.test.ts +0 -357
- package/src/streams/effect/deferred.ts +0 -445
- package/src/streams/effect/index.ts +0 -17
- package/src/streams/effect/layers.ts +0 -73
- package/src/streams/effect/lock.test.ts +0 -385
- package/src/streams/effect/lock.ts +0 -399
- package/src/streams/effect/mailbox.test.ts +0 -260
- package/src/streams/effect/mailbox.ts +0 -318
- package/src/streams/events.test.ts +0 -924
- package/src/streams/events.ts +0 -329
- package/src/streams/index.test.ts +0 -229
- package/src/streams/index.ts +0 -578
- package/src/streams/migrations.test.ts +0 -359
- package/src/streams/migrations.ts +0 -362
- package/src/streams/projections.test.ts +0 -611
- package/src/streams/projections.ts +0 -504
- package/src/streams/store.integration.test.ts +0 -658
- package/src/streams/store.ts +0 -1075
- package/src/streams/swarm-mail.ts +0 -552
- package/test-bug-fixes.ts +0 -86
- package/vitest.integration.config.ts +0 -19
- package/vitest.integration.setup.ts +0 -48
- package/workflow-integration-analysis.md +0 -876
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anti-Pattern Learning Module
|
|
3
|
+
*
|
|
4
|
+
* Tracks failed decomposition patterns and auto-inverts them to anti-patterns.
|
|
5
|
+
* When a pattern consistently fails, it gets flagged as something to avoid.
|
|
6
|
+
*
|
|
7
|
+
* @see https://github.com/Dicklesworthstone/cass_memory_system/blob/main/src/curate.ts#L95-L117
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
/**
|
|
11
|
+
* Pattern kind - whether this is a positive pattern or an anti-pattern
|
|
12
|
+
*/
|
|
13
|
+
export declare const PatternKindSchema: z.ZodEnum<{
|
|
14
|
+
pattern: "pattern";
|
|
15
|
+
anti_pattern: "anti_pattern";
|
|
16
|
+
}>;
|
|
17
|
+
export type PatternKind = z.infer<typeof PatternKindSchema>;
|
|
18
|
+
/**
|
|
19
|
+
* Decomposition pattern with success/failure tracking.
|
|
20
|
+
*
|
|
21
|
+
* Field relationships:
|
|
22
|
+
* - `kind`: Tracks pattern lifecycle ("pattern" → "anti_pattern" when failure rate exceeds threshold)
|
|
23
|
+
* - `is_negative`: Derived boolean flag for quick filtering (true when kind === "anti_pattern")
|
|
24
|
+
*
|
|
25
|
+
* Both fields exist because:
|
|
26
|
+
* - `kind` is the source of truth for pattern status
|
|
27
|
+
* - `is_negative` enables efficient filtering without string comparison
|
|
28
|
+
*/
|
|
29
|
+
export declare const DecompositionPatternSchema: z.ZodObject<{
|
|
30
|
+
id: z.ZodString;
|
|
31
|
+
content: z.ZodString;
|
|
32
|
+
kind: z.ZodEnum<{
|
|
33
|
+
pattern: "pattern";
|
|
34
|
+
anti_pattern: "anti_pattern";
|
|
35
|
+
}>;
|
|
36
|
+
is_negative: z.ZodBoolean;
|
|
37
|
+
success_count: z.ZodDefault<z.ZodNumber>;
|
|
38
|
+
failure_count: z.ZodDefault<z.ZodNumber>;
|
|
39
|
+
created_at: z.ZodString;
|
|
40
|
+
updated_at: z.ZodString;
|
|
41
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
42
|
+
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
43
|
+
example_beads: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
44
|
+
}, z.core.$strip>;
|
|
45
|
+
export type DecompositionPattern = z.infer<typeof DecompositionPatternSchema>;
|
|
46
|
+
/**
|
|
47
|
+
* Result of pattern inversion
|
|
48
|
+
*/
|
|
49
|
+
export declare const PatternInversionResultSchema: z.ZodObject<{
|
|
50
|
+
original: z.ZodObject<{
|
|
51
|
+
id: z.ZodString;
|
|
52
|
+
content: z.ZodString;
|
|
53
|
+
kind: z.ZodEnum<{
|
|
54
|
+
pattern: "pattern";
|
|
55
|
+
anti_pattern: "anti_pattern";
|
|
56
|
+
}>;
|
|
57
|
+
is_negative: z.ZodBoolean;
|
|
58
|
+
success_count: z.ZodDefault<z.ZodNumber>;
|
|
59
|
+
failure_count: z.ZodDefault<z.ZodNumber>;
|
|
60
|
+
created_at: z.ZodString;
|
|
61
|
+
updated_at: z.ZodString;
|
|
62
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
63
|
+
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
64
|
+
example_beads: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
65
|
+
}, z.core.$strip>;
|
|
66
|
+
inverted: z.ZodObject<{
|
|
67
|
+
id: z.ZodString;
|
|
68
|
+
content: z.ZodString;
|
|
69
|
+
kind: z.ZodEnum<{
|
|
70
|
+
pattern: "pattern";
|
|
71
|
+
anti_pattern: "anti_pattern";
|
|
72
|
+
}>;
|
|
73
|
+
is_negative: z.ZodBoolean;
|
|
74
|
+
success_count: z.ZodDefault<z.ZodNumber>;
|
|
75
|
+
failure_count: z.ZodDefault<z.ZodNumber>;
|
|
76
|
+
created_at: z.ZodString;
|
|
77
|
+
updated_at: z.ZodString;
|
|
78
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
79
|
+
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
80
|
+
example_beads: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
81
|
+
}, z.core.$strip>;
|
|
82
|
+
reason: z.ZodString;
|
|
83
|
+
}, z.core.$strip>;
|
|
84
|
+
export type PatternInversionResult = z.infer<typeof PatternInversionResultSchema>;
|
|
85
|
+
/**
|
|
86
|
+
* Configuration for anti-pattern detection
|
|
87
|
+
*/
|
|
88
|
+
export interface AntiPatternConfig {
|
|
89
|
+
/** Minimum observations before considering inversion */
|
|
90
|
+
minObservations: number;
|
|
91
|
+
/** Failure ratio threshold for inversion (0-1) */
|
|
92
|
+
failureRatioThreshold: number;
|
|
93
|
+
/** Prefix for anti-pattern content */
|
|
94
|
+
antiPatternPrefix: string;
|
|
95
|
+
}
|
|
96
|
+
export declare const DEFAULT_ANTI_PATTERN_CONFIG: AntiPatternConfig;
|
|
97
|
+
/**
|
|
98
|
+
* Check if a pattern should be inverted to an anti-pattern
|
|
99
|
+
*
|
|
100
|
+
* A pattern is inverted when:
|
|
101
|
+
* 1. It has enough observations (minObservations)
|
|
102
|
+
* 2. Its failure ratio exceeds the threshold
|
|
103
|
+
*
|
|
104
|
+
* @param pattern - The pattern to check
|
|
105
|
+
* @param config - Anti-pattern configuration
|
|
106
|
+
* @returns Whether the pattern should be inverted
|
|
107
|
+
*/
|
|
108
|
+
export declare function shouldInvertPattern(pattern: DecompositionPattern, config?: AntiPatternConfig): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Invert a pattern to an anti-pattern
|
|
111
|
+
*
|
|
112
|
+
* Creates a new anti-pattern from a failing pattern.
|
|
113
|
+
* The content is prefixed with "AVOID: " and the kind is changed.
|
|
114
|
+
*
|
|
115
|
+
* @param pattern - The pattern to invert
|
|
116
|
+
* @param reason - Why the inversion is happening
|
|
117
|
+
* @param config - Anti-pattern configuration
|
|
118
|
+
* @returns The inverted anti-pattern
|
|
119
|
+
*/
|
|
120
|
+
export declare function invertToAntiPattern(pattern: DecompositionPattern, reason: string, config?: AntiPatternConfig): PatternInversionResult;
|
|
121
|
+
/**
|
|
122
|
+
* Record a pattern observation (success or failure)
|
|
123
|
+
*
|
|
124
|
+
* Updates the pattern's success/failure counts and checks if
|
|
125
|
+
* it should be inverted to an anti-pattern.
|
|
126
|
+
*
|
|
127
|
+
* @param pattern - The pattern to update
|
|
128
|
+
* @param success - Whether this observation was successful
|
|
129
|
+
* @param beadId - Optional bead ID to record as example
|
|
130
|
+
* @param config - Anti-pattern configuration
|
|
131
|
+
* @returns Updated pattern and optional inversion result
|
|
132
|
+
*/
|
|
133
|
+
export declare function recordPatternObservation(pattern: DecompositionPattern, success: boolean, beadId?: string, config?: AntiPatternConfig): {
|
|
134
|
+
pattern: DecompositionPattern;
|
|
135
|
+
inversion?: PatternInversionResult;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Extract patterns from a decomposition description
|
|
139
|
+
*
|
|
140
|
+
* Looks for common decomposition strategies in the text.
|
|
141
|
+
*
|
|
142
|
+
* @param description - Decomposition description or reasoning
|
|
143
|
+
* @returns Extracted pattern descriptions
|
|
144
|
+
*/
|
|
145
|
+
export declare function extractPatternsFromDescription(description: string): string[];
|
|
146
|
+
/**
|
|
147
|
+
* Create a new pattern from a description
|
|
148
|
+
*
|
|
149
|
+
* @param content - Pattern description
|
|
150
|
+
* @param tags - Optional tags for categorization
|
|
151
|
+
* @returns New pattern
|
|
152
|
+
*/
|
|
153
|
+
export declare function createPattern(content: string, tags?: string[]): DecompositionPattern;
|
|
154
|
+
/**
|
|
155
|
+
* Format anti-patterns for inclusion in decomposition prompts
|
|
156
|
+
*
|
|
157
|
+
* @param patterns - Anti-patterns to format
|
|
158
|
+
* @returns Formatted string for prompt inclusion
|
|
159
|
+
*/
|
|
160
|
+
export declare function formatAntiPatternsForPrompt(patterns: DecompositionPattern[]): string;
|
|
161
|
+
/**
|
|
162
|
+
* Format successful patterns for inclusion in prompts.
|
|
163
|
+
*
|
|
164
|
+
* @param patterns - Array of decomposition patterns to filter and format
|
|
165
|
+
* @param minSuccessRate - Minimum success rate to include (default 0.7 = 70%).
|
|
166
|
+
* Chosen to filter out patterns with marginal track records - only patterns
|
|
167
|
+
* that succeed at least 70% of the time are recommended.
|
|
168
|
+
* @returns Formatted string of successful patterns for prompt injection
|
|
169
|
+
*/
|
|
170
|
+
export declare function formatSuccessfulPatternsForPrompt(patterns: DecompositionPattern[], minSuccessRate?: number): string;
|
|
171
|
+
/**
|
|
172
|
+
* Storage interface for decomposition patterns
|
|
173
|
+
*/
|
|
174
|
+
export interface PatternStorage {
|
|
175
|
+
/** Store or update a pattern */
|
|
176
|
+
store(pattern: DecompositionPattern): Promise<void>;
|
|
177
|
+
/** Get a pattern by ID */
|
|
178
|
+
get(id: string): Promise<DecompositionPattern | null>;
|
|
179
|
+
/** Get all patterns */
|
|
180
|
+
getAll(): Promise<DecompositionPattern[]>;
|
|
181
|
+
/** Get all anti-patterns */
|
|
182
|
+
getAntiPatterns(): Promise<DecompositionPattern[]>;
|
|
183
|
+
/** Get patterns by tag */
|
|
184
|
+
getByTag(tag: string): Promise<DecompositionPattern[]>;
|
|
185
|
+
/** Find patterns matching content */
|
|
186
|
+
findByContent(content: string): Promise<DecompositionPattern[]>;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* In-memory pattern storage (for testing and short-lived sessions)
|
|
190
|
+
*/
|
|
191
|
+
export declare class InMemoryPatternStorage implements PatternStorage {
|
|
192
|
+
private patterns;
|
|
193
|
+
store(pattern: DecompositionPattern): Promise<void>;
|
|
194
|
+
get(id: string): Promise<DecompositionPattern | null>;
|
|
195
|
+
getAll(): Promise<DecompositionPattern[]>;
|
|
196
|
+
getAntiPatterns(): Promise<DecompositionPattern[]>;
|
|
197
|
+
getByTag(tag: string): Promise<DecompositionPattern[]>;
|
|
198
|
+
findByContent(content: string): Promise<DecompositionPattern[]>;
|
|
199
|
+
}
|
|
200
|
+
export declare const antiPatternSchemas: {
|
|
201
|
+
PatternKindSchema: z.ZodEnum<{
|
|
202
|
+
pattern: "pattern";
|
|
203
|
+
anti_pattern: "anti_pattern";
|
|
204
|
+
}>;
|
|
205
|
+
DecompositionPatternSchema: z.ZodObject<{
|
|
206
|
+
id: z.ZodString;
|
|
207
|
+
content: z.ZodString;
|
|
208
|
+
kind: z.ZodEnum<{
|
|
209
|
+
pattern: "pattern";
|
|
210
|
+
anti_pattern: "anti_pattern";
|
|
211
|
+
}>;
|
|
212
|
+
is_negative: z.ZodBoolean;
|
|
213
|
+
success_count: z.ZodDefault<z.ZodNumber>;
|
|
214
|
+
failure_count: z.ZodDefault<z.ZodNumber>;
|
|
215
|
+
created_at: z.ZodString;
|
|
216
|
+
updated_at: z.ZodString;
|
|
217
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
218
|
+
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
219
|
+
example_beads: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
220
|
+
}, z.core.$strip>;
|
|
221
|
+
PatternInversionResultSchema: z.ZodObject<{
|
|
222
|
+
original: z.ZodObject<{
|
|
223
|
+
id: z.ZodString;
|
|
224
|
+
content: z.ZodString;
|
|
225
|
+
kind: z.ZodEnum<{
|
|
226
|
+
pattern: "pattern";
|
|
227
|
+
anti_pattern: "anti_pattern";
|
|
228
|
+
}>;
|
|
229
|
+
is_negative: z.ZodBoolean;
|
|
230
|
+
success_count: z.ZodDefault<z.ZodNumber>;
|
|
231
|
+
failure_count: z.ZodDefault<z.ZodNumber>;
|
|
232
|
+
created_at: z.ZodString;
|
|
233
|
+
updated_at: z.ZodString;
|
|
234
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
235
|
+
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
236
|
+
example_beads: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
237
|
+
}, z.core.$strip>;
|
|
238
|
+
inverted: z.ZodObject<{
|
|
239
|
+
id: z.ZodString;
|
|
240
|
+
content: z.ZodString;
|
|
241
|
+
kind: z.ZodEnum<{
|
|
242
|
+
pattern: "pattern";
|
|
243
|
+
anti_pattern: "anti_pattern";
|
|
244
|
+
}>;
|
|
245
|
+
is_negative: z.ZodBoolean;
|
|
246
|
+
success_count: z.ZodDefault<z.ZodNumber>;
|
|
247
|
+
failure_count: z.ZodDefault<z.ZodNumber>;
|
|
248
|
+
created_at: z.ZodString;
|
|
249
|
+
updated_at: z.ZodString;
|
|
250
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
251
|
+
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
252
|
+
example_beads: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
253
|
+
}, z.core.$strip>;
|
|
254
|
+
reason: z.ZodString;
|
|
255
|
+
}, z.core.$strip>;
|
|
256
|
+
};
|
|
257
|
+
//# sourceMappingURL=anti-patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anti-patterns.d.ts","sourceRoot":"","sources":["../src/anti-patterns.ts"],"names":[],"mappings":"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"}
|
package/dist/beads.d.ts
ADDED
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Set the working directory for all beads commands.
|
|
4
|
+
* Call this from the plugin initialization with the project directory.
|
|
5
|
+
*
|
|
6
|
+
* @param directory - Absolute path to the project directory
|
|
7
|
+
*/
|
|
8
|
+
export declare function setBeadsWorkingDirectory(directory: string): void;
|
|
9
|
+
/**
|
|
10
|
+
* Get the current working directory for beads commands.
|
|
11
|
+
* Returns the configured directory or process.cwd() as fallback.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getBeadsWorkingDirectory(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Custom error for bead operations
|
|
16
|
+
*/
|
|
17
|
+
export declare class BeadError extends Error {
|
|
18
|
+
readonly command: string;
|
|
19
|
+
readonly exitCode?: number | undefined;
|
|
20
|
+
readonly stderr?: string | undefined;
|
|
21
|
+
constructor(message: string, command: string, exitCode?: number | undefined, stderr?: string | undefined);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Custom error for validation failures
|
|
25
|
+
*/
|
|
26
|
+
export declare class BeadValidationError extends Error {
|
|
27
|
+
readonly zodError: z.ZodError;
|
|
28
|
+
constructor(message: string, zodError: z.ZodError);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create a new bead with type-safe validation
|
|
32
|
+
*/
|
|
33
|
+
export declare const beads_create: {
|
|
34
|
+
description: string;
|
|
35
|
+
args: {
|
|
36
|
+
title: z.ZodString;
|
|
37
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
38
|
+
bug: "bug";
|
|
39
|
+
feature: "feature";
|
|
40
|
+
task: "task";
|
|
41
|
+
epic: "epic";
|
|
42
|
+
chore: "chore";
|
|
43
|
+
}>>;
|
|
44
|
+
priority: z.ZodOptional<z.ZodNumber>;
|
|
45
|
+
description: z.ZodOptional<z.ZodString>;
|
|
46
|
+
parent_id: z.ZodOptional<z.ZodString>;
|
|
47
|
+
};
|
|
48
|
+
execute(args: {
|
|
49
|
+
title: string;
|
|
50
|
+
type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
|
|
51
|
+
priority?: number | undefined;
|
|
52
|
+
description?: string | undefined;
|
|
53
|
+
parent_id?: string | undefined;
|
|
54
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Create an epic with subtasks in one atomic operation
|
|
58
|
+
*/
|
|
59
|
+
export declare const beads_create_epic: {
|
|
60
|
+
description: string;
|
|
61
|
+
args: {
|
|
62
|
+
epic_title: z.ZodString;
|
|
63
|
+
epic_description: z.ZodOptional<z.ZodString>;
|
|
64
|
+
epic_id: z.ZodOptional<z.ZodString>;
|
|
65
|
+
subtasks: z.ZodArray<z.ZodObject<{
|
|
66
|
+
title: z.ZodString;
|
|
67
|
+
priority: z.ZodOptional<z.ZodNumber>;
|
|
68
|
+
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
69
|
+
id_suffix: z.ZodOptional<z.ZodString>;
|
|
70
|
+
}, z.core.$strip>>;
|
|
71
|
+
strategy: z.ZodOptional<z.ZodEnum<{
|
|
72
|
+
"file-based": "file-based";
|
|
73
|
+
"feature-based": "feature-based";
|
|
74
|
+
"risk-based": "risk-based";
|
|
75
|
+
}>>;
|
|
76
|
+
task: z.ZodOptional<z.ZodString>;
|
|
77
|
+
project_key: z.ZodOptional<z.ZodString>;
|
|
78
|
+
recovery_context: z.ZodOptional<z.ZodObject<{
|
|
79
|
+
shared_context: z.ZodOptional<z.ZodString>;
|
|
80
|
+
skills_to_load: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
81
|
+
coordinator_notes: z.ZodOptional<z.ZodString>;
|
|
82
|
+
}, z.core.$strip>>;
|
|
83
|
+
};
|
|
84
|
+
execute(args: {
|
|
85
|
+
epic_title: string;
|
|
86
|
+
subtasks: {
|
|
87
|
+
title: string;
|
|
88
|
+
priority?: number | undefined;
|
|
89
|
+
files?: string[] | undefined;
|
|
90
|
+
id_suffix?: string | undefined;
|
|
91
|
+
}[];
|
|
92
|
+
epic_description?: string | undefined;
|
|
93
|
+
epic_id?: string | undefined;
|
|
94
|
+
strategy?: "file-based" | "feature-based" | "risk-based" | undefined;
|
|
95
|
+
task?: string | undefined;
|
|
96
|
+
project_key?: string | undefined;
|
|
97
|
+
recovery_context?: {
|
|
98
|
+
shared_context?: string | undefined;
|
|
99
|
+
skills_to_load?: string[] | undefined;
|
|
100
|
+
coordinator_notes?: string | undefined;
|
|
101
|
+
} | undefined;
|
|
102
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Query beads with filters
|
|
106
|
+
*/
|
|
107
|
+
export declare const beads_query: {
|
|
108
|
+
description: string;
|
|
109
|
+
args: {
|
|
110
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
111
|
+
open: "open";
|
|
112
|
+
in_progress: "in_progress";
|
|
113
|
+
blocked: "blocked";
|
|
114
|
+
closed: "closed";
|
|
115
|
+
}>>;
|
|
116
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
117
|
+
bug: "bug";
|
|
118
|
+
feature: "feature";
|
|
119
|
+
task: "task";
|
|
120
|
+
epic: "epic";
|
|
121
|
+
chore: "chore";
|
|
122
|
+
}>>;
|
|
123
|
+
ready: z.ZodOptional<z.ZodBoolean>;
|
|
124
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
125
|
+
};
|
|
126
|
+
execute(args: {
|
|
127
|
+
status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
|
|
128
|
+
type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
|
|
129
|
+
ready?: boolean | undefined;
|
|
130
|
+
limit?: number | undefined;
|
|
131
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Update a bead's status or description
|
|
135
|
+
*/
|
|
136
|
+
export declare const beads_update: {
|
|
137
|
+
description: string;
|
|
138
|
+
args: {
|
|
139
|
+
id: z.ZodString;
|
|
140
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
141
|
+
open: "open";
|
|
142
|
+
in_progress: "in_progress";
|
|
143
|
+
blocked: "blocked";
|
|
144
|
+
closed: "closed";
|
|
145
|
+
}>>;
|
|
146
|
+
description: z.ZodOptional<z.ZodString>;
|
|
147
|
+
priority: z.ZodOptional<z.ZodNumber>;
|
|
148
|
+
};
|
|
149
|
+
execute(args: {
|
|
150
|
+
id: string;
|
|
151
|
+
status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
|
|
152
|
+
description?: string | undefined;
|
|
153
|
+
priority?: number | undefined;
|
|
154
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Close a bead with reason
|
|
158
|
+
*/
|
|
159
|
+
export declare const beads_close: {
|
|
160
|
+
description: string;
|
|
161
|
+
args: {
|
|
162
|
+
id: z.ZodString;
|
|
163
|
+
reason: z.ZodString;
|
|
164
|
+
};
|
|
165
|
+
execute(args: {
|
|
166
|
+
id: string;
|
|
167
|
+
reason: string;
|
|
168
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* Mark a bead as in-progress
|
|
172
|
+
*/
|
|
173
|
+
export declare const beads_start: {
|
|
174
|
+
description: string;
|
|
175
|
+
args: {
|
|
176
|
+
id: z.ZodString;
|
|
177
|
+
};
|
|
178
|
+
execute(args: {
|
|
179
|
+
id: string;
|
|
180
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Get the next ready bead
|
|
184
|
+
*/
|
|
185
|
+
export declare const beads_ready: {
|
|
186
|
+
description: string;
|
|
187
|
+
args: {};
|
|
188
|
+
execute(args: Record<string, never>, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Sync beads to git and push
|
|
192
|
+
*/
|
|
193
|
+
export declare const beads_sync: {
|
|
194
|
+
description: string;
|
|
195
|
+
args: {
|
|
196
|
+
auto_pull: z.ZodOptional<z.ZodBoolean>;
|
|
197
|
+
};
|
|
198
|
+
execute(args: {
|
|
199
|
+
auto_pull?: boolean | undefined;
|
|
200
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* Link a bead to an Agent Mail thread
|
|
204
|
+
*/
|
|
205
|
+
export declare const beads_link_thread: {
|
|
206
|
+
description: string;
|
|
207
|
+
args: {
|
|
208
|
+
bead_id: z.ZodString;
|
|
209
|
+
thread_id: z.ZodString;
|
|
210
|
+
};
|
|
211
|
+
execute(args: {
|
|
212
|
+
bead_id: string;
|
|
213
|
+
thread_id: string;
|
|
214
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
215
|
+
};
|
|
216
|
+
export declare const beadsTools: {
|
|
217
|
+
beads_create: {
|
|
218
|
+
description: string;
|
|
219
|
+
args: {
|
|
220
|
+
title: z.ZodString;
|
|
221
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
222
|
+
bug: "bug";
|
|
223
|
+
feature: "feature";
|
|
224
|
+
task: "task";
|
|
225
|
+
epic: "epic";
|
|
226
|
+
chore: "chore";
|
|
227
|
+
}>>;
|
|
228
|
+
priority: z.ZodOptional<z.ZodNumber>;
|
|
229
|
+
description: z.ZodOptional<z.ZodString>;
|
|
230
|
+
parent_id: z.ZodOptional<z.ZodString>;
|
|
231
|
+
};
|
|
232
|
+
execute(args: {
|
|
233
|
+
title: string;
|
|
234
|
+
type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
|
|
235
|
+
priority?: number | undefined;
|
|
236
|
+
description?: string | undefined;
|
|
237
|
+
parent_id?: string | undefined;
|
|
238
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
239
|
+
};
|
|
240
|
+
beads_create_epic: {
|
|
241
|
+
description: string;
|
|
242
|
+
args: {
|
|
243
|
+
epic_title: z.ZodString;
|
|
244
|
+
epic_description: z.ZodOptional<z.ZodString>;
|
|
245
|
+
epic_id: z.ZodOptional<z.ZodString>;
|
|
246
|
+
subtasks: z.ZodArray<z.ZodObject<{
|
|
247
|
+
title: z.ZodString;
|
|
248
|
+
priority: z.ZodOptional<z.ZodNumber>;
|
|
249
|
+
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
250
|
+
id_suffix: z.ZodOptional<z.ZodString>;
|
|
251
|
+
}, z.core.$strip>>;
|
|
252
|
+
strategy: z.ZodOptional<z.ZodEnum<{
|
|
253
|
+
"file-based": "file-based";
|
|
254
|
+
"feature-based": "feature-based";
|
|
255
|
+
"risk-based": "risk-based";
|
|
256
|
+
}>>;
|
|
257
|
+
task: z.ZodOptional<z.ZodString>;
|
|
258
|
+
project_key: z.ZodOptional<z.ZodString>;
|
|
259
|
+
recovery_context: z.ZodOptional<z.ZodObject<{
|
|
260
|
+
shared_context: z.ZodOptional<z.ZodString>;
|
|
261
|
+
skills_to_load: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
262
|
+
coordinator_notes: z.ZodOptional<z.ZodString>;
|
|
263
|
+
}, z.core.$strip>>;
|
|
264
|
+
};
|
|
265
|
+
execute(args: {
|
|
266
|
+
epic_title: string;
|
|
267
|
+
subtasks: {
|
|
268
|
+
title: string;
|
|
269
|
+
priority?: number | undefined;
|
|
270
|
+
files?: string[] | undefined;
|
|
271
|
+
id_suffix?: string | undefined;
|
|
272
|
+
}[];
|
|
273
|
+
epic_description?: string | undefined;
|
|
274
|
+
epic_id?: string | undefined;
|
|
275
|
+
strategy?: "file-based" | "feature-based" | "risk-based" | undefined;
|
|
276
|
+
task?: string | undefined;
|
|
277
|
+
project_key?: string | undefined;
|
|
278
|
+
recovery_context?: {
|
|
279
|
+
shared_context?: string | undefined;
|
|
280
|
+
skills_to_load?: string[] | undefined;
|
|
281
|
+
coordinator_notes?: string | undefined;
|
|
282
|
+
} | undefined;
|
|
283
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
284
|
+
};
|
|
285
|
+
beads_query: {
|
|
286
|
+
description: string;
|
|
287
|
+
args: {
|
|
288
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
289
|
+
open: "open";
|
|
290
|
+
in_progress: "in_progress";
|
|
291
|
+
blocked: "blocked";
|
|
292
|
+
closed: "closed";
|
|
293
|
+
}>>;
|
|
294
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
295
|
+
bug: "bug";
|
|
296
|
+
feature: "feature";
|
|
297
|
+
task: "task";
|
|
298
|
+
epic: "epic";
|
|
299
|
+
chore: "chore";
|
|
300
|
+
}>>;
|
|
301
|
+
ready: z.ZodOptional<z.ZodBoolean>;
|
|
302
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
303
|
+
};
|
|
304
|
+
execute(args: {
|
|
305
|
+
status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
|
|
306
|
+
type?: "bug" | "feature" | "task" | "epic" | "chore" | undefined;
|
|
307
|
+
ready?: boolean | undefined;
|
|
308
|
+
limit?: number | undefined;
|
|
309
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
310
|
+
};
|
|
311
|
+
beads_update: {
|
|
312
|
+
description: string;
|
|
313
|
+
args: {
|
|
314
|
+
id: z.ZodString;
|
|
315
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
316
|
+
open: "open";
|
|
317
|
+
in_progress: "in_progress";
|
|
318
|
+
blocked: "blocked";
|
|
319
|
+
closed: "closed";
|
|
320
|
+
}>>;
|
|
321
|
+
description: z.ZodOptional<z.ZodString>;
|
|
322
|
+
priority: z.ZodOptional<z.ZodNumber>;
|
|
323
|
+
};
|
|
324
|
+
execute(args: {
|
|
325
|
+
id: string;
|
|
326
|
+
status?: "open" | "in_progress" | "blocked" | "closed" | undefined;
|
|
327
|
+
description?: string | undefined;
|
|
328
|
+
priority?: number | undefined;
|
|
329
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
330
|
+
};
|
|
331
|
+
beads_close: {
|
|
332
|
+
description: string;
|
|
333
|
+
args: {
|
|
334
|
+
id: z.ZodString;
|
|
335
|
+
reason: z.ZodString;
|
|
336
|
+
};
|
|
337
|
+
execute(args: {
|
|
338
|
+
id: string;
|
|
339
|
+
reason: string;
|
|
340
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
341
|
+
};
|
|
342
|
+
beads_start: {
|
|
343
|
+
description: string;
|
|
344
|
+
args: {
|
|
345
|
+
id: z.ZodString;
|
|
346
|
+
};
|
|
347
|
+
execute(args: {
|
|
348
|
+
id: string;
|
|
349
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
350
|
+
};
|
|
351
|
+
beads_ready: {
|
|
352
|
+
description: string;
|
|
353
|
+
args: {};
|
|
354
|
+
execute(args: Record<string, never>, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
355
|
+
};
|
|
356
|
+
beads_sync: {
|
|
357
|
+
description: string;
|
|
358
|
+
args: {
|
|
359
|
+
auto_pull: z.ZodOptional<z.ZodBoolean>;
|
|
360
|
+
};
|
|
361
|
+
execute(args: {
|
|
362
|
+
auto_pull?: boolean | undefined;
|
|
363
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
364
|
+
};
|
|
365
|
+
beads_link_thread: {
|
|
366
|
+
description: string;
|
|
367
|
+
args: {
|
|
368
|
+
bead_id: z.ZodString;
|
|
369
|
+
thread_id: z.ZodString;
|
|
370
|
+
};
|
|
371
|
+
execute(args: {
|
|
372
|
+
bead_id: string;
|
|
373
|
+
thread_id: string;
|
|
374
|
+
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
375
|
+
};
|
|
376
|
+
};
|
|
377
|
+
//# sourceMappingURL=beads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beads.d.ts","sourceRoot":"","sources":["../src/beads.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AA+DD;;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;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBADpC,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,CAAC,CAAC,QAAQ;CAKvC;AA+FD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;CA4DvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsM5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;CAoDtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;CA6CvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;CA+BtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;CA0BtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;;;;CAuBtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;CAqMrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;CAkD5B,CAAC;AAMH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUtB,CAAC"}
|