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.
- package/README.md +1 -0
- package/bin/trellis.mjs +68 -2
- package/dist/better-sqlite-backend-ahx5p0br.js +147 -0
- package/dist/cli/index.js +116 -45
- package/dist/client/index.js +5 -4
- package/dist/cms/client.d.ts +2 -1
- package/dist/cms/client.d.ts.map +1 -1
- package/dist/cms/index.js +4 -0
- package/dist/cms/types.d.ts +1 -1
- package/dist/cms/types.d.ts.map +1 -1
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +14 -4
- package/dist/core/persist/factory.d.ts +28 -0
- package/dist/core/persist/factory.d.ts.map +1 -0
- package/dist/core/persist/factory.js +8 -0
- package/dist/core/persist/sqlite-backend.d.ts.map +1 -1
- package/dist/core/persist/sqljs-backend.d.ts +60 -0
- package/dist/core/persist/sqljs-backend.d.ts.map +1 -0
- package/dist/core/persist/sqljs-backend.js +8 -0
- package/dist/db/index.js +11 -10
- package/dist/embeddings/index.js +1 -1
- package/dist/embeddings/store.d.ts.map +1 -1
- package/dist/{index-0zk3fx2s.js → index-4wxa8xz4.js} +4 -237
- package/dist/{index-6n5dcebj.js → index-53f3b8p8.js} +84 -30
- package/dist/{index-y3d71wzd.js → index-7pjz3tsy.js} +36 -6
- package/dist/{index-0q7wbasy.js → index-a2a394zz.js} +7 -3
- package/dist/index-h32txmxe.js +42 -0
- package/dist/index-h7zxhhhh.js +252 -0
- package/dist/index-h9e2efx4.js +251 -0
- package/dist/{index-2917tjd8.js → index-hr9qvv77.js} +15 -3
- package/dist/{index-hmdbnd4n.js → index-hy73j9z8.js} +1 -1
- package/dist/{index-q31hfjja.js → index-jgda3xyv.js} +1 -1
- package/dist/{index-7e27kvvj.js → index-wncptktd.js} +1 -1
- package/dist/index.js +8 -6
- package/dist/react/index.js +5 -4
- package/dist/{sdk-snn5gad3.js → sdk-bepky0xs.js} +5 -4
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +27 -24
- package/dist/server/node-adapter.d.ts +38 -0
- package/dist/server/node-adapter.d.ts.map +1 -0
- package/dist/server/node-adapter.js +108 -0
- package/dist/server/server-shared.d.ts +21 -0
- package/dist/server/server-shared.d.ts.map +1 -0
- package/dist/server/server.d.ts +19 -2
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/tenancy.d.ts +28 -2
- package/dist/server/tenancy.d.ts.map +1 -1
- package/dist/{server-mrctdwzr.js → server-szdjx0nt.js} +5 -3
- package/dist/sqlite-backend-0vsmc6qj.js +8 -0
- package/dist/{tenancy-7d1g4ayp.js → tenancy-pjm32b4v.js} +4 -3
- package/dist/vcs/blob-store.d.ts +2 -1
- package/dist/vcs/blob-store.d.ts.map +1 -1
- package/dist/vcs/index.js +2 -2
- package/package.json +16 -3
package/dist/cms/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/cms/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,qBAAqB,EACrB,eAAe,EACf,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,WAAW,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/cms/client.ts"],"names":[],"mappings":"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"}
|
package/dist/cms/index.js
CHANGED
|
@@ -477,6 +477,10 @@ class CollectionRef {
|
|
|
477
477
|
const key = `coll:${typeKey(this.key)}:${JSON.stringify(listOpts)}`;
|
|
478
478
|
return this.client._share(key, () => this.list(listOpts), callback, { onError, equals });
|
|
479
479
|
}
|
|
480
|
+
async schema() {
|
|
481
|
+
const facts = await this.client._get(`/facts?limit=${MAX_FACTS_PER_FETCH}`);
|
|
482
|
+
return schemaFields(facts ?? [], [this.key]);
|
|
483
|
+
}
|
|
480
484
|
}
|
|
481
485
|
|
|
482
486
|
class EntryRef {
|
package/dist/cms/types.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module trellis/cms
|
|
5
5
|
*/
|
|
6
6
|
export type EntryStatus = 'draft' | 'published';
|
|
7
|
-
export type FieldKind = 'text' | 'rich_text' | 'number' | 'boolean' | 'date' | 'email' | 'url' | 'color' | 'select' | 'multiselect' | 'file' | 'formula' | 'reference' | 'image';
|
|
7
|
+
export type FieldKind = 'text' | 'rich_text' | 'number' | 'boolean' | 'date' | 'email' | 'url' | 'color' | 'select' | 'multiselect' | 'file' | 'formula' | 'reference' | 'image' | 'video' | 'audio';
|
|
8
8
|
export type FieldDefinition = {
|
|
9
9
|
key: string;
|
|
10
10
|
label?: string;
|
package/dist/cms/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cms/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cms/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -11,6 +11,10 @@ export type { Atom, EntityRef, Fact, Link, CatalogEntry, QueryTraceEntry, QueryR
|
|
|
11
11
|
export type { KernelOp, KernelOpKind, KernelBackend, } from './persist/backend.js';
|
|
12
12
|
export type { KernelMiddleware, MiddlewareContext, OpMiddlewareNext, } from './kernel/middleware.js';
|
|
13
13
|
export { SqliteKernelBackend } from './persist/sqlite-backend.js';
|
|
14
|
+
export { SqlJsKernelBackend } from './persist/sqljs-backend.js';
|
|
15
|
+
export type { SqlJsKernelBackendOptions } from './persist/sqljs-backend.js';
|
|
16
|
+
export { createKernelBackend } from './persist/factory.js';
|
|
17
|
+
export type { CreateKernelBackendOptions } from './persist/factory.js';
|
|
14
18
|
export { QueryEngine, parseQuery, parseRule, parseSimple, DatalogRuntime, } from './query/index.js';
|
|
15
19
|
export type { Query, Pattern, FactPattern, LinkPattern, Term, Variable, Literal, Filter, FilterOp, Aggregate, OrderBy, Bindings, DatalogRule, } from './query/index.js';
|
|
16
20
|
export { OntologyRegistry, validateEntity, validateStore, createValidationMiddleware, } from './ontology/index.js';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE1E,YAAY,EACV,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,GACd,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGlE,OAAO,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,KAAK,EACL,OAAO,EACP,WAAW,EACX,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,SAAS,EACT,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EACV,QAAQ,EACR,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE1E,YAAY,EACV,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,GACd,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGlE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,YAAY,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAG5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,KAAK,EACL,OAAO,EACP,WAAW,EACX,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,SAAS,EACT,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EACV,QAAQ,EACR,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,4BAA4B,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -9,6 +9,12 @@ import {
|
|
|
9
9
|
validateEntity,
|
|
10
10
|
validateStore
|
|
11
11
|
} from "../index-w7ng765c.js";
|
|
12
|
+
import {
|
|
13
|
+
SqlJsKernelBackend
|
|
14
|
+
} from "../index-h9e2efx4.js";
|
|
15
|
+
import {
|
|
16
|
+
createKernelBackend
|
|
17
|
+
} from "../index-h32txmxe.js";
|
|
12
18
|
import {
|
|
13
19
|
DatalogRuntime,
|
|
14
20
|
parseQuery,
|
|
@@ -16,9 +22,11 @@ import {
|
|
|
16
22
|
parseSimple
|
|
17
23
|
} from "../index-n9f2qyh5.js";
|
|
18
24
|
import {
|
|
19
|
-
SqliteKernelBackend,
|
|
20
25
|
TrellisKernel
|
|
21
|
-
} from "../index-
|
|
26
|
+
} from "../index-4wxa8xz4.js";
|
|
27
|
+
import {
|
|
28
|
+
QueryEngine
|
|
29
|
+
} from "../index-yp88he8n.js";
|
|
22
30
|
import {
|
|
23
31
|
EAVStore,
|
|
24
32
|
flatten,
|
|
@@ -26,8 +34,8 @@ import {
|
|
|
26
34
|
jsonEntityFacts
|
|
27
35
|
} from "../index-yhwjgfvj.js";
|
|
28
36
|
import {
|
|
29
|
-
|
|
30
|
-
} from "../index-
|
|
37
|
+
SqliteKernelBackend
|
|
38
|
+
} from "../index-h7zxhhhh.js";
|
|
31
39
|
import"../index-a76rekgs.js";
|
|
32
40
|
|
|
33
41
|
// src/core/index.ts
|
|
@@ -565,10 +573,12 @@ export {
|
|
|
565
573
|
jsonEntityFacts,
|
|
566
574
|
flatten,
|
|
567
575
|
createValidationMiddleware,
|
|
576
|
+
createKernelBackend,
|
|
568
577
|
builtinOntologies,
|
|
569
578
|
agentOntology,
|
|
570
579
|
TrellisKernel,
|
|
571
580
|
SqliteKernelBackend,
|
|
581
|
+
SqlJsKernelBackend,
|
|
572
582
|
QueryEngine,
|
|
573
583
|
PluginRegistry,
|
|
574
584
|
OntologyRegistry,
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kernel backend factory.
|
|
3
|
+
*
|
|
4
|
+
* Picks the right `KernelBackend` for the host runtime:
|
|
5
|
+
* - Bun → SqliteKernelBackend (bun:sqlite, native)
|
|
6
|
+
* - Node + better-sqlite3 installed → BetterSqliteKernelBackend
|
|
7
|
+
* - Otherwise → SqlJsKernelBackend (pure WASM, requires `sql.js`)
|
|
8
|
+
*
|
|
9
|
+
* This is an additive helper; existing callsites that construct a specific
|
|
10
|
+
* backend directly are unaffected. Use this when you want runtime portability
|
|
11
|
+
* (e.g. WebContainer demos, browser builds, restricted Node hosts).
|
|
12
|
+
*
|
|
13
|
+
* @module trellis/core/persist
|
|
14
|
+
*/
|
|
15
|
+
import type { KernelBackend } from './backend.js';
|
|
16
|
+
export interface CreateKernelBackendOptions {
|
|
17
|
+
/**
|
|
18
|
+
* Override automatic detection. Useful for tests and for environments
|
|
19
|
+
* where the runtime check would pick the wrong backend.
|
|
20
|
+
*/
|
|
21
|
+
backend?: 'bun' | 'better-sqlite' | 'sqljs';
|
|
22
|
+
/** Forwarded to `SqlJsKernelBackend` when that backend is selected. */
|
|
23
|
+
sqljs?: {
|
|
24
|
+
autoFlushEvery?: number;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export declare function createKernelBackend(dbPath: string, opts?: CreateKernelBackendOptions): Promise<KernelBackend>;
|
|
28
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/core/persist/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,OAAO,CAAC;IAC5C,uEAAuE;IACvE,KAAK,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrC;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,0BAA+B,GACpC,OAAO,CAAC,aAAa,CAAC,CA0BxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-backend.d.ts","sourceRoot":"","sources":["../../../src/core/persist/sqlite-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"sqlite-backend.d.ts","sourceRoot":"","sources":["../../../src/core/persist/sqlite-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA6D5D,qBAAa,mBAAoB,YAAW,aAAa;IAiB3C,OAAO,CAAC,MAAM;IAhB1B,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,MAAM,CAaE;gBAEI,MAAM,EAAE,MAAM;IAKlC,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,kBAAkB;IAqD1B,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAoB1B,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI;IASlC,OAAO,IAAI,QAAQ,EAAE;IAKrB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAKnC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAKnC,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,EAAE;IAUpD,SAAS,IAAI,QAAQ,GAAG,SAAS;IAKjC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI7C,UAAU,IAAI,MAAM;IAIpB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAK/C,KAAK,IAAI,MAAM;IAKf;;;OAGG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IA2BtE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAOjD,kBAAkB,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,SAAS;IAanE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAOhD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAM7C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ9B,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* sql.js-backed Kernel Backend
|
|
3
|
+
*
|
|
4
|
+
* Pure-WASM SQLite. Use this backend in environments that cannot load
|
|
5
|
+
* native binaries or `bun:sqlite` — Node-without-Bun, WebContainer, browser.
|
|
6
|
+
*
|
|
7
|
+
* sql.js holds the database image in memory. Persistence is implemented by
|
|
8
|
+
* snapshotting the full image to disk on close and at a configurable write
|
|
9
|
+
* interval. Appropriate for kernel op-log sized datasets; not appropriate
|
|
10
|
+
* for very large stores where incremental flushes matter.
|
|
11
|
+
*
|
|
12
|
+
* @module trellis/core/persist
|
|
13
|
+
*/
|
|
14
|
+
import type { KernelOp, KernelBackend } from './backend.js';
|
|
15
|
+
export interface SqlJsKernelBackendOptions {
|
|
16
|
+
/** Filesystem path to load/persist DB image. Pass `:memory:` to disable disk I/O. */
|
|
17
|
+
dbPath: string;
|
|
18
|
+
/** Auto-flush every N writes. Default 50. Set 0 to disable auto-flush. */
|
|
19
|
+
autoFlushEvery?: number;
|
|
20
|
+
}
|
|
21
|
+
export declare class SqlJsKernelBackend implements KernelBackend {
|
|
22
|
+
private opts;
|
|
23
|
+
private db;
|
|
24
|
+
private stmts;
|
|
25
|
+
private writes;
|
|
26
|
+
private flushEvery;
|
|
27
|
+
private initialized;
|
|
28
|
+
private constructor();
|
|
29
|
+
/**
|
|
30
|
+
* Async factory — sql.js WASM init is async, but the resulting backend
|
|
31
|
+
* exposes the synchronous KernelBackend surface, so it slots into the
|
|
32
|
+
* existing kernel without interface changes.
|
|
33
|
+
*/
|
|
34
|
+
static create(opts: SqlJsKernelBackendOptions): Promise<SqlJsKernelBackend>;
|
|
35
|
+
private bootstrap;
|
|
36
|
+
private loadFromDisk;
|
|
37
|
+
private flushToDisk;
|
|
38
|
+
init(): void;
|
|
39
|
+
private prepareStatements;
|
|
40
|
+
append(op: KernelOp): void;
|
|
41
|
+
readAll(): KernelOp[];
|
|
42
|
+
readUntil(hash: string): KernelOp[];
|
|
43
|
+
readAfter(hash: string): KernelOp[];
|
|
44
|
+
readUntilTimestamp(iso: string): KernelOp[];
|
|
45
|
+
getByHash(hash: string): KernelOp | undefined;
|
|
46
|
+
getLastOp(): KernelOp | undefined;
|
|
47
|
+
getOpCount(): number;
|
|
48
|
+
saveSnapshot(lastOpHash: string, data: any): void;
|
|
49
|
+
loadLatestSnapshot(): {
|
|
50
|
+
lastOpHash: string;
|
|
51
|
+
data: any;
|
|
52
|
+
} | undefined;
|
|
53
|
+
close(): void;
|
|
54
|
+
/** Force a write of the in-memory DB image to disk. */
|
|
55
|
+
flush(): void;
|
|
56
|
+
private runAll;
|
|
57
|
+
private runOne;
|
|
58
|
+
private tickFlush;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=sqljs-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqljs-backend.d.ts","sourceRoot":"","sources":["../../../src/core/persist/sqljs-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAgC5D,MAAM,WAAW,yBAAyB;IACxC,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,kBAAmB,YAAW,aAAa;IAOlC,OAAO,CAAC,IAAI;IANhC,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;IAIP;;;;OAIG;WACU,MAAM,CACjB,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,kBAAkB,CAAC;YAMhB,SAAS;IAwCvB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IAgBnB,IAAI,IAAI,IAAI;IAOZ,OAAO,CAAC,iBAAiB;IAsCzB,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAqB1B,OAAO,IAAI,QAAQ,EAAE;IAGrB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAGnC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAGnC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE;IAS3C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAG7C,SAAS,IAAI,QAAQ,GAAG,SAAS;IAGjC,UAAU,IAAI,MAAM;IAQpB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IASjD,kBAAkB,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,SAAS;IAYnE,KAAK,IAAI,IAAI;IASb,uDAAuD;IACvD,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,SAAS;CAIlB"}
|
package/dist/db/index.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import"../index-c9h37r6h.js";
|
|
3
|
+
import {
|
|
4
|
+
deploy
|
|
5
|
+
} from "../index-wt8rz4gn.js";
|
|
6
|
+
import"../index-bmyt7k8n.js";
|
|
7
|
+
import"../index-y6a4kj0p.js";
|
|
3
8
|
import {
|
|
4
9
|
ADMIN_ONLY,
|
|
5
10
|
ANONYMOUS,
|
|
@@ -17,22 +22,17 @@ import {
|
|
|
17
22
|
signJwt,
|
|
18
23
|
startServer,
|
|
19
24
|
verifyJwt
|
|
20
|
-
} from "../index-
|
|
25
|
+
} from "../index-53f3b8p8.js";
|
|
21
26
|
import {
|
|
22
27
|
importFile,
|
|
23
28
|
importRecords
|
|
24
29
|
} from "../index-skhn0agf.js";
|
|
25
|
-
import {
|
|
26
|
-
deploy
|
|
27
|
-
} from "../index-wt8rz4gn.js";
|
|
28
|
-
import"../index-bmyt7k8n.js";
|
|
29
|
-
import"../index-y6a4kj0p.js";
|
|
30
30
|
import"../index-n9f2qyh5.js";
|
|
31
31
|
import"../index-k5b0xskw.js";
|
|
32
32
|
import {
|
|
33
33
|
FetchError,
|
|
34
34
|
TrellisDb
|
|
35
|
-
} from "../index-
|
|
35
|
+
} from "../index-wncptktd.js";
|
|
36
36
|
import {
|
|
37
37
|
CONFIG_FILE,
|
|
38
38
|
configPath,
|
|
@@ -45,10 +45,11 @@ import {
|
|
|
45
45
|
import {
|
|
46
46
|
DEFAULT_TENANT,
|
|
47
47
|
TenantPool
|
|
48
|
-
} from "../index-
|
|
49
|
-
import"../index-
|
|
50
|
-
import"../index-yhwjgfvj.js";
|
|
48
|
+
} from "../index-7pjz3tsy.js";
|
|
49
|
+
import"../index-4wxa8xz4.js";
|
|
51
50
|
import"../index-yp88he8n.js";
|
|
51
|
+
import"../index-yhwjgfvj.js";
|
|
52
|
+
import"../index-h7zxhhhh.js";
|
|
52
53
|
import"../index-a76rekgs.js";
|
|
53
54
|
export {
|
|
54
55
|
writeConfig,
|
package/dist/embeddings/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/embeddings/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/embeddings/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,SAAS,EAET,eAAe,EACf,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAqDpB,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAW;gBAET,MAAM,EAAE,MAAM;IAQ1B;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IA4BrC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI;IA+B7C;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKxB;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAetC;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAepC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAQtC;;;OAGG;IACH,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,GAAE,aAAkB,GAAG,YAAY,EAAE;IAwD3E;;OAEG;IACH,KAAK,IAAI,MAAM;IAOf;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAarC;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAiBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAYzE"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// @bun
|
|
2
|
+
import {
|
|
3
|
+
QueryEngine
|
|
4
|
+
} from "./index-yp88he8n.js";
|
|
2
5
|
import {
|
|
3
6
|
EAVStore,
|
|
4
7
|
init_eav_store
|
|
5
8
|
} from "./index-yhwjgfvj.js";
|
|
6
|
-
import {
|
|
7
|
-
QueryEngine
|
|
8
|
-
} from "./index-yp88he8n.js";
|
|
9
9
|
|
|
10
10
|
// src/core/kernel/trellis-kernel.ts
|
|
11
11
|
init_eav_store();
|
|
@@ -768,237 +768,4 @@ class TrellisKernel {
|
|
|
768
768
|
}
|
|
769
769
|
}
|
|
770
770
|
|
|
771
|
-
|
|
772
|
-
import { Database } from "bun:sqlite";
|
|
773
|
-
var SCHEMA_SQL = `
|
|
774
|
-
CREATE TABLE IF NOT EXISTS ops (
|
|
775
|
-
hash TEXT PRIMARY KEY,
|
|
776
|
-
kind TEXT NOT NULL,
|
|
777
|
-
timestamp TEXT NOT NULL,
|
|
778
|
-
agent_id TEXT NOT NULL,
|
|
779
|
-
previous_hash TEXT,
|
|
780
|
-
payload TEXT NOT NULL
|
|
781
|
-
);
|
|
782
|
-
|
|
783
|
-
CREATE TABLE IF NOT EXISTS snapshots (
|
|
784
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
785
|
-
last_op_hash TEXT NOT NULL,
|
|
786
|
-
data TEXT NOT NULL,
|
|
787
|
-
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
788
|
-
);
|
|
789
|
-
|
|
790
|
-
CREATE TABLE IF NOT EXISTS blobs (
|
|
791
|
-
hash TEXT PRIMARY KEY,
|
|
792
|
-
content BLOB NOT NULL
|
|
793
|
-
);
|
|
794
|
-
|
|
795
|
-
CREATE INDEX IF NOT EXISTS idx_ops_kind ON ops(kind);
|
|
796
|
-
CREATE INDEX IF NOT EXISTS idx_ops_timestamp ON ops(timestamp);
|
|
797
|
-
CREATE INDEX IF NOT EXISTS idx_ops_agent ON ops(agent_id);
|
|
798
|
-
CREATE INDEX IF NOT EXISTS idx_ops_previous ON ops(previous_hash);
|
|
799
|
-
CREATE INDEX IF NOT EXISTS idx_snapshots_op ON snapshots(last_op_hash);
|
|
800
|
-
`;
|
|
801
|
-
|
|
802
|
-
class SqliteKernelBackend {
|
|
803
|
-
dbPath;
|
|
804
|
-
db;
|
|
805
|
-
_stmts = null;
|
|
806
|
-
constructor(dbPath) {
|
|
807
|
-
this.dbPath = dbPath;
|
|
808
|
-
this.db = new Database(dbPath);
|
|
809
|
-
}
|
|
810
|
-
init() {
|
|
811
|
-
this.db.exec("PRAGMA journal_mode=WAL;");
|
|
812
|
-
this.db.exec("PRAGMA foreign_keys=ON;");
|
|
813
|
-
this.db.exec("PRAGMA synchronous=NORMAL;");
|
|
814
|
-
this.db.exec(SCHEMA_SQL);
|
|
815
|
-
this._prepareStatements();
|
|
816
|
-
}
|
|
817
|
-
_prepareStatements() {
|
|
818
|
-
this._stmts = {
|
|
819
|
-
insert: this.db.prepare(`
|
|
820
|
-
INSERT OR IGNORE INTO ops (hash, kind, timestamp, agent_id, previous_hash, payload)
|
|
821
|
-
VALUES ($hash, $kind, $timestamp, $agentId, $previousHash, $payload)
|
|
822
|
-
`),
|
|
823
|
-
readAll: this.db.prepare(`
|
|
824
|
-
SELECT hash, kind, timestamp, agent_id, previous_hash, payload
|
|
825
|
-
FROM ops ORDER BY rowid ASC
|
|
826
|
-
`),
|
|
827
|
-
readUntil: this.db.prepare(`
|
|
828
|
-
SELECT hash, kind, timestamp, agent_id, previous_hash, payload
|
|
829
|
-
FROM ops WHERE rowid <= (SELECT rowid FROM ops WHERE hash = $hash)
|
|
830
|
-
ORDER BY rowid ASC
|
|
831
|
-
`),
|
|
832
|
-
readAfter: this.db.prepare(`
|
|
833
|
-
SELECT hash, kind, timestamp, agent_id, previous_hash, payload
|
|
834
|
-
FROM ops WHERE rowid > (SELECT rowid FROM ops WHERE hash = $hash)
|
|
835
|
-
ORDER BY rowid ASC
|
|
836
|
-
`),
|
|
837
|
-
getByHash: this.db.prepare(`
|
|
838
|
-
SELECT hash, kind, timestamp, agent_id, previous_hash, payload
|
|
839
|
-
FROM ops WHERE hash = $hash
|
|
840
|
-
`),
|
|
841
|
-
getLast: this.db.prepare(`
|
|
842
|
-
SELECT hash, kind, timestamp, agent_id, previous_hash, payload
|
|
843
|
-
FROM ops ORDER BY rowid DESC LIMIT 1
|
|
844
|
-
`),
|
|
845
|
-
count: this.db.prepare("SELECT COUNT(*) as cnt FROM ops"),
|
|
846
|
-
saveSnapshot: this.db.prepare(`
|
|
847
|
-
INSERT INTO snapshots (last_op_hash, data)
|
|
848
|
-
VALUES ($lastOpHash, $data)
|
|
849
|
-
`),
|
|
850
|
-
loadSnapshot: this.db.prepare(`
|
|
851
|
-
SELECT last_op_hash, data FROM snapshots
|
|
852
|
-
ORDER BY id DESC LIMIT 1
|
|
853
|
-
`),
|
|
854
|
-
putBlob: this.db.prepare(`
|
|
855
|
-
INSERT OR IGNORE INTO blobs (hash, content) VALUES ($hash, $content)
|
|
856
|
-
`),
|
|
857
|
-
getBlob: this.db.prepare(`
|
|
858
|
-
SELECT content FROM blobs WHERE hash = $hash
|
|
859
|
-
`),
|
|
860
|
-
hasBlob: this.db.prepare(`
|
|
861
|
-
SELECT 1 FROM blobs WHERE hash = $hash
|
|
862
|
-
`)
|
|
863
|
-
};
|
|
864
|
-
}
|
|
865
|
-
append(op) {
|
|
866
|
-
const payload = JSON.stringify({
|
|
867
|
-
facts: op.facts,
|
|
868
|
-
links: op.links,
|
|
869
|
-
...op.deleteFacts?.length ? { deleteFacts: op.deleteFacts } : {},
|
|
870
|
-
...op.deleteLinks?.length ? { deleteLinks: op.deleteLinks } : {},
|
|
871
|
-
...op.vcs ? { vcs: op.vcs } : {},
|
|
872
|
-
...op.signature ? { signature: op.signature } : {}
|
|
873
|
-
});
|
|
874
|
-
this._stmts.insert.run({
|
|
875
|
-
$hash: op.hash,
|
|
876
|
-
$kind: op.kind,
|
|
877
|
-
$timestamp: op.timestamp,
|
|
878
|
-
$agentId: op.agentId,
|
|
879
|
-
$previousHash: op.previousHash ?? null,
|
|
880
|
-
$payload: payload
|
|
881
|
-
});
|
|
882
|
-
}
|
|
883
|
-
appendBatch(ops) {
|
|
884
|
-
if (ops.length === 0)
|
|
885
|
-
return;
|
|
886
|
-
this.db.transaction(() => {
|
|
887
|
-
for (const op of ops) {
|
|
888
|
-
this.append(op);
|
|
889
|
-
}
|
|
890
|
-
})();
|
|
891
|
-
}
|
|
892
|
-
readAll() {
|
|
893
|
-
const rows = this._stmts.readAll.all();
|
|
894
|
-
return rows.map(rowToOp);
|
|
895
|
-
}
|
|
896
|
-
readUntil(hash) {
|
|
897
|
-
const rows = this._stmts.readUntil.all({ $hash: hash });
|
|
898
|
-
return rows.map(rowToOp);
|
|
899
|
-
}
|
|
900
|
-
readAfter(hash) {
|
|
901
|
-
const rows = this._stmts.readAfter.all({ $hash: hash });
|
|
902
|
-
return rows.map(rowToOp);
|
|
903
|
-
}
|
|
904
|
-
readUntilTimestamp(isoTimestamp) {
|
|
905
|
-
const rows = this.db.prepare(`SELECT hash, kind, timestamp, agent_id, previous_hash, payload
|
|
906
|
-
FROM ops WHERE timestamp <= $ts ORDER BY rowid ASC`).all({ $ts: isoTimestamp });
|
|
907
|
-
return rows.map(rowToOp);
|
|
908
|
-
}
|
|
909
|
-
getLastOp() {
|
|
910
|
-
const row = this._stmts.getLast.get();
|
|
911
|
-
return row ? rowToOp(row) : undefined;
|
|
912
|
-
}
|
|
913
|
-
getByHash(hash) {
|
|
914
|
-
return this.getOpByHash(hash);
|
|
915
|
-
}
|
|
916
|
-
getOpCount() {
|
|
917
|
-
return this.count();
|
|
918
|
-
}
|
|
919
|
-
getOpByHash(hash) {
|
|
920
|
-
const row = this._stmts.getByHash.get({ $hash: hash });
|
|
921
|
-
return row ? rowToOp(row) : undefined;
|
|
922
|
-
}
|
|
923
|
-
count() {
|
|
924
|
-
const row = this._stmts.count.get();
|
|
925
|
-
return row?.cnt ?? 0;
|
|
926
|
-
}
|
|
927
|
-
findCommonAncestor(hashA, hashB) {
|
|
928
|
-
const ancestorsA = new Set;
|
|
929
|
-
let cursor = hashA;
|
|
930
|
-
while (cursor) {
|
|
931
|
-
ancestorsA.add(cursor);
|
|
932
|
-
const op = this.getOpByHash(cursor);
|
|
933
|
-
cursor = op?.previousHash;
|
|
934
|
-
}
|
|
935
|
-
cursor = hashB;
|
|
936
|
-
while (cursor) {
|
|
937
|
-
if (ancestorsA.has(cursor)) {
|
|
938
|
-
return this.getOpByHash(cursor);
|
|
939
|
-
}
|
|
940
|
-
const op = this.getOpByHash(cursor);
|
|
941
|
-
cursor = op?.previousHash;
|
|
942
|
-
}
|
|
943
|
-
return;
|
|
944
|
-
}
|
|
945
|
-
saveSnapshot(lastOpHash, data) {
|
|
946
|
-
this._stmts.saveSnapshot.run({
|
|
947
|
-
$lastOpHash: lastOpHash,
|
|
948
|
-
$data: JSON.stringify(data)
|
|
949
|
-
});
|
|
950
|
-
}
|
|
951
|
-
loadLatestSnapshot() {
|
|
952
|
-
const row = this._stmts.loadSnapshot.get();
|
|
953
|
-
if (!row)
|
|
954
|
-
return;
|
|
955
|
-
return {
|
|
956
|
-
lastOpHash: row.last_op_hash,
|
|
957
|
-
data: JSON.parse(row.data)
|
|
958
|
-
};
|
|
959
|
-
}
|
|
960
|
-
putBlob(hash, content) {
|
|
961
|
-
this._stmts.putBlob.run({
|
|
962
|
-
$hash: hash,
|
|
963
|
-
$content: Buffer.from(content)
|
|
964
|
-
});
|
|
965
|
-
}
|
|
966
|
-
getBlob(hash) {
|
|
967
|
-
const row = this._stmts.getBlob.get({ $hash: hash });
|
|
968
|
-
if (!row)
|
|
969
|
-
return;
|
|
970
|
-
return new Uint8Array(row.content);
|
|
971
|
-
}
|
|
972
|
-
hasBlob(hash) {
|
|
973
|
-
return !!this._stmts.hasBlob.get({ $hash: hash });
|
|
974
|
-
}
|
|
975
|
-
close() {
|
|
976
|
-
this.db.close();
|
|
977
|
-
}
|
|
978
|
-
}
|
|
979
|
-
function rowToOp(row) {
|
|
980
|
-
const payload = JSON.parse(row.payload);
|
|
981
|
-
const op = {
|
|
982
|
-
hash: row.hash,
|
|
983
|
-
kind: row.kind,
|
|
984
|
-
timestamp: row.timestamp,
|
|
985
|
-
agentId: row.agent_id
|
|
986
|
-
};
|
|
987
|
-
if (row.previous_hash)
|
|
988
|
-
op.previousHash = row.previous_hash;
|
|
989
|
-
if (payload.facts)
|
|
990
|
-
op.facts = payload.facts;
|
|
991
|
-
if (payload.links)
|
|
992
|
-
op.links = payload.links;
|
|
993
|
-
if (payload.deleteFacts)
|
|
994
|
-
op.deleteFacts = payload.deleteFacts;
|
|
995
|
-
if (payload.deleteLinks)
|
|
996
|
-
op.deleteLinks = payload.deleteLinks;
|
|
997
|
-
if (payload.vcs)
|
|
998
|
-
op.vcs = payload.vcs;
|
|
999
|
-
if (payload.signature)
|
|
1000
|
-
op.signature = payload.signature;
|
|
1001
|
-
return op;
|
|
1002
|
-
}
|
|
1003
|
-
|
|
1004
|
-
export { TrellisKernel, SqliteKernelBackend };
|
|
771
|
+
export { TrellisKernel };
|