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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../../src/db/schema/streams.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBvB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBvB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBzB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAalC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB7B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAatB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAexB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB3B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe7B,CAAC"}
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env bun
2
+ /**
3
+ * Demo script for debug logging.
4
+ *
5
+ * Run with different DEBUG settings:
6
+ * - DEBUG=swarm:* bun src/debug-demo.ts (all logs)
7
+ * - DEBUG=swarm:events bun src/debug-demo.ts (only events)
8
+ * - DEBUG=swarm:events,swarm:messages bun src/debug-demo.ts (multiple)
9
+ * - bun src/debug-demo.ts (no logs)
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=debug-demo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-demo.d.ts","sourceRoot":"","sources":["../src/debug-demo.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
@@ -0,0 +1,19 @@
1
+ import debug from "debug";
2
+ /**
3
+ * Debug logging for swarm coordination subsystems.
4
+ * Enable with DEBUG environment variable:
5
+ *
6
+ * - DEBUG=swarm:* - Enable all subsystems
7
+ * - DEBUG=swarm:events - Enable only events
8
+ * - DEBUG=swarm:events,swarm:messages - Enable multiple subsystems
9
+ *
10
+ * For human developers debugging swarms. AI agents should use structured errors + state dumps instead.
11
+ * Console output goes to AI context and causes bloat.
12
+ */
13
+ export declare const log: {
14
+ events: debug.Debugger;
15
+ reservations: debug.Debugger;
16
+ messages: debug.Debugger;
17
+ checkpoints: debug.Debugger;
18
+ };
19
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;GAUG;AACH,eAAO,MAAM,GAAG;;;;;CAKf,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Context information attached to swarm errors for debugging and observability.
3
+ */
4
+ export interface ErrorContext {
5
+ /** Agent name (e.g., "WiseStone") */
6
+ agent?: string;
7
+ /** Cell/bead ID (e.g., "bd-123") */
8
+ bead_id?: string;
9
+ /** Epic ID (e.g., "bd-100") */
10
+ epic_id?: string;
11
+ /** Unix timestamp in milliseconds */
12
+ timestamp: number;
13
+ /** Event sequence number */
14
+ sequence?: number;
15
+ /** Human-readable reason for error */
16
+ reason?: string;
17
+ /** Current holder info for reservation errors */
18
+ current_holder?: {
19
+ agent: string;
20
+ expires_at: number;
21
+ reason: string;
22
+ };
23
+ /** Last 5 events from event log for debugging */
24
+ recent_events?: Array<{
25
+ type: string;
26
+ timestamp: number;
27
+ data: unknown;
28
+ }>;
29
+ /** Actionable suggestions for resolving the error */
30
+ suggestions: string[];
31
+ }
32
+ /**
33
+ * Base class for all swarm-related errors with rich context.
34
+ * Provides structured error information for observability and debugging.
35
+ */
36
+ export declare class BaseSwarmError extends Error {
37
+ readonly context: ErrorContext;
38
+ constructor(message: string, context?: Partial<ErrorContext>);
39
+ /**
40
+ * Serialize error to JSON for logging and transmission.
41
+ */
42
+ toJSON(): {
43
+ name: string;
44
+ message: string;
45
+ context: ErrorContext;
46
+ stack: string | undefined;
47
+ };
48
+ }
49
+ //# sourceMappingURL=base-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-error.d.ts","sourceRoot":"","sources":["../../src/errors/base-error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,cAAc,CAAC,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;IACF,iDAAiD;IACjD,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1E,qDAAqD;IACrD,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACxC,SAAgB,OAAO,EAAE,YAAY,CAAC;gBAE1B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAkB5D;;OAEG;IACH,MAAM;;;;;;CAQN"}
@@ -0,0 +1,10 @@
1
+ import type { ErrorContext } from "./base-error";
2
+ import { BaseSwarmError } from "./base-error";
3
+ /**
4
+ * Error thrown when checkpoint operations fail.
5
+ * Includes sequence number and recent events for debugging.
6
+ */
7
+ export declare class CheckpointError extends BaseSwarmError {
8
+ constructor(message: string, context?: Partial<ErrorContext>);
9
+ }
10
+ //# sourceMappingURL=checkpoint-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint-error.d.ts","sourceRoot":"","sources":["../../src/errors/checkpoint-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,cAAc;gBACtC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;CAI5D"}
@@ -0,0 +1,10 @@
1
+ import type { ErrorContext } from "./base-error";
2
+ import { BaseSwarmError } from "./base-error";
3
+ /**
4
+ * Error thrown when task decomposition fails (e.g., file conflicts, invalid strategy).
5
+ * Includes epic context and suggestions for resolving decomposition issues.
6
+ */
7
+ export declare class DecompositionError extends BaseSwarmError {
8
+ constructor(message: string, context?: Partial<ErrorContext>);
9
+ }
10
+ //# sourceMappingURL=decomposition-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decomposition-error.d.ts","sourceRoot":"","sources":["../../src/errors/decomposition-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;gBACzC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;CAI5D"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Structured error classes with rich context for swarm observability.
3
+ *
4
+ * All errors include:
5
+ * - Agent name (if available)
6
+ * - Cell/bead ID and epic ID (for correlation)
7
+ * - Timestamp and sequence number
8
+ * - Recent events from event log (last 5)
9
+ * - Actionable suggestions for resolution
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { ReservationError } from './errors';
14
+ *
15
+ * throw new ReservationError("File already reserved", {
16
+ * agent: "WiseStone",
17
+ * bead_id: "bd-123",
18
+ * current_holder: {
19
+ * agent: "OtherAgent",
20
+ * expires_at: Date.now() + 3600000,
21
+ * reason: "Working on bd-456"
22
+ * },
23
+ * suggestions: ["Wait for expiry", "Request access via swarm mail"]
24
+ * });
25
+ *
26
+ * // Error can be serialized for logging
27
+ * const json = error.toJSON();
28
+ * console.log(JSON.stringify(json, null, 2));
29
+ * ```
30
+ */
31
+ export type { ErrorContext } from "./base-error";
32
+ export { BaseSwarmError } from "./base-error";
33
+ export { CheckpointError } from "./checkpoint-error";
34
+ export { DecompositionError } from "./decomposition-error";
35
+ export { ReservationError } from "./reservation-error";
36
+ export { ValidationError } from "./validation-error";
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ErrorContext } from "./base-error";
2
+ import { BaseSwarmError } from "./base-error";
3
+ /**
4
+ * Error thrown when file reservation conflicts occur.
5
+ * Includes information about current holder for coordination.
6
+ */
7
+ export declare class ReservationError extends BaseSwarmError {
8
+ constructor(message: string, context?: Partial<ErrorContext>);
9
+ }
10
+ //# sourceMappingURL=reservation-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reservation-error.d.ts","sourceRoot":"","sources":["../../src/errors/reservation-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;gBACvC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;CAI5D"}
@@ -0,0 +1,10 @@
1
+ import type { ErrorContext } from "./base-error";
2
+ import { BaseSwarmError } from "./base-error";
3
+ /**
4
+ * Error thrown when validation fails (e.g., invalid epic structure, bad input).
5
+ * Includes suggestions for fixing validation issues.
6
+ */
7
+ export declare class ValidationError extends BaseSwarmError {
8
+ constructor(message: string, context?: Partial<ErrorContext>);
9
+ }
10
+ //# sourceMappingURL=validation-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-error.d.ts","sourceRoot":"","sources":["../../src/errors/validation-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,cAAc;gBACtC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;CAI5D"}
@@ -13,16 +13,16 @@
13
13
  *
14
14
  * ## Usage
15
15
  * ```typescript
16
- * import { wrapPGlite } from '@opencode/swarm-mail/pglite';
17
- * import { createHiveAdapter } from '@opencode/swarm-mail/beads';
16
+ * import { createInMemorySwarmMailLibSQL } from 'swarm-mail';
17
+ * import { createHiveAdapter } from 'swarm-mail';
18
18
  *
19
- * const pglite = new PGlite('./streams.db');
20
- * const db = wrapPGlite(pglite);
21
- * const beads = createHiveAdapter(db, '/path/to/project');
19
+ * const swarmMail = await createInMemorySwarmMailLibSQL('my-project');
20
+ * const db = await swarmMail.getDatabase();
21
+ * const hive = createHiveAdapter(db, '/path/to/project');
22
22
  *
23
23
  * // Use the adapter
24
- * await beads.createCell(projectKey, { title: "Task", type: "task", priority: 2 });
25
- * const bead = await beads.getCell(projectKey, "bd-123");
24
+ * await hive.createCell(projectKey, { title: "Task", type: "task", priority: 2 });
25
+ * const cell = await hive.getCell(projectKey, "cell-123");
26
26
  * ```
27
27
  */
28
28
  import type { DatabaseAdapter } from "../types/database.js";
@@ -30,7 +30,7 @@ import type { HiveAdapter } from "../types/hive-adapter.js";
30
30
  /**
31
31
  * Create a HiveAdapter instance
32
32
  *
33
- * @param db - DatabaseAdapter instance (PGLite, SQLite, PostgreSQL, etc.)
33
+ * @param db - DatabaseAdapter instance (libSQL, SQLite, etc.)
34
34
  * @param projectKey - Project identifier (typically the project path)
35
35
  * @returns HiveAdapter interface
36
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/hive/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AA+B5D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,eAAe,EACnB,UAAU,EAAE,MAAM,GACjB,WAAW,CAmjBb"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/hive/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AA+B5D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,eAAe,EACnB,UAAU,EAAE,MAAM,GACjB,WAAW,CAqlBb"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Dependency Graph Operations - Drizzle Implementation
3
+ *
4
+ * Drizzle-based operations for blocked cache management.
5
+ * Only handles write operations - complex graph queries stay in dependencies.ts
6
+ *
7
+ * @module hive/dependencies-drizzle
8
+ */
9
+ import type { SwarmDb } from "../db/client.js";
10
+ /**
11
+ * Get all open blockers for a bead (including transitive)
12
+ *
13
+ * Uses raw SQL because recursive CTEs are complex in Drizzle.
14
+ * Returns bead IDs of all beads blocking this one that aren't closed.
15
+ * Only considers "blocks" relationship type.
16
+ */
17
+ export declare function getOpenBlockersDrizzle(db: SwarmDb, projectKey: string, cellId: string): Promise<string[]>;
18
+ /**
19
+ * Rebuild blocked cache for a specific bead using Drizzle
20
+ *
21
+ * Finds all open blockers and updates the cache.
22
+ * If no open blockers, removes from cache (bead is unblocked).
23
+ */
24
+ export declare function rebuildBeadBlockedCacheDrizzle(db: SwarmDb, projectKey: string, cellId: string): Promise<void>;
25
+ /**
26
+ * Invalidate blocked cache when dependencies change using Drizzle
27
+ *
28
+ * Rebuilds cache for the cell and all its dependents.
29
+ */
30
+ export declare function invalidateBlockedCacheDrizzle(db: SwarmDb, projectKey: string, cellId: string): Promise<void>;
31
+ //# sourceMappingURL=dependencies-drizzle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies-drizzle.d.ts","sourceRoot":"","sources":["../../src/hive/dependencies-drizzle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK/C;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBnB;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/hive/dependencies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,eAAe,EACnB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CA6BlB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,eAAe,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CAwBnB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,eAAe,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,eAAe,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,eAAe,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAYf"}
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/hive/dependencies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,eAAe,EACnB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CA4BlB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,eAAe,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CAwBnB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,eAAe,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,eAAe,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,eAAe,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -58,7 +58,8 @@ export declare class FlushManager {
58
58
  /**
59
59
  * Force immediate flush
60
60
  *
61
- * Exports all dirty beads to the output file.
61
+ * Exports all dirty beads to the output file, merging with existing content.
62
+ * Dirty cells overwrite existing cells with the same ID.
62
63
  */
63
64
  flush(): Promise<FlushResult>;
64
65
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"flush-manager.d.ts","sourceRoot":"","sources":["../../src/hive/flush-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI5D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAgC;IAChD,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,mBAAmB;IAQxC;;;;OAIG;IACH,aAAa,IAAI,IAAI;IAcrB;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IA8DnC;;;;OAIG;IACH,IAAI,IAAI,IAAI;CAMb"}
1
+ {"version":3,"file":"flush-manager.d.ts","sourceRoot":"","sources":["../../src/hive/flush-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI5D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAgC;IAChD,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,mBAAmB;IAQxC;;;;OAIG;IACH,aAAa,IAAI,IAAI;IAcrB;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAuFnC;;;;OAIG;IACH,IAAI,IAAI,IAAI;CAMb"}
@@ -1 +1 @@
1
- {"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../src/hive/jsonl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAa5D;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAyBtD;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAI3D;AAMD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA4EjB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAa/C;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAqBvB"}
1
+ {"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../src/hive/jsonl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAa5D;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAyBtD;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAI3D;AAMD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA8EjB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAa/C;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAqBvB"}
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * Beads Schema Migration (v7-v8)
3
3
  *
4
- * Adds beads-specific tables to the shared PGLite database.
4
+ * Adds beads-specific tables to the shared libSQL database.
5
5
  * This migration extends the existing swarm-mail schema.
6
6
  *
7
7
  * ## Migration Strategy
8
8
  * - Migration v7 adds beads tables to existing swarm-mail schema (v0-v6)
9
9
  * - Migration v8 adds cells view for beads→hive rename compatibility
10
- * - Shares same PGLite database instance and migration system
10
+ * - Shares same libSQL database instance and migration system
11
11
  * - Uses same schema_version table for tracking
12
12
  *
13
13
  * ## Tables Created
@@ -44,12 +44,32 @@ export declare const beadsMigration: Migration;
44
44
  * The view is updatable via INSTEAD OF triggers for INSERT/UPDATE/DELETE.
45
45
  */
46
46
  export declare const cellsViewMigration: Migration;
47
+ /**
48
+ * LibSQL-compatible cells view migration (v8)
49
+ *
50
+ * SQLite doesn't support CREATE OR REPLACE or stored procedures.
51
+ * Use DROP IF EXISTS + CREATE and inline INSTEAD OF triggers.
52
+ */
53
+ export declare const cellsViewMigrationLibSQL: Migration;
54
+ /**
55
+ * LibSQL-compatible beads migration (v7)
56
+ *
57
+ * Differences from PGLite version:
58
+ * - Uses INTEGER PRIMARY KEY AUTOINCREMENT instead of SERIAL
59
+ * - Uses TEXT (JSON string) instead of TEXT[] for arrays
60
+ * - Uses INTEGER instead of BIGINT (SQLite treats both as INTEGER anyway)
61
+ */
62
+ export declare const beadsMigrationLibSQL: Migration;
47
63
  /**
48
64
  * Export individual migrations
49
65
  */
50
66
  export declare const beadsMigrations: Migration[];
51
67
  /**
52
- * All hive migrations in order
68
+ * All hive migrations in order (PGLite version)
53
69
  */
54
70
  export declare const hiveMigrations: Migration[];
71
+ /**
72
+ * All hive migrations in order (LibSQL version)
73
+ */
74
+ export declare const hiveMigrationsLibSQL: Migration[];
55
75
  //# sourceMappingURL=migrations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/hive/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,SAoH5B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAiFhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,EAAqB,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,EAAyC,CAAC"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/hive/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,SAoH5B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAiFhC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAiEtC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAqHlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,EAAqB,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,EAAyC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,EAAqD,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Hive Projections Layer - Drizzle Implementation
3
+ *
4
+ * Drizzle-based write operations for materialized views.
5
+ * These are the write-side of CQRS - updating denormalized data from events.
6
+ *
7
+ * Key operations:
8
+ * - Event handlers for cell lifecycle (created, updated, closed, etc.)
9
+ * - Dependency management (add/remove)
10
+ * - Label and comment operations
11
+ * - Dirty tracking for JSONL export
12
+ *
13
+ * @module hive/projections-drizzle
14
+ */
15
+ import type { SwarmDb } from "../db/client.js";
16
+ type CellEvent = {
17
+ type: string;
18
+ project_key: string;
19
+ cell_id: string;
20
+ timestamp: number;
21
+ [key: string]: unknown;
22
+ };
23
+ /**
24
+ * Update projections based on an event using Drizzle
25
+ *
26
+ * This is called by the event store after appending an event.
27
+ * Routes to specific handlers based on event type.
28
+ */
29
+ export declare function updateProjectionsDrizzle(db: SwarmDb, event: CellEvent): Promise<void>;
30
+ /**
31
+ * Mark bead as dirty for JSONL export using Drizzle
32
+ */
33
+ export declare function markBeadDirtyDrizzle(db: SwarmDb, projectKey: string, cellId: string): Promise<void>;
34
+ /**
35
+ * Clear dirty flag after export using Drizzle
36
+ */
37
+ export declare function clearDirtyBeadDrizzle(db: SwarmDb, projectKey: string, cellId: string): Promise<void>;
38
+ /**
39
+ * Clear all dirty flags using Drizzle
40
+ */
41
+ export declare function clearAllDirtyBeadsDrizzle(db: SwarmDb, projectKey: string): Promise<void>;
42
+ export {};
43
+ //# sourceMappingURL=projections-drizzle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projections-drizzle.d.ts","sourceRoot":"","sources":["../../src/hive/projections-drizzle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAa/C,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAMF;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CA2Df;AAuTD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAcf"}
@@ -34,6 +34,8 @@ type CellEvent = {
34
34
  *
35
35
  * This is called by the event store after appending an event.
36
36
  * Routes to specific handlers based on event type.
37
+ *
38
+ * Uses Drizzle for write operations.
37
39
  */
38
40
  export declare function updateProjections(db: DatabaseAdapter, event: CellEvent): Promise<void>;
39
41
  /**
@@ -85,6 +87,8 @@ export declare function getBlockedCells(db: DatabaseAdapter, projectKey: string)
85
87
  }>>;
86
88
  /**
87
89
  * Mark bead as dirty for JSONL export
90
+ *
91
+ * Uses Drizzle for write operations.
88
92
  */
89
93
  export declare function markBeadDirty(db: DatabaseAdapter, projectKey: string, cellId: string): Promise<void>;
90
94
  /**
@@ -93,10 +97,14 @@ export declare function markBeadDirty(db: DatabaseAdapter, projectKey: string, c
93
97
  export declare function getDirtyCells(db: DatabaseAdapter, projectKey: string): Promise<string[]>;
94
98
  /**
95
99
  * Clear dirty flag after export
100
+ *
101
+ * Uses Drizzle for write operations.
96
102
  */
97
103
  export declare function clearDirtyBead(db: DatabaseAdapter, projectKey: string, cellId: string): Promise<void>;
98
104
  /**
99
105
  * Clear all dirty flags
106
+ *
107
+ * Uses Drizzle for write operations.
100
108
  */
101
109
  export declare function clearAllDirtyBeads(db: DatabaseAdapter, projectKey: string): Promise<void>;
102
110
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"projections.d.ts","sourceRoot":"","sources":["../../src/hive/projections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projections.d.ts","sourceRoot":"","sources":["../../src/hive/projections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Drizzle ORM implementations for hive query functions
3
+ *
4
+ * This file contains Drizzle-based implementations of simple queries from queries.ts.
5
+ * Complex queries with CTEs, cache table joins, and JSON operators remain as raw SQL.
6
+ *
7
+ * @module hive/queries-drizzle
8
+ */
9
+ import type { Cell, HiveAdapter } from "../types/hive-adapter.js";
10
+ import type { StaleOptions } from "./queries.js";
11
+ /**
12
+ * Resolve partial cell ID hash to full cell ID (Drizzle implementation)
13
+ *
14
+ * Cell ID format: {prefix}-{hash}-{timestamp}{random}
15
+ * This function matches the hash portion (middle segment) and returns the full ID.
16
+ *
17
+ * CONVERTED TO DRIZZLE: Simple SELECT with LIKE pattern, no joins
18
+ *
19
+ * @param adapter - HiveAdapter instance
20
+ * @param projectKey - Project key to filter cells
21
+ * @param partialHash - Full or partial hash to match
22
+ * @returns Full cell ID if found, null if not found
23
+ * @throws Error if multiple cells match (ambiguous)
24
+ */
25
+ export declare function resolvePartialIdDrizzle(adapter: HiveAdapter, projectKey: string, partialHash: string): Promise<string | null>;
26
+ /**
27
+ * Get stale issues (not updated in N days) - Drizzle implementation
28
+ *
29
+ * CONVERTED TO DRIZZLE: Simple SELECT with WHERE, ORDER BY, LIMIT
30
+ * No complex joins or CTEs
31
+ */
32
+ export declare function getStaleIssuesDrizzle(adapter: HiveAdapter, projectKey: string, days: number, options?: StaleOptions): Promise<Cell[]>;
33
+ /**
34
+ * Get counts by type (Drizzle implementation)
35
+ *
36
+ * CONVERTED TO DRIZZLE: Simple GROUP BY query
37
+ * Used as part of getStatistics
38
+ */
39
+ export declare function getCountsByTypeDrizzle(adapter: HiveAdapter, projectKey: string): Promise<Record<string, number>>;
40
+ /**
41
+ * Get basic status counts (Drizzle implementation)
42
+ *
43
+ * CONVERTED TO DRIZZLE: Simple aggregation with CASE
44
+ * Used as part of getStatistics
45
+ */
46
+ export declare function getStatusCountsDrizzle(adapter: HiveAdapter, projectKey: string): Promise<{
47
+ total: number;
48
+ open: number;
49
+ in_progress: number;
50
+ closed: number;
51
+ }>;
52
+ //# sourceMappingURL=queries-drizzle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries-drizzle.d.ts","sourceRoot":"","sources":["../../src/hive/queries-drizzle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAuBjD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6BxB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,EAAE,CAAC,CAiCjB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAuBjC;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CA0BD"}
@@ -11,6 +11,14 @@
11
11
  *
12
12
  * Based on steveyegge/beads query patterns.
13
13
  *
14
+ * ## Drizzle Migration Status
15
+ * - ✅ resolvePartialId - Drizzle (simple LIKE query)
16
+ * - ✅ getStaleIssues - Drizzle (simple WHERE + ORDER BY)
17
+ * - ✅ getStatistics (partial) - Drizzle for counts, raw SQL for cache queries
18
+ * - ❌ getReadyWork - Raw SQL (complex cache EXISTS, dynamic WHERE, CASE sorting)
19
+ * - ❌ getBlockedIssues - Raw SQL (cache JOIN + JSON parsing)
20
+ * - ❌ getEpicsEligibleForClosure - Raw SQL (complex JOIN + GROUP BY + HAVING)
21
+ *
14
22
  * @module beads/queries
15
23
  */
16
24
  import type { Cell, CellStatus, HiveAdapter } from "../types/hive-adapter.js";
@@ -57,22 +65,50 @@ export interface Statistics {
57
65
  *
58
66
  * By default returns both 'open' and 'in_progress' beads so epics/tasks
59
67
  * ready to close are visible (matching steveyegge/beads behavior).
68
+ *
69
+ * ❌ KEPT AS RAW SQL: Complex query requirements
70
+ * - Uses blocked_beads_cache table with EXISTS subquery
71
+ * - Dynamic WHERE clause building based on options
72
+ * - Hybrid sort policy with complex CASE expressions
73
+ * - Label filtering with multiple EXISTS subqueries
74
+ *
75
+ * Drizzle CAN do this, but readability/maintainability favors raw SQL here.
60
76
  */
61
77
  export declare function getReadyWork(adapter: HiveAdapter, projectKey: string, options?: ReadyWorkOptions): Promise<Cell[]>;
62
78
  /**
63
79
  * Get all blocked beads with their blockers
80
+ *
81
+ * ❌ KEPT AS RAW SQL: Requires cache table JOIN and JSON parsing
82
+ * - JOINs with blocked_beads_cache materialized view
83
+ * - Parses blocker_ids JSON column (SQLite doesn't have native arrays)
84
+ *
85
+ * Drizzle doesn't have great JSON column support for SQLite.
64
86
  */
65
87
  export declare function getBlockedIssues(adapter: HiveAdapter, projectKey: string): Promise<BlockedCell[]>;
66
88
  /**
67
89
  * Get epics eligible for closure (all children closed)
90
+ *
91
+ * ❌ KEPT AS RAW SQL: Complex GROUP BY + HAVING with conditional counts
92
+ * - Self-JOIN on beads table (parent → children)
93
+ * - GROUP BY with HAVING clause
94
+ * - Conditional COUNT with CASE
95
+ *
96
+ * Drizzle's GROUP BY + HAVING is verbose and harder to read.
68
97
  */
69
98
  export declare function getEpicsEligibleForClosure(adapter: HiveAdapter, projectKey: string): Promise<EpicStatus[]>;
70
99
  /**
71
100
  * Get stale issues (not updated in N days)
101
+ *
102
+ * ✅ MIGRATED TO DRIZZLE: Simple SELECT with WHERE, ORDER BY, LIMIT
103
+ * No complex joins or CTEs
72
104
  */
73
105
  export declare function getStaleIssues(adapter: HiveAdapter, projectKey: string, days: number, options?: StaleOptions): Promise<Cell[]>;
74
106
  /**
75
107
  * Get aggregate statistics
108
+ *
109
+ * HYBRID APPROACH:
110
+ * - ✅ Status counts and type counts use Drizzle (simple aggregations)
111
+ * - ❌ Blocked/ready counts use raw SQL (requires blocked_beads_cache EXISTS)
76
112
  */
77
113
  export declare function getStatistics(adapter: HiveAdapter, projectKey: string): Promise<Statistics>;
78
114
  /**
@@ -81,6 +117,8 @@ export declare function getStatistics(adapter: HiveAdapter, projectKey: string):
81
117
  * Cell ID format: {prefix}-{hash}-{timestamp}{random}
82
118
  * This function matches the hash portion (middle segment) and returns the full ID.
83
119
  *
120
+ * ✅ MIGRATED TO DRIZZLE: Simple SELECT with LIKE pattern, no joins or CTEs
121
+ *
84
122
  * @param adapter - HiveAdapter instance
85
123
  * @param projectKey - Project key to filter cells
86
124
  * @param partialHash - Full or partial hash to match
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/hive/queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,EAAE,CAAC,CA2DjB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,EAAE,CAAC,CAmBxB;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC,CA4BvB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,EAAE,CAAC,CAmCjB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CA4ErB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BxB"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/hive/queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAQ9E;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,EAAE,CAAC,CA2DjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,EAAE,CAAC,CAoBxB;AAED;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC,CA4BvB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,EAAE,CAAC,CAEjB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CA4CrB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAExB"}