swarm-mail 0.1.0 → 0.1.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.
Files changed (75) hide show
  1. package/README.md +28 -0
  2. package/dist/adapter.d.ts +36 -0
  3. package/dist/adapter.d.ts.map +1 -0
  4. package/dist/index.d.ts +22 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +16710 -0
  7. package/{src/pglite.ts → dist/pglite.d.ts} +7 -93
  8. package/dist/pglite.d.ts.map +1 -0
  9. package/dist/streams/agent-mail.d.ts +139 -0
  10. package/dist/streams/agent-mail.d.ts.map +1 -0
  11. package/dist/streams/debug.d.ts +173 -0
  12. package/dist/streams/debug.d.ts.map +1 -0
  13. package/dist/streams/effect/ask.d.ts +124 -0
  14. package/dist/streams/effect/ask.d.ts.map +1 -0
  15. package/dist/streams/effect/cursor.d.ts +87 -0
  16. package/dist/streams/effect/cursor.d.ts.map +1 -0
  17. package/dist/streams/effect/deferred.d.ts +108 -0
  18. package/dist/streams/effect/deferred.d.ts.map +1 -0
  19. package/{src/streams/effect/index.ts → dist/streams/effect/index.d.ts} +1 -0
  20. package/dist/streams/effect/index.d.ts.map +1 -0
  21. package/{src/streams/effect/layers.ts → dist/streams/effect/layers.d.ts} +8 -33
  22. package/dist/streams/effect/layers.d.ts.map +1 -0
  23. package/dist/streams/effect/lock.d.ts +137 -0
  24. package/dist/streams/effect/lock.d.ts.map +1 -0
  25. package/dist/streams/effect/mailbox.d.ts +98 -0
  26. package/dist/streams/effect/mailbox.d.ts.map +1 -0
  27. package/dist/streams/events.d.ts +487 -0
  28. package/dist/streams/events.d.ts.map +1 -0
  29. package/dist/streams/index.d.ts +106 -0
  30. package/dist/streams/index.d.ts.map +1 -0
  31. package/dist/streams/migrations.d.ts +102 -0
  32. package/dist/streams/migrations.d.ts.map +1 -0
  33. package/dist/streams/projections.d.ts +173 -0
  34. package/dist/streams/projections.d.ts.map +1 -0
  35. package/dist/streams/store.d.ts +171 -0
  36. package/dist/streams/store.d.ts.map +1 -0
  37. package/dist/streams/swarm-mail.d.ts +153 -0
  38. package/dist/streams/swarm-mail.d.ts.map +1 -0
  39. package/dist/types/adapter.d.ts +267 -0
  40. package/dist/types/adapter.d.ts.map +1 -0
  41. package/dist/types/database.d.ts +117 -0
  42. package/dist/types/database.d.ts.map +1 -0
  43. package/{src/types/index.ts → dist/types/index.d.ts} +2 -15
  44. package/dist/types/index.d.ts.map +1 -0
  45. package/package.json +21 -5
  46. package/src/adapter.ts +0 -306
  47. package/src/index.ts +0 -57
  48. package/src/streams/agent-mail.test.ts +0 -777
  49. package/src/streams/agent-mail.ts +0 -535
  50. package/src/streams/debug.test.ts +0 -500
  51. package/src/streams/debug.ts +0 -727
  52. package/src/streams/effect/ask.integration.test.ts +0 -314
  53. package/src/streams/effect/ask.ts +0 -202
  54. package/src/streams/effect/cursor.integration.test.ts +0 -418
  55. package/src/streams/effect/cursor.ts +0 -288
  56. package/src/streams/effect/deferred.test.ts +0 -357
  57. package/src/streams/effect/deferred.ts +0 -445
  58. package/src/streams/effect/lock.test.ts +0 -385
  59. package/src/streams/effect/lock.ts +0 -399
  60. package/src/streams/effect/mailbox.test.ts +0 -260
  61. package/src/streams/effect/mailbox.ts +0 -318
  62. package/src/streams/events.test.ts +0 -924
  63. package/src/streams/events.ts +0 -329
  64. package/src/streams/index.test.ts +0 -229
  65. package/src/streams/index.ts +0 -578
  66. package/src/streams/migrations.test.ts +0 -359
  67. package/src/streams/migrations.ts +0 -362
  68. package/src/streams/projections.test.ts +0 -611
  69. package/src/streams/projections.ts +0 -564
  70. package/src/streams/store.integration.test.ts +0 -658
  71. package/src/streams/store.ts +0 -1129
  72. package/src/streams/swarm-mail.ts +0 -552
  73. package/src/types/adapter.ts +0 -392
  74. package/src/types/database.ts +0 -127
  75. 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"}
@@ -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"}