trellis 3.1.6 → 3.1.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.
Files changed (56) hide show
  1. package/README.md +1 -0
  2. package/bin/trellis.mjs +68 -2
  3. package/dist/better-sqlite-backend-ahx5p0br.js +147 -0
  4. package/dist/cli/index.js +116 -45
  5. package/dist/client/index.js +5 -4
  6. package/dist/cms/client.d.ts +2 -1
  7. package/dist/cms/client.d.ts.map +1 -1
  8. package/dist/cms/index.js +4 -0
  9. package/dist/cms/types.d.ts +1 -1
  10. package/dist/cms/types.d.ts.map +1 -1
  11. package/dist/core/index.d.ts +4 -0
  12. package/dist/core/index.d.ts.map +1 -1
  13. package/dist/core/index.js +14 -4
  14. package/dist/core/persist/factory.d.ts +28 -0
  15. package/dist/core/persist/factory.d.ts.map +1 -0
  16. package/dist/core/persist/factory.js +8 -0
  17. package/dist/core/persist/sqlite-backend.d.ts.map +1 -1
  18. package/dist/core/persist/sqljs-backend.d.ts +60 -0
  19. package/dist/core/persist/sqljs-backend.d.ts.map +1 -0
  20. package/dist/core/persist/sqljs-backend.js +8 -0
  21. package/dist/db/index.js +11 -10
  22. package/dist/embeddings/index.js +1 -1
  23. package/dist/embeddings/store.d.ts.map +1 -1
  24. package/dist/{index-0zk3fx2s.js → index-4wxa8xz4.js} +4 -237
  25. package/dist/{index-6n5dcebj.js → index-53f3b8p8.js} +84 -30
  26. package/dist/{index-y3d71wzd.js → index-7pjz3tsy.js} +36 -6
  27. package/dist/{index-0q7wbasy.js → index-a2a394zz.js} +7 -3
  28. package/dist/index-h32txmxe.js +42 -0
  29. package/dist/index-h7zxhhhh.js +252 -0
  30. package/dist/index-h9e2efx4.js +251 -0
  31. package/dist/{index-2917tjd8.js → index-hr9qvv77.js} +15 -3
  32. package/dist/{index-hmdbnd4n.js → index-hy73j9z8.js} +1 -1
  33. package/dist/{index-q31hfjja.js → index-jgda3xyv.js} +1 -1
  34. package/dist/{index-7e27kvvj.js → index-wncptktd.js} +1 -1
  35. package/dist/index.js +8 -6
  36. package/dist/react/index.js +5 -4
  37. package/dist/{sdk-snn5gad3.js → sdk-bepky0xs.js} +5 -4
  38. package/dist/server/index.d.ts +2 -2
  39. package/dist/server/index.d.ts.map +1 -1
  40. package/dist/server/index.js +27 -24
  41. package/dist/server/node-adapter.d.ts +38 -0
  42. package/dist/server/node-adapter.d.ts.map +1 -0
  43. package/dist/server/node-adapter.js +108 -0
  44. package/dist/server/server-shared.d.ts +21 -0
  45. package/dist/server/server-shared.d.ts.map +1 -0
  46. package/dist/server/server.d.ts +19 -2
  47. package/dist/server/server.d.ts.map +1 -1
  48. package/dist/server/tenancy.d.ts +28 -2
  49. package/dist/server/tenancy.d.ts.map +1 -1
  50. package/dist/{server-mrctdwzr.js → server-szdjx0nt.js} +5 -3
  51. package/dist/sqlite-backend-0vsmc6qj.js +8 -0
  52. package/dist/{tenancy-7d1g4ayp.js → tenancy-pjm32b4v.js} +4 -3
  53. package/dist/vcs/blob-store.d.ts +2 -1
  54. package/dist/vcs/blob-store.d.ts.map +1 -1
  55. package/dist/vcs/index.js +2 -2
  56. package/package.json +16 -3
@@ -28,6 +28,8 @@
28
28
  import type { TrellisDbConfig } from '../client/config.js';
29
29
  import type { TenantPool } from './tenancy.js';
30
30
  import type { PermissionRegistry } from './permissions.js';
31
+ import type { TrellisHttpServer } from './server-shared.js';
32
+ export type { TrellisHttpServer } from './server-shared.js';
31
33
  export interface ServerConfig {
32
34
  port?: number;
33
35
  config: TrellisDbConfig;
@@ -36,8 +38,23 @@ export interface ServerConfig {
36
38
  oauthProviders?: Record<string, import('./auth.js').OAuthProvider>;
37
39
  }
38
40
  /**
39
- * Start the Trellis DB HTTP + WebSocket server.
40
- * Returns the Bun server instance.
41
+ * Start the Trellis DB HTTP + WebSocket server under Bun.
42
+ *
43
+ * For runtime-portable code that may also run under Node or WebContainer,
44
+ * use `startServerCrossRuntime` instead — it dispatches to either Bun.serve
45
+ * or a Node http+ws adapter based on the host runtime.
41
46
  */
42
47
  export declare function startServer(opts: ServerConfig): ReturnType<typeof Bun.serve>;
48
+ /**
49
+ * Runtime-dispatched server boot. Use this when your code might run outside
50
+ * Bun (Node, WebContainer, browser).
51
+ *
52
+ * - Under Bun, this calls `Bun.serve` and returns the Bun server wrapped
53
+ * in a `TrellisHttpServer` interface.
54
+ * - Under Node, uses `node:http` + the `ws` library (optional dependency).
55
+ *
56
+ * Returns a `Promise<TrellisHttpServer>` — the minimal cross-runtime surface
57
+ * with `.port` / `.stop()`.
58
+ */
59
+ export declare function startServerCrossRuntime(opts: ServerConfig): Promise<TrellisHttpServer>;
43
60
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAU/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAQ3D,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,WAAW,EAAE,aAAa,CAAC,CAAC;CACpE;AAMD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAqF5E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAWH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAU/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAM5D,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,WAAW,EAAE,aAAa,CAAC,CAAC;CACpE;AAMD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAE5E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAU5B"}
@@ -9,6 +9,7 @@
9
9
  * @module trellis/server
10
10
  */
11
11
  import { TrellisKernel } from '../core/kernel/trellis-kernel.js';
12
+ import type { CreateKernelBackendOptions } from '../core/persist/factory.js';
12
13
  export declare const DEFAULT_TENANT = "default";
13
14
  /**
14
15
  * A pool of `TrellisKernel` instances keyed by tenant ID.
@@ -17,16 +18,39 @@ export declare const DEFAULT_TENANT = "default";
17
18
  * - Each tenant's data lives in `<dbPath>/tenants/<tenantId>.sqlite`.
18
19
  * - The default tenant lives at `<dbPath>/default.sqlite`.
19
20
  */
21
+ export interface TenantPoolOptions {
22
+ agentId?: string;
23
+ /**
24
+ * Backend selection forwarded to `createKernelBackend`. Only consulted by
25
+ * `preload()` — `get()` always uses the synchronous bun:sqlite backend
26
+ * for back-compat.
27
+ */
28
+ backend?: CreateKernelBackendOptions;
29
+ }
20
30
  export declare class TenantPool {
21
31
  private pool;
22
32
  private dbPath;
23
33
  private agentId;
24
- constructor(dbPath: string, agentId?: string);
34
+ private backendOpts;
35
+ constructor(dbPath: string, agentIdOrOpts?: string | TenantPoolOptions);
25
36
  /**
26
37
  * Get (or create) the kernel for a tenant.
27
38
  * Pass `null` or `undefined` to get the default tenant.
39
+ *
40
+ * Uses the synchronous bun:sqlite backend. To use an async backend
41
+ * (better-sqlite3, sql.js) call `preload(tenantId)` first; subsequent
42
+ * `get()` calls will return the preloaded kernel from the pool.
28
43
  */
29
44
  get(tenantId?: string | null): TrellisKernel;
45
+ /**
46
+ * Pre-create a tenant's kernel using the runtime-selected backend.
47
+ * Required when running with an async-only backend (sql.js / WebContainer
48
+ * / browser). Idempotent — safe to call multiple times.
49
+ *
50
+ * After `preload()`, subsequent `get(tenantId)` returns the same kernel
51
+ * synchronously from the pool.
52
+ */
53
+ preload(tenantId?: string | null): Promise<TrellisKernel>;
30
54
  /**
31
55
  * Check whether a tenant has been initialized (kernel created).
32
56
  */
@@ -47,7 +71,9 @@ export declare class TenantPool {
47
71
  * Return the SQLite file path for a given tenant.
48
72
  */
49
73
  dbFilePath(tenantId?: string | null): string;
50
- private _createKernel;
74
+ private _createKernelSync;
75
+ private _createKernelAsync;
76
+ private _wrapKernel;
51
77
  private _ensureDirs;
52
78
  }
53
79
  //# sourceMappingURL=tenancy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenancy.d.ts","sourceRoot":"","sources":["../../src/server/tenancy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAOjE,eAAO,MAAM,cAAc,YAAY,CAAC;AAOxC;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAyC;IACrD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,MAAM,EAAE,OAAO,SAAe;IAUlD;;;OAGG;IACH,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa;IAQ5C;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9B;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQ7B;;OAEG;IACH,QAAQ,IAAI,IAAI;IAOhB;;OAEG;IACH,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAY5C,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,WAAW;CASpB"}
1
+ {"version":3,"file":"tenancy.d.ts","sourceRoot":"","sources":["../../src/server/tenancy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAM7E,eAAO,MAAM,cAAc,YAAY,CAAC;AAOxC;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAyC;IACrD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAyC;gBAG1D,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,MAAM,GAAG,iBAAgC;IAiB1D;;;;;;;OAOG;IACH,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa;IAQ5C;;;;;;;OAOG;IACG,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;IAS/D;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9B;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQ7B;;OAEG;IACH,QAAQ,IAAI,IAAI;IAOhB;;OAEG;IACH,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAY5C,OAAO,CAAC,iBAAiB;YAMX,kBAAkB;IAShC,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,WAAW;CASpB"}
@@ -1,11 +1,13 @@
1
1
  // @bun
2
2
  import {
3
- startServer
4
- } from "./index-6n5dcebj.js";
3
+ startServer,
4
+ startServerCrossRuntime
5
+ } from "./index-53f3b8p8.js";
5
6
  import"./index-n9f2qyh5.js";
6
- import"./index-yhwjgfvj.js";
7
7
  import"./index-yp88he8n.js";
8
+ import"./index-yhwjgfvj.js";
8
9
  import"./index-a76rekgs.js";
9
10
  export {
11
+ startServerCrossRuntime,
10
12
  startServer
11
13
  };
@@ -0,0 +1,8 @@
1
+ // @bun
2
+ import {
3
+ SqliteKernelBackend
4
+ } from "./index-h7zxhhhh.js";
5
+ import"./index-a76rekgs.js";
6
+ export {
7
+ SqliteKernelBackend
8
+ };
@@ -2,10 +2,11 @@
2
2
  import {
3
3
  DEFAULT_TENANT,
4
4
  TenantPool
5
- } from "./index-y3d71wzd.js";
6
- import"./index-0zk3fx2s.js";
7
- import"./index-yhwjgfvj.js";
5
+ } from "./index-7pjz3tsy.js";
6
+ import"./index-4wxa8xz4.js";
8
7
  import"./index-yp88he8n.js";
8
+ import"./index-yhwjgfvj.js";
9
+ import"./index-h7zxhhhh.js";
9
10
  import"./index-a76rekgs.js";
10
11
  export {
11
12
  TenantPool,
@@ -33,7 +33,8 @@ export declare class BlobStore {
33
33
  */
34
34
  hash(content: Buffer | Uint8Array): Promise<string>;
35
35
  /**
36
- * Compute SHA-256 hash of content (sync, using Bun's CryptoHasher).
36
+ * Compute SHA-256 hash of content (sync).
37
+ * Uses Bun.CryptoHasher when running under Bun, else node:crypto.
37
38
  */
38
39
  hashSync(content: Buffer | Uint8Array): string;
39
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"blob-store.d.ts","sourceRoot":"","sources":["../../src/vcs/blob-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,EAAE,MAAM;IAO9B;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IASxD;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM;IAS7C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQhC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM;IAM9C;;OAEG;IACH,KAAK,IAAI,MAAM;IASf;;OAEG;IACH,SAAS,IAAI,MAAM;IAgBnB,OAAO,CAAC,aAAa;CAKtB"}
1
+ {"version":3,"file":"blob-store.d.ts","sourceRoot":"","sources":["../../src/vcs/blob-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,EAAE,MAAM;IAO9B;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IASxD;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM;IAS7C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQhC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM;IAW9C;;OAEG;IACH,KAAK,IAAI,MAAM;IASf;;OAEG;IACH,SAAS,IAAI,MAAM;IAgBnB,OAAO,CAAC,aAAa;CAKtB"}
package/dist/vcs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  VcsMiddleware
4
- } from "../index-hmdbnd4n.js";
4
+ } from "../index-hy73j9z8.js";
5
5
  import {
6
6
  BlobStore,
7
7
  addCriterion,
@@ -40,7 +40,7 @@ import {
40
40
  triageIssue,
41
41
  unblockIssue,
42
42
  updateIssue
43
- } from "../index-0q7wbasy.js";
43
+ } from "../index-a2a394zz.js";
44
44
  import {
45
45
  DEFAULT_CONFIG,
46
46
  branchEntityId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trellis",
3
- "version": "3.1.6",
3
+ "version": "3.1.7",
4
4
  "description": "Agentic State Engine — event-sourced causal graph with branching, decision traces, and realtime sync for AI-native applications",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -91,6 +91,14 @@
91
91
  "./persist/better-sqlite": {
92
92
  "types": "./dist/persist/better-sqlite-backend.d.ts",
93
93
  "import": "./dist/persist/better-sqlite-backend.js"
94
+ },
95
+ "./persist/sqljs": {
96
+ "types": "./dist/persist/sqljs-backend.d.ts",
97
+ "import": "./dist/persist/sqljs-backend.js"
98
+ },
99
+ "./persist/factory": {
100
+ "types": "./dist/persist/factory.d.ts",
101
+ "import": "./dist/persist/factory.js"
94
102
  }
95
103
  },
96
104
  "files": [
@@ -107,7 +115,7 @@
107
115
  "cli": "bun run src/cli/index.ts",
108
116
  "mcp": "bun run src/mcp/index.ts",
109
117
  "mcp:docs": "bun run src/mcp/docs.ts",
110
- "build": "bun build src/index.ts src/core/index.ts src/vcs/index.ts src/embeddings/index.ts src/links/index.ts src/decisions/index.ts src/server/index.ts src/client/index.ts src/react/index.ts src/db/index.ts src/cli/index.ts src/cms/index.ts --outdir dist --target bun --splitting --format esm --root src --external @xenova/transformers --external @huggingface/transformers --external react && mkdir -p dist/ui && cp src/ui/client.html dist/ui/client.html && tsc -p tsconfig.build.json --emitDeclarationOnly --noEmit false --noEmitOnError false && bun run build:inspector",
118
+ "build": "bun build src/index.ts src/core/index.ts src/vcs/index.ts src/embeddings/index.ts src/links/index.ts src/decisions/index.ts src/server/index.ts src/client/index.ts src/react/index.ts src/db/index.ts src/cli/index.ts src/cms/index.ts src/core/persist/sqljs-backend.ts src/core/persist/factory.ts src/server/node-adapter.ts --outdir dist --target bun --splitting --format esm --root src --external @xenova/transformers --external @huggingface/transformers --external react --external sql.js --external ws && mkdir -p dist/ui && cp src/ui/client.html dist/ui/client.html && tsc -p tsconfig.build.json --emitDeclarationOnly --noEmit false --noEmitOnError false && bun run build:inspector",
111
119
  "build:inspector": "vite build --config vite.inspector.config.ts",
112
120
  "test": "bun test test/core test/cms test/vcs test/git test/p2 test/p3 test/p4 test/p5 test/p6 test/p7 test/engine.test.ts",
113
121
  "test:all": "bun test",
@@ -119,11 +127,14 @@
119
127
  "chalk": "^5.4.1",
120
128
  "commander": "^13.1.0",
121
129
  "opencode-ai": "^1.3.5",
130
+ "turtlecode": "^0.3.22",
122
131
  "zod": "3"
123
132
  },
124
133
  "optionalDependencies": {
125
134
  "@huggingface/transformers": "^3.0.0",
126
- "@xenova/transformers": "^2.17.2"
135
+ "@xenova/transformers": "^2.17.2",
136
+ "sql.js": "^1.14.1",
137
+ "ws": "^8.20.1"
127
138
  },
128
139
  "peerDependencies": {
129
140
  "better-sqlite3": "^11.0.0",
@@ -140,6 +151,8 @@
140
151
  "devDependencies": {
141
152
  "@types/bun": "latest",
142
153
  "@types/react": "^19.1.2",
154
+ "@types/sql.js": "^1.4.11",
155
+ "@types/ws": "^8.18.1",
143
156
  "@vitejs/plugin-vue": "^5.2.3",
144
157
  "react": "^19.1.0",
145
158
  "typescript": "^5",