@sixb/sqlite 0.1.21 → 0.1.22
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/dist/agents/agent-storage.d.ts +8 -2
- package/dist/agents/agent-storage.d.ts.map +1 -1
- package/dist/agents/approvals.d.ts +51 -0
- package/dist/agents/approvals.d.ts.map +1 -0
- package/dist/agents/checkpoints.d.ts +1 -0
- package/dist/agents/checkpoints.d.ts.map +1 -1
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/memory.d.ts +21 -0
- package/dist/agents/memory.d.ts.map +1 -0
- package/dist/agents/messages.d.ts.map +1 -1
- package/dist/agents/rows.d.ts +15 -1
- package/dist/agents/rows.d.ts.map +1 -1
- package/dist/agents/runs.d.ts +14 -1
- package/dist/agents/runs.d.ts.map +1 -1
- package/dist/agents/settings.d.ts +29 -0
- package/dist/agents/settings.d.ts.map +1 -0
- package/dist/agents/threads.d.ts +12 -1
- package/dist/agents/threads.d.ts.map +1 -1
- package/dist/ai-cost-groups.d.ts.map +1 -1
- package/dist/ai-cost-storage.d.ts.map +1 -1
- package/dist/ai-usage-storage.d.ts +4 -1
- package/dist/ai-usage-storage.d.ts.map +1 -1
- package/dist/artifact-storage.d.ts +10 -1
- package/dist/artifact-storage.d.ts.map +1 -1
- package/dist/auth-storage/auth-storage.d.ts +3 -2
- package/dist/auth-storage/auth-storage.d.ts.map +1 -1
- package/dist/auth-storage/users.d.ts +7 -3
- package/dist/auth-storage/users.d.ts.map +1 -1
- package/dist/execution-storage.d.ts +2 -1
- package/dist/execution-storage.d.ts.map +1 -1
- package/dist/index.js +3348 -1515
- package/dist/index.js.map +32 -26
- package/dist/migrations.d.ts +0 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/objects/conditional-reader.d.ts +8 -0
- package/dist/objects/conditional-reader.d.ts.map +1 -0
- package/dist/objects/query-compiler.d.ts +26 -1
- package/dist/objects/query-compiler.d.ts.map +1 -1
- package/dist/objects/read-scope.d.ts +10 -1
- package/dist/objects/read-scope.d.ts.map +1 -1
- package/dist/objects/reader.d.ts +2 -0
- package/dist/objects/reader.d.ts.map +1 -1
- package/dist/objects/scoped-reader.d.ts +15 -0
- package/dist/objects/scoped-reader.d.ts.map +1 -0
- package/dist/objects/selected-reader.d.ts.map +1 -1
- package/dist/objects/storage.d.ts +6 -1
- package/dist/objects/storage.d.ts.map +1 -1
- package/dist/ontology-storage/index.d.ts +2 -0
- package/dist/ontology-storage/index.d.ts.map +1 -1
- package/dist/ontology-storage/materialization-writer.d.ts +2 -0
- package/dist/ontology-storage/materialization-writer.d.ts.map +1 -1
- package/dist/ontology-storage/materializations.d.ts.map +1 -1
- package/dist/ontology-storage/unique-values.d.ts +42 -0
- package/dist/ontology-storage/unique-values.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/agents/agent-storage.ts +11 -2
- package/src/agents/approvals.ts +456 -0
- package/src/agents/checkpoints.ts +9 -4
- package/src/agents/index.ts +1 -0
- package/src/agents/memory.ts +195 -0
- package/src/agents/messages.ts +21 -18
- package/src/agents/rows.ts +46 -1
- package/src/agents/runs.ts +202 -21
- package/src/agents/settings.ts +112 -0
- package/src/agents/threads.ts +385 -1
- package/src/ai-cost-groups.ts +11 -1
- package/src/ai-cost-storage.ts +54 -12
- package/src/ai-usage-storage.ts +79 -2
- package/src/artifact-storage.ts +206 -9
- package/src/auth-storage/auth-storage.ts +58 -26
- package/src/auth-storage/users.ts +106 -60
- package/src/execution-storage.ts +39 -0
- package/src/migrations/067-artifact-kinds.sql +32 -0
- package/src/migrations/068-artifact-state.sql +15 -0
- package/src/migrations/069-agent-thread-participants.sql +16 -0
- package/src/migrations/070-forked-context-checkpoints.sql +45 -0
- package/src/migrations/071-unique-values.sql +22 -0
- package/src/migrations/072-generated-media-usage.sql +32 -0
- package/src/migrations/073-model-call-files.sql +11 -0
- package/src/migrations/074-agent-memory.sql +32 -0
- package/src/migrations/075-artifact-threads.sql +21 -0
- package/src/migrations/076-agent-approvals.sql +59 -0
- package/src/migrations/077-agent-approval-resume.sql +20 -0
- package/src/migrations/078-subagent-threads.sql +241 -0
- package/src/migrations/079-subagent-questions.sql +6 -0
- package/src/migrations.ts +75 -1
- package/src/objects/README.md +7 -0
- package/src/objects/conditional-reader.ts +27 -0
- package/src/objects/query-compiler.ts +36 -6
- package/src/objects/read-scope.ts +140 -23
- package/src/objects/reader.ts +47 -14
- package/src/objects/scoped-reader.ts +103 -0
- package/src/objects/selected-reader.ts +12 -75
- package/src/objects/storage.ts +16 -0
- package/src/ontology-storage/index.ts +3 -0
- package/src/ontology-storage/materialization-writer.ts +14 -0
- package/src/ontology-storage/materializations.ts +16 -1
- package/src/ontology-storage/unique-values.ts +187 -0
- package/src/transactions.ts +1 -1
package/dist/migrations.d.ts
CHANGED
|
@@ -9,7 +9,6 @@ export declare function sqliteSql(id: string, sqlText: string): MigrationStep<Da
|
|
|
9
9
|
export declare function sqliteStep(id: string, up: (db: Database) => void | Promise<void>, options?: MigrationStepOptions): MigrationStep<Database>;
|
|
10
10
|
/** A new in-memory database holding the current schema, as replaying every migration leaves it. */
|
|
11
11
|
export declare function freshSqliteDatabase(): Database;
|
|
12
|
-
export declare function installFreshSqliteSchema(db: Database): void;
|
|
13
12
|
export declare function createSqliteStorageMigrators(basePath: string): readonly StorageMigrator[];
|
|
14
13
|
export declare function createSqliteMigrator(params: {
|
|
15
14
|
readonly path: string;
|
package/dist/migrations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAGV,YAAY,EACZ,aAAa,EACb,oBAAoB,EACrB,MAAM,oBAAoB,CAAA;AAmI3B,eAAO,MAAM,yBAAyB,sBAAsB,CAAA;AAC5D,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAEnD,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAGV,YAAY,EACZ,aAAa,EACb,oBAAoB,EACrB,MAAM,oBAAoB,CAAA;AAmI3B,eAAO,MAAM,yBAAyB,sBAAsB,CAAA;AAC5D,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAEnD,eAAO,MAAM,uBAAuB,wBAyKlC,CAAA;AAEF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAQ9E;AAED,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC1C,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAAC,QAAQ,CAAC,CAEzB;AAOD,mGAAmG;AACnG,wBAAgB,mBAAmB,IAAI,QAAQ,CAY9C;AAaD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE,CAOzF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;CAC5C,GAAG,eAAe,CAoBlB;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { CompiledConditionalObjectReadScope, ObjectQueryCapabilities, ObjectReadStorage } from "@sixb/core/storage";
|
|
3
|
+
/** Read objects and links through relations that apply the scope's conditions as they are read. */
|
|
4
|
+
export declare function createSqliteConditionalReader(db: Database, params: {
|
|
5
|
+
projectId: string;
|
|
6
|
+
scope: CompiledConditionalObjectReadScope;
|
|
7
|
+
}, queryCapabilities: () => ObjectQueryCapabilities): ObjectReadStorage;
|
|
8
|
+
//# sourceMappingURL=conditional-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditional-reader.d.ts","sourceRoot":"","sources":["../../src/objects/conditional-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EACV,kCAAkC,EAClC,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,oBAAoB,CAAA;AAI3B,mGAAmG;AACnG,wBAAgB,6BAA6B,CAC3C,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE;IACN,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,kCAAkC,CAAA;CAC1C,EACD,iBAAiB,EAAE,MAAM,uBAAuB,GAC/C,iBAAiB,CASnB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ObjectQuery } from "@sixb/core";
|
|
1
|
+
import { type ObjectQuery, type ObjectQueryPredicate } from "@sixb/core";
|
|
2
2
|
export type SqliteValue = string | number | bigint | boolean | null | Uint8Array;
|
|
3
3
|
export interface SqliteObjectQueryPageRow {
|
|
4
4
|
object_type_id: string;
|
|
@@ -30,6 +30,10 @@ interface CompiledHasMoreProbe {
|
|
|
30
30
|
args: SqliteValue[];
|
|
31
31
|
hasMore(rowCount: number): boolean;
|
|
32
32
|
}
|
|
33
|
+
interface CompiledPredicate {
|
|
34
|
+
sql: string;
|
|
35
|
+
args: SqliteValue[];
|
|
36
|
+
}
|
|
33
37
|
interface CompiledOrder {
|
|
34
38
|
sql: string;
|
|
35
39
|
args: SqliteValue[];
|
|
@@ -55,6 +59,12 @@ export interface SqliteObjectQuerySource {
|
|
|
55
59
|
readonly objectsTable: string;
|
|
56
60
|
readonly linksTable: string;
|
|
57
61
|
readonly objectPropertyPermissionsTable?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Where to read one concrete type's objects, when the source can say it more precisely than
|
|
64
|
+
* `objectsTable`: a table and that type's own filter over its `properties`. A statement that
|
|
65
|
+
* reads a single type then holds the filter as a top-level condition, which an index can serve.
|
|
66
|
+
*/
|
|
67
|
+
objectsOfType?(objectTypeId: string): SqliteTypedObjects;
|
|
58
68
|
/** Wrap a terminal SELECT without its own WITH clause; the selected source owns the only WITH. */
|
|
59
69
|
wrapStatement(sql: string, args?: readonly SqliteValue[]): {
|
|
60
70
|
readonly sql: string;
|
|
@@ -62,8 +72,23 @@ export interface SqliteObjectQuerySource {
|
|
|
62
72
|
};
|
|
63
73
|
wrapQuery(query: CompiledObjectQuery): CompiledObjectQuery;
|
|
64
74
|
}
|
|
75
|
+
export interface SqliteTypedObjects {
|
|
76
|
+
readonly table: string;
|
|
77
|
+
readonly filter?: {
|
|
78
|
+
readonly sql: string;
|
|
79
|
+
readonly args: readonly SqliteValue[];
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/** The table and `AND ...` filter a statement reads one type's objects with. */
|
|
83
|
+
export declare function sqliteObjectsOfType(source: SqliteObjectQuerySource, objectTypeId: string): {
|
|
84
|
+
table: string;
|
|
85
|
+
filter: string;
|
|
86
|
+
args: readonly SqliteValue[];
|
|
87
|
+
};
|
|
65
88
|
export declare const DEFAULT_OBJECT_QUERY_SOURCE: SqliteObjectQuerySource;
|
|
66
89
|
/** json_each exposes JSON booleans as integer SQL values; restore their JSON representation. */
|
|
67
90
|
export declare function sqliteJsonEachValue(alias: string): string;
|
|
91
|
+
/** Compile a predicate over the unqualified `properties` column of the relation it filters. */
|
|
92
|
+
export declare function compilePredicate(predicate: ObjectQueryPredicate): CompiledPredicate;
|
|
68
93
|
export {};
|
|
69
94
|
//# sourceMappingURL=query-compiler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../src/objects/query-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../src/objects/query-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CompiledSelectedObjectReadScope } from "@sixb/core/storage";
|
|
1
|
+
import type { CompiledConditionalObjectReadScope, CompiledSelectedObjectReadScope } from "@sixb/core/storage";
|
|
2
2
|
import { type SqliteObjectQuerySource, type SqliteValue } from "./query-compiler";
|
|
3
3
|
export interface SqliteSelectedObjectReadSource extends SqliteObjectQuerySource {
|
|
4
4
|
readonly objectPropertyPermissionsTable: string;
|
|
@@ -19,4 +19,13 @@ export interface SqliteSelectedObjectReadSource extends SqliteObjectQuerySource
|
|
|
19
19
|
* before loading stored values. Exposing stored identities makes traversal rescan grants per edge.
|
|
20
20
|
*/
|
|
21
21
|
export declare function compileSqliteSelectedObjectReadSource(projectId: string, scope: CompiledSelectedObjectReadScope, maxTraversalFacts: number): SqliteSelectedObjectReadSource;
|
|
22
|
+
/**
|
|
23
|
+
* Prepare a conditional scope as SQLite relations that filter stored rows as they are read.
|
|
24
|
+
*
|
|
25
|
+
* Both relations are NOT MATERIALIZED, so SQLite flattens them into each statement: its filters,
|
|
26
|
+
* index seeks and LIMIT reach the stored tables, and the conditions become one more filter. An
|
|
27
|
+
* object of a conditioned type is visible while its condition matches; a link while each of its
|
|
28
|
+
* conditioned endpoints is a visible object.
|
|
29
|
+
*/
|
|
30
|
+
export declare function compileSqliteConditionalObjectReadSource(projectId: string, scope: CompiledConditionalObjectReadScope): SqliteObjectQuerySource;
|
|
22
31
|
//# sourceMappingURL=read-scope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-scope.d.ts","sourceRoot":"","sources":["../../src/objects/read-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"read-scope.d.ts","sourceRoot":"","sources":["../../src/objects/read-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kCAAkC,EAClC,+BAA+B,EAChC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAEjB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,WAAW,8BAA+B,SAAQ,uBAAuB;IAC7E,QAAQ,CAAC,8BAA8B,EAAE,MAAM,CAAA;IAC/C,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAA;KACtC,CAAA;CACF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,+BAA+B,EACtC,iBAAiB,EAAE,MAAM,GACxB,8BAA8B,CA6BhC;AAED;;;;;;;GAOG;AACH,wBAAgB,wCAAwC,CACtD,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,kCAAkC,GACxC,uBAAuB,CAgBzB"}
|
package/dist/objects/reader.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export declare class SqliteObjectReader {
|
|
|
18
18
|
objectTypeId: string;
|
|
19
19
|
primaryId: string;
|
|
20
20
|
}): ObjectRow | null;
|
|
21
|
+
/** On a selected source, the holder must be in scope and selected for the property. */
|
|
22
|
+
getByUniqueValue(params: Parameters<ObjectReadStorage["getByUniqueValue"]>[0]): ObjectRow | null;
|
|
21
23
|
selectsObjectProperties(params: Parameters<ObjectReadStorage["selectsObjectProperties"]>[0]): readonly boolean[];
|
|
22
24
|
listLinks(params: {
|
|
23
25
|
projectId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/objects/reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,cAAc,EAEd,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAGL,KAAK,uBAAuB,
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/objects/reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { ObjectQueryCapabilities, ObjectReadExecutionLimits, ObjectReadStorage } from "@sixb/core/storage";
|
|
3
|
+
import type { SqliteObjectQuerySource } from "./query-compiler";
|
|
4
|
+
/**
|
|
5
|
+
* Answer every terminal from one scoped source, each in its own synchronous snapshot so the
|
|
6
|
+
* statements of one read, and the scope's own checks before them, agree.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createSqliteScopedReader(db: Database, params: {
|
|
9
|
+
projectId: string;
|
|
10
|
+
source: SqliteObjectQuerySource;
|
|
11
|
+
/** Runs first in each read's snapshot. */
|
|
12
|
+
beforeRead?: () => void;
|
|
13
|
+
limits?: ObjectReadExecutionLimits;
|
|
14
|
+
}, queryCapabilities: () => ObjectQueryCapabilities): ObjectReadStorage;
|
|
15
|
+
//# sourceMappingURL=scoped-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoped-reader.d.ts","sourceRoot":"","sources":["../../src/objects/scoped-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,oBAAoB,CAAA;AAO3B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAG/D;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE;IACN,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,uBAAuB,CAAA;IAC/B,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,MAAM,CAAC,EAAE,yBAAyB,CAAA;CACnC,EACD,iBAAiB,EAAE,MAAM,uBAAuB,GAC/C,iBAAiB,CAyEnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selected-reader.d.ts","sourceRoot":"","sources":["../../src/objects/selected-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EACV,+BAA+B,EAC/B,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"selected-reader.d.ts","sourceRoot":"","sources":["../../src/objects/selected-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EACV,+BAA+B,EAC/B,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,oBAAoB,CAAA;AAQ3B,8FAA8F;AAC9F,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE;IACN,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,+BAA+B,CAAA;IACtC,MAAM,EAAE,yBAAyB,CAAA;CAClC,EACD,iBAAiB,EAAE,MAAM,uBAAuB,GAC/C,iBAAiB,CAmBnB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CompiledSelectedObjectReadScope, CountObjectsInput, CountObjectsResult, ExistsObjectsInput, ExistsObjectsResult, FacetObjectsInput, FacetObjectsResult, LinkBatchKey, LinkDirection, ObjectBatchKey, ObjectLinkRow, ObjectQueryCapabilities, ObjectReadExecutionLimits, ObjectReadStorage, ObjectRow, ObjectStorage, QueryObjectLinksInput, QueryObjectLinksResult, QueryObjectsInput, QueryObjectsResult } from "@sixb/core/storage";
|
|
1
|
+
import type { CompiledConditionalObjectReadScope, CompiledSelectedObjectReadScope, CountObjectsInput, CountObjectsResult, ExistsObjectsInput, ExistsObjectsResult, FacetObjectsInput, FacetObjectsResult, LinkBatchKey, LinkDirection, ObjectBatchKey, ObjectLinkRow, ObjectQueryCapabilities, ObjectReadExecutionLimits, ObjectReadStorage, ObjectRow, ObjectStorage, QueryObjectLinksInput, QueryObjectLinksResult, QueryObjectsInput, QueryObjectsResult } from "@sixb/core/storage";
|
|
2
2
|
import { type SqliteStoreConnection } from "../transactions";
|
|
3
3
|
export interface SqliteObjectStorageOptions {
|
|
4
4
|
/** Path to SQLite database file. Defaults to ':memory:' for in-memory database. */
|
|
@@ -23,6 +23,10 @@ export declare class SqliteObjectStorage implements ObjectStorage {
|
|
|
23
23
|
scope: CompiledSelectedObjectReadScope;
|
|
24
24
|
limits: ObjectReadExecutionLimits;
|
|
25
25
|
}): ObjectReadStorage;
|
|
26
|
+
createConditionalReadScope(params: {
|
|
27
|
+
projectId: string;
|
|
28
|
+
scope: CompiledConditionalObjectReadScope;
|
|
29
|
+
}): ObjectReadStorage;
|
|
26
30
|
queryObjects(params: QueryObjectsInput): Promise<QueryObjectsResult>;
|
|
27
31
|
countObjects(params: CountObjectsInput): Promise<CountObjectsResult>;
|
|
28
32
|
existsObjects(params: ExistsObjectsInput): Promise<ExistsObjectsResult>;
|
|
@@ -32,6 +36,7 @@ export declare class SqliteObjectStorage implements ObjectStorage {
|
|
|
32
36
|
objectTypeId: string;
|
|
33
37
|
primaryId: string;
|
|
34
38
|
}): Promise<ObjectRow | null>;
|
|
39
|
+
getByUniqueValue(params: Parameters<ObjectReadStorage["getByUniqueValue"]>[0]): Promise<ObjectRow | null>;
|
|
35
40
|
selectsObjectProperties(params: Parameters<ObjectReadStorage["selectsObjectProperties"]>[0]): Promise<readonly boolean[]>;
|
|
36
41
|
listLinks(params: {
|
|
37
42
|
projectId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/objects/storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+BAA+B,EAC/B,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/objects/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { SqliteOntologyOutboxStorage } from "./outbox";
|
|
|
7
7
|
import { SqliteOntologyReplacementPlanStorage } from "./replacement-plans";
|
|
8
8
|
import type { SqliteRootOperation } from "./shared";
|
|
9
9
|
import { SqliteOntologySourceStorage } from "./sources";
|
|
10
|
+
import { SqliteOntologyUniqueValueStorage } from "./unique-values";
|
|
10
11
|
import { SqliteVectorIndexingStorage } from "./vector-indexing";
|
|
11
12
|
import { SqliteOntologyVectorStorage } from "./vectors";
|
|
12
13
|
export declare class SqliteOntologyStorage implements OntologyStorage {
|
|
@@ -17,6 +18,7 @@ export declare class SqliteOntologyStorage implements OntologyStorage {
|
|
|
17
18
|
readonly vectorIndexing: SqliteVectorIndexingStorage;
|
|
18
19
|
readonly vectors: SqliteOntologyVectorStorage;
|
|
19
20
|
readonly outbox: SqliteOntologyOutboxStorage;
|
|
21
|
+
readonly uniqueValues: SqliteOntologyUniqueValueStorage;
|
|
20
22
|
constructor(input: {
|
|
21
23
|
readonly db: Database;
|
|
22
24
|
readonly runRootOperation: SqliteRootOperation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AACjF,OAAO,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,oCAAoC,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAA;AAEvD,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAA;IAC7C,QAAQ,CAAC,gBAAgB,EAAE,oCAAoC,CAAA;IAC/D,QAAQ,CAAC,gBAAgB,EAAE,oCAAoC,CAAA;IAC/D,QAAQ,CAAC,cAAc,EAAE,2BAA2B,CAAA;IACpD,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAA;IAC7C,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AACjF,OAAO,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,oCAAoC,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAA;AAEvD,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAA;IAC7C,QAAQ,CAAC,gBAAgB,EAAE,oCAAoC,CAAA;IAC/D,QAAQ,CAAC,gBAAgB,EAAE,oCAAoC,CAAA;IAC/D,QAAQ,CAAC,cAAc,EAAE,2BAA2B,CAAA;IACpD,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAA;IAC7C,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAA;IAC5C,QAAQ,CAAC,YAAY,EAAE,gCAAgC,CAAA;gBAE3C,KAAK,EAAE;QACjB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;QACrB,QAAQ,CAAC,gBAAgB,EAAE,mBAAmB,CAAA;QAC9C,QAAQ,CAAC,kBAAkB,EAAE,gCAAgC,GAAG,IAAI,CAAA;KACrE;IA0BD,kBAAkB,IAAI,IAAI;CAG3B;AAED,YAAY,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA"}
|
|
@@ -5,6 +5,8 @@ export declare class SqliteMaterializationWriter {
|
|
|
5
5
|
private readonly db;
|
|
6
6
|
constructor(db: Database);
|
|
7
7
|
apply(projectId: string, commitId: string, chunk: MaterializationPlanChunk): void;
|
|
8
|
+
/** A chunk holds one phase: the commit's releases all apply before its first claim. */
|
|
9
|
+
private applyUniqueValues;
|
|
8
10
|
private applyOverrides;
|
|
9
11
|
private applyEffective;
|
|
10
12
|
private applyObject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialization-writer.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/materialization-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAO1C,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,+CAA+C,CAAA;
|
|
1
|
+
{"version":3,"file":"materialization-writer.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/materialization-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAO1C,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,+CAA+C,CAAA;AAmBtD,iFAAiF;AACjF,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEzC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,GAAG,IAAI;IAQjF,uFAAuF;IACvF,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,cAAc;IA8KtB,OAAO,CAAC,cAAc;IA+CtB,OAAO,CAAC,WAAW;IA2DnB,OAAO,CAAC,SAAS;IA8DjB,OAAO,CAAC,eAAe;IA8DvB,OAAO,CAAC,WAAW;CA8BpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materializations.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/materializations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA8B1C,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EAEzB,sBAAsB,EACtB,wBAAwB,EACxB,+BAA+B,EAE/B,8BAA8B,EAE9B,6BAA6B,EAC7B,+BAA+B,EAC/B,uCAAuC,EACxC,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAGL,KAAK,gCAAgC,EACtC,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"materializations.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/materializations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA8B1C,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EAEzB,sBAAsB,EACtB,wBAAwB,EACxB,+BAA+B,EAE/B,8BAA8B,EAE9B,6BAA6B,EAC7B,+BAA+B,EAC/B,uCAAuC,EACxC,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAGL,KAAK,gCAAgC,EACtC,MAAM,2BAA2B,CAAA;AAmElC,qBAAa,oCAAqC,YAAW,8BAA8B;IAKvF,OAAO,CAAC,QAAQ,CAAC,EAAE;IAJrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;gBAGjC,EAAE,EAAE,QAAQ,EAC7B,OAAO,EAAE,gCAAgC,GAAG,IAAI;IAMlD,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAY1F,KAAK,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAqCvE,WAAW,CAChB,KAAK,EAAE,+BAA+B,GACrC,aAAa,CAAC,wBAAwB,CAAC;IA+DpC,SAAS,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D,mBAAmB,CACxB,KAAK,EAAE,uCAAuC,GAC7C,aAAa,CAAC,+BAA+B,CAAC;IAa3C,KAAK,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA2CxE,QAAQ,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAYxF,kBAAkB,IAAI,IAAI;IAI1B,OAAO,CAAC,kBAAkB;IA+C1B,OAAO,CAAC,YAAY;YAgBN,kBAAkB;IAsDhC,OAAO,CAAC,sBAAsB;IAkD9B,OAAO,CAAC,cAAc;IAsGtB,OAAO,CAAC,YAAY;IAkDpB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,SAAS;CAYlB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { ExactUniqueValueClaim, ExactUniqueValueWrite, OntologyUniqueValueStorage, PreparedUniqueProperty, UniqueValueEntry, UniqueValueRef } from "@sixb/core/storage";
|
|
3
|
+
import type { SqliteRootOperation } from "./shared";
|
|
4
|
+
/** The object holding a unique value, or null when none does. */
|
|
5
|
+
export declare function sqliteUniqueHolder(db: Database, projectId: string, value: UniqueValueRef): string | null;
|
|
6
|
+
/** Gives the value to its object, unless another object holds it. */
|
|
7
|
+
export declare function claimSqliteUniqueValue(db: Database, projectId: string, value: ExactUniqueValueWrite): void;
|
|
8
|
+
/**
|
|
9
|
+
* Refuses claims on a property whose values were not built with the claims' keys. Each property
|
|
10
|
+
* is checked once per call, however many of its values the claims take.
|
|
11
|
+
*/
|
|
12
|
+
export declare function assertSqliteUniquePrepared(db: Database, projectId: string, claims: readonly ExactUniqueValueClaim[]): void;
|
|
13
|
+
/** Drops the value if its object still holds it. */
|
|
14
|
+
export declare function releaseSqliteUniqueValue(db: Database, projectId: string, value: ExactUniqueValueWrite): void;
|
|
15
|
+
export declare class SqliteOntologyUniqueValueStorage implements OntologyUniqueValueStorage {
|
|
16
|
+
private readonly db;
|
|
17
|
+
private readonly runRootOperation;
|
|
18
|
+
constructor(db: Database, runRootOperation: SqliteRootOperation);
|
|
19
|
+
/** A SQLite database has one writer at a time: preparers already take turns. */
|
|
20
|
+
lockPreparation(_input: {
|
|
21
|
+
readonly projectId: string;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
listPrepared(input: {
|
|
24
|
+
readonly projectId: string;
|
|
25
|
+
}): Promise<readonly PreparedUniqueProperty[]>;
|
|
26
|
+
clear(input: {
|
|
27
|
+
readonly projectId: string;
|
|
28
|
+
readonly objectTypeId: string;
|
|
29
|
+
readonly propertyId: string;
|
|
30
|
+
}): Promise<void>;
|
|
31
|
+
insert(input: {
|
|
32
|
+
readonly projectId: string;
|
|
33
|
+
readonly objectTypeId: string;
|
|
34
|
+
readonly propertyId: string;
|
|
35
|
+
readonly entries: readonly UniqueValueEntry[];
|
|
36
|
+
}): Promise<void>;
|
|
37
|
+
markPrepared(input: PreparedUniqueProperty & {
|
|
38
|
+
readonly projectId: string;
|
|
39
|
+
readonly preparedAt: string;
|
|
40
|
+
}): Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=unique-values.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unique-values.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/unique-values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAK1C,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEnD,iEAAiE;AACjE,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,cAAc,GACpB,MAAM,GAAG,IAAI,CAUf;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,qBAAqB,GAC3B,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,qBAAqB,EAAE,GACvC,IAAI,CA2BN;AAED,oDAAoD;AACpD,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,qBAAqB,GAC3B,IAAI,CAMN;AAED,qBAAa,gCAAiC,YAAW,0BAA0B;IAE/E,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBADhB,EAAE,EAAE,QAAQ,EACZ,gBAAgB,EAAE,mBAAmB;IAGxD,gFAAgF;IAC1E,eAAe,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAEtE,YAAY,CAAC,KAAK,EAAE;QACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAC3B,GAAG,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC;IAuBxC,KAAK,CAAC,KAAK,EAAE;QACjB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;QAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IAYX,MAAM,CAAC,KAAK,EAAE;QAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;QAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAA;KAC9C,GAAG,OAAO,CAAC,IAAI,CAAC;IASX,YAAY,CAChB,KAAK,EAAE,sBAAsB,GAAG;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAC1F,OAAO,CAAC,IAAI,CAAC;CAqBjB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sixb/sqlite",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"description": "SQLite storage provider for Sixb",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sixb",
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
"prepack": "bun run build"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@sixb/core": "0.1.
|
|
40
|
+
"@sixb/core": "0.1.22"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@sixb/core": "0.1.
|
|
43
|
+
"@sixb/core": "0.1.22",
|
|
44
44
|
"@types/bun": "latest",
|
|
45
45
|
"typescript": "^5.7.0"
|
|
46
46
|
},
|
|
@@ -4,9 +4,12 @@ import {
|
|
|
4
4
|
openSqliteStoreConnection,
|
|
5
5
|
type SqliteStoreConnection,
|
|
6
6
|
} from "../transactions"
|
|
7
|
+
import { SqliteAgentApprovalStore } from "./approvals"
|
|
7
8
|
import { SqliteAgentContextCheckpointStore } from "./checkpoints"
|
|
9
|
+
import { SqliteAgentMemoryStore } from "./memory"
|
|
8
10
|
import { SqliteAgentMessageStore } from "./messages"
|
|
9
11
|
import { SqliteAgentRunStore } from "./runs"
|
|
12
|
+
import { SqliteAgentApprovalModeStore } from "./settings"
|
|
10
13
|
import { SqliteAgentThreadStore } from "./threads"
|
|
11
14
|
|
|
12
15
|
export interface SqliteAgentStorageOptions {
|
|
@@ -19,8 +22,8 @@ export interface SqliteAgentStorageOptions {
|
|
|
19
22
|
}
|
|
20
23
|
|
|
21
24
|
/**
|
|
22
|
-
* SQLite-backed agent persistence: thread, run, message,
|
|
23
|
-
* one connection. Cross-table writes run in SQLite transactions; the bundled {@link SqliteStorage}
|
|
25
|
+
* SQLite-backed agent persistence: thread, run, message, context-checkpoint, memory, approval and
|
|
26
|
+
* approval-mode sub-stores sharing one connection. Cross-table writes run in SQLite transactions; the bundled {@link SqliteStorage}
|
|
24
27
|
* serializes them for single-flight and checkpoint compare-and-swap safety.
|
|
25
28
|
*/
|
|
26
29
|
export class SqliteAgentStorage implements AgentStorage {
|
|
@@ -28,6 +31,9 @@ export class SqliteAgentStorage implements AgentStorage {
|
|
|
28
31
|
readonly runs: SqliteAgentRunStore
|
|
29
32
|
readonly messages: SqliteAgentMessageStore
|
|
30
33
|
readonly checkpoints: SqliteAgentContextCheckpointStore
|
|
34
|
+
readonly memory: SqliteAgentMemoryStore
|
|
35
|
+
readonly approvals: SqliteAgentApprovalStore
|
|
36
|
+
readonly approvalModes: SqliteAgentApprovalModeStore
|
|
31
37
|
|
|
32
38
|
private readonly connection: SqliteStoreConnection
|
|
33
39
|
|
|
@@ -38,6 +44,9 @@ export class SqliteAgentStorage implements AgentStorage {
|
|
|
38
44
|
this.runs = new SqliteAgentRunStore(this.connection.db, options.executions)
|
|
39
45
|
this.messages = new SqliteAgentMessageStore(this.connection.db)
|
|
40
46
|
this.checkpoints = new SqliteAgentContextCheckpointStore(this.connection.db)
|
|
47
|
+
this.memory = new SqliteAgentMemoryStore(this.connection.db)
|
|
48
|
+
this.approvals = new SqliteAgentApprovalStore(this.connection.db)
|
|
49
|
+
this.approvalModes = new SqliteAgentApprovalModeStore(this.connection.db)
|
|
41
50
|
}
|
|
42
51
|
|
|
43
52
|
close(): void {
|