opencode-swarm-plugin 0.25.2 → 0.25.3
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 +2 -2
- package/CHANGELOG.md +20 -0
- package/dist/beads.d.ts +6 -0
- package/dist/beads.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +192 -287
- package/dist/plugin.js +191 -292
- package/dist/rate-limiter.d.ts.map +1 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/swarm-orchestrate.d.ts.map +1 -1
- package/docs/swarm-mail-architecture.md +1 -1
- package/package.json +2 -2
- package/src/beads.integration.test.ts +55 -61
- package/src/beads.ts +239 -410
- package/src/index.ts +1 -15
- package/src/rate-limiter.ts +0 -5
- package/src/storage.ts +0 -9
- package/src/swarm-mail.integration.test.ts +5 -1
- package/src/swarm-orchestrate.ts +24 -14
- package/src/swarm.integration.test.ts +83 -0
- package/src/agent-mail.integration.test.ts +0 -1429
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../src/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,MAAM,SAAS,CAAC;AA0C5B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;OAOG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAE1E;;;;;;OAMG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CASzD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAmBrE;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAClD,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,SAAS,CAAkB;gBAEvB,KAAK,EAAE,KAAK;IAKxB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAInB,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC;IAwB3B;;OAEG;YACW,WAAW;IAuCnB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,EAAE,CAAc;gBAEZ,MAAM,EAAE,MAAM;IAe1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAuBZ,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC;IAkC3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAmDnB;;;;;;;;OAQG;IACH,OAAO,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../src/rate-limiter.ts"],"names":[],"mappings":"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"}
|
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swarm-orchestrate.d.ts","sourceRoot":"","sources":["../src/swarm-orchestrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgiBxB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU;;;;;;;;CAuGrB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;CAoFvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;CA8GzB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;CA6E1B,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"swarm-orchestrate.d.ts","sourceRoot":"","sources":["../src/swarm-orchestrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgiBxB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU;;;;;;;;CAuGrB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;CAoFvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;CA8GzB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;CA6E1B,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+jBzB,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkJ/B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;CA6CjC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;CAmClC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;CAmB9B,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAoJ9B,CAAC;AA4BH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqG3B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;CAsGxB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgMtB,CAAC;AAMH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAc5B,CAAC"}
|
|
@@ -516,7 +516,7 @@ Swarm Mail is **inspired by** [Agent Mail](https://github.com/sst/opencode) (SST
|
|
|
516
516
|
| Aspect | Agent Mail (SST) | Swarm Mail (This Plugin) |
|
|
517
517
|
| ------------------------ | ----------------------------- | -------------------------------------- |
|
|
518
518
|
| **Architecture** | MCP server (external process) | Embedded (PGLite in-process) |
|
|
519
|
-
| **Storage** |
|
|
519
|
+
| **Storage** | PGLite (embedded Postgres) | PGLite (WASM Postgres) |
|
|
520
520
|
| **Dependencies** | Requires MCP server running | Zero external deps, just npm install |
|
|
521
521
|
| **Effect-TS** | No | Yes (full Effect integration) |
|
|
522
522
|
| **Event Sourcing** | No (CRUD operations) | Yes (append-only event log) |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-swarm-plugin",
|
|
3
|
-
"version": "0.25.
|
|
3
|
+
"version": "0.25.3",
|
|
4
4
|
"description": "Multi-agent swarm coordination for OpenCode with learning capabilities, beads integration, and Agent Mail",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"@opencode-ai/plugin": "^1.0.134",
|
|
34
34
|
"gray-matter": "^4.0.3",
|
|
35
35
|
"ioredis": "^5.4.1",
|
|
36
|
-
"swarm-mail": "0.1.
|
|
36
|
+
"swarm-mail": "0.1.4",
|
|
37
37
|
"zod": "4.1.8"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Beads Integration Tests
|
|
3
3
|
*
|
|
4
|
-
* These tests exercise the
|
|
4
|
+
* These tests exercise the BeadsAdapter-based tools directly.
|
|
5
5
|
* They validate the tool wrappers work correctly with actual beads operations.
|
|
6
6
|
*
|
|
7
|
-
* Run with: bun
|
|
7
|
+
* Run with: bun test src/beads.integration.test.ts
|
|
8
8
|
*/
|
|
9
9
|
import { describe, it, expect, beforeAll, beforeEach, afterAll } from "vitest";
|
|
10
10
|
import {
|
|
@@ -17,8 +17,11 @@ import {
|
|
|
17
17
|
beads_ready,
|
|
18
18
|
beads_link_thread,
|
|
19
19
|
BeadError,
|
|
20
|
+
getBeadsAdapter,
|
|
21
|
+
setBeadsWorkingDirectory,
|
|
20
22
|
} from "./beads";
|
|
21
23
|
import type { Bead, EpicCreateResult } from "./schemas";
|
|
24
|
+
import type { BeadsAdapter } from "swarm-mail";
|
|
22
25
|
|
|
23
26
|
/**
|
|
24
27
|
* Mock tool context for execute functions
|
|
@@ -43,6 +46,16 @@ function parseResponse<T>(response: string): T {
|
|
|
43
46
|
*/
|
|
44
47
|
const createdBeadIds: string[] = [];
|
|
45
48
|
|
|
49
|
+
/**
|
|
50
|
+
* Test project key - use temp directory to isolate tests
|
|
51
|
+
*/
|
|
52
|
+
const TEST_PROJECT_KEY = `/tmp/beads-integration-test-${Date.now()}`;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Adapter instance for verification
|
|
56
|
+
*/
|
|
57
|
+
let adapter: BeadsAdapter;
|
|
58
|
+
|
|
46
59
|
/**
|
|
47
60
|
* Cleanup helper - close all created beads after tests
|
|
48
61
|
*/
|
|
@@ -58,14 +71,13 @@ async function cleanupBeads() {
|
|
|
58
71
|
}
|
|
59
72
|
|
|
60
73
|
describe("beads integration", () => {
|
|
61
|
-
//
|
|
74
|
+
// Initialize adapter before running tests
|
|
62
75
|
beforeAll(async () => {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
76
|
+
// Set working directory for beads commands
|
|
77
|
+
setBeadsWorkingDirectory(TEST_PROJECT_KEY);
|
|
78
|
+
|
|
79
|
+
// Get adapter instance for verification
|
|
80
|
+
adapter = await getBeadsAdapter(TEST_PROJECT_KEY);
|
|
69
81
|
});
|
|
70
82
|
|
|
71
83
|
afterAll(async () => {
|
|
@@ -303,11 +315,10 @@ describe("beads integration", () => {
|
|
|
303
315
|
expect(result).toContain("Closed");
|
|
304
316
|
expect(result).toContain(created.id);
|
|
305
317
|
|
|
306
|
-
// Verify it's actually closed using
|
|
307
|
-
const
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
expect(closedBead.status).toBe("closed");
|
|
318
|
+
// Verify it's actually closed using adapter
|
|
319
|
+
const closedBead = await adapter.getBead(TEST_PROJECT_KEY, created.id);
|
|
320
|
+
expect(closedBead).toBeDefined();
|
|
321
|
+
expect(closedBead!.status).toBe("closed");
|
|
311
322
|
});
|
|
312
323
|
|
|
313
324
|
it("throws BeadError for invalid bead ID", async () => {
|
|
@@ -337,15 +348,10 @@ describe("beads integration", () => {
|
|
|
337
348
|
expect(result).toContain("Started");
|
|
338
349
|
expect(result).toContain(created.id);
|
|
339
350
|
|
|
340
|
-
// Verify status changed
|
|
341
|
-
const
|
|
342
|
-
{ status: "in_progress" },
|
|
343
|
-
mockContext,
|
|
344
|
-
);
|
|
345
|
-
const inProgressBeads = parseResponse<Bead[]>(queryResult);
|
|
346
|
-
const startedBead = inProgressBeads.find((b) => b.id === created.id);
|
|
351
|
+
// Verify status changed using adapter
|
|
352
|
+
const startedBead = await adapter.getBead(TEST_PROJECT_KEY, created.id);
|
|
347
353
|
expect(startedBead).toBeDefined();
|
|
348
|
-
expect(startedBead
|
|
354
|
+
expect(startedBead!.status).toBe("in_progress");
|
|
349
355
|
});
|
|
350
356
|
|
|
351
357
|
it("throws BeadError for invalid bead ID", async () => {
|
|
@@ -418,11 +424,12 @@ describe("beads integration", () => {
|
|
|
418
424
|
expect(epicResult.epic.issue_type).toBe("epic");
|
|
419
425
|
expect(epicResult.subtasks).toHaveLength(3);
|
|
420
426
|
|
|
421
|
-
// Subtasks should have
|
|
422
|
-
//
|
|
427
|
+
// Subtasks should have parent_id pointing to epic
|
|
428
|
+
// Verify via adapter since parent_id may not be in the output schema
|
|
423
429
|
for (const subtask of epicResult.subtasks) {
|
|
424
|
-
|
|
425
|
-
expect(
|
|
430
|
+
const subtaskBead = await adapter.getBead(TEST_PROJECT_KEY, subtask.id);
|
|
431
|
+
expect(subtaskBead).toBeDefined();
|
|
432
|
+
expect(subtaskBead!.parent_id).toBe(epicResult.epic.id);
|
|
426
433
|
}
|
|
427
434
|
});
|
|
428
435
|
|
|
@@ -517,11 +524,10 @@ describe("beads integration", () => {
|
|
|
517
524
|
expect(result).toContain(testBeadId);
|
|
518
525
|
expect(result).toContain(threadId);
|
|
519
526
|
|
|
520
|
-
// Verify the thread marker is in the description using
|
|
521
|
-
const
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
expect(linkedBead.description).toContain(`[thread:${threadId}]`);
|
|
527
|
+
// Verify the thread marker is in the description using adapter
|
|
528
|
+
const linkedBead = await adapter.getBead(TEST_PROJECT_KEY, testBeadId);
|
|
529
|
+
expect(linkedBead).toBeDefined();
|
|
530
|
+
expect(linkedBead!.description).toContain(`[thread:${threadId}]`);
|
|
525
531
|
});
|
|
526
532
|
|
|
527
533
|
it("returns message if thread already linked", async () => {
|
|
@@ -555,13 +561,11 @@ describe("beads integration", () => {
|
|
|
555
561
|
mockContext,
|
|
556
562
|
);
|
|
557
563
|
|
|
558
|
-
// Verify both original description and thread marker exist using
|
|
559
|
-
const
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
expect(linkedBead.description).toContain("Important context here");
|
|
564
|
-
expect(linkedBead.description).toContain(`[thread:${threadId}]`);
|
|
564
|
+
// Verify both original description and thread marker exist using adapter
|
|
565
|
+
const linkedBead = await adapter.getBead(TEST_PROJECT_KEY, testBeadId);
|
|
566
|
+
expect(linkedBead).toBeDefined();
|
|
567
|
+
expect(linkedBead!.description).toContain("Important context here");
|
|
568
|
+
expect(linkedBead!.description).toContain(`[thread:${threadId}]`);
|
|
565
569
|
});
|
|
566
570
|
|
|
567
571
|
it("throws BeadError for invalid bead ID", async () => {
|
|
@@ -575,7 +579,7 @@ describe("beads integration", () => {
|
|
|
575
579
|
});
|
|
576
580
|
|
|
577
581
|
describe("error handling", () => {
|
|
578
|
-
it("throws BeadError with command info on
|
|
582
|
+
it("throws BeadError with command info on adapter failure", async () => {
|
|
579
583
|
try {
|
|
580
584
|
await beads_update.execute(
|
|
581
585
|
{ id: "definitely-not-a-real-bead-id", status: "closed" },
|
|
@@ -585,8 +589,7 @@ describe("beads integration", () => {
|
|
|
585
589
|
} catch (error) {
|
|
586
590
|
expect(error).toBeInstanceOf(BeadError);
|
|
587
591
|
const beadError = error as BeadError;
|
|
588
|
-
expect(beadError.command).
|
|
589
|
-
expect(beadError.exitCode).toBeDefined();
|
|
592
|
+
expect(beadError.command).toBeDefined();
|
|
590
593
|
}
|
|
591
594
|
});
|
|
592
595
|
});
|
|
@@ -623,11 +626,10 @@ describe("beads integration", () => {
|
|
|
623
626
|
);
|
|
624
627
|
expect(closeResult).toContain("Closed");
|
|
625
628
|
|
|
626
|
-
// Verify final state using
|
|
627
|
-
const
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
expect(finalBead.status).toBe("closed");
|
|
629
|
+
// Verify final state using adapter
|
|
630
|
+
const finalBead = await adapter.getBead(TEST_PROJECT_KEY, bead.id);
|
|
631
|
+
expect(finalBead).toBeDefined();
|
|
632
|
+
expect(finalBead!.status).toBe("closed");
|
|
631
633
|
});
|
|
632
634
|
|
|
633
635
|
it("epic workflow: create epic -> start subtasks -> close subtasks -> close epic", async () => {
|
|
@@ -665,23 +667,15 @@ describe("beads integration", () => {
|
|
|
665
667
|
mockContext,
|
|
666
668
|
);
|
|
667
669
|
|
|
668
|
-
// Verify all are closed using
|
|
669
|
-
const
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
const epicClosed = Array.isArray(epicShowData)
|
|
673
|
-
? epicShowData[0]
|
|
674
|
-
: epicShowData;
|
|
675
|
-
expect(epicClosed.status).toBe("closed");
|
|
670
|
+
// Verify all are closed using adapter
|
|
671
|
+
const epicClosed = await adapter.getBead(TEST_PROJECT_KEY, epic.epic.id);
|
|
672
|
+
expect(epicClosed).toBeDefined();
|
|
673
|
+
expect(epicClosed!.status).toBe("closed");
|
|
676
674
|
|
|
677
675
|
for (const subtask of epic.subtasks) {
|
|
678
|
-
const
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
const subtaskClosed = Array.isArray(subtaskShowData)
|
|
682
|
-
? subtaskShowData[0]
|
|
683
|
-
: subtaskShowData;
|
|
684
|
-
expect(subtaskClosed.status).toBe("closed");
|
|
676
|
+
const subtaskClosed = await adapter.getBead(TEST_PROJECT_KEY, subtask.id);
|
|
677
|
+
expect(subtaskClosed).toBeDefined();
|
|
678
|
+
expect(subtaskClosed!.status).toBe("closed");
|
|
685
679
|
}
|
|
686
680
|
});
|
|
687
681
|
});
|