@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.
Files changed (50) hide show
  1. package/README.md +32 -0
  2. package/dist/agents/rows.d.ts +2 -0
  3. package/dist/agents/rows.d.ts.map +1 -1
  4. package/dist/agents/threads.d.ts +2 -1
  5. package/dist/agents/threads.d.ts.map +1 -1
  6. package/dist/index.js +676 -61
  7. package/dist/index.js.map +18 -14
  8. package/dist/migrations.d.ts.map +1 -1
  9. package/dist/objects/query-compiler.d.ts +9 -2
  10. package/dist/objects/query-compiler.d.ts.map +1 -1
  11. package/dist/objects/read-scope.d.ts +3 -0
  12. package/dist/objects/read-scope.d.ts.map +1 -1
  13. package/dist/objects/reader.d.ts +1 -0
  14. package/dist/objects/reader.d.ts.map +1 -1
  15. package/dist/objects/rows.d.ts +1 -0
  16. package/dist/objects/rows.d.ts.map +1 -1
  17. package/dist/objects/storage.d.ts.map +1 -1
  18. package/dist/objects/vector-extension.d.ts +4 -0
  19. package/dist/objects/vector-extension.d.ts.map +1 -0
  20. package/dist/ontology-storage/index.d.ts +4 -0
  21. package/dist/ontology-storage/index.d.ts.map +1 -1
  22. package/dist/ontology-storage/materializations.d.ts +1 -0
  23. package/dist/ontology-storage/materializations.d.ts.map +1 -1
  24. package/dist/ontology-storage/vector-indexing.d.ts +20 -0
  25. package/dist/ontology-storage/vector-indexing.d.ts.map +1 -0
  26. package/dist/ontology-storage/vectors.d.ts +16 -0
  27. package/dist/ontology-storage/vectors.d.ts.map +1 -0
  28. package/dist/vector-encoding.d.ts +3 -0
  29. package/dist/vector-encoding.d.ts.map +1 -0
  30. package/package.json +8 -4
  31. package/src/agents/rows.ts +12 -0
  32. package/src/agents/threads.ts +41 -2
  33. package/src/ai-cost-storage.ts +4 -0
  34. package/src/migrations/041-agent-thread-workspaces.sql +2 -0
  35. package/src/migrations/042-vector-profiles.sql +21 -0
  36. package/src/migrations/043-vector-indexing.sql +197 -0
  37. package/src/migrations/044-vector-batching.sql +3 -0
  38. package/src/migrations/045-agent-thread-sandbox-state.sql +2 -0
  39. package/src/migrations.ts +14 -0
  40. package/src/objects/query-compiler.ts +105 -7
  41. package/src/objects/read-scope.ts +34 -31
  42. package/src/objects/reader.ts +25 -1
  43. package/src/objects/rows.ts +5 -1
  44. package/src/objects/storage.ts +12 -1
  45. package/src/objects/vector-extension.ts +26 -0
  46. package/src/ontology-storage/index.ts +16 -0
  47. package/src/ontology-storage/materializations.ts +13 -0
  48. package/src/ontology-storage/vector-indexing.ts +196 -0
  49. package/src/ontology-storage/vectors.ts +182 -0
  50. package/src/vector-encoding.ts +9 -0
package/README.md CHANGED
@@ -39,6 +39,38 @@ file when upgrading normally; incompatible or dirty history fails startup instea
39
39
  rewriting an unknown schema. Before 1.0, an explicitly breaking migration may still require deleting
40
40
  the database file and starting over.
41
41
 
42
+ ## Vector profiles
43
+
44
+ Named `search.vectors` profiles persist outside object properties as float32 blobs with their
45
+ provenance. Writes and invalidation share the object's materialization transaction; stale model
46
+ results fail explicitly instead of overwriting newer vectors. No extension is needed to persist.
47
+
48
+ Search uses the bundled `sqlite-vec` 0.1.9 extension, loaded on the query connection when needed.
49
+ On macOS, install an extension-capable SQLite (`brew install sqlite`) and select its library
50
+ **before opening any database**:
51
+
52
+ ```ts
53
+ import { Database } from "bun:sqlite"
54
+
55
+ Database.setCustomSQLite("/opt/homebrew/opt/sqlite/lib/libsqlite3.dylib")
56
+ ```
57
+
58
+ Use the actual library path on your machine; the selection applies to the process. Linux and
59
+ Windows do not need this macOS setup. Unsupported native platforms fail with a diagnostic.
60
+
61
+ ```ts
62
+ const result = await sixb.objects(Product).query()
63
+ .vector("content", "lightweight running shoes", { k: 10 }).list()
64
+ ```
65
+
66
+ Exact cosine search uses normalized vectors and applies filters and source permissions before
67
+ ranking. It rejects more than 10,000 eligible vectors or 16 million coordinates per search.
68
+ SQLite reads remain synchronous: these bounds limit scoring work, not wall-clock time;
69
+ `busy_timeout` only bounds lock waits. Existing numeric arrays are not promoted to profiles.
70
+
71
+ Run vector integration tests with `bun run test:e2e`. On macOS, set `SIXB_TEST_SQLITE_LIBRARY`
72
+ to the SQLite library path; tests use a separate process for library selection.
73
+
42
74
  ## Transactions
43
75
 
44
76
  ```ts
@@ -8,6 +8,8 @@ export interface AgentThreadRow {
8
8
  owner_principal_type: Principal["type"];
9
9
  owner_principal_id: string;
10
10
  title: string | null;
11
+ sandbox_params: string | null;
12
+ sandbox_state: string | null;
11
13
  status: AgentThreadRecord["status"];
12
14
  active_run_id: string | null;
13
15
  last_message_at: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/agents/rows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/agents/rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAoB,SAAS,EAAE,MAAM,YAAY,CAAA;AAG7D,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EAEvB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAMvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAIpD,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,oBAAoB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACvC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACnC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gCAAgC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAChC,qBAAqB,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC/C,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAA;IAC9C,OAAO,EAAE,MAAM,CAAA;IACf,sBAAsB,EAAE,MAAM,CAAA;IAC9B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,iBAAiB,EAAE,MAAM,CAAA;IACzB,6BAA6B,EAAE,MAAM,CAAA;IACrC,4BAA4B,EAAE,MAAM,CAAA;IACpC,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACnB;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,iBAAiB,CAqBxE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,CAgD/D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,kBAAkB,CAiB3E;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,yBAAyB,GAC7B,4BAA4B,CAsB9B;AAWD,wBAAgB,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE;IAC1C,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAAA;IAClD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAA;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAsBxF"}
@@ -1,8 +1,9 @@
1
1
  import type { Database } from "bun:sqlite";
2
- import { type AgentThreadRecord, type AgentThreadStore, type CreateAgentThreadInput, type ListAgentThreadsInput, type ListAgentThreadsResult } from "@sixb/core/storage";
2
+ import { type AgentThreadRecord, type AgentThreadSandboxState, type AgentThreadStore, type CreateAgentThreadInput, type ListAgentThreadsInput, type ListAgentThreadsResult, type TransitionAgentThreadSandboxInput } from "@sixb/core/storage";
3
3
  export declare class SqliteAgentThreadStore implements AgentThreadStore {
4
4
  private readonly db;
5
5
  constructor(db: Database);
6
+ transitionSandbox(input: TransitionAgentThreadSandboxInput): Promise<AgentThreadSandboxState>;
6
7
  create(input: CreateAgentThreadInput): Promise<AgentThreadRecord>;
7
8
  getById(params: {
8
9
  projectId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../src/agents/threads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAA;AAK3B,qBAAa,sBAAuB,YAAW,gBAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEnC,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+CjE,OAAO,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAQrF,IAAI,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAgCzE,OAAO,CAAC,aAAa;CActB"}
1
+ {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../src/agents/threads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAK1C,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EACvC,MAAM,oBAAoB,CAAA;AAW3B,qBAAa,sBAAuB,YAAW,gBAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAEnC,iBAAiB,CACrB,KAAK,EAAE,iCAAiC,GACvC,OAAO,CAAC,uBAAuB,CAAC;IAmB7B,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqDjE,OAAO,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAQrF,IAAI,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAgCzE,OAAO,CAAC,aAAa;CActB"}