swarm-mail 0.1.0 → 0.1.2
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/README.md +28 -0
- package/dist/adapter.d.ts +36 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23131 -0
- package/{src/pglite.ts → dist/pglite.d.ts} +7 -93
- package/dist/pglite.d.ts.map +1 -0
- package/dist/streams/agent-mail.d.ts +139 -0
- package/dist/streams/agent-mail.d.ts.map +1 -0
- package/dist/streams/debug.d.ts +173 -0
- package/dist/streams/debug.d.ts.map +1 -0
- package/dist/streams/effect/ask.d.ts +124 -0
- package/dist/streams/effect/ask.d.ts.map +1 -0
- package/dist/streams/effect/cursor.d.ts +87 -0
- package/dist/streams/effect/cursor.d.ts.map +1 -0
- package/dist/streams/effect/deferred.d.ts +108 -0
- package/dist/streams/effect/deferred.d.ts.map +1 -0
- package/{src/streams/effect/index.ts → dist/streams/effect/index.d.ts} +1 -0
- package/dist/streams/effect/index.d.ts.map +1 -0
- package/{src/streams/effect/layers.ts → dist/streams/effect/layers.d.ts} +8 -33
- package/dist/streams/effect/layers.d.ts.map +1 -0
- package/dist/streams/effect/lock.d.ts +137 -0
- package/dist/streams/effect/lock.d.ts.map +1 -0
- package/dist/streams/effect/mailbox.d.ts +98 -0
- package/dist/streams/effect/mailbox.d.ts.map +1 -0
- package/dist/streams/events.d.ts +487 -0
- package/dist/streams/events.d.ts.map +1 -0
- package/dist/streams/index.d.ts +106 -0
- package/dist/streams/index.d.ts.map +1 -0
- package/dist/streams/migrations.d.ts +102 -0
- package/dist/streams/migrations.d.ts.map +1 -0
- package/dist/streams/projections.d.ts +173 -0
- package/dist/streams/projections.d.ts.map +1 -0
- package/dist/streams/store.d.ts +171 -0
- package/dist/streams/store.d.ts.map +1 -0
- package/dist/streams/swarm-mail.d.ts +153 -0
- package/dist/streams/swarm-mail.d.ts.map +1 -0
- package/dist/types/adapter.d.ts +267 -0
- package/dist/types/adapter.d.ts.map +1 -0
- package/dist/types/database.d.ts +117 -0
- package/dist/types/database.d.ts.map +1 -0
- package/{src/types/index.ts → dist/types/index.d.ts} +2 -15
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +20 -4
- package/src/adapter.ts +0 -306
- package/src/index.ts +0 -57
- 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/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 -564
- package/src/streams/store.integration.test.ts +0 -658
- package/src/streams/store.ts +0 -1129
- package/src/streams/swarm-mail.ts +0 -552
- package/src/types/adapter.ts +0 -392
- package/src/types/database.ts +0 -127
- package/tsconfig.json +0 -22
package/README.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# swarm-mail
|
|
2
2
|
|
|
3
|
+
```
|
|
4
|
+
_.------._
|
|
5
|
+
.' .--. '. 🐝
|
|
6
|
+
/ .' '. \ 🐝
|
|
7
|
+
| / __ \ | 🐝
|
|
8
|
+
🐝 | | ( ) | | 🐝
|
|
9
|
+
🐝 _ _ | | |__| | |
|
|
10
|
+
( \/ ) \ '. .' / 🐝
|
|
11
|
+
🐝 ____/ \____ '. '----' .'
|
|
12
|
+
/ \ / \ '-._____.-' 🐝
|
|
13
|
+
/ () \ / () \
|
|
14
|
+
| /\ || /\ | ███████╗██╗ ██╗ █████╗ ██████╗ ███╗ ███╗
|
|
15
|
+
| /__\ || /__\ | ██╔════╝██║ ██║██╔══██╗██╔══██╗████╗ ████║
|
|
16
|
+
\ / \ / ███████╗██║ █╗ ██║███████║██████╔╝██╔████╔██║
|
|
17
|
+
🐝 '----' '----' ╚════██║██║███╗██║██╔══██║██╔══██╗██║╚██╔╝██║
|
|
18
|
+
███████║╚███╔███╔╝██║ ██║██║ ██║██║ ╚═╝ ██║
|
|
19
|
+
🐝 ╚══════╝ ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝
|
|
20
|
+
🐝
|
|
21
|
+
🐝 ███╗ ███╗ █████╗ ██╗██╗
|
|
22
|
+
████╗ ████║██╔══██╗██║██║ 🐝
|
|
23
|
+
🐝 ██╔████╔██║███████║██║██║
|
|
24
|
+
██║╚██╔╝██║██╔══██║██║██║ 🐝
|
|
25
|
+
🐝 🐝 ██║ ╚═╝ ██║██║ ██║██║███████╗
|
|
26
|
+
╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚══════╝ 🐝
|
|
27
|
+
🐝
|
|
28
|
+
⚡ Actor-Model Primitives for Agent Coordination ⚡
|
|
29
|
+
```
|
|
30
|
+
|
|
3
31
|
Event sourcing primitives for multi-agent coordination. Local-first, no external servers.
|
|
4
32
|
|
|
5
33
|
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SwarmMail Adapter - Factory for creating SwarmMailAdapter instances
|
|
3
|
+
*
|
|
4
|
+
* This file implements the adapter pattern for swarm-mail, enabling
|
|
5
|
+
* dependency injection of the database instead of singleton access.
|
|
6
|
+
*
|
|
7
|
+
* ## Design Pattern
|
|
8
|
+
* - Accept DatabaseAdapter via factory parameter
|
|
9
|
+
* - Return SwarmMailAdapter interface
|
|
10
|
+
* - Delegate to internal implementation functions
|
|
11
|
+
* - No direct database access (all via adapter)
|
|
12
|
+
*
|
|
13
|
+
* ## Usage
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { createPGLiteAdapter } from '@opencode/swarm-mail/adapters/pglite';
|
|
16
|
+
* import { createSwarmMailAdapter } from '@opencode/swarm-mail';
|
|
17
|
+
*
|
|
18
|
+
* const dbAdapter = createPGLiteAdapter({ path: './streams.db' });
|
|
19
|
+
* const swarmMail = createSwarmMailAdapter(dbAdapter, '/path/to/project');
|
|
20
|
+
*
|
|
21
|
+
* // Use the adapter
|
|
22
|
+
* await swarmMail.appendEvent(event);
|
|
23
|
+
* const messages = await swarmMail.getInbox('agent-name', { limit: 5 });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import type { DatabaseAdapter } from "./types/database";
|
|
27
|
+
import type { SwarmMailAdapter } from "./types/adapter";
|
|
28
|
+
/**
|
|
29
|
+
* Create a SwarmMailAdapter instance
|
|
30
|
+
*
|
|
31
|
+
* @param db - DatabaseAdapter instance (PGLite, SQLite, PostgreSQL, etc.)
|
|
32
|
+
* @param projectKey - Project identifier (typically the project path)
|
|
33
|
+
* @returns SwarmMailAdapter interface
|
|
34
|
+
*/
|
|
35
|
+
export declare function createSwarmMailAdapter(db: DatabaseAdapter, projectKey: string): SwarmMailAdapter;
|
|
36
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAgCxD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,eAAe,EACnB,UAAU,EAAE,MAAM,GACjB,gBAAgB,CA4OlB"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Swarm Mail - Actor-model primitives for multi-agent coordination
|
|
3
|
+
*
|
|
4
|
+
* ## Simple API (PGLite convenience layer)
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { getSwarmMail } from '@opencode/swarm-mail';
|
|
7
|
+
* const swarmMail = await getSwarmMail('/path/to/project');
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* ## Advanced API (database-agnostic adapter)
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { createSwarmMailAdapter } from '@opencode/swarm-mail';
|
|
13
|
+
* const db = createCustomDbAdapter({ path: './custom.db' });
|
|
14
|
+
* const swarmMail = createSwarmMailAdapter(db, '/path/to/project');
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare const SWARM_MAIL_VERSION = "0.1.0";
|
|
18
|
+
export { createSwarmMailAdapter } from "./adapter";
|
|
19
|
+
export type { DatabaseAdapter, SwarmMailAdapter, EventStoreAdapter, AgentAdapter, MessagingAdapter, ReservationAdapter, SchemaAdapter, ReadEventsOptions, InboxOptions, Message, Reservation, Conflict, } from "./types";
|
|
20
|
+
export { getSwarmMail, createInMemorySwarmMail, closeSwarmMail, closeAllSwarmMail, getDatabasePath, PGlite, } from "./pglite";
|
|
21
|
+
export * from "./streams";
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAM1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,MAAM,GACP,MAAM,UAAU,CAAC;AAMlB,cAAc,WAAW,CAAC"}
|