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.
- package/README.md +174 -144
- package/bin/swarm-db.ts +168 -0
- package/dist/adapter.d.ts +2 -2
- package/dist/analytics/formatters.d.ts +50 -0
- package/dist/analytics/formatters.d.ts.map +1 -0
- package/dist/analytics/index.d.ts +35 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/queries/agent-activity.d.ts +21 -0
- package/dist/analytics/queries/agent-activity.d.ts.map +1 -0
- package/dist/analytics/queries/checkpoint-frequency.d.ts +26 -0
- package/dist/analytics/queries/checkpoint-frequency.d.ts.map +1 -0
- package/dist/analytics/queries/failed-decompositions.d.ts +22 -0
- package/dist/analytics/queries/failed-decompositions.d.ts.map +1 -0
- package/dist/analytics/queries/human-feedback.d.ts +26 -0
- package/dist/analytics/queries/human-feedback.d.ts.map +1 -0
- package/dist/analytics/queries/index.d.ts +21 -0
- package/dist/analytics/queries/index.d.ts.map +1 -0
- package/dist/analytics/queries/lock-contention.d.ts +20 -0
- package/dist/analytics/queries/lock-contention.d.ts.map +1 -0
- package/dist/analytics/queries/message-latency.d.ts +24 -0
- package/dist/analytics/queries/message-latency.d.ts.map +1 -0
- package/dist/analytics/queries/recovery-success.d.ts +26 -0
- package/dist/analytics/queries/recovery-success.d.ts.map +1 -0
- package/dist/analytics/queries/scope-violations.d.ts +27 -0
- package/dist/analytics/queries/scope-violations.d.ts.map +1 -0
- package/dist/analytics/queries/strategy-success-rates.d.ts +20 -0
- package/dist/analytics/queries/strategy-success-rates.d.ts.map +1 -0
- package/dist/analytics/queries/task-duration.d.ts +31 -0
- package/dist/analytics/queries/task-duration.d.ts.map +1 -0
- package/dist/analytics/query-builder.d.ts +110 -0
- package/dist/analytics/query-builder.d.ts.map +1 -0
- package/dist/analytics/types.d.ts +36 -0
- package/dist/analytics/types.d.ts.map +1 -0
- package/dist/cli/db.d.ts +73 -0
- package/dist/cli/db.d.ts.map +1 -0
- package/dist/db/client.d.ts +68 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/drizzle.d.ts +24 -0
- package/dist/db/drizzle.d.ts.map +1 -0
- package/dist/db/index.d.ts +25 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/migrate.d.ts +81 -0
- package/dist/db/migrate.d.ts.map +1 -0
- package/dist/db/schema/hive.d.ts +1596 -0
- package/dist/db/schema/hive.d.ts.map +1 -0
- package/dist/db/schema/index.d.ts +12 -0
- package/dist/db/schema/index.d.ts.map +1 -0
- package/dist/db/schema/memory.d.ts +214 -0
- package/dist/db/schema/memory.d.ts.map +1 -0
- package/dist/db/schema/streams.d.ts +1601 -0
- package/dist/db/schema/streams.d.ts.map +1 -0
- package/dist/debug-demo.d.ts +12 -0
- package/dist/debug-demo.d.ts.map +1 -0
- package/dist/debug.d.ts +19 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/errors/base-error.d.ts +49 -0
- package/dist/errors/base-error.d.ts.map +1 -0
- package/dist/errors/checkpoint-error.d.ts +10 -0
- package/dist/errors/checkpoint-error.d.ts.map +1 -0
- package/dist/errors/decomposition-error.d.ts +10 -0
- package/dist/errors/decomposition-error.d.ts.map +1 -0
- package/dist/errors/index.d.ts +37 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/reservation-error.d.ts +10 -0
- package/dist/errors/reservation-error.d.ts.map +1 -0
- package/dist/errors/validation-error.d.ts +10 -0
- package/dist/errors/validation-error.d.ts.map +1 -0
- package/dist/hive/adapter.d.ts +8 -8
- package/dist/hive/adapter.d.ts.map +1 -1
- package/dist/hive/dependencies-drizzle.d.ts +31 -0
- package/dist/hive/dependencies-drizzle.d.ts.map +1 -0
- package/dist/hive/dependencies.d.ts.map +1 -1
- package/dist/hive/flush-manager.d.ts +2 -1
- package/dist/hive/flush-manager.d.ts.map +1 -1
- package/dist/hive/jsonl.d.ts.map +1 -1
- package/dist/hive/migrations.d.ts +23 -3
- package/dist/hive/migrations.d.ts.map +1 -1
- package/dist/hive/projections-drizzle.d.ts +43 -0
- package/dist/hive/projections-drizzle.d.ts.map +1 -0
- package/dist/hive/projections.d.ts +8 -0
- package/dist/hive/projections.d.ts.map +1 -1
- package/dist/hive/queries-drizzle.d.ts +52 -0
- package/dist/hive/queries-drizzle.d.ts.map +1 -0
- package/dist/hive/queries.d.ts +38 -0
- package/dist/hive/queries.d.ts.map +1 -1
- package/dist/hive/store.d.ts +36 -14
- package/dist/hive/store.d.ts.map +1 -1
- package/dist/index.d.ts +37 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +84673 -38352
- package/dist/libsql.convenience.d.ts +155 -0
- package/dist/libsql.convenience.d.ts.map +1 -0
- package/dist/libsql.d.ts +93 -0
- package/dist/libsql.d.ts.map +1 -0
- package/dist/memory/adapter.d.ts +6 -7
- package/dist/memory/adapter.d.ts.map +1 -1
- package/dist/memory/libsql-schema.d.ts +83 -0
- package/dist/memory/libsql-schema.d.ts.map +1 -0
- package/dist/memory/migrate-legacy.d.ts +3 -0
- package/dist/memory/migrate-legacy.d.ts.map +1 -1
- package/dist/memory/migrations.d.ts +11 -0
- package/dist/memory/migrations.d.ts.map +1 -1
- package/dist/memory/store.d.ts +39 -31
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/test-utils.d.ts +59 -0
- package/dist/memory/test-utils.d.ts.map +1 -0
- package/dist/migrate-pglite-to-libsql.d.ts +73 -0
- package/dist/migrate-pglite-to-libsql.d.ts.map +1 -0
- package/dist/pglite.d.ts +8 -170
- package/dist/pglite.d.ts.map +1 -1
- package/dist/streams/agent-mail.d.ts +13 -0
- package/dist/streams/agent-mail.d.ts.map +1 -1
- package/dist/streams/auto-migrate.d.ts +182 -0
- package/dist/streams/auto-migrate.d.ts.map +1 -0
- package/dist/streams/effect/ask.d.ts +5 -4
- package/dist/streams/effect/ask.d.ts.map +1 -1
- package/dist/streams/effect/cursor.d.ts +3 -2
- package/dist/streams/effect/cursor.d.ts.map +1 -1
- package/dist/streams/effect/deferred.d.ts +12 -9
- package/dist/streams/effect/deferred.d.ts.map +1 -1
- package/dist/streams/effect/lock.d.ts +13 -11
- package/dist/streams/effect/lock.d.ts.map +1 -1
- package/dist/streams/effect/mailbox.d.ts +3 -2
- package/dist/streams/effect/mailbox.d.ts.map +1 -1
- package/dist/streams/events.d.ts +4 -0
- package/dist/streams/events.d.ts.map +1 -1
- package/dist/streams/index.d.ts +20 -74
- package/dist/streams/index.d.ts.map +1 -1
- package/dist/streams/libsql-schema.d.ts +77 -0
- package/dist/streams/libsql-schema.d.ts.map +1 -0
- package/dist/streams/migrations.d.ts +8 -8
- package/dist/streams/migrations.d.ts.map +1 -1
- package/dist/streams/projections-drizzle.d.ts +175 -0
- package/dist/streams/projections-drizzle.d.ts.map +1 -0
- package/dist/streams/projections.d.ts +9 -0
- package/dist/streams/projections.d.ts.map +1 -1
- package/dist/streams/store-drizzle.d.ts +96 -0
- package/dist/streams/store-drizzle.d.ts.map +1 -0
- package/dist/streams/store.d.ts +23 -0
- package/dist/streams/store.d.ts.map +1 -1
- package/dist/streams/swarm-mail.d.ts +9 -0
- package/dist/streams/swarm-mail.d.ts.map +1 -1
- package/dist/test-libsql.d.ts +76 -0
- package/dist/test-libsql.d.ts.map +1 -0
- package/dist/types/adapter.d.ts +3 -3
- package/dist/types/database.d.ts +12 -12
- package/dist/types/hive-adapter.d.ts +5 -5
- package/package.json +10 -6
- package/dist/beads/adapter.d.ts +0 -38
- package/dist/beads/adapter.d.ts.map +0 -1
- package/dist/beads/blocked-cache.d.ts +0 -21
- package/dist/beads/blocked-cache.d.ts.map +0 -1
- package/dist/beads/comments.d.ts +0 -21
- package/dist/beads/comments.d.ts.map +0 -1
- package/dist/beads/dependencies.d.ts +0 -58
- package/dist/beads/dependencies.d.ts.map +0 -1
- package/dist/beads/events.d.ts +0 -163
- package/dist/beads/events.d.ts.map +0 -1
- package/dist/beads/flush-manager.d.ts +0 -71
- package/dist/beads/flush-manager.d.ts.map +0 -1
- package/dist/beads/index.d.ts +0 -25
- package/dist/beads/index.d.ts.map +0 -1
- package/dist/beads/jsonl.d.ts +0 -103
- package/dist/beads/jsonl.d.ts.map +0 -1
- package/dist/beads/labels.d.ts +0 -21
- package/dist/beads/labels.d.ts.map +0 -1
- package/dist/beads/merge.d.ts +0 -99
- package/dist/beads/merge.d.ts.map +0 -1
- package/dist/beads/migrations.d.ts +0 -41
- package/dist/beads/migrations.d.ts.map +0 -1
- package/dist/beads/operations.d.ts +0 -56
- package/dist/beads/operations.d.ts.map +0 -1
- package/dist/beads/projections.d.ts +0 -103
- package/dist/beads/projections.d.ts.map +0 -1
- package/dist/beads/queries.d.ts +0 -77
- package/dist/beads/queries.d.ts.map +0 -1
- package/dist/beads/store.d.ts +0 -98
- package/dist/beads/store.d.ts.map +0 -1
- package/dist/beads/validation.d.ts +0 -75
- package/dist/beads/validation.d.ts.map +0 -1
- package/dist/daemon.d.ts +0 -161
- package/dist/daemon.d.ts.map +0 -1
- package/dist/socket-adapter.d.ts +0 -78
- package/dist/socket-adapter.d.ts.map +0 -1
- package/dist/streams/debug.d.ts +0 -173
- package/dist/streams/debug.d.ts.map +0 -1
- package/dist/test-server.d.ts +0 -64
- package/dist/test-server.d.ts.map +0 -1
- package/dist/types/beads-adapter.d.ts +0 -397
- 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"}
|
package/dist/debug.d.ts
ADDED
|
@@ -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"}
|
package/dist/hive/adapter.d.ts
CHANGED
|
@@ -13,16 +13,16 @@
|
|
|
13
13
|
*
|
|
14
14
|
* ## Usage
|
|
15
15
|
* ```typescript
|
|
16
|
-
* import {
|
|
17
|
-
* import { createHiveAdapter } from '
|
|
16
|
+
* import { createInMemorySwarmMailLibSQL } from 'swarm-mail';
|
|
17
|
+
* import { createHiveAdapter } from 'swarm-mail';
|
|
18
18
|
*
|
|
19
|
-
* const
|
|
20
|
-
* const db =
|
|
21
|
-
* const
|
|
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
|
|
25
|
-
* const
|
|
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 (
|
|
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,
|
|
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,
|
|
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;
|
|
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"}
|
package/dist/hive/jsonl.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EACV,IAAI,EACJ,WAAW,EACX,cAAc,EAId,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAIlC,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;
|
|
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"}
|
package/dist/hive/queries.d.ts
CHANGED
|
@@ -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
|
|
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"}
|