@rivet-dev/flue 2.3.7
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/LICENSE +203 -0
- package/README.md +26 -0
- package/dist/agent-coordinator.d.ts +88 -0
- package/dist/agent-coordinator.d.ts.map +1 -0
- package/dist/agent-coordinator.js +346 -0
- package/dist/agent-coordinator.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +3 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +2 -0
- package/dist/internal.js.map +1 -0
- package/dist/registry-ops-async.d.ts +7 -0
- package/dist/registry-ops-async.d.ts.map +1 -0
- package/dist/registry-ops-async.js +12 -0
- package/dist/registry-ops-async.js.map +1 -0
- package/dist/rivet-db.d.ts +7 -0
- package/dist/rivet-db.d.ts.map +1 -0
- package/dist/rivet-db.js +65 -0
- package/dist/rivet-db.js.map +1 -0
- package/dist/run-store-composite.d.ts +3 -0
- package/dist/run-store-composite.d.ts.map +1 -0
- package/dist/run-store-composite.js +43 -0
- package/dist/run-store-composite.js.map +1 -0
- package/dist/runtime.d.ts +8 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +7 -0
- package/dist/runtime.js.map +1 -0
- package/dist/stores/async-db.d.ts +10 -0
- package/dist/stores/async-db.d.ts.map +1 -0
- package/dist/stores/async-db.js +5 -0
- package/dist/stores/async-db.js.map +1 -0
- package/dist/stores/attachment-store.d.ts +4 -0
- package/dist/stores/attachment-store.d.ts.map +1 -0
- package/dist/stores/attachment-store.js +59 -0
- package/dist/stores/attachment-store.js.map +1 -0
- package/dist/stores/constants.d.ts +11 -0
- package/dist/stores/constants.d.ts.map +1 -0
- package/dist/stores/constants.js +11 -0
- package/dist/stores/constants.js.map +1 -0
- package/dist/stores/conversation-stream-store.d.ts +4 -0
- package/dist/stores/conversation-stream-store.d.ts.map +1 -0
- package/dist/stores/conversation-stream-store.js +16 -0
- package/dist/stores/conversation-stream-store.js.map +1 -0
- package/dist/stores/event-stream-store.d.ts +6 -0
- package/dist/stores/event-stream-store.d.ts.map +1 -0
- package/dist/stores/event-stream-store.js +171 -0
- package/dist/stores/event-stream-store.js.map +1 -0
- package/dist/stores/helpers.d.ts +2 -0
- package/dist/stores/helpers.d.ts.map +1 -0
- package/dist/stores/helpers.js +6 -0
- package/dist/stores/helpers.js.map +1 -0
- package/dist/stores/index.d.ts +11 -0
- package/dist/stores/index.d.ts.map +1 -0
- package/dist/stores/index.js +23 -0
- package/dist/stores/index.js.map +1 -0
- package/dist/stores/run-store.d.ts +4 -0
- package/dist/stores/run-store.d.ts.map +1 -0
- package/dist/stores/run-store.js +117 -0
- package/dist/stores/run-store.js.map +1 -0
- package/dist/stores/schema.d.ts +3 -0
- package/dist/stores/schema.d.ts.map +1 -0
- package/dist/stores/schema.js +228 -0
- package/dist/stores/schema.js.map +1 -0
- package/dist/stores/submission-store.d.ts +4 -0
- package/dist/stores/submission-store.d.ts.map +1 -0
- package/dist/stores/submission-store.js +261 -0
- package/dist/stores/submission-store.js.map +1 -0
- package/dist/target.d.ts +8 -0
- package/dist/target.d.ts.map +1 -0
- package/dist/target.js +408 -0
- package/dist/target.js.map +1 -0
- package/dist/workflow-coordinator.d.ts +71 -0
- package/dist/workflow-coordinator.d.ts.map +1 -0
- package/dist/workflow-coordinator.js +154 -0
- package/dist/workflow-coordinator.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-coordinator.js","sourceRoot":"","sources":["../src/agent-coordinator.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAA2B,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/internal.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FlueForwardRunIndex, RunStore } from '@flue/runtime/adapter-kit';
|
|
2
|
+
import { type AsyncSqlDb } from './stores/index.js';
|
|
3
|
+
export interface RivetRegistryOps extends FlueForwardRunIndex {
|
|
4
|
+
readonly runStore: RunStore;
|
|
5
|
+
}
|
|
6
|
+
export declare function createAsyncRegistryOps(db: AsyncSqlDb): Promise<RivetRegistryOps>;
|
|
7
|
+
//# sourceMappingURL=registry-ops-async.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-ops-async.d.ts","sourceRoot":"","sources":["../src/registry-ops-async.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAA6C,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/F,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC5D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC5B;AAED,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAStF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createAsyncRunStore, ensureAsyncSqlSchema } from './stores/index.js';
|
|
2
|
+
export async function createAsyncRegistryOps(db) {
|
|
3
|
+
await ensureAsyncSqlSchema(db);
|
|
4
|
+
const runStore = createAsyncRunStore(db);
|
|
5
|
+
return {
|
|
6
|
+
runStore,
|
|
7
|
+
lookupRun: (runId) => runStore.lookupRun(runId),
|
|
8
|
+
getRun: (runId) => runStore.getRun(runId),
|
|
9
|
+
listRuns: (opts) => runStore.listRuns(opts),
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=registry-ops-async.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-ops-async.js","sourceRoot":"","sources":["../src/registry-ops-async.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAmB,MAAM,mBAAmB,CAAC;AAM/F,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAAc;IAC1D,MAAM,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACzC,OAAO;QACN,QAAQ;QACR,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;QAC/C,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC3C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AsyncSqlDb } from './stores/index.js';
|
|
2
|
+
export interface RivetRawDb {
|
|
3
|
+
execute<TRow extends Record<string, unknown> = Record<string, unknown>>(query: string, ...args: unknown[]): Promise<TRow[]>;
|
|
4
|
+
transaction?<T>(callback: (tx: RivetRawDb) => Promise<T> | T): Promise<T>;
|
|
5
|
+
}
|
|
6
|
+
export declare function createRivetAsyncSqlDb(raw: RivetRawDb): AsyncSqlDb;
|
|
7
|
+
//# sourceMappingURL=rivet-db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rivet-db.d.ts","sourceRoot":"","sources":["../src/rivet-db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA8B,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,UAAU;IAC1B,OAAO,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrE,KAAK,EAAE,MAAM,EACb,GAAG,IAAI,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACnB,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC1E;AAID,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAkEjE"}
|
package/dist/rivet-db.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
const SAVEPOINT_NAME = '__flue_tx';
|
|
2
|
+
export function createRivetAsyncSqlDb(raw) {
|
|
3
|
+
let tail = Promise.resolve();
|
|
4
|
+
const queryDirect = async (text, params = []) => raw.execute(text, ...params.map(normalizeBinding));
|
|
5
|
+
return {
|
|
6
|
+
async query(text, params = []) {
|
|
7
|
+
// Wait for any in-flight transaction to release the tail, but do not chain
|
|
8
|
+
// onto it: a plain query is a single statement and callers await
|
|
9
|
+
// sequentially over the one connection, so it cannot interleave inside a
|
|
10
|
+
// concurrent transaction's savepoint critical section in practice.
|
|
11
|
+
await tail;
|
|
12
|
+
return queryDirect(text, params);
|
|
13
|
+
},
|
|
14
|
+
async transaction(fn) {
|
|
15
|
+
// Serialize transactions through a promise tail. Rivet runs each actor
|
|
16
|
+
// single-threaded over one persistent SQLite connection, so concurrent
|
|
17
|
+
// callers would otherwise interleave their savepoints on the shared
|
|
18
|
+
// connection and corrupt each other's critical sections.
|
|
19
|
+
//
|
|
20
|
+
// Production Rivet clients expose transaction(), which owns the native
|
|
21
|
+
// writer lease and coordinates with other actor work. The savepoint below
|
|
22
|
+
// is only a fallback for the node:sqlite contract harness. A single fixed
|
|
23
|
+
// name is safe because the tail guarantees no two fallback savepoints are
|
|
24
|
+
// open at once and this design does not support re-entrant transactions.
|
|
25
|
+
const previous = tail;
|
|
26
|
+
let release;
|
|
27
|
+
tail = new Promise((resolve) => {
|
|
28
|
+
release = resolve;
|
|
29
|
+
});
|
|
30
|
+
await previous;
|
|
31
|
+
try {
|
|
32
|
+
if (raw.transaction) {
|
|
33
|
+
return await raw.transaction((tx) => fn({
|
|
34
|
+
query: (text, params = []) => tx.execute(text, ...params.map(normalizeBinding)),
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
// The node:sqlite contract harness only exposes execute(). Use a
|
|
38
|
+
// savepoint there; production Rivet databases take the coordinated
|
|
39
|
+
// transaction() branch above.
|
|
40
|
+
await queryDirect(`SAVEPOINT ${SAVEPOINT_NAME}`);
|
|
41
|
+
try {
|
|
42
|
+
const result = await fn({ query: queryDirect });
|
|
43
|
+
await queryDirect(`RELEASE SAVEPOINT ${SAVEPOINT_NAME}`);
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
// Undo the critical section and discard the savepoint, then
|
|
48
|
+
// always surface the original error. A rollback/release failure
|
|
49
|
+
// here would only mask the real cause; the ambient transaction
|
|
50
|
+
// is torn down by Rivet when the action throws regardless.
|
|
51
|
+
await queryDirect(`ROLLBACK TO SAVEPOINT ${SAVEPOINT_NAME}`).catch(() => { });
|
|
52
|
+
await queryDirect(`RELEASE SAVEPOINT ${SAVEPOINT_NAME}`).catch(() => { });
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
release();
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function normalizeBinding(value) {
|
|
63
|
+
return typeof value === 'boolean' ? (value ? 1 : 0) : value;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=rivet-db.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rivet-db.js","sourceRoot":"","sources":["../src/rivet-db.ts"],"names":[],"mappings":"AAUA,MAAM,cAAc,GAAG,WAAW,CAAC;AAEnC,MAAM,UAAU,qBAAqB,CAAC,GAAe;IACpD,IAAI,IAAI,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAE5C,MAAM,WAAW,GAAG,KAAK,EACxB,IAAY,EACZ,SAAmC,EAAE,EACZ,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEhF,OAAO;QACN,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE;YAC5B,2EAA2E;YAC3E,iEAAiE;YACjE,yEAAyE;YACzE,mEAAmE;YACnE,MAAM,IAAI,CAAC;YACX,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,EAAE;YACnB,uEAAuE;YACvE,uEAAuE;YACvE,oEAAoE;YACpE,yDAAyD;YACzD,EAAE;YACF,uEAAuE;YACvE,0EAA0E;YAC1E,0EAA0E;YAC1E,0EAA0E;YAC1E,yEAAyE;YACzE,MAAM,QAAQ,GAAG,IAAI,CAAC;YACtB,IAAI,OAAoB,CAAC;YACzB,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACpC,OAAO,GAAG,OAAO,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,MAAM,QAAQ,CAAC;YACf,IAAI,CAAC;gBACJ,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBACrB,OAAO,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CACnC,EAAE,CAAC;wBACF,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,CAC5B,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;qBAClD,CAAC,CACF,CAAC;gBACH,CAAC;gBAED,iEAAiE;gBACjE,mEAAmE;gBACnE,8BAA8B;gBAC9B,MAAM,WAAW,CAAC,aAAa,cAAc,EAAE,CAAC,CAAC;gBACjD,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;oBAChD,MAAM,WAAW,CAAC,qBAAqB,cAAc,EAAE,CAAC,CAAC;oBACzD,OAAO,MAAM,CAAC;gBACf,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,4DAA4D;oBAC5D,gEAAgE;oBAChE,+DAA+D;oBAC/D,2DAA2D;oBAC3D,MAAM,WAAW,CAAC,yBAAyB,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBAC7E,MAAM,WAAW,CAAC,qBAAqB,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBACzE,MAAM,KAAK,CAAC;gBACb,CAAC;YACF,CAAC;oBAAS,CAAC;gBACV,OAAO,EAAE,CAAC;YACX,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAoB;IAC7C,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-store-composite.d.ts","sourceRoot":"","sources":["../src/run-store-composite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAOX,QAAQ,EAER,MAAM,2BAA2B,CAAC;AACnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAElF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export function createRivetRunStore(primary, mirror) {
|
|
2
|
+
return new RivetRunStore(primary, mirror);
|
|
3
|
+
}
|
|
4
|
+
class RivetRunStore {
|
|
5
|
+
primary;
|
|
6
|
+
mirror;
|
|
7
|
+
constructor(primary, mirror) {
|
|
8
|
+
this.primary = primary;
|
|
9
|
+
this.mirror = mirror;
|
|
10
|
+
}
|
|
11
|
+
async createRun(input) {
|
|
12
|
+
await this.primary.createRun(input);
|
|
13
|
+
await this.mirrorWrite(() => this.mirror?.createRun(input));
|
|
14
|
+
}
|
|
15
|
+
async endRun(input) {
|
|
16
|
+
await this.primary.endRun(input);
|
|
17
|
+
await this.mirrorWrite(() => this.mirror?.endRun(input));
|
|
18
|
+
}
|
|
19
|
+
getRun(runId) {
|
|
20
|
+
return this.primary.getRun(runId);
|
|
21
|
+
}
|
|
22
|
+
lookupRun(runId) {
|
|
23
|
+
return this.primary.lookupRun(runId);
|
|
24
|
+
}
|
|
25
|
+
listRuns(opts) {
|
|
26
|
+
return this.primary.listRuns(opts);
|
|
27
|
+
}
|
|
28
|
+
async mirrorWrite(write) {
|
|
29
|
+
// The registry index is a best-effort mirror of the authoritative per-actor
|
|
30
|
+
// run record: an index fault must NOT fail run admission or finalization.
|
|
31
|
+
// This mirrors the Cloudflare adapter's `safeIndexWrite` contract
|
|
32
|
+
// (`@flue/runtime` `src/cloudflare/run-store.ts`). RivetKit owns actor
|
|
33
|
+
// readiness; an unavailable registry actor is logged as an index fault
|
|
34
|
+
// rather than hidden behind an adapter-specific retry policy.
|
|
35
|
+
try {
|
|
36
|
+
await write();
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.error('[flue:run-index] mirror write failed:', error);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=run-store-composite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-store-composite.js","sourceRoot":"","sources":["../src/run-store-composite.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,mBAAmB,CAAC,OAAiB,EAAE,MAAiB;IACvE,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,aAAa;IACD,OAAO,CAAW;IAClB,MAAM,CAAuB;IAE9C,YAAY,OAAiB,EAAE,MAA4B;QAC1D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAqB;QACpC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAkB;QAC9B,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,KAAa;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,IAAmB;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAyC;QAClE,4EAA4E;QAC5E,0EAA0E;QACzE,kEAAkE;QAClE,uEAAuE;QACvE,uEAAuE;QACvE,8DAA8D;QAC/D,IAAI,CAAC;YACJ,MAAM,KAAK,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { createRivetAgentRuntime, type RivetAgentActorContext, type RivetAgentRuntime, type RivetAgentRuntimeOptions, } from './agent-coordinator.js';
|
|
2
|
+
export { createAsyncRegistryOps, type RivetRegistryOps } from './registry-ops-async.js';
|
|
3
|
+
export { createRivetRunStore } from './run-store-composite.js';
|
|
4
|
+
export { createRivetWorkflowRuntime, type RivetWorkflowActorContext, type RivetWorkflowRuntime, type RivetWorkflowRuntimeOptions, } from './workflow-coordinator.js';
|
|
5
|
+
export { createRivetAsyncSqlDb, type RivetRawDb } from './rivet-db.js';
|
|
6
|
+
export { createAsyncAttachmentStore, createAsyncConversationStreamStore, createAsyncEventStreamStore, createAsyncRunStore, createAsyncSqlStores, createAsyncSubmissionStore, ensureAsyncSqlSchema, } from './stores/index.js';
|
|
7
|
+
export type { AsyncSqlDb, AsyncSqlRow, AsyncSqlRunner, AsyncSqlValue } from './stores/index.js';
|
|
8
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,uBAAuB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACN,0BAA0B,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,GAChC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EACN,0BAA0B,EAC1B,kCAAkC,EAClC,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createRivetAgentRuntime, } from './agent-coordinator.js';
|
|
2
|
+
export { createAsyncRegistryOps } from './registry-ops-async.js';
|
|
3
|
+
export { createRivetRunStore } from './run-store-composite.js';
|
|
4
|
+
export { createRivetWorkflowRuntime, } from './workflow-coordinator.js';
|
|
5
|
+
export { createRivetAsyncSqlDb } from './rivet-db.js';
|
|
6
|
+
export { createAsyncAttachmentStore, createAsyncConversationStreamStore, createAsyncEventStreamStore, createAsyncRunStore, createAsyncSqlStores, createAsyncSubmissionStore, ensureAsyncSqlSchema, } from './stores/index.js';
|
|
7
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,uBAAuB,GAIvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAyB,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACN,0BAA0B,GAI1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAmB,MAAM,eAAe,CAAC;AACvE,OAAO,EACN,0BAA0B,EAC1B,kCAAkC,EAClC,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,GACpB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type AsyncSqlValue = string | number | boolean | null;
|
|
2
|
+
export type AsyncSqlRow = Record<string, unknown>;
|
|
3
|
+
export interface AsyncSqlRunner {
|
|
4
|
+
query(text: string, params?: readonly AsyncSqlValue[]): Promise<AsyncSqlRow[]>;
|
|
5
|
+
}
|
|
6
|
+
export interface AsyncSqlDb extends AsyncSqlRunner {
|
|
7
|
+
transaction<T>(fn: (tx: AsyncSqlRunner) => Promise<T>): Promise<T>;
|
|
8
|
+
}
|
|
9
|
+
export declare function queryOne(runner: AsyncSqlRunner, text: string, params?: readonly AsyncSqlValue[]): Promise<AsyncSqlRow | undefined>;
|
|
10
|
+
//# sourceMappingURL=async-db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-db.d.ts","sourceRoot":"","sources":["../../src/stores/async-db.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElD,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,UAAW,SAAQ,cAAc;IACjD,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACnE;AAED,wBAAsB,QAAQ,CAC7B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,SAAS,aAAa,EAAE,GAC/B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAGlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-db.js","sourceRoot":"","sources":["../../src/stores/async-db.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,MAAsB,EACtB,IAAY,EACZ,MAAiC;IAEjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment-store.d.ts","sourceRoot":"","sources":["../../src/stores/attachment-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EAGf,MAAM,2BAA2B,CAAC;AAOnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,UAAU,GAAG,eAAe,CAE1E"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { AttachmentConflictError, attachmentBytesEqual, sameAttachmentRef, verifyAttachmentBytes, } from '@flue/runtime/adapter-kit';
|
|
2
|
+
export function createAsyncAttachmentStore(db) {
|
|
3
|
+
return new AsyncAttachmentStore(db);
|
|
4
|
+
}
|
|
5
|
+
class AsyncAttachmentStore {
|
|
6
|
+
db;
|
|
7
|
+
constructor(db) {
|
|
8
|
+
this.db = db;
|
|
9
|
+
}
|
|
10
|
+
async put(input) {
|
|
11
|
+
await verifyAttachmentBytes(input.attachment, input.bytes);
|
|
12
|
+
const data = Buffer.from(input.bytes).toString('base64');
|
|
13
|
+
await this.db.transaction(async (tx) => {
|
|
14
|
+
await tx.query(`INSERT OR IGNORE INTO flue_attachments
|
|
15
|
+
(stream_path, attachment_id, conversation_id, mime_type, filename, size, digest, data)
|
|
16
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, [input.streamPath, input.attachment.id, input.conversationId, input.attachment.mimeType,
|
|
17
|
+
input.attachment.filename ?? null, input.attachment.size, input.attachment.digest, data]);
|
|
18
|
+
const rows = await tx.query(`SELECT conversation_id, mime_type, filename, size, digest, data FROM flue_attachments
|
|
19
|
+
WHERE stream_path = ? AND attachment_id = ? LIMIT 1`, [input.streamPath, input.attachment.id]);
|
|
20
|
+
const row = rows[0];
|
|
21
|
+
if (!row)
|
|
22
|
+
throw new Error('[flue] Attachment admission did not create a row.');
|
|
23
|
+
const existing = rowToStored(input.attachment.id, row);
|
|
24
|
+
if (String(row.conversation_id) !== input.conversationId ||
|
|
25
|
+
!sameAttachmentRef(existing.attachment, input.attachment) ||
|
|
26
|
+
!attachmentBytesEqual(existing.bytes, input.bytes)) {
|
|
27
|
+
throw new AttachmentConflictError({
|
|
28
|
+
path: input.streamPath,
|
|
29
|
+
attachmentId: input.attachment.id,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async get(input) {
|
|
35
|
+
const rows = await this.db.query(`SELECT conversation_id, mime_type, filename, size, digest, data FROM flue_attachments
|
|
36
|
+
WHERE stream_path = ? AND attachment_id = ? LIMIT 1`, [input.streamPath, input.attachmentId]);
|
|
37
|
+
if (!rows[0] || String(rows[0].conversation_id) !== input.conversationId)
|
|
38
|
+
return null;
|
|
39
|
+
const stored = rowToStored(input.attachmentId, rows[0]);
|
|
40
|
+
await verifyAttachmentBytes(stored.attachment, stored.bytes);
|
|
41
|
+
return stored;
|
|
42
|
+
}
|
|
43
|
+
async deleteForInstance(streamPath) {
|
|
44
|
+
await this.db.query(`DELETE FROM flue_attachments WHERE stream_path = ?`, [streamPath]);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function rowToStored(id, row) {
|
|
48
|
+
return {
|
|
49
|
+
attachment: {
|
|
50
|
+
id,
|
|
51
|
+
mimeType: String(row.mime_type),
|
|
52
|
+
size: Number(row.size),
|
|
53
|
+
digest: String(row.digest),
|
|
54
|
+
...(typeof row.filename === 'string' ? { filename: row.filename } : {}),
|
|
55
|
+
},
|
|
56
|
+
bytes: Uint8Array.from(Buffer.from(String(row.data), 'base64')),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=attachment-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment-store.js","sourceRoot":"","sources":["../../src/stores/attachment-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const FLUE_SCHEMA_VERSION = 2;
|
|
2
|
+
export declare const DURABILITY_DEFAULT_MAX_ATTEMPTS = 10;
|
|
3
|
+
export declare const DURABILITY_DEFAULT_TIMEOUT_MS = 3600000;
|
|
4
|
+
export declare const LEASE_DURATION_MS = 30000;
|
|
5
|
+
export declare const SUBMISSION_HARNESS_NAME = "default";
|
|
6
|
+
export declare const SUBMISSION_SESSION_NAME = "default";
|
|
7
|
+
export declare const DEFAULT_LIST_LIMIT = 100;
|
|
8
|
+
export declare const MAX_LIST_LIMIT = 1000;
|
|
9
|
+
export declare const DEFAULT_READ_LIMIT = 100;
|
|
10
|
+
export declare const MAX_READ_LIMIT = 1000;
|
|
11
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/stores/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,eAAO,MAAM,6BAA6B,UAAY,CAAC;AACvD,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAExC,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAEjD,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,cAAc,OAAO,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const FLUE_SCHEMA_VERSION = 2;
|
|
2
|
+
export const DURABILITY_DEFAULT_MAX_ATTEMPTS = 10;
|
|
3
|
+
export const DURABILITY_DEFAULT_TIMEOUT_MS = 3_600_000;
|
|
4
|
+
export const LEASE_DURATION_MS = 30_000;
|
|
5
|
+
export const SUBMISSION_HARNESS_NAME = 'default';
|
|
6
|
+
export const SUBMISSION_SESSION_NAME = 'default';
|
|
7
|
+
export const DEFAULT_LIST_LIMIT = 100;
|
|
8
|
+
export const MAX_LIST_LIMIT = 1000;
|
|
9
|
+
export const DEFAULT_READ_LIMIT = 100;
|
|
10
|
+
export const MAX_READ_LIMIT = 1000;
|
|
11
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/stores/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAClD,MAAM,CAAC,MAAM,6BAA6B,GAAG,SAAS,CAAC;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAExC,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAEjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ConversationStreamStore } from '@flue/runtime/adapter-kit';
|
|
2
|
+
import type { AsyncSqlDb } from './async-db.js';
|
|
3
|
+
export declare function createAsyncConversationStreamStore(db: AsyncSqlDb): ConversationStreamStore;
|
|
4
|
+
//# sourceMappingURL=conversation-stream-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-stream-store.d.ts","sourceRoot":"","sources":["../../src/stores/conversation-stream-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,uBAAuB,EAG5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAC;AAE/D,wBAAgB,kCAAkC,CAAC,EAAE,EAAE,UAAU,GAAG,uBAAuB,CAe1F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { defineSqlConversationStreamStore, } from '@flue/runtime/adapter-kit';
|
|
2
|
+
export function createAsyncConversationStreamStore(db) {
|
|
3
|
+
const dialect = {
|
|
4
|
+
placeholder: () => '?',
|
|
5
|
+
lockClause: '',
|
|
6
|
+
insertIgnorePrefix: 'INSERT OR IGNORE',
|
|
7
|
+
insertIgnoreSuffix: '',
|
|
8
|
+
supportsReturning: true,
|
|
9
|
+
query: (sql, params) => db.query(sql, params),
|
|
10
|
+
transaction: (fn) => db.transaction((tx) => fn({
|
|
11
|
+
query: (sql, params) => tx.query(sql, params),
|
|
12
|
+
})),
|
|
13
|
+
};
|
|
14
|
+
return defineSqlConversationStreamStore(dialect);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=conversation-stream-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-stream-store.js","sourceRoot":"","sources":["../../src/stores/conversation-stream-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gCAAgC,GAIhC,MAAM,2BAA2B,CAAC;AAGnC,MAAM,UAAU,kCAAkC,CAAC,EAAc;IAChE,MAAM,OAAO,GAA2B;QACvC,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG;QACtB,UAAU,EAAE,EAAE;QACd,kBAAkB,EAAE,kBAAkB;QACtC,kBAAkB,EAAE,EAAE;QACtB,iBAAiB,EAAE,IAAI;QACvB,KAAK,EAAE,CAAC,GAAW,EAAE,MAA0B,EAAE,EAAE,CAClD,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,MAAkC,CAAC;QAClD,WAAW,EAAE,CAAI,EAAgD,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YAC/F,KAAK,EAAE,CAAC,GAAW,EAAE,MAA0B,EAAE,EAAE,CAClD,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,MAAkC,CAAC;SAClD,CAAC,CAAC;KACH,CAAC;IACF,OAAO,gCAAgC,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { EventStreamStore } from '@flue/runtime/adapter-kit';
|
|
2
|
+
import type { AsyncSqlDb } from './async-db.js';
|
|
3
|
+
export declare function createAsyncEventStreamStore(db: AsyncSqlDb): EventStreamStore;
|
|
4
|
+
export declare function formatOffset(seq: number): string;
|
|
5
|
+
export declare function parseOffset(offset: string): number;
|
|
6
|
+
//# sourceMappingURL=event-stream-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-stream-store.d.ts","sourceRoot":"","sources":["../../src/stores/event-stream-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGX,gBAAgB,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,eAAe,CAAC;AAOhE,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,UAAU,GAAG,gBAAgB,CAE5E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMlD"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { DEFAULT_READ_LIMIT, MAX_READ_LIMIT } from './constants.js';
|
|
2
|
+
import { clampLimit } from './helpers.js';
|
|
3
|
+
const COMPONENT_PAD = 16;
|
|
4
|
+
const ZERO_COMPONENT = '0'.repeat(COMPONENT_PAD);
|
|
5
|
+
export function createAsyncEventStreamStore(db) {
|
|
6
|
+
return new AsyncEventStreamStore(db);
|
|
7
|
+
}
|
|
8
|
+
export function formatOffset(seq) {
|
|
9
|
+
if (seq === -1)
|
|
10
|
+
return '-1';
|
|
11
|
+
return `${ZERO_COMPONENT}_${String(seq).padStart(COMPONENT_PAD, '0')}`;
|
|
12
|
+
}
|
|
13
|
+
export function parseOffset(offset) {
|
|
14
|
+
if (offset === '-1')
|
|
15
|
+
return -1;
|
|
16
|
+
const match = /^\d+_(\d+)$/.exec(offset);
|
|
17
|
+
const sequence = match?.[1];
|
|
18
|
+
if (!sequence)
|
|
19
|
+
throw new Error(`[flue] Invalid stream offset: "${offset}".`);
|
|
20
|
+
return parseInt(sequence, 10);
|
|
21
|
+
}
|
|
22
|
+
class AsyncEventStreamStore {
|
|
23
|
+
listeners = new Map();
|
|
24
|
+
pendingAppends = new Map();
|
|
25
|
+
db;
|
|
26
|
+
constructor(db) {
|
|
27
|
+
this.db = db;
|
|
28
|
+
}
|
|
29
|
+
async createStream(path) {
|
|
30
|
+
await this.db.query(`INSERT OR IGNORE INTO flue_event_streams (path) VALUES (?)`, [path]);
|
|
31
|
+
}
|
|
32
|
+
async appendEvent(path, event) {
|
|
33
|
+
const previous = this.pendingAppends.get(path) ?? Promise.resolve();
|
|
34
|
+
const append = previous.then(async () => {
|
|
35
|
+
const data = JSON.stringify(event);
|
|
36
|
+
const seq = await this.db.transaction(async (tx) => {
|
|
37
|
+
const updated = await tx.query(`UPDATE flue_event_streams
|
|
38
|
+
SET next_offset = next_offset + 1
|
|
39
|
+
WHERE path = ? AND closed = 0
|
|
40
|
+
RETURNING next_offset`, [path]);
|
|
41
|
+
if (updated.length === 0) {
|
|
42
|
+
const meta = await getStreamMetaFromRunner(tx, path);
|
|
43
|
+
if (!meta)
|
|
44
|
+
throw new Error(`[flue] Event stream "${path}" does not exist.`);
|
|
45
|
+
throw new Error(`[flue] Event stream "${path}" is closed.`);
|
|
46
|
+
}
|
|
47
|
+
const offset = Number(updated[0]?.next_offset) - 1;
|
|
48
|
+
await tx.query(`INSERT INTO flue_event_stream_entries (path, seq, data) VALUES (?, ?, ?)`, [path, offset, data]);
|
|
49
|
+
return offset;
|
|
50
|
+
});
|
|
51
|
+
this.notifyListeners(path);
|
|
52
|
+
return formatOffset(seq);
|
|
53
|
+
});
|
|
54
|
+
const settled = append.then(() => undefined, () => undefined);
|
|
55
|
+
this.pendingAppends.set(path, settled);
|
|
56
|
+
try {
|
|
57
|
+
return await append;
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
if (this.pendingAppends.get(path) === settled) {
|
|
61
|
+
this.pendingAppends.delete(path);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async appendEventOnce(path, key, event) {
|
|
66
|
+
const data = JSON.stringify(event);
|
|
67
|
+
const result = await this.db.transaction(async (tx) => {
|
|
68
|
+
const existing = await tx.query(`SELECT seq, data FROM flue_event_stream_keys WHERE path = ? AND key = ? LIMIT 1`, [path, key]);
|
|
69
|
+
if (existing[0]) {
|
|
70
|
+
if (existing[0].data !== data) {
|
|
71
|
+
throw new Error(`[flue] Event key "${key}" already has a conflicting payload.`);
|
|
72
|
+
}
|
|
73
|
+
return { offset: Number(existing[0].seq), appended: false };
|
|
74
|
+
}
|
|
75
|
+
const updated = await tx.query(`UPDATE flue_event_streams SET next_offset = next_offset + 1
|
|
76
|
+
WHERE path = ? AND closed = 0 RETURNING next_offset`, [path]);
|
|
77
|
+
if (!updated[0]) {
|
|
78
|
+
const meta = await getStreamMetaFromRunner(tx, path);
|
|
79
|
+
if (!meta)
|
|
80
|
+
throw new Error(`[flue] Event stream "${path}" does not exist.`);
|
|
81
|
+
throw new Error(`[flue] Event stream "${path}" is closed.`);
|
|
82
|
+
}
|
|
83
|
+
const offset = Number(updated[0].next_offset) - 1;
|
|
84
|
+
await tx.query(`INSERT INTO flue_event_stream_entries (path, seq, data) VALUES (?, ?, ?)`, [path, offset, data]);
|
|
85
|
+
await tx.query(`INSERT INTO flue_event_stream_keys (path, key, seq, data) VALUES (?, ?, ?, ?)`, [path, key, offset, data]);
|
|
86
|
+
return { offset, appended: true };
|
|
87
|
+
});
|
|
88
|
+
if (result.appended)
|
|
89
|
+
this.notifyListeners(path);
|
|
90
|
+
return formatOffset(result.offset);
|
|
91
|
+
}
|
|
92
|
+
async readEvents(path, opts) {
|
|
93
|
+
const meta = await this.getStreamMeta(path);
|
|
94
|
+
if (!meta)
|
|
95
|
+
return { events: [], nextOffset: formatOffset(-1), upToDate: true, closed: false };
|
|
96
|
+
const rawOffset = opts?.offset ?? '-1';
|
|
97
|
+
const limit = clampLimit(opts?.limit, DEFAULT_READ_LIMIT, MAX_READ_LIMIT);
|
|
98
|
+
let startAfter;
|
|
99
|
+
if (rawOffset === '-1') {
|
|
100
|
+
startAfter = -1;
|
|
101
|
+
}
|
|
102
|
+
else if (rawOffset === 'now') {
|
|
103
|
+
return { events: [], nextOffset: meta.nextOffset, upToDate: true, closed: meta.closed };
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
startAfter = parseOffset(rawOffset);
|
|
107
|
+
}
|
|
108
|
+
const rows = await this.db.query(`SELECT seq, data FROM flue_event_stream_entries
|
|
109
|
+
WHERE path = ? AND seq > ?
|
|
110
|
+
ORDER BY seq ASC
|
|
111
|
+
LIMIT ?`, [path, startAfter, limit + 1]);
|
|
112
|
+
const page = rows.slice(0, limit);
|
|
113
|
+
const events = page.map((row) => ({
|
|
114
|
+
data: JSON.parse(String(row.data)),
|
|
115
|
+
offset: formatOffset(Number(row.seq)),
|
|
116
|
+
}));
|
|
117
|
+
const lastSeq = page.length > 0 ? Number(page.at(-1)?.seq) : -1;
|
|
118
|
+
return {
|
|
119
|
+
events,
|
|
120
|
+
nextOffset: events.length > 0 ? formatOffset(lastSeq) : formatOffset(startAfter),
|
|
121
|
+
upToDate: rows.length <= limit,
|
|
122
|
+
closed: meta.closed,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
async closeStream(path) {
|
|
126
|
+
await this.db.query(`UPDATE flue_event_streams SET closed = 1 WHERE path = ?`, [path]);
|
|
127
|
+
this.notifyListeners(path);
|
|
128
|
+
}
|
|
129
|
+
async getStreamMeta(path) {
|
|
130
|
+
return getStreamMetaFromRunner(this.db, path);
|
|
131
|
+
}
|
|
132
|
+
subscribe(path, listener) {
|
|
133
|
+
let bucket = this.listeners.get(path);
|
|
134
|
+
if (!bucket) {
|
|
135
|
+
bucket = new Set();
|
|
136
|
+
this.listeners.set(path, bucket);
|
|
137
|
+
}
|
|
138
|
+
bucket.add(listener);
|
|
139
|
+
const listeners = bucket;
|
|
140
|
+
return () => {
|
|
141
|
+
listeners.delete(listener);
|
|
142
|
+
if (listeners.size === 0)
|
|
143
|
+
this.listeners.delete(path);
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
notifyListeners(path) {
|
|
147
|
+
const bucket = this.listeners.get(path);
|
|
148
|
+
if (!bucket)
|
|
149
|
+
return;
|
|
150
|
+
for (const listener of [...bucket]) {
|
|
151
|
+
try {
|
|
152
|
+
listener();
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// Listener failures are intentionally isolated from writes.
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
async function getStreamMetaFromRunner(runner, path) {
|
|
161
|
+
const rows = await runner.query(`SELECT next_offset, closed FROM flue_event_streams WHERE path = ? LIMIT 1`, [path]);
|
|
162
|
+
const row = rows[0];
|
|
163
|
+
if (!row)
|
|
164
|
+
return null;
|
|
165
|
+
const writeHead = Number(row.next_offset);
|
|
166
|
+
return {
|
|
167
|
+
nextOffset: formatOffset(writeHead - 1),
|
|
168
|
+
closed: Boolean(row.closed),
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=event-stream-store.js.map
|