swarm-mail 1.2.2 → 1.4.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 (190) hide show
  1. package/README.md +174 -144
  2. package/bin/swarm-db.ts +168 -0
  3. package/dist/adapter.d.ts +2 -2
  4. package/dist/analytics/formatters.d.ts +50 -0
  5. package/dist/analytics/formatters.d.ts.map +1 -0
  6. package/dist/analytics/index.d.ts +35 -0
  7. package/dist/analytics/index.d.ts.map +1 -0
  8. package/dist/analytics/queries/agent-activity.d.ts +21 -0
  9. package/dist/analytics/queries/agent-activity.d.ts.map +1 -0
  10. package/dist/analytics/queries/checkpoint-frequency.d.ts +26 -0
  11. package/dist/analytics/queries/checkpoint-frequency.d.ts.map +1 -0
  12. package/dist/analytics/queries/failed-decompositions.d.ts +22 -0
  13. package/dist/analytics/queries/failed-decompositions.d.ts.map +1 -0
  14. package/dist/analytics/queries/human-feedback.d.ts +26 -0
  15. package/dist/analytics/queries/human-feedback.d.ts.map +1 -0
  16. package/dist/analytics/queries/index.d.ts +21 -0
  17. package/dist/analytics/queries/index.d.ts.map +1 -0
  18. package/dist/analytics/queries/lock-contention.d.ts +20 -0
  19. package/dist/analytics/queries/lock-contention.d.ts.map +1 -0
  20. package/dist/analytics/queries/message-latency.d.ts +24 -0
  21. package/dist/analytics/queries/message-latency.d.ts.map +1 -0
  22. package/dist/analytics/queries/recovery-success.d.ts +26 -0
  23. package/dist/analytics/queries/recovery-success.d.ts.map +1 -0
  24. package/dist/analytics/queries/scope-violations.d.ts +27 -0
  25. package/dist/analytics/queries/scope-violations.d.ts.map +1 -0
  26. package/dist/analytics/queries/strategy-success-rates.d.ts +20 -0
  27. package/dist/analytics/queries/strategy-success-rates.d.ts.map +1 -0
  28. package/dist/analytics/queries/task-duration.d.ts +31 -0
  29. package/dist/analytics/queries/task-duration.d.ts.map +1 -0
  30. package/dist/analytics/query-builder.d.ts +110 -0
  31. package/dist/analytics/query-builder.d.ts.map +1 -0
  32. package/dist/analytics/types.d.ts +36 -0
  33. package/dist/analytics/types.d.ts.map +1 -0
  34. package/dist/cli/db.d.ts +73 -0
  35. package/dist/cli/db.d.ts.map +1 -0
  36. package/dist/db/client.d.ts +68 -0
  37. package/dist/db/client.d.ts.map +1 -0
  38. package/dist/db/drizzle.d.ts +24 -0
  39. package/dist/db/drizzle.d.ts.map +1 -0
  40. package/dist/db/index.d.ts +25 -0
  41. package/dist/db/index.d.ts.map +1 -0
  42. package/dist/db/migrate.d.ts +81 -0
  43. package/dist/db/migrate.d.ts.map +1 -0
  44. package/dist/db/schema/hive.d.ts +1596 -0
  45. package/dist/db/schema/hive.d.ts.map +1 -0
  46. package/dist/db/schema/index.d.ts +12 -0
  47. package/dist/db/schema/index.d.ts.map +1 -0
  48. package/dist/db/schema/memory.d.ts +214 -0
  49. package/dist/db/schema/memory.d.ts.map +1 -0
  50. package/dist/db/schema/streams.d.ts +1601 -0
  51. package/dist/db/schema/streams.d.ts.map +1 -0
  52. package/dist/debug-demo.d.ts +12 -0
  53. package/dist/debug-demo.d.ts.map +1 -0
  54. package/dist/debug.d.ts +19 -0
  55. package/dist/debug.d.ts.map +1 -0
  56. package/dist/errors/base-error.d.ts +49 -0
  57. package/dist/errors/base-error.d.ts.map +1 -0
  58. package/dist/errors/checkpoint-error.d.ts +10 -0
  59. package/dist/errors/checkpoint-error.d.ts.map +1 -0
  60. package/dist/errors/decomposition-error.d.ts +10 -0
  61. package/dist/errors/decomposition-error.d.ts.map +1 -0
  62. package/dist/errors/index.d.ts +37 -0
  63. package/dist/errors/index.d.ts.map +1 -0
  64. package/dist/errors/reservation-error.d.ts +10 -0
  65. package/dist/errors/reservation-error.d.ts.map +1 -0
  66. package/dist/errors/validation-error.d.ts +10 -0
  67. package/dist/errors/validation-error.d.ts.map +1 -0
  68. package/dist/hive/adapter.d.ts +8 -8
  69. package/dist/hive/adapter.d.ts.map +1 -1
  70. package/dist/hive/dependencies-drizzle.d.ts +31 -0
  71. package/dist/hive/dependencies-drizzle.d.ts.map +1 -0
  72. package/dist/hive/dependencies.d.ts.map +1 -1
  73. package/dist/hive/flush-manager.d.ts +2 -1
  74. package/dist/hive/flush-manager.d.ts.map +1 -1
  75. package/dist/hive/jsonl.d.ts.map +1 -1
  76. package/dist/hive/migrations.d.ts +23 -3
  77. package/dist/hive/migrations.d.ts.map +1 -1
  78. package/dist/hive/projections-drizzle.d.ts +43 -0
  79. package/dist/hive/projections-drizzle.d.ts.map +1 -0
  80. package/dist/hive/projections.d.ts +8 -0
  81. package/dist/hive/projections.d.ts.map +1 -1
  82. package/dist/hive/queries-drizzle.d.ts +52 -0
  83. package/dist/hive/queries-drizzle.d.ts.map +1 -0
  84. package/dist/hive/queries.d.ts +38 -0
  85. package/dist/hive/queries.d.ts.map +1 -1
  86. package/dist/hive/store.d.ts +36 -14
  87. package/dist/hive/store.d.ts.map +1 -1
  88. package/dist/index.d.ts +37 -18
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +84673 -38352
  91. package/dist/libsql.convenience.d.ts +155 -0
  92. package/dist/libsql.convenience.d.ts.map +1 -0
  93. package/dist/libsql.d.ts +93 -0
  94. package/dist/libsql.d.ts.map +1 -0
  95. package/dist/memory/adapter.d.ts +6 -7
  96. package/dist/memory/adapter.d.ts.map +1 -1
  97. package/dist/memory/libsql-schema.d.ts +83 -0
  98. package/dist/memory/libsql-schema.d.ts.map +1 -0
  99. package/dist/memory/migrate-legacy.d.ts +3 -0
  100. package/dist/memory/migrate-legacy.d.ts.map +1 -1
  101. package/dist/memory/migrations.d.ts +11 -0
  102. package/dist/memory/migrations.d.ts.map +1 -1
  103. package/dist/memory/store.d.ts +39 -31
  104. package/dist/memory/store.d.ts.map +1 -1
  105. package/dist/memory/test-utils.d.ts +59 -0
  106. package/dist/memory/test-utils.d.ts.map +1 -0
  107. package/dist/migrate-pglite-to-libsql.d.ts +73 -0
  108. package/dist/migrate-pglite-to-libsql.d.ts.map +1 -0
  109. package/dist/pglite.d.ts +8 -170
  110. package/dist/pglite.d.ts.map +1 -1
  111. package/dist/streams/agent-mail.d.ts +13 -0
  112. package/dist/streams/agent-mail.d.ts.map +1 -1
  113. package/dist/streams/auto-migrate.d.ts +182 -0
  114. package/dist/streams/auto-migrate.d.ts.map +1 -0
  115. package/dist/streams/effect/ask.d.ts +5 -4
  116. package/dist/streams/effect/ask.d.ts.map +1 -1
  117. package/dist/streams/effect/cursor.d.ts +3 -2
  118. package/dist/streams/effect/cursor.d.ts.map +1 -1
  119. package/dist/streams/effect/deferred.d.ts +12 -9
  120. package/dist/streams/effect/deferred.d.ts.map +1 -1
  121. package/dist/streams/effect/lock.d.ts +13 -11
  122. package/dist/streams/effect/lock.d.ts.map +1 -1
  123. package/dist/streams/effect/mailbox.d.ts +3 -2
  124. package/dist/streams/effect/mailbox.d.ts.map +1 -1
  125. package/dist/streams/events.d.ts +4 -0
  126. package/dist/streams/events.d.ts.map +1 -1
  127. package/dist/streams/index.d.ts +20 -74
  128. package/dist/streams/index.d.ts.map +1 -1
  129. package/dist/streams/libsql-schema.d.ts +77 -0
  130. package/dist/streams/libsql-schema.d.ts.map +1 -0
  131. package/dist/streams/migrations.d.ts +8 -8
  132. package/dist/streams/migrations.d.ts.map +1 -1
  133. package/dist/streams/projections-drizzle.d.ts +175 -0
  134. package/dist/streams/projections-drizzle.d.ts.map +1 -0
  135. package/dist/streams/projections.d.ts +9 -0
  136. package/dist/streams/projections.d.ts.map +1 -1
  137. package/dist/streams/store-drizzle.d.ts +96 -0
  138. package/dist/streams/store-drizzle.d.ts.map +1 -0
  139. package/dist/streams/store.d.ts +23 -0
  140. package/dist/streams/store.d.ts.map +1 -1
  141. package/dist/streams/swarm-mail.d.ts +9 -0
  142. package/dist/streams/swarm-mail.d.ts.map +1 -1
  143. package/dist/test-libsql.d.ts +76 -0
  144. package/dist/test-libsql.d.ts.map +1 -0
  145. package/dist/types/adapter.d.ts +3 -3
  146. package/dist/types/database.d.ts +12 -12
  147. package/dist/types/hive-adapter.d.ts +5 -5
  148. package/package.json +10 -6
  149. package/dist/beads/adapter.d.ts +0 -38
  150. package/dist/beads/adapter.d.ts.map +0 -1
  151. package/dist/beads/blocked-cache.d.ts +0 -21
  152. package/dist/beads/blocked-cache.d.ts.map +0 -1
  153. package/dist/beads/comments.d.ts +0 -21
  154. package/dist/beads/comments.d.ts.map +0 -1
  155. package/dist/beads/dependencies.d.ts +0 -58
  156. package/dist/beads/dependencies.d.ts.map +0 -1
  157. package/dist/beads/events.d.ts +0 -163
  158. package/dist/beads/events.d.ts.map +0 -1
  159. package/dist/beads/flush-manager.d.ts +0 -71
  160. package/dist/beads/flush-manager.d.ts.map +0 -1
  161. package/dist/beads/index.d.ts +0 -25
  162. package/dist/beads/index.d.ts.map +0 -1
  163. package/dist/beads/jsonl.d.ts +0 -103
  164. package/dist/beads/jsonl.d.ts.map +0 -1
  165. package/dist/beads/labels.d.ts +0 -21
  166. package/dist/beads/labels.d.ts.map +0 -1
  167. package/dist/beads/merge.d.ts +0 -99
  168. package/dist/beads/merge.d.ts.map +0 -1
  169. package/dist/beads/migrations.d.ts +0 -41
  170. package/dist/beads/migrations.d.ts.map +0 -1
  171. package/dist/beads/operations.d.ts +0 -56
  172. package/dist/beads/operations.d.ts.map +0 -1
  173. package/dist/beads/projections.d.ts +0 -103
  174. package/dist/beads/projections.d.ts.map +0 -1
  175. package/dist/beads/queries.d.ts +0 -77
  176. package/dist/beads/queries.d.ts.map +0 -1
  177. package/dist/beads/store.d.ts +0 -98
  178. package/dist/beads/store.d.ts.map +0 -1
  179. package/dist/beads/validation.d.ts +0 -75
  180. package/dist/beads/validation.d.ts.map +0 -1
  181. package/dist/daemon.d.ts +0 -161
  182. package/dist/daemon.d.ts.map +0 -1
  183. package/dist/socket-adapter.d.ts +0 -78
  184. package/dist/socket-adapter.d.ts.map +0 -1
  185. package/dist/streams/debug.d.ts +0 -173
  186. package/dist/streams/debug.d.ts.map +0 -1
  187. package/dist/test-server.d.ts +0 -64
  188. package/dist/test-server.d.ts.map +0 -1
  189. package/dist/types/beads-adapter.d.ts +0 -397
  190. package/dist/types/beads-adapter.d.ts.map +0 -1
package/dist/daemon.d.ts DELETED
@@ -1,161 +0,0 @@
1
- /**
2
- * Daemon Lifecycle Management for PGLiteSocketServer
3
- *
4
- * Provides start/stop/health functionality for in-process PGLiteSocketServer.
5
- * Uses module-level state to track active server instance.
6
- *
7
- * ## Usage
8
- * ```typescript
9
- * import { startDaemon, stopDaemon, isDaemonRunning, healthCheck } from 'swarm-mail/daemon';
10
- *
11
- * // Start daemon
12
- * const { pid, port } = await startDaemon({ port: 15433 });
13
- *
14
- * // Check health
15
- * const healthy = await healthCheck({ port: 15433 });
16
- *
17
- * // Stop daemon
18
- * await stopDaemon('/path/to/project');
19
- * ```
20
- */
21
- /**
22
- * Daemon start options
23
- */
24
- export interface DaemonOptions {
25
- /** TCP port to bind (default: 15433) */
26
- port?: number;
27
- /** Host to bind (default: 127.0.0.1) */
28
- host?: string;
29
- /** Unix socket path (alternative to port/host) */
30
- path?: string;
31
- /** Database path (default: project .opencode/streams or ~/.opencode/streams) */
32
- dbPath?: string;
33
- /** Project path for PID file location (default: global ~/.opencode) */
34
- projectPath?: string;
35
- }
36
- /**
37
- * Daemon info returned by startDaemon
38
- */
39
- export interface DaemonInfo {
40
- /** Process ID */
41
- pid: number;
42
- /** TCP port (if using TCP) */
43
- port?: number;
44
- /** Unix socket path (if using socket) */
45
- socketPath?: string;
46
- }
47
- /**
48
- * Get PID file path for a project
49
- *
50
- * Stores PID file in $TMPDIR alongside the streams database.
51
- * Path format: `$TMPDIR/opencode-<project-name>-<hash>/pglite-server.pid`
52
- * Falls back to global `$TMPDIR/opencode-global/pglite-server.pid`
53
- *
54
- * @param projectPath - Optional project root path
55
- * @returns Absolute path to PID file
56
- */
57
- export declare function getPidFilePath(projectPath?: string): string;
58
- /**
59
- * Read PID from PID file
60
- *
61
- * @param projectPath - Optional project root path
62
- * @returns Process ID, or null if file doesn't exist or is invalid
63
- */
64
- export declare function readPidFile(projectPath?: string): Promise<number | null>;
65
- /**
66
- * Clean up stale PID file
67
- *
68
- * Removes PID file if it points to a dead process or doesn't exist.
69
- * Used for self-healing when daemon startup fails due to stale state.
70
- *
71
- * @param projectPath - Optional project root path
72
- *
73
- * @example
74
- * ```typescript
75
- * // Clean up before starting daemon
76
- * await cleanupPidFile('/path/to/project');
77
- * await startDaemon({ port: 15433, projectPath: '/path/to/project' });
78
- * ```
79
- */
80
- export declare function cleanupPidFile(projectPath?: string): Promise<void>;
81
- /**
82
- * Check if daemon is running
83
- *
84
- * Checks both PID file existence and process liveness.
85
- *
86
- * @param projectPath - Optional project root path
87
- * @returns true if daemon is running
88
- *
89
- * @example
90
- * ```typescript
91
- * if (!await isDaemonRunning()) {
92
- * await startDaemon();
93
- * }
94
- * ```
95
- */
96
- export declare function isDaemonRunning(projectPath?: string): Promise<boolean>;
97
- /**
98
- * Health check - verify daemon is responding
99
- *
100
- * Connects to the daemon and runs SELECT 1 query.
101
- * Times out after 5 seconds.
102
- *
103
- * @param options - Connection options (port/host or path)
104
- * @returns true if daemon is healthy
105
- *
106
- * @example
107
- * ```typescript
108
- * const healthy = await healthCheck({ port: 5433 });
109
- * if (!healthy) {
110
- * console.error('Daemon not responding');
111
- * }
112
- * ```
113
- */
114
- export declare function healthCheck(options: Pick<DaemonOptions, "port" | "host" | "path">): Promise<boolean>;
115
- /**
116
- * Start PGLiteSocketServer daemon in-process
117
- *
118
- * Creates PGlite instance and starts PGLiteSocketServer.
119
- * Writes PID file and waits for server to be ready via health check.
120
- *
121
- * If daemon is already running, returns existing daemon info.
122
- *
123
- * @param options - Daemon configuration
124
- * @returns Daemon info (PID and connection details)
125
- * @throws Error if daemon fails to start
126
- *
127
- * @example
128
- * ```typescript
129
- * // Start with TCP port
130
- * const { pid, port } = await startDaemon({ port: 15433 });
131
- *
132
- * // Start with Unix socket
133
- * const { pid, socketPath } = await startDaemon({
134
- * path: '/tmp/swarm-mail-pglite.sock'
135
- * });
136
- *
137
- * // Start with custom database path
138
- * const { pid, port } = await startDaemon({
139
- * port: 15433,
140
- * dbPath: '/custom/path/to/db'
141
- * });
142
- * ```
143
- */
144
- export declare function startDaemon(options?: DaemonOptions): Promise<DaemonInfo>;
145
- /**
146
- * Stop PGLiteSocketServer daemon
147
- *
148
- * Performs graceful shutdown: CHECKPOINT → server.stop() → db.close()
149
- * Cleans up PID file and module-level state.
150
- *
151
- * If daemon is not running, this is a no-op (not an error).
152
- *
153
- * @param projectPath - Optional project root path
154
- *
155
- * @example
156
- * ```typescript
157
- * await stopDaemon('/path/to/project');
158
- * ```
159
- */
160
- export declare function stopDaemon(projectPath?: string): Promise<void>;
161
- //# sourceMappingURL=daemon.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAoCH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB3D;AA4BD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAe9E;AA2BD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxE;AA2BD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAM5E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,GACrD,OAAO,CAAC,OAAO,CAAC,CA2BlB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,WAAW,CAC/B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAsFrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDpE"}
@@ -1,78 +0,0 @@
1
- /**
2
- * Socket Adapter - postgres.js wrapper for DatabaseAdapter interface
3
- *
4
- * Wraps postgres.js client to match DatabaseAdapter interface, supporting both
5
- * TCP (host/port) and Unix socket (path) connections.
6
- *
7
- * ## Usage
8
- * ```typescript
9
- * // TCP connection
10
- * const sql = postgres({ host: '127.0.0.1', port: 5432 });
11
- * const db = wrapPostgres(sql);
12
- *
13
- * // Unix socket connection
14
- * const sql = postgres({ path: '/tmp/pglite.sock' });
15
- * const db = wrapPostgres(sql);
16
- *
17
- * // Factory function
18
- * const db = await createSocketAdapter({ path: '/tmp/pglite.sock' });
19
- * ```
20
- */
21
- import postgres from "postgres";
22
- import type { DatabaseAdapter } from "./types";
23
- /**
24
- * Options for socket adapter creation
25
- */
26
- export interface SocketAdapterOptions {
27
- /** Unix socket path */
28
- path?: string;
29
- /** TCP host */
30
- host?: string;
31
- /** TCP port */
32
- port?: number;
33
- /** Connection timeout in seconds */
34
- timeout?: number;
35
- /** Maximum number of connections */
36
- max?: number;
37
- }
38
- /**
39
- * Wrap postgres.js client to match DatabaseAdapter interface
40
- *
41
- * postgres.js uses tagged template literals for queries, but DatabaseAdapter
42
- * uses (sql, params) signature. This adapter bridges the difference.
43
- *
44
- * @param sql - postgres.js client instance
45
- * @returns DatabaseAdapter compatible wrapper
46
- *
47
- * @example
48
- * ```typescript
49
- * const sql = postgres({ path: '/tmp/pglite.sock' });
50
- * const db = wrapPostgres(sql);
51
- * const result = await db.query<{ id: number }>(
52
- * "SELECT id FROM agents WHERE name = $1",
53
- * ["BlueLake"]
54
- * );
55
- * ```
56
- */
57
- export declare function wrapPostgres(sql: postgres.Sql<Record<string, unknown>>): DatabaseAdapter;
58
- /**
59
- * Create socket adapter with connection validation
60
- *
61
- * Factory function that creates postgres.js client and wraps it.
62
- * Validates connection before returning adapter.
63
- *
64
- * @param options - Socket connection options (path OR host/port)
65
- * @returns DatabaseAdapter instance
66
- * @throws Error if connection fails or invalid options
67
- *
68
- * @example
69
- * ```typescript
70
- * // Unix socket
71
- * const db = await createSocketAdapter({ path: '/tmp/pglite.sock' });
72
- *
73
- * // TCP connection
74
- * const db = await createSocketAdapter({ host: '127.0.0.1', port: 5432 });
75
- * ```
76
- */
77
- export declare function createSocketAdapter(options: SocketAdapterOptions): Promise<DatabaseAdapter>;
78
- //# sourceMappingURL=socket-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"socket-adapter.d.ts","sourceRoot":"","sources":["../src/socket-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,SAAS,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAC3B,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACxC,eAAe,CA8BjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,eAAe,CAAC,CAuC1B"}
@@ -1,173 +0,0 @@
1
- import type { AgentEvent } from "./events";
2
- export interface DebugEventsOptions {
3
- projectPath: string;
4
- types?: AgentEvent["type"][];
5
- agentName?: string;
6
- limit?: number;
7
- since?: number;
8
- until?: number;
9
- }
10
- export interface DebugEventResult {
11
- id: number;
12
- sequence: number;
13
- type: AgentEvent["type"];
14
- timestamp: number;
15
- timestamp_human: string;
16
- agent_name?: string;
17
- from_agent?: string;
18
- to_agents?: string[];
19
- [key: string]: unknown;
20
- }
21
- export interface DebugEventsResult {
22
- events: DebugEventResult[];
23
- total: number;
24
- }
25
- export interface DebugAgentOptions {
26
- projectPath: string;
27
- agentName: string;
28
- includeEvents?: boolean;
29
- }
30
- export interface DebugAgentResult {
31
- agent: {
32
- name: string;
33
- program: string;
34
- model: string;
35
- task_description: string | null;
36
- registered_at: number;
37
- last_active_at: number;
38
- } | null;
39
- stats: {
40
- messagesSent: number;
41
- messagesReceived: number;
42
- };
43
- reservations: Array<{
44
- id: number;
45
- path: string;
46
- reason: string | null;
47
- expires_at: number;
48
- }>;
49
- recentEvents?: DebugEventResult[];
50
- }
51
- export interface DebugMessageOptions {
52
- projectPath: string;
53
- messageId: number;
54
- includeEvents?: boolean;
55
- }
56
- export interface DebugMessageResult {
57
- message: {
58
- id: number;
59
- from_agent: string;
60
- subject: string;
61
- body: string;
62
- thread_id: string | null;
63
- importance: string;
64
- created_at: number;
65
- } | null;
66
- recipients: Array<{
67
- agent_name: string;
68
- read_at: number | null;
69
- acked_at: number | null;
70
- }>;
71
- events?: DebugEventResult[];
72
- }
73
- export interface DebugReservationsOptions {
74
- projectPath: string;
75
- checkConflicts?: boolean;
76
- }
77
- export interface DebugReservationsResult {
78
- reservations: Array<{
79
- id: number;
80
- agent_name: string;
81
- path_pattern: string;
82
- reason: string | null;
83
- expires_at: number;
84
- expires_in_human: string;
85
- }>;
86
- byAgent: Record<string, Array<{
87
- path: string;
88
- expires_at: number;
89
- }>>;
90
- conflicts?: Array<{
91
- path1: string;
92
- agent1: string;
93
- path2: string;
94
- agent2: string;
95
- }>;
96
- }
97
- export interface TimelineEntry {
98
- time: string;
99
- type: AgentEvent["type"];
100
- summary: string;
101
- agent: string;
102
- sequence: number;
103
- }
104
- export interface TimelineResult {
105
- timeline: TimelineEntry[];
106
- }
107
- export interface InspectStateOptions {
108
- projectPath: string;
109
- format?: "object" | "json";
110
- }
111
- export interface InspectStateResult {
112
- agents: Array<{
113
- name: string;
114
- program: string;
115
- model: string;
116
- task_description: string | null;
117
- }>;
118
- messages: Array<{
119
- id: number;
120
- from_agent: string;
121
- subject: string;
122
- thread_id: string | null;
123
- }>;
124
- reservations: Array<{
125
- id: number;
126
- agent_name: string;
127
- path_pattern: string;
128
- }>;
129
- eventCount: number;
130
- latestSequence: number;
131
- stats: {
132
- events: number;
133
- agents: number;
134
- messages: number;
135
- reservations: number;
136
- };
137
- json?: string;
138
- }
139
- /**
140
- * Get recent events with filtering
141
- *
142
- * For large event logs (>100k events), consider using batchSize option
143
- * to paginate through results instead of loading all events.
144
- */
145
- export declare function debugEvents(options: DebugEventsOptions & {
146
- batchSize?: number;
147
- }): Promise<DebugEventsResult>;
148
- /**
149
- * Get detailed agent information
150
- */
151
- export declare function debugAgent(options: DebugAgentOptions): Promise<DebugAgentResult>;
152
- /**
153
- * Get detailed message information with audit trail
154
- */
155
- export declare function debugMessage(options: DebugMessageOptions): Promise<DebugMessageResult>;
156
- /**
157
- * Get current reservation state
158
- */
159
- export declare function debugReservations(options: DebugReservationsOptions): Promise<DebugReservationsResult>;
160
- /**
161
- * Get event timeline for visualization
162
- */
163
- export declare function getEventTimeline(options: {
164
- projectPath: string;
165
- since?: number;
166
- until?: number;
167
- limit?: number;
168
- }): Promise<TimelineResult>;
169
- /**
170
- * Get complete state snapshot for debugging
171
- */
172
- export declare function inspectState(options: InspectStateOptions): Promise<InspectStateResult>;
173
- //# sourceMappingURL=debug.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/streams/debug.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- /**
2
- * Shared Test Database
3
- *
4
- * Provides a single shared PGlite instance for the entire test suite.
5
- * Dramatically speeds up tests by avoiding WASM initialization per test.
6
- *
7
- * ## Performance Impact
8
- * - Before: 50+ tests × 500ms init = 25+ seconds just for PGlite startup
9
- * - After: 1 init (~500ms) + TRUNCATE between tests (~10ms each)
10
- * - Expected: ~20x speedup
11
- *
12
- * ## Usage
13
- * ```typescript
14
- * import { startTestServer, resetTestDatabase, getTestDb } from './test-server';
15
- *
16
- * beforeAll(async () => {
17
- * await startTestServer();
18
- * });
19
- *
20
- * beforeEach(async () => {
21
- * await resetTestDatabase();
22
- * });
23
- *
24
- * afterAll(async () => {
25
- * await stopTestServer();
26
- * });
27
- *
28
- * test("my test", async () => {
29
- * const db = getTestDb();
30
- * await db.query("SELECT 1");
31
- * });
32
- * ```
33
- */
34
- import { PGlite } from "@electric-sql/pglite";
35
- /**
36
- * Start the shared test database.
37
- * Safe to call multiple times - returns existing database if already initialized.
38
- *
39
- * @returns PGlite instance
40
- */
41
- export declare function startTestServer(): Promise<{
42
- db: PGlite;
43
- }>;
44
- /**
45
- * Stop the test database.
46
- * Safe to call multiple times.
47
- */
48
- export declare function stopTestServer(): Promise<void>;
49
- /**
50
- * Reset test database by truncating all tables.
51
- * Much faster than recreating the entire database.
52
- *
53
- * @throws If test server not started
54
- */
55
- export declare function resetTestDatabase(): Promise<void>;
56
- /**
57
- * Get the PGlite instance for direct access.
58
- * Useful for tests that need raw database access.
59
- *
60
- * @returns PGlite instance
61
- * @throws If test server not started
62
- */
63
- export declare function getTestDb(): PGlite;
64
- //# sourceMappingURL=test-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-server.d.ts","sourceRoot":"","sources":["../src/test-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAS9C;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAY/D;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAOpD;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBvD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAKlC"}