@sixb/sqlite 0.1.11 → 0.1.12
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 +32 -0
- package/dist/agents/rows.d.ts +2 -0
- package/dist/agents/rows.d.ts.map +1 -1
- package/dist/agents/threads.d.ts +2 -1
- package/dist/agents/threads.d.ts.map +1 -1
- package/dist/index.js +676 -61
- package/dist/index.js.map +18 -14
- package/dist/migrations.d.ts.map +1 -1
- package/dist/objects/query-compiler.d.ts +9 -2
- package/dist/objects/query-compiler.d.ts.map +1 -1
- package/dist/objects/read-scope.d.ts +3 -0
- package/dist/objects/read-scope.d.ts.map +1 -1
- package/dist/objects/reader.d.ts +1 -0
- package/dist/objects/reader.d.ts.map +1 -1
- package/dist/objects/rows.d.ts +1 -0
- package/dist/objects/rows.d.ts.map +1 -1
- package/dist/objects/storage.d.ts.map +1 -1
- package/dist/objects/vector-extension.d.ts +4 -0
- package/dist/objects/vector-extension.d.ts.map +1 -0
- package/dist/ontology-storage/index.d.ts +4 -0
- package/dist/ontology-storage/index.d.ts.map +1 -1
- package/dist/ontology-storage/materializations.d.ts +1 -0
- package/dist/ontology-storage/materializations.d.ts.map +1 -1
- package/dist/ontology-storage/vector-indexing.d.ts +20 -0
- package/dist/ontology-storage/vector-indexing.d.ts.map +1 -0
- package/dist/ontology-storage/vectors.d.ts +16 -0
- package/dist/ontology-storage/vectors.d.ts.map +1 -0
- package/dist/vector-encoding.d.ts +3 -0
- package/dist/vector-encoding.d.ts.map +1 -0
- package/package.json +8 -4
- package/src/agents/rows.ts +12 -0
- package/src/agents/threads.ts +41 -2
- package/src/ai-cost-storage.ts +4 -0
- package/src/migrations/041-agent-thread-workspaces.sql +2 -0
- package/src/migrations/042-vector-profiles.sql +21 -0
- package/src/migrations/043-vector-indexing.sql +197 -0
- package/src/migrations/044-vector-batching.sql +3 -0
- package/src/migrations/045-agent-thread-sandbox-state.sql +2 -0
- package/src/migrations.ts +14 -0
- package/src/objects/query-compiler.ts +105 -7
- package/src/objects/read-scope.ts +34 -31
- package/src/objects/reader.ts +25 -1
- package/src/objects/rows.ts +5 -1
- package/src/objects/storage.ts +12 -1
- package/src/objects/vector-extension.ts +26 -0
- package/src/ontology-storage/index.ts +16 -0
- package/src/ontology-storage/materializations.ts +13 -0
- package/src/ontology-storage/vector-indexing.ts +196 -0
- package/src/ontology-storage/vectors.ts +182 -0
- package/src/vector-encoding.ts +9 -0
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;
|
|
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;AA8G3B,eAAO,MAAM,yBAAyB,sBAAsB,CAAA;AAC5D,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAEnD,eAAO,MAAM,uBAAuB,wBAoFlC,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;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAS3D;AAED,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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ObjectQuery } from "@sixb/core";
|
|
2
|
-
export type SqliteValue = string | number | bigint | boolean | null;
|
|
2
|
+
export type SqliteValue = string | number | bigint | boolean | null | Uint8Array;
|
|
3
3
|
export interface SqliteObjectQueryPageRow {
|
|
4
4
|
object_type_id: string;
|
|
5
5
|
primary_id: string;
|
|
@@ -7,6 +7,11 @@ export interface SqliteObjectQueryPageRow {
|
|
|
7
7
|
_cursor_properties?: string;
|
|
8
8
|
}
|
|
9
9
|
export interface CompiledObjectQuery {
|
|
10
|
+
vectorProbe?: {
|
|
11
|
+
sql: string;
|
|
12
|
+
args: SqliteValue[];
|
|
13
|
+
limit: number;
|
|
14
|
+
};
|
|
10
15
|
sql: string;
|
|
11
16
|
args: SqliteValue[];
|
|
12
17
|
totalSql: string;
|
|
@@ -34,7 +39,8 @@ type CompiledOrderField = {
|
|
|
34
39
|
direction: "asc" | "desc";
|
|
35
40
|
} | {
|
|
36
41
|
kind: "column";
|
|
37
|
-
column: "object_type_id" | "primary_id";
|
|
42
|
+
column: "object_type_id" | "primary_id" | "_vector_score";
|
|
43
|
+
binary?: boolean;
|
|
38
44
|
direction: "asc" | "desc";
|
|
39
45
|
};
|
|
40
46
|
export declare function compileObjectQuery(projectId: string, query: ObjectQuery, options?: {
|
|
@@ -45,6 +51,7 @@ export declare function compileObjectQuery(projectId: string, query: ObjectQuery
|
|
|
45
51
|
export interface SqliteObjectQuerySource {
|
|
46
52
|
readonly objectsTable: string;
|
|
47
53
|
readonly linksTable: string;
|
|
54
|
+
readonly objectPropertyPermissionsTable?: string;
|
|
48
55
|
/** Wrap a terminal SELECT without its own WITH clause; the selected source owns the only WITH. */
|
|
49
56
|
wrapStatement(sql: string, args?: readonly SqliteValue[]): {
|
|
50
57
|
readonly sql: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../src/objects/query-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAKjB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../src/objects/query-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAKjB,MAAM,YAAY,CAAA;AASnB,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,UAAU,CAAA;AAEhF,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACjE,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,WAAW,EAAE,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,WAAW,EAAE,CAAA;IACxB,KAAK,EAAE,aAAa,CAAA;IACpB,YAAY,CAAC,EAAE,oBAAoB,CAAA;IACnC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAClD,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAA;IAC7C,aAAa,CAAC,IAAI,EAAE,SAAS,wBAAwB,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAC/F;AAED,UAAU,oBAAoB;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,WAAW,EAAE,CAAA;IACnB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;CACnC;AAYD,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,WAAW,EAAE,CAAA;IACnB,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACrC,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,KAAK,kBAAkB,GACnB;IACE,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;CAC1B,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,gBAAgB,GAAG,YAAY,GAAG,eAAe,CAAA;IACzD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;CAC1B,CAAA;AAoBL,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,uBAAuB,CAAA;CAAO,GACzE,mBAAmB,CAUrB;AAED,4DAA4D;AAC5D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAA;IAChD,kGAAkG;IAClG,aAAa,CACX,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,SAAS,WAAW,EAAE,GAC5B;QACD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAA;KACtC,CAAA;IACD,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAAA;CAC3D;AAED,eAAO,MAAM,2BAA2B,EAAE,uBAKzC,CAAA;AA4xBD,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMzD"}
|
|
@@ -12,6 +12,9 @@ export interface SqliteSelectedObjectReadSource extends SqliteObjectQuerySource
|
|
|
12
12
|
*
|
|
13
13
|
* The complete compiled scope is serialized once. Every statement receives that one JSON document
|
|
14
14
|
* and the bound project id, keeping the host-parameter count constant as selections grow.
|
|
15
|
+
* CROSS JOIN keeps authorized parents/grants before indexed edge/object lookups, even when
|
|
16
|
+
* statistics would otherwise make SQLite rescan all grants for every stored object.
|
|
17
|
+
* Property grants are grouped only after path-sensitive reachability has been resolved.
|
|
15
18
|
*/
|
|
16
19
|
export declare function compileSqliteSelectedObjectReadSource(projectId: string, scope: CompiledSelectedObjectReadScope, maxTraversalFacts: number): SqliteSelectedObjectReadSource;
|
|
17
20
|
//# 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,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAEL,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
|
|
1
|
+
{"version":3,"file":"read-scope.d.ts","sourceRoot":"","sources":["../../src/objects/read-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAEL,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;;;;;;;;GAQG;AACH,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,+BAA+B,EACtC,iBAAiB,EAAE,MAAM,GACxB,8BAA8B,CAoDhC"}
|
package/dist/objects/reader.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare class SqliteObjectReader {
|
|
|
7
7
|
private readonly db;
|
|
8
8
|
private readonly source;
|
|
9
9
|
constructor(db: Database, source: SqliteObjectQuerySource | SqliteSelectedObjectReadSource);
|
|
10
|
+
private assertVectorSearch;
|
|
10
11
|
queryObjects(params: QueryObjectsInput): QueryObjectsResult;
|
|
11
12
|
countObjects(params: CountObjectsInput): CountObjectsResult;
|
|
12
13
|
existsObjects(params: ExistsObjectsInput): ExistsObjectsResult;
|
|
@@ -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;
|
|
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,EAE7B,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAA;AAWlE,qGAAqG;AACrG,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,uBAAuB,GAAG,8BAA8B;IAGnF,OAAO,CAAC,kBAAkB;IAiB1B,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB;IAyB3D,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB;IAa3D,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,mBAAmB;IAS9D,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB;IAc3D,cAAc,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,MAAM,CAAA;QACjB,YAAY,EAAE,MAAM,CAAA;QACpB,SAAS,EAAE,MAAM,CAAA;KAClB,GAAG,SAAS,GAAG,IAAI;IAYpB,uBAAuB,CACrB,MAAM,EAAE,UAAU,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,GAClE,SAAS,OAAO,EAAE;IA8BrB,SAAS,CAAC,MAAM,EAAE;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,YAAY,EAAE,MAAM,CAAA;QACpB,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,aAAa,CAAA;KAC1B,GAAG,SAAS,aAAa,EAAE;IAgC5B,mBAAmB,CAAC,MAAM,EAAE;QAC1B,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,SAAS;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC9D,GAAG,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC;IA4BlC,cAAc,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,aAAa,CAAA;QACzB,KAAK,EAAE,SAAS;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC7E,GAAG,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC;IA+CtC,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,sBAAsB;IAiFjE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACtD,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;QAC7B,OAAO,EAAE,OAAO,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;KACd;CA6EF;AAYD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIxD"}
|
package/dist/objects/rows.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export interface DatabaseRow {
|
|
|
14
14
|
last_commit_id: string;
|
|
15
15
|
}
|
|
16
16
|
export interface ObjectQueryDatabaseRow extends DatabaseRow {
|
|
17
|
+
_vector_score?: number;
|
|
17
18
|
_cursor_properties?: string;
|
|
18
19
|
/** `json_object(linkId, value, ...)` serialized text from an `expand` pushdown; absent otherwise. */
|
|
19
20
|
_expand?: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/objects/rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,aAAa,EACb,SAAS,EAEV,MAAM,oBAAoB,CAAA;AAE3B,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,CAWvD;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,sBAAsB,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/objects/rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,aAAa,EACb,SAAS,EAEV,MAAM,oBAAoB,CAAA;AAE3B,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,CAWvD;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,sBAAsB,GAAG,SAAS,CAOvE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,aAAa,CAa7D;AAqDD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qGAAqG;IACrG,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;CACvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/objects/storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/objects/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-extension.d.ts","sourceRoot":"","sources":["../../src/objects/vector-extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAM1C,gGAAgG;AAChG,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAkB3D"}
|
|
@@ -6,10 +6,14 @@ import { SqliteOntologyMaterializationStorage } from "./materializations";
|
|
|
6
6
|
import { SqliteOntologyOutboxStorage } from "./outbox";
|
|
7
7
|
import type { SqliteRootOperation } from "./shared";
|
|
8
8
|
import { SqliteOntologySourceStorage } from "./sources";
|
|
9
|
+
import { SqliteVectorIndexingStorage } from "./vector-indexing";
|
|
10
|
+
import { SqliteOntologyVectorStorage } from "./vectors";
|
|
9
11
|
export declare class SqliteOntologyStorage implements OntologyStorage {
|
|
10
12
|
readonly commits: SqliteOntologyCommitStorage;
|
|
11
13
|
readonly sources: SqliteOntologySourceStorage;
|
|
12
14
|
readonly materializations: SqliteOntologyMaterializationStorage;
|
|
15
|
+
readonly vectorIndexing: SqliteVectorIndexingStorage;
|
|
16
|
+
readonly vectors: SqliteOntologyVectorStorage;
|
|
13
17
|
readonly outbox: SqliteOntologyOutboxStorage;
|
|
14
18
|
constructor(input: {
|
|
15
19
|
readonly db: Database;
|
|
@@ -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,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,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,MAAM,EAAE,2BAA2B,CAAA;gBAEhC,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;
|
|
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,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAA;AAEvD,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,cAAc,EAAE,2BAA2B,CAAA;IACpD,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAA;IAC7C,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAA;gBAEhC,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;IAqBD,kBAAkB,IAAI,IAAI;CAG3B;AAED,YAAY,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA"}
|
|
@@ -6,6 +6,7 @@ export declare class SqliteOntologyMaterializationStorage implements OntologyMat
|
|
|
6
6
|
private readonly sessions;
|
|
7
7
|
private readonly writer;
|
|
8
8
|
constructor(db: Database, context: SqliteOntologyTransactionContext | null);
|
|
9
|
+
assertVectorSession(session: MaterializationSession, projectId: string, commitId?: string): void;
|
|
9
10
|
begin(input: MaterializationPlanHeader): Promise<MaterializationSession>;
|
|
10
11
|
streamState(input: StreamMaterializationStateInput): AsyncIterable<MaterializationStatePage>;
|
|
11
12
|
streamSourceReplacementState(input: StreamSourceReplacementStateInput): AsyncIterable<SourceReplacementStatePage>;
|
|
@@ -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;
|
|
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;AA4B1C,OAAO,KAAK,EACV,8BAA8B,EAC9B,0BAA0B,EAC1B,4BAA4B,EAC5B,8BAA8B,EAC9B,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EAEvB,8BAA8B,EAC9B,uCAAuC,EAEvC,0BAA0B,EAC1B,6BAA6B,EAC7B,+BAA+B,EAC/B,8BAA8B,EAC9B,iCAAiC,EAClC,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAGL,KAAK,gCAAgC,EACtC,MAAM,2BAA2B,CAAA;AAkBlC,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;IAmCvE,WAAW,CAChB,KAAK,EAAE,+BAA+B,GACrC,aAAa,CAAC,wBAAwB,CAAC;IAmDnC,4BAA4B,CACjC,KAAK,EAAE,iCAAiC,GACvC,aAAa,CAAC,0BAA0B,CAAC;IA6FtC,SAAS,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,UAAU,CAAC,KAAK,EAAE,8BAA8B,GAAG,aAAa,CAAC,uBAAuB,CAAC;IAKnF,mBAAmB,CACvB,KAAK,EAAE,uCAAuC,GAC7C,OAAO,CAAC,SAAS,8BAA8B,EAAE,CAAC;IAK/C,UAAU,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBhE,QAAQ,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAYxF,kBAAkB,IAAI,IAAI;IAI1B,OAAO,CAAC,kBAAkB;IA4D1B,OAAO,CAAC,kBAAkB;IA+C1B,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,UAAU;YAsBJ,kBAAkB;IAwDhC,OAAO,CAAC,sBAAsB;IAwD9B,OAAO,CAAC,cAAc;IAsGtB,OAAO,CAAC,YAAY;IAmDpB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,SAAS;CAYlB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import { type MaterializationSession, type OntologyVectorIndexingStorage, type VectorIndexingWork } from "@sixb/core/storage";
|
|
3
|
+
import type { SqliteRootOperation } from "./shared";
|
|
4
|
+
export declare class SqliteVectorIndexingStorage implements OntologyVectorIndexingStorage {
|
|
5
|
+
private readonly db;
|
|
6
|
+
private readonly run;
|
|
7
|
+
private readonly assertSession;
|
|
8
|
+
constructor(db: Database, run: SqliteRootOperation, assertSession: (session: MaterializationSession, projectId: string) => void);
|
|
9
|
+
schedule(input: Parameters<OntologyVectorIndexingStorage["schedule"]>[0]): Promise<void>;
|
|
10
|
+
complete(input: Parameters<OntologyVectorIndexingStorage["complete"]>[0]): Promise<void>;
|
|
11
|
+
dispatched(input: Parameters<OntologyVectorIndexingStorage["dispatched"]>[0]): Promise<void>;
|
|
12
|
+
get(input: Parameters<OntologyVectorIndexingStorage["get"]>[0]): Promise<VectorIndexingWork | null>;
|
|
13
|
+
getBatch(input: Parameters<OntologyVectorIndexingStorage["getBatch"]>[0]): Promise<VectorIndexingWork[]>;
|
|
14
|
+
getBatchMember(input: Parameters<OntologyVectorIndexingStorage["getBatchMember"]>[0]): Promise<VectorIndexingWork | null>;
|
|
15
|
+
updateBatch(input: Parameters<OntologyVectorIndexingStorage["updateBatch"]>[0]): Promise<boolean>;
|
|
16
|
+
listDue(input: Parameters<OntologyVectorIndexingStorage["listDue"]>[0]): Promise<VectorIndexingWork[]>;
|
|
17
|
+
update(input: Parameters<OntologyVectorIndexingStorage["update"]>[0]): Promise<boolean>;
|
|
18
|
+
remove(input: Parameters<OntologyVectorIndexingStorage["remove"]>[0]): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=vector-indexing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-indexing.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/vector-indexing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAGlC,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAUnD,qBAAa,2BAA4B,YAAW,6BAA6B;IAE7E,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,mBAAmB,EACxB,aAAa,EAAE,CAAC,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI;IAExF,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAyBxE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAiBxE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAQ5E,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAU9D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAWxE,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,6BAA6B,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAkBpF,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IA+B9E,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAUtE,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAkBpE,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CAO3E"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { MaterializationSession, ObjectVectorState, OntologyVectorStorage } from "@sixb/core/storage";
|
|
3
|
+
import type { SqliteRootOperation } from "./shared";
|
|
4
|
+
export declare class SqliteOntologyVectorStorage implements OntologyVectorStorage {
|
|
5
|
+
private readonly db;
|
|
6
|
+
private readonly runRootOperation;
|
|
7
|
+
private readonly assertSession;
|
|
8
|
+
constructor(db: Database, runRootOperation: SqliteRootOperation, assertSession: (session: MaterializationSession, projectId: string, commitId?: string) => void);
|
|
9
|
+
list(input: Parameters<OntologyVectorStorage["list"]>[0]): Promise<readonly ObjectVectorState[]>;
|
|
10
|
+
listBatch(input: Parameters<OntologyVectorStorage["listBatch"]>[0]): Promise<readonly ObjectVectorState[]>;
|
|
11
|
+
removeBatch(input: Parameters<OntologyVectorStorage["removeBatch"]>[0]): Promise<void>;
|
|
12
|
+
write(input: Parameters<OntologyVectorStorage["write"]>[0]): Promise<void>;
|
|
13
|
+
writeBatch(input: Parameters<OntologyVectorStorage["writeBatch"]>[0]): Promise<void>;
|
|
14
|
+
remove(input: Parameters<OntologyVectorStorage["remove"]>[0]): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=vectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vectors.d.ts","sourceRoot":"","sources":["../../src/ontology-storage/vectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,KAAK,EACV,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAUnD,qBAAa,2BAA4B,YAAW,qBAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,EAAE,EAAE,QAAQ,EACZ,gBAAgB,EAAE,mBAAmB,EACrC,aAAa,EAAE,CAC9B,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,KACd,IAAI;IAGL,IAAI,CACR,KAAK,EAAE,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAClD,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC;IAqBlC,SAAS,CACb,KAAK,EAAE,UAAU,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GACvD,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC;IAgClC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBtF,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD1E,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpF,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBnF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-encoding.d.ts","sourceRoot":"","sources":["../src/vector-encoding.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAOxE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sixb/sqlite",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"description": "SQLite storage provider for Sixb",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sixb",
|
|
@@ -33,13 +33,14 @@
|
|
|
33
33
|
"build": "bun ../../scripts/build-package.ts",
|
|
34
34
|
"typecheck": "tsc --noEmit",
|
|
35
35
|
"test": "bun test",
|
|
36
|
+
"test:e2e": "bun test ./tests/*.e2e.ts",
|
|
36
37
|
"prepack": "bun run build"
|
|
37
38
|
},
|
|
38
39
|
"peerDependencies": {
|
|
39
|
-
"@sixb/core": "0.1.
|
|
40
|
+
"@sixb/core": "0.1.12"
|
|
40
41
|
},
|
|
41
42
|
"devDependencies": {
|
|
42
|
-
"@sixb/core": "0.1.
|
|
43
|
+
"@sixb/core": "0.1.12",
|
|
43
44
|
"@types/bun": "latest",
|
|
44
45
|
"typescript": "^5.7.0"
|
|
45
46
|
},
|
|
@@ -55,5 +56,8 @@
|
|
|
55
56
|
"src",
|
|
56
57
|
"README.md",
|
|
57
58
|
"LICENSE"
|
|
58
|
-
]
|
|
59
|
+
],
|
|
60
|
+
"dependencies": {
|
|
61
|
+
"sqlite-vec": "0.1.9"
|
|
62
|
+
}
|
|
59
63
|
}
|
package/src/agents/rows.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Database } from "bun:sqlite"
|
|
2
2
|
import type { AgentMessagePart, Principal } from "@sixb/core"
|
|
3
|
+
import { snapshotAgentThreadSandboxParams } from "@sixb/core/internal/agent-run-storage-provider"
|
|
3
4
|
import { parseSixbFailure } from "@sixb/core/internal/errors"
|
|
4
5
|
import {
|
|
5
6
|
AGENT_RUN_FAILURE_CODES,
|
|
@@ -8,6 +9,7 @@ import {
|
|
|
8
9
|
type AgentRunDiagnostic,
|
|
9
10
|
type AgentRunRecord,
|
|
10
11
|
type AgentThreadRecord,
|
|
12
|
+
type AgentThreadSandboxState,
|
|
11
13
|
type ConversationAgentRunSpec,
|
|
12
14
|
coerceAgentRunFinishReason,
|
|
13
15
|
type SubagentRunResult,
|
|
@@ -23,6 +25,8 @@ export interface AgentThreadRow {
|
|
|
23
25
|
owner_principal_type: Principal["type"]
|
|
24
26
|
owner_principal_id: string
|
|
25
27
|
title: string | null
|
|
28
|
+
sandbox_params: string | null
|
|
29
|
+
sandbox_state: string | null
|
|
26
30
|
status: AgentThreadRecord["status"]
|
|
27
31
|
active_run_id: string | null
|
|
28
32
|
last_message_at: string | null
|
|
@@ -96,6 +100,14 @@ export function rowToThreadRecord(row: AgentThreadRow): AgentThreadRecord {
|
|
|
96
100
|
projectId: row.project_id,
|
|
97
101
|
ownerPrincipal: { type: row.owner_principal_type, id: row.owner_principal_id },
|
|
98
102
|
title: row.title ?? undefined,
|
|
103
|
+
...(row.sandbox_state == null
|
|
104
|
+
? {}
|
|
105
|
+
: {
|
|
106
|
+
sandboxState: JSON.parse(row.sandbox_state) as AgentThreadSandboxState,
|
|
107
|
+
}),
|
|
108
|
+
...(row.sandbox_params == null
|
|
109
|
+
? {}
|
|
110
|
+
: { sandboxParams: snapshotAgentThreadSandboxParams(JSON.parse(row.sandbox_params)) }),
|
|
99
111
|
status: row.status,
|
|
100
112
|
activeRunId: row.active_run_id,
|
|
101
113
|
lastMessageAt: row.last_message_at ? new Date(row.last_message_at) : undefined,
|
package/src/agents/threads.ts
CHANGED
|
@@ -1,20 +1,57 @@
|
|
|
1
1
|
import type { Database } from "bun:sqlite"
|
|
2
|
+
import {
|
|
3
|
+
snapshotAgentThreadSandboxParams,
|
|
4
|
+
transitionAgentThreadSandbox,
|
|
5
|
+
} from "@sixb/core/internal/agent-run-storage-provider"
|
|
2
6
|
import {
|
|
3
7
|
AgentStorageError,
|
|
4
8
|
type AgentThreadRecord,
|
|
9
|
+
type AgentThreadSandboxState,
|
|
5
10
|
type AgentThreadStore,
|
|
6
11
|
type CreateAgentThreadInput,
|
|
7
12
|
type ListAgentThreadsInput,
|
|
8
13
|
type ListAgentThreadsResult,
|
|
14
|
+
type TransitionAgentThreadSandboxInput,
|
|
9
15
|
} from "@sixb/core/storage"
|
|
10
16
|
import type { SqliteValue } from "../run-list-query"
|
|
11
17
|
import { isUniqueConstraintError } from "../storage-errors"
|
|
12
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
type AgentRunRow,
|
|
20
|
+
type AgentThreadRow,
|
|
21
|
+
queryAgentList,
|
|
22
|
+
rowToRunRecord,
|
|
23
|
+
rowToThreadRecord,
|
|
24
|
+
} from "./rows"
|
|
13
25
|
|
|
14
26
|
export class SqliteAgentThreadStore implements AgentThreadStore {
|
|
15
27
|
constructor(private readonly db: Database) {}
|
|
16
28
|
|
|
29
|
+
async transitionSandbox(
|
|
30
|
+
input: TransitionAgentThreadSandboxInput
|
|
31
|
+
): Promise<AgentThreadSandboxState> {
|
|
32
|
+
return this.db
|
|
33
|
+
.transaction(() => {
|
|
34
|
+
const run =
|
|
35
|
+
input.action === "recreate"
|
|
36
|
+
? null
|
|
37
|
+
: (this.db
|
|
38
|
+
.query("SELECT * FROM agent_runs WHERE project_id = ? AND id = ?")
|
|
39
|
+
.get(input.projectId, input.runId) as AgentRunRow | null)
|
|
40
|
+
const thread = this.requireThread(input.projectId, input.id)
|
|
41
|
+
const state = transitionAgentThreadSandbox(thread, run ? rowToRunRecord(run) : null, input)
|
|
42
|
+
this.db
|
|
43
|
+
.query("UPDATE agent_threads SET sandbox_state = ? WHERE project_id = ? AND id = ?")
|
|
44
|
+
.run(JSON.stringify(state), input.projectId, input.id)
|
|
45
|
+
return state
|
|
46
|
+
})
|
|
47
|
+
.immediate()
|
|
48
|
+
}
|
|
49
|
+
|
|
17
50
|
async create(input: CreateAgentThreadInput): Promise<AgentThreadRecord> {
|
|
51
|
+
const sandboxParams =
|
|
52
|
+
input.sandboxParams === undefined
|
|
53
|
+
? null
|
|
54
|
+
: JSON.stringify(snapshotAgentThreadSandboxParams(input.sandboxParams))
|
|
18
55
|
const createdAt = input.createdAt ?? new Date()
|
|
19
56
|
const updatedAt = input.updatedAt ?? createdAt
|
|
20
57
|
|
|
@@ -28,13 +65,14 @@ export class SqliteAgentThreadStore implements AgentThreadStore {
|
|
|
28
65
|
owner_principal_type,
|
|
29
66
|
owner_principal_id,
|
|
30
67
|
title,
|
|
68
|
+
sandbox_params,
|
|
31
69
|
status,
|
|
32
70
|
active_run_id,
|
|
33
71
|
last_message_at,
|
|
34
72
|
message_count,
|
|
35
73
|
created_at,
|
|
36
74
|
updated_at
|
|
37
|
-
) VALUES (?, ?, ?, ?, ?, ?, NULL, NULL, 0, ?, ?)
|
|
75
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, NULL, NULL, 0, ?, ?)
|
|
38
76
|
`
|
|
39
77
|
)
|
|
40
78
|
.run(
|
|
@@ -43,6 +81,7 @@ export class SqliteAgentThreadStore implements AgentThreadStore {
|
|
|
43
81
|
input.ownerPrincipal.type,
|
|
44
82
|
input.ownerPrincipal.id,
|
|
45
83
|
input.title ?? null,
|
|
84
|
+
sandboxParams,
|
|
46
85
|
input.status ?? "active",
|
|
47
86
|
createdAt.toISOString(),
|
|
48
87
|
updatedAt.toISOString()
|
package/src/ai-cost-storage.ts
CHANGED
|
@@ -314,6 +314,8 @@ const SQLITE_ACCOUNTING_OVERVIEW_SQL = `
|
|
|
314
314
|
CAST(COUNT(*) AS TEXT) AS model_call_count,
|
|
315
315
|
CAST(SUM(CASE WHEN reporting_status <> 'unavailable' THEN 1 ELSE 0 END) AS TEXT)
|
|
316
316
|
AS reported_usage_call_count,
|
|
317
|
+
CAST(SUM(CASE WHEN input_tokens IS NOT NULL AND output_tokens IS NOT NULL THEN 1 ELSE 0 END) AS TEXT)
|
|
318
|
+
AS complete_usage_call_count,
|
|
317
319
|
CAST(COUNT(input_tokens) AS TEXT) AS input_tokens_count,
|
|
318
320
|
CAST(SUM(input_tokens) AS TEXT) AS input_tokens_sum,
|
|
319
321
|
CAST(COUNT(output_tokens) AS TEXT) AS output_tokens_count,
|
|
@@ -430,6 +432,7 @@ interface AggregateRow {
|
|
|
430
432
|
readonly amount_currency: string | null
|
|
431
433
|
readonly model_call_count: string
|
|
432
434
|
readonly reported_usage_call_count: string
|
|
435
|
+
readonly complete_usage_call_count: string
|
|
433
436
|
readonly input_tokens_count: string
|
|
434
437
|
readonly input_tokens_sum: string | null
|
|
435
438
|
readonly output_tokens_count: string
|
|
@@ -485,6 +488,7 @@ function aggregateFragmentFromRow(row: AggregateRow): AiAccountingAggregateFragm
|
|
|
485
488
|
modelCallCount: row.model_call_count,
|
|
486
489
|
usage: {
|
|
487
490
|
reportedCallCount: row.reported_usage_call_count,
|
|
491
|
+
completeCallCount: row.complete_usage_call_count,
|
|
488
492
|
inputTokens: meterFragment(row.input_tokens_count, row.input_tokens_sum),
|
|
489
493
|
outputTokens: meterFragment(row.output_tokens_count, row.output_tokens_sum),
|
|
490
494
|
uncachedInputTokens: meterFragment(
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
CREATE TABLE object_vectors (
|
|
2
|
+
project_id TEXT NOT NULL,
|
|
3
|
+
object_type_id TEXT NOT NULL,
|
|
4
|
+
primary_id TEXT NOT NULL,
|
|
5
|
+
profile TEXT NOT NULL CHECK (length(trim(profile)) > 0),
|
|
6
|
+
configuration TEXT NOT NULL,
|
|
7
|
+
source TEXT NOT NULL CHECK (
|
|
8
|
+
json_valid(source) AND json_type(source) = 'array' AND json_array_length(source) > 0
|
|
9
|
+
),
|
|
10
|
+
source_fingerprint TEXT NOT NULL,
|
|
11
|
+
embedding BLOB NOT NULL CHECK (
|
|
12
|
+
typeof(embedding) = 'blob' AND length(embedding) BETWEEN 4 AND 64000
|
|
13
|
+
AND length(embedding) % 4 = 0
|
|
14
|
+
),
|
|
15
|
+
last_commit_id TEXT NOT NULL,
|
|
16
|
+
PRIMARY KEY (project_id, object_type_id, primary_id, profile),
|
|
17
|
+
FOREIGN KEY (project_id, object_type_id, primary_id)
|
|
18
|
+
REFERENCES objects (project_id, object_type_id, primary_id) ON DELETE CASCADE,
|
|
19
|
+
FOREIGN KEY (project_id, last_commit_id)
|
|
20
|
+
REFERENCES ontology_commits (project_id, id) DEFERRABLE INITIALLY DEFERRED
|
|
21
|
+
);
|