trellis 2.1.7 → 2.1.9
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 +100 -10
- package/dist/cli/index.d.ts +14 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +199 -9
- package/dist/client/config.d.ts +56 -0
- package/dist/client/config.d.ts.map +1 -0
- package/dist/client/index.d.ts +15 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +32 -0
- package/dist/client/sdk.d.ts +152 -0
- package/dist/client/sdk.d.ts.map +1 -0
- package/dist/config-8hczw0rs.js +20 -0
- package/dist/core/agents/harness.d.ts +49 -0
- package/dist/core/agents/harness.d.ts.map +1 -0
- package/dist/core/agents/index.d.ts +8 -0
- package/dist/core/agents/index.d.ts.map +1 -0
- package/dist/core/agents/types.d.ts +63 -0
- package/dist/core/agents/types.d.ts.map +1 -0
- package/dist/core/index.d.ts +25 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +15 -9
- package/dist/core/kernel/middleware.d.ts +28 -0
- package/dist/core/kernel/middleware.d.ts.map +1 -0
- package/dist/core/kernel/trellis-kernel.d.ts +162 -0
- package/dist/core/kernel/trellis-kernel.d.ts.map +1 -0
- package/dist/core/ontology/builtins.d.ts +16 -0
- package/dist/core/ontology/builtins.d.ts.map +1 -0
- package/dist/core/ontology/index.d.ts +10 -0
- package/dist/core/ontology/index.d.ts.map +1 -0
- package/dist/core/ontology/registry.d.ts +70 -0
- package/dist/core/ontology/registry.d.ts.map +1 -0
- package/dist/core/ontology/types.d.ts +97 -0
- package/dist/core/ontology/types.d.ts.map +1 -0
- package/dist/core/ontology/validator.d.ts +34 -0
- package/dist/core/ontology/validator.d.ts.map +1 -0
- package/dist/core/persist/backend.d.ts +60 -0
- package/dist/core/persist/backend.d.ts.map +1 -0
- package/dist/core/persist/sqlite-backend.d.ts +41 -0
- package/dist/core/persist/sqlite-backend.d.ts.map +1 -0
- package/dist/core/plugins/index.d.ts +8 -0
- package/dist/core/plugins/index.d.ts.map +1 -0
- package/dist/core/plugins/registry.d.ts +69 -0
- package/dist/core/plugins/registry.d.ts.map +1 -0
- package/dist/core/plugins/types.d.ts +87 -0
- package/dist/core/plugins/types.d.ts.map +1 -0
- package/dist/core/query/datalog.d.ts +52 -0
- package/dist/core/query/datalog.d.ts.map +1 -0
- package/dist/core/query/engine.d.ts +42 -0
- package/dist/core/query/engine.d.ts.map +1 -0
- package/dist/core/query/index.d.ts +12 -0
- package/dist/core/query/index.d.ts.map +1 -0
- package/dist/core/query/parser.d.ts +37 -0
- package/dist/core/query/parser.d.ts.map +1 -0
- package/dist/core/query/types.d.ts +135 -0
- package/dist/core/query/types.d.ts.map +1 -0
- package/dist/core/store/eav-store.d.ts +107 -0
- package/dist/core/store/eav-store.d.ts.map +1 -0
- package/dist/db/index.d.ts +18 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +83 -0
- package/dist/db/inspector.js +28 -0
- package/dist/db/trellis.css +1 -0
- package/dist/decisions/auto-capture.d.ts +31 -0
- package/dist/decisions/auto-capture.d.ts.map +1 -0
- package/dist/decisions/hooks.d.ts +48 -0
- package/dist/decisions/hooks.d.ts.map +1 -0
- package/dist/decisions/index.d.ts +36 -0
- package/dist/decisions/index.d.ts.map +1 -0
- package/dist/decisions/types.d.ts +73 -0
- package/dist/decisions/types.d.ts.map +1 -0
- package/dist/deploy-99j5dc9c.js +9 -0
- package/dist/embeddings/auto-embed.d.ts +52 -0
- package/dist/embeddings/auto-embed.d.ts.map +1 -0
- package/dist/embeddings/chunker.d.ts +73 -0
- package/dist/embeddings/chunker.d.ts.map +1 -0
- package/dist/embeddings/index.d.ts +18 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/model.d.ts +30 -0
- package/dist/embeddings/model.d.ts.map +1 -0
- package/dist/embeddings/search.d.ts +87 -0
- package/dist/embeddings/search.d.ts.map +1 -0
- package/dist/embeddings/store.d.ts +66 -0
- package/dist/embeddings/store.d.ts.map +1 -0
- package/dist/embeddings/types.d.ts +54 -0
- package/dist/embeddings/types.d.ts.map +1 -0
- package/dist/engine-y0724kjq.js +8 -0
- package/dist/engine.d.ts +216 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/garden/cluster.d.ts +57 -0
- package/dist/garden/cluster.d.ts.map +1 -0
- package/dist/garden/garden.d.ts +104 -0
- package/dist/garden/garden.d.ts.map +1 -0
- package/dist/garden/index.d.ts +15 -0
- package/dist/garden/index.d.ts.map +1 -0
- package/dist/git/git-exporter.d.ts +37 -0
- package/dist/git/git-exporter.d.ts.map +1 -0
- package/dist/git/git-importer.d.ts +36 -0
- package/dist/git/git-importer.d.ts.map +1 -0
- package/dist/git/git-reader.d.ts +63 -0
- package/dist/git/git-reader.d.ts.map +1 -0
- package/dist/git/index.d.ts +10 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/identity/governance.d.ts +54 -0
- package/dist/identity/governance.d.ts.map +1 -0
- package/dist/identity/identity.d.ts +63 -0
- package/dist/identity/identity.d.ts.map +1 -0
- package/dist/identity/index.d.ts +10 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/signing-middleware.d.ts +38 -0
- package/dist/identity/signing-middleware.d.ts.map +1 -0
- package/dist/import-fyg5sgq4.js +11 -0
- package/dist/{index-5m0g9r0y.js → index-04sq3h27.js} +1 -496
- package/dist/index-2r4jxwnb.js +32 -0
- package/dist/index-4beszbgg.js +292 -0
- package/dist/index-5bhe57y9.js +326 -0
- package/dist/index-5p6zgspx.js +77 -0
- package/dist/index-7t92ej34.js +544 -0
- package/dist/index-8fjwnztt.js +155 -0
- package/dist/{index-22jx9qsz.js → index-czecrvvn.js} +4 -4
- package/dist/index-hgd30epa.js +149 -0
- package/dist/index-k5b0xskw.js +1 -0
- package/dist/index-kbnht9p8.js +1 -0
- package/dist/index-n9f2qyh5.js +495 -0
- package/dist/index-xr7rx360.js +814 -0
- package/dist/index-xzym9w0m.js +43 -0
- package/dist/index-yp88he8n.js +316 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -7
- package/dist/links/index.d.ts +16 -0
- package/dist/links/index.d.ts.map +1 -0
- package/dist/links/lifecycle.d.ts +112 -0
- package/dist/links/lifecycle.d.ts.map +1 -0
- package/dist/links/parser.d.ts +56 -0
- package/dist/links/parser.d.ts.map +1 -0
- package/dist/links/ref-index.d.ts +55 -0
- package/dist/links/ref-index.d.ts.map +1 -0
- package/dist/links/resolver.d.ts +90 -0
- package/dist/links/resolver.d.ts.map +1 -0
- package/dist/links/types.d.ts +70 -0
- package/dist/links/types.d.ts.map +1 -0
- package/dist/mcp/docs.d.ts +18 -0
- package/dist/mcp/docs.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +9 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/server.d.ts +26 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/react/index.js +189 -0
- package/dist/sdk-sj8rp0m7.js +15 -0
- package/dist/semantic/csharp-parser.d.ts +12 -0
- package/dist/semantic/csharp-parser.d.ts.map +1 -0
- package/dist/semantic/go-parser.d.ts +12 -0
- package/dist/semantic/go-parser.d.ts.map +1 -0
- package/dist/semantic/index.d.ts +22 -0
- package/dist/semantic/index.d.ts.map +1 -0
- package/dist/semantic/java-parser.d.ts +12 -0
- package/dist/semantic/java-parser.d.ts.map +1 -0
- package/dist/semantic/python-parser.d.ts +12 -0
- package/dist/semantic/python-parser.d.ts.map +1 -0
- package/dist/semantic/ruby-parser.d.ts +12 -0
- package/dist/semantic/ruby-parser.d.ts.map +1 -0
- package/dist/semantic/rust-parser.d.ts +12 -0
- package/dist/semantic/rust-parser.d.ts.map +1 -0
- package/dist/semantic/semantic-merge.d.ts +20 -0
- package/dist/semantic/semantic-merge.d.ts.map +1 -0
- package/dist/semantic/ts-parser.d.ts +13 -0
- package/dist/semantic/ts-parser.d.ts.map +1 -0
- package/dist/semantic/types.d.ts +130 -0
- package/dist/semantic/types.d.ts.map +1 -0
- package/dist/server/auth.d.ts +72 -0
- package/dist/server/auth.d.ts.map +1 -0
- package/dist/server/deploy.d.ts +44 -0
- package/dist/server/deploy.d.ts.map +1 -0
- package/dist/server/import.d.ts +40 -0
- package/dist/server/import.d.ts.map +1 -0
- package/dist/server/index.d.ts +24 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +60 -0
- package/dist/server/permissions.d.ts +84 -0
- package/dist/server/permissions.d.ts.map +1 -0
- package/dist/server/realtime.d.ts +78 -0
- package/dist/server/realtime.d.ts.map +1 -0
- package/dist/server/server.d.ts +43 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/tenancy.d.ts +53 -0
- package/dist/server/tenancy.d.ts.map +1 -0
- package/dist/server-3vkpnpbz.js +11 -0
- package/dist/sync/http-transport.d.ts +47 -0
- package/dist/sync/http-transport.d.ts.map +1 -0
- package/dist/sync/index.d.ts +22 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/memory-transport.d.ts +27 -0
- package/dist/sync/memory-transport.d.ts.map +1 -0
- package/dist/sync/multi-repo.d.ts +82 -0
- package/dist/sync/multi-repo.d.ts.map +1 -0
- package/dist/sync/reconciler.d.ts +48 -0
- package/dist/sync/reconciler.d.ts.map +1 -0
- package/dist/sync/sync-engine.d.ts +65 -0
- package/dist/sync/sync-engine.d.ts.map +1 -0
- package/dist/sync/types.d.ts +71 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/ws-transport.d.ts +41 -0
- package/dist/sync/ws-transport.d.ts.map +1 -0
- package/dist/tenancy-tjr7kk2v.js +13 -0
- package/dist/ui/server.d.ts +38 -0
- package/dist/ui/server.d.ts.map +1 -0
- package/dist/vcs/blob-store.d.ts +49 -0
- package/dist/vcs/blob-store.d.ts.map +1 -0
- package/dist/vcs/branch.d.ts +35 -0
- package/dist/vcs/branch.d.ts.map +1 -0
- package/dist/vcs/checkpoint.d.ts +24 -0
- package/dist/vcs/checkpoint.d.ts.map +1 -0
- package/dist/vcs/decompose.d.ts +19 -0
- package/dist/vcs/decompose.d.ts.map +1 -0
- package/dist/vcs/diff.d.ts +65 -0
- package/dist/vcs/diff.d.ts.map +1 -0
- package/dist/vcs/engine-context.d.ts +21 -0
- package/dist/vcs/engine-context.d.ts.map +1 -0
- package/dist/vcs/index.d.ts +23 -0
- package/dist/vcs/index.d.ts.map +1 -0
- package/dist/vcs/issue.d.ts +159 -0
- package/dist/vcs/issue.d.ts.map +1 -0
- package/dist/vcs/merge.d.ts +55 -0
- package/dist/vcs/merge.d.ts.map +1 -0
- package/dist/vcs/milestone.d.ts +30 -0
- package/dist/vcs/milestone.d.ts.map +1 -0
- package/dist/vcs/ops.d.ts +27 -0
- package/dist/vcs/ops.d.ts.map +1 -0
- package/dist/vcs/types.d.ts +94 -0
- package/dist/vcs/types.d.ts.map +1 -0
- package/dist/vcs/vcs-middleware.d.ts +14 -0
- package/dist/vcs/vcs-middleware.d.ts.map +1 -0
- package/dist/watcher/fs-watcher.d.ts +51 -0
- package/dist/watcher/fs-watcher.d.ts.map +1 -0
- package/dist/watcher/index.d.ts +9 -0
- package/dist/watcher/index.d.ts.map +1 -0
- package/dist/watcher/ingestion.d.ts +28 -0
- package/dist/watcher/ingestion.d.ts.map +1 -0
- package/package.json +44 -4
- package/dist/index-hybgxe40.js +0 -1174
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/ontology/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAMlD,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAEhF,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yDAAyD;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,wCAAwC;IACxC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACd,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAMD,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,wDAAwD;IACxD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,mEAAmE;IACnE,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,MAAM,WAAW,SAAS;IACxB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,4BAA4B;IAC5B,SAAS,EAAE,WAAW,EAAE,CAAC;CAC1B;AAMD,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ontology Validation — Schema enforcement for graph mutations.
|
|
3
|
+
*
|
|
4
|
+
* Provides both standalone validation (check existing entities against schemas)
|
|
5
|
+
* and a kernel middleware that rejects mutations violating ontology constraints.
|
|
6
|
+
*
|
|
7
|
+
* @module trellis/core/ontology
|
|
8
|
+
*/
|
|
9
|
+
import type { EAVStore } from '../store/eav-store.js';
|
|
10
|
+
import type { KernelMiddleware } from '../kernel/middleware.js';
|
|
11
|
+
import type { OntologyRegistry } from './registry.js';
|
|
12
|
+
import type { ValidationResult } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Validate a single entity against the ontology registry.
|
|
15
|
+
*/
|
|
16
|
+
export declare function validateEntity(entityId: string, store: EAVStore, registry: OntologyRegistry): ValidationResult;
|
|
17
|
+
/**
|
|
18
|
+
* Validate all entities in the store against the ontology registry.
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateStore(store: EAVStore, registry: OntologyRegistry): ValidationResult;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a kernel middleware that validates mutations against the ontology.
|
|
23
|
+
*
|
|
24
|
+
* - On `addFacts`: validates that new facts conform to attribute definitions
|
|
25
|
+
* - On `addLinks`: validates that links conform to relation definitions
|
|
26
|
+
* - Blocks operations that would create invalid data (throws on error)
|
|
27
|
+
*
|
|
28
|
+
* @param registry The ontology registry to validate against
|
|
29
|
+
* @param strict If true, unknown entity types cause errors (default: false = warnings only)
|
|
30
|
+
*/
|
|
31
|
+
export declare function createValidationMiddleware(registry: OntologyRegistry, options?: {
|
|
32
|
+
strict?: boolean;
|
|
33
|
+
}): KernelMiddleware;
|
|
34
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/core/ontology/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AAExE,OAAO,KAAK,EAAE,gBAAgB,EAAuC,MAAM,yBAAyB,CAAC;AACrG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAKV,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,gBAAgB,GACzB,gBAAgB,CAoMlB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,gBAAgB,GACzB,gBAAgB,CAkBlB;AAsCD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,gBAAgB,CA4ElB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kernel persistence backend types.
|
|
3
|
+
* Inlined from trellis-core for single-package publish.
|
|
4
|
+
*
|
|
5
|
+
* @module trellis/core
|
|
6
|
+
*/
|
|
7
|
+
import type { Fact, Link } from '../store/eav-store.js';
|
|
8
|
+
export type KernelOpKind = 'addFacts' | 'addLinks' | 'deleteFacts' | 'deleteLinks';
|
|
9
|
+
export interface KernelOp {
|
|
10
|
+
/**
|
|
11
|
+
* Content hash of this operation (including previousHash).
|
|
12
|
+
* Format: trellis:op:{hash}
|
|
13
|
+
*/
|
|
14
|
+
hash: string;
|
|
15
|
+
/**
|
|
16
|
+
* Kind of operation.
|
|
17
|
+
*/
|
|
18
|
+
kind: KernelOpKind;
|
|
19
|
+
/**
|
|
20
|
+
* ISO timestamp of when the op was created.
|
|
21
|
+
*/
|
|
22
|
+
timestamp: string;
|
|
23
|
+
/**
|
|
24
|
+
* The ID of the agent that performed the operation.
|
|
25
|
+
*/
|
|
26
|
+
agentId: string;
|
|
27
|
+
/**
|
|
28
|
+
* Hash of the previous operation in the local chain.
|
|
29
|
+
*/
|
|
30
|
+
previousHash?: string;
|
|
31
|
+
/**
|
|
32
|
+
* The actual data payload.
|
|
33
|
+
*/
|
|
34
|
+
facts?: Fact[];
|
|
35
|
+
links?: Link[];
|
|
36
|
+
/**
|
|
37
|
+
* Facts to delete (for update/delete operations).
|
|
38
|
+
*/
|
|
39
|
+
deleteFacts?: Fact[];
|
|
40
|
+
/**
|
|
41
|
+
* Links to delete (for update/delete operations).
|
|
42
|
+
*/
|
|
43
|
+
deleteLinks?: Link[];
|
|
44
|
+
}
|
|
45
|
+
export interface KernelBackend {
|
|
46
|
+
init(): void;
|
|
47
|
+
append(op: KernelOp): void;
|
|
48
|
+
readAll(): KernelOp[];
|
|
49
|
+
readUntil(hash: string): KernelOp[];
|
|
50
|
+
readAfter(hash: string): KernelOp[];
|
|
51
|
+
readUntilTimestamp(isoTimestamp: string): KernelOp[];
|
|
52
|
+
getLastOp(): KernelOp | undefined;
|
|
53
|
+
saveSnapshot(lastOpHash: string, data: any): void;
|
|
54
|
+
loadLatestSnapshot(): {
|
|
55
|
+
lastOpHash: string;
|
|
56
|
+
data: any;
|
|
57
|
+
} | undefined;
|
|
58
|
+
close?(): void;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../../src/core/persist/backend.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,UAAU,GACV,aAAa,GACb,aAAa,CAAC;AAElB,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,OAAO,IAAI,QAAQ,EAAE,CAAC;IACtB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IACpC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IACpC,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IACrD,SAAS,IAAI,QAAQ,GAAG,SAAS,CAAC;IAGlC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAClD,kBAAkB,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC;IAEpE,KAAK,CAAC,IAAI,IAAI,CAAC;CAChB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite-backed Kernel Backend
|
|
3
|
+
*
|
|
4
|
+
* Replaces the P0 JsonOpLog with a proper WAL-mode SQLite database.
|
|
5
|
+
* Stores ops, snapshots, and blobs in a single database file.
|
|
6
|
+
*
|
|
7
|
+
* @module trellis/core
|
|
8
|
+
*/
|
|
9
|
+
import type { KernelOp, KernelBackend } from './backend.js';
|
|
10
|
+
export declare class SqliteKernelBackend implements KernelBackend {
|
|
11
|
+
private dbPath;
|
|
12
|
+
private db;
|
|
13
|
+
private _stmts;
|
|
14
|
+
constructor(dbPath: string);
|
|
15
|
+
init(): void;
|
|
16
|
+
private _prepareStatements;
|
|
17
|
+
append(op: KernelOp): void;
|
|
18
|
+
appendBatch(ops: KernelOp[]): void;
|
|
19
|
+
readAll(): KernelOp[];
|
|
20
|
+
readUntil(hash: string): KernelOp[];
|
|
21
|
+
readAfter(hash: string): KernelOp[];
|
|
22
|
+
readUntilTimestamp(isoTimestamp: string): KernelOp[];
|
|
23
|
+
getLastOp(): KernelOp | undefined;
|
|
24
|
+
getOpByHash(hash: string): KernelOp | undefined;
|
|
25
|
+
count(): number;
|
|
26
|
+
/**
|
|
27
|
+
* Find the common ancestor op of two op hashes by walking
|
|
28
|
+
* previousHash chains until they converge.
|
|
29
|
+
*/
|
|
30
|
+
findCommonAncestor(hashA: string, hashB: string): KernelOp | undefined;
|
|
31
|
+
saveSnapshot(lastOpHash: string, data: any): void;
|
|
32
|
+
loadLatestSnapshot(): {
|
|
33
|
+
lastOpHash: string;
|
|
34
|
+
data: any;
|
|
35
|
+
} | undefined;
|
|
36
|
+
putBlob(hash: string, content: Uint8Array): void;
|
|
37
|
+
getBlob(hash: string): Uint8Array | undefined;
|
|
38
|
+
hasBlob(hash: string): boolean;
|
|
39
|
+
close(): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=sqlite-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-backend.d.ts","sourceRoot":"","sources":["../../../src/core/persist/sqlite-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAuC5D,qBAAa,mBAAoB,YAAW,aAAa;IAiB3C,OAAO,CAAC,MAAM;IAhB1B,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,MAAM,CAaE;gBAEI,MAAM,EAAE,MAAM;IAIlC,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,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,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin System — Public API Surface
|
|
3
|
+
*
|
|
4
|
+
* @module trellis/core/plugins
|
|
5
|
+
*/
|
|
6
|
+
export { PluginRegistry, EventBus } from './registry.js';
|
|
7
|
+
export type { PluginDef, PluginContext, PluginManifest, EventCallback, EventHandler, WellKnownEvent, WorkspaceConfig, } from './types.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzD,YAAY,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin Registry — Load, register, and manage plugins.
|
|
3
|
+
*
|
|
4
|
+
* Handles plugin lifecycle, dependency resolution, event dispatching,
|
|
5
|
+
* and workspace configuration.
|
|
6
|
+
*
|
|
7
|
+
* @module trellis/core/plugins
|
|
8
|
+
*/
|
|
9
|
+
import type { TrellisKernel } from '../kernel/trellis-kernel.js';
|
|
10
|
+
import type { OntologyRegistry } from '../ontology/registry.js';
|
|
11
|
+
import type { QueryEngine } from '../query/engine.js';
|
|
12
|
+
import type { PluginDef, EventCallback, WorkspaceConfig } from './types.js';
|
|
13
|
+
export declare class EventBus {
|
|
14
|
+
private handlers;
|
|
15
|
+
on(event: string, handler: EventCallback): void;
|
|
16
|
+
off(event: string, handler: EventCallback): void;
|
|
17
|
+
emit(event: string, data?: unknown): Promise<void>;
|
|
18
|
+
listEvents(): string[];
|
|
19
|
+
clear(): void;
|
|
20
|
+
}
|
|
21
|
+
export declare class PluginRegistry {
|
|
22
|
+
private plugins;
|
|
23
|
+
private eventBus;
|
|
24
|
+
private workspaceConfig;
|
|
25
|
+
private logs;
|
|
26
|
+
/**
|
|
27
|
+
* Register a plugin definition. Does not load it yet.
|
|
28
|
+
*/
|
|
29
|
+
register(def: PluginDef): void;
|
|
30
|
+
/**
|
|
31
|
+
* Unregister a plugin. Unloads it first if loaded.
|
|
32
|
+
*/
|
|
33
|
+
unregister(id: string): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Load a plugin (call onLoad, register middleware/ontologies/rules/events).
|
|
36
|
+
* Resolves dependencies first.
|
|
37
|
+
*/
|
|
38
|
+
load(id: string, kernel?: TrellisKernel, ontologyRegistry?: OntologyRegistry, queryEngine?: QueryEngine): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Unload a plugin (call onUnload, remove middleware/events).
|
|
41
|
+
*/
|
|
42
|
+
unload(id: string): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Load all registered plugins in dependency order.
|
|
45
|
+
*/
|
|
46
|
+
loadAll(kernel?: TrellisKernel, ontologyRegistry?: OntologyRegistry, queryEngine?: QueryEngine): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Unload all plugins in reverse order.
|
|
49
|
+
*/
|
|
50
|
+
unloadAll(): Promise<void>;
|
|
51
|
+
get(id: string): PluginDef | undefined;
|
|
52
|
+
isLoaded(id: string): boolean;
|
|
53
|
+
list(): Array<{
|
|
54
|
+
def: PluginDef;
|
|
55
|
+
loaded: boolean;
|
|
56
|
+
}>;
|
|
57
|
+
listLoaded(): PluginDef[];
|
|
58
|
+
getEventBus(): EventBus;
|
|
59
|
+
emit(event: string, data?: unknown): Promise<void>;
|
|
60
|
+
on(event: string, handler: EventCallback): void;
|
|
61
|
+
getWorkspaceConfig(): WorkspaceConfig;
|
|
62
|
+
setWorkspaceConfig(config: WorkspaceConfig): void;
|
|
63
|
+
getConfigValue(key: string): unknown;
|
|
64
|
+
setConfigValue(key: string, value: unknown): void;
|
|
65
|
+
getLogs(pluginId?: string): typeof this.logs;
|
|
66
|
+
private _buildContext;
|
|
67
|
+
private _resolveDependencyOrder;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/plugins/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EACV,SAAS,EAGT,aAAa,EAEb,eAAe,EAChB,MAAM,YAAY,CAAC;AAMpB,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAA8C;IAE9D,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAM/C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAQ1C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxD,UAAU,IAAI,MAAM,EAAE;IAItB,KAAK,IAAI,IAAI;CAGd;AAMD,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAA+D;IAC9E,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,IAAI,CAAuE;IAEnF;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAO9B;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3C;;;OAGG;IACG,IAAI,CACR,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,aAAa,EACtB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC;IA0DhB;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvC;;OAEG;IACG,OAAO,CACX,MAAM,CAAC,EAAE,aAAa,EACtB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC;IAOhB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAItC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI7B,IAAI,IAAI,KAAK,CAAC;QAAE,GAAG,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAIlD,UAAU,IAAI,SAAS,EAAE;IAUzB,WAAW,IAAI,QAAQ;IAIjB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAQ/C,kBAAkB,IAAI,eAAe;IAIrC,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAIjD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIpC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IASjD,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,IAAI,CAAC,IAAI;IAS5C,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,uBAAuB;CA0BhC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin System Types
|
|
3
|
+
*
|
|
4
|
+
* Defines the plugin interface, manifest format, lifecycle hooks,
|
|
5
|
+
* and event system for extensibility.
|
|
6
|
+
*
|
|
7
|
+
* @module trellis/core/plugins
|
|
8
|
+
*/
|
|
9
|
+
import type { KernelMiddleware } from '../kernel/middleware.js';
|
|
10
|
+
import type { OntologySchema } from '../ontology/types.js';
|
|
11
|
+
import type { DatalogRule } from '../query/types.js';
|
|
12
|
+
export interface PluginDef {
|
|
13
|
+
/** Unique plugin identifier (e.g. "trellis:security", "my-org:custom"). */
|
|
14
|
+
id: string;
|
|
15
|
+
/** Human-readable name. */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Semantic version. */
|
|
18
|
+
version: string;
|
|
19
|
+
/** Description. */
|
|
20
|
+
description?: string;
|
|
21
|
+
/** Plugin dependencies (other plugin IDs). */
|
|
22
|
+
dependencies?: string[];
|
|
23
|
+
/** Kernel middleware provided by this plugin. */
|
|
24
|
+
middleware?: KernelMiddleware[];
|
|
25
|
+
/** Ontology schemas provided by this plugin. */
|
|
26
|
+
ontologies?: OntologySchema[];
|
|
27
|
+
/** Datalog rules provided by this plugin. */
|
|
28
|
+
rules?: DatalogRule[];
|
|
29
|
+
/** Event listeners provided by this plugin. */
|
|
30
|
+
eventHandlers?: EventHandler[];
|
|
31
|
+
/** Called when the plugin is loaded. */
|
|
32
|
+
onLoad?: (ctx: PluginContext) => void | Promise<void>;
|
|
33
|
+
/** Called when the plugin is unloaded. */
|
|
34
|
+
onUnload?: (ctx: PluginContext) => void | Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
export interface PluginContext {
|
|
37
|
+
/** The plugin's own ID. */
|
|
38
|
+
pluginId: string;
|
|
39
|
+
/** Subscribe to events. */
|
|
40
|
+
on: (event: string, handler: EventCallback) => void;
|
|
41
|
+
/** Emit an event. */
|
|
42
|
+
emit: (event: string, data?: unknown) => void;
|
|
43
|
+
/** Get workspace config value. */
|
|
44
|
+
getConfig: (key: string) => unknown;
|
|
45
|
+
/** Log a message. */
|
|
46
|
+
log: (message: string) => void;
|
|
47
|
+
}
|
|
48
|
+
export type EventCallback = (data: unknown) => void | Promise<void>;
|
|
49
|
+
export interface EventHandler {
|
|
50
|
+
/** Event name pattern (e.g. "op:*", "entity:created", "milestone:created"). */
|
|
51
|
+
event: string;
|
|
52
|
+
/** Handler function. */
|
|
53
|
+
handler: EventCallback;
|
|
54
|
+
}
|
|
55
|
+
/** Well-known event names. */
|
|
56
|
+
export type WellKnownEvent = 'op:applied' | 'entity:created' | 'entity:updated' | 'entity:deleted' | 'link:added' | 'link:removed' | 'milestone:created' | 'issue:created' | 'issue:closed' | 'plugin:loaded' | 'plugin:unloaded';
|
|
57
|
+
export interface WorkspaceConfig {
|
|
58
|
+
/** Active ontology IDs. */
|
|
59
|
+
ontologies?: string[];
|
|
60
|
+
/** Active plugin IDs. */
|
|
61
|
+
plugins?: string[];
|
|
62
|
+
/** Tracked file patterns (globs). */
|
|
63
|
+
trackedPaths?: string[];
|
|
64
|
+
/** Ignore patterns. */
|
|
65
|
+
ignorePaths?: string[];
|
|
66
|
+
/** Branch policies. */
|
|
67
|
+
branchPolicies?: Record<string, {
|
|
68
|
+
linear?: boolean;
|
|
69
|
+
}>;
|
|
70
|
+
/** Embedding model override. */
|
|
71
|
+
embeddingModel?: string;
|
|
72
|
+
/** Snapshot threshold (ops between auto-snapshots). */
|
|
73
|
+
snapshotThreshold?: number;
|
|
74
|
+
/** Custom key-value settings. */
|
|
75
|
+
settings?: Record<string, unknown>;
|
|
76
|
+
}
|
|
77
|
+
export interface PluginManifest {
|
|
78
|
+
/** Plugin ID. */
|
|
79
|
+
id: string;
|
|
80
|
+
/** Installed version. */
|
|
81
|
+
version: string;
|
|
82
|
+
/** Whether the plugin is enabled. */
|
|
83
|
+
enabled: boolean;
|
|
84
|
+
/** Plugin-specific configuration. */
|
|
85
|
+
config?: Record<string, unknown>;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/plugins/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Datalog Evaluator — Rule-based recursive queries.
|
|
3
|
+
*
|
|
4
|
+
* Provides transitive closure, reachability, and other recursive
|
|
5
|
+
* graph queries via Datalog-style rules evaluated over the EAV store.
|
|
6
|
+
*
|
|
7
|
+
* Built-in rules:
|
|
8
|
+
* - `reachable(?src, ?tgt)` via a named link attribute
|
|
9
|
+
* - `ancestor(?x, ?y)` (generic transitive closure over any link)
|
|
10
|
+
*
|
|
11
|
+
* Custom rules can be registered via `addRule()`.
|
|
12
|
+
*
|
|
13
|
+
* @module trellis/core/query
|
|
14
|
+
*/
|
|
15
|
+
import type { EAVStore } from '../store/eav-store.js';
|
|
16
|
+
import type { DatalogRule } from './types.js';
|
|
17
|
+
import { QueryEngine } from './engine.js';
|
|
18
|
+
/**
|
|
19
|
+
* Creates a transitive closure rule over a specific link attribute.
|
|
20
|
+
*
|
|
21
|
+
* `reachable(?x, ?y) :- (x attr y)`
|
|
22
|
+
* `reachable(?x, ?y) :- (x attr ?z), reachable(?z, ?y)`
|
|
23
|
+
*/
|
|
24
|
+
export declare function transitiveClosureRules(ruleName: string, linkAttribute: string): DatalogRule[];
|
|
25
|
+
/**
|
|
26
|
+
* Creates a reverse reachability rule (follows links backwards).
|
|
27
|
+
*/
|
|
28
|
+
export declare function reverseReachabilityRules(ruleName: string, linkAttribute: string): DatalogRule[];
|
|
29
|
+
/**
|
|
30
|
+
* Creates a "sibling" rule — entities that share a common parent via a link attribute.
|
|
31
|
+
*
|
|
32
|
+
* `sibling(?a, ?b) :- (?a attr ?parent), (?b attr ?parent)`
|
|
33
|
+
* FILTER ?a != ?b
|
|
34
|
+
*/
|
|
35
|
+
export declare function siblingRules(ruleName: string, linkAttribute: string): DatalogRule[];
|
|
36
|
+
export declare class DatalogRuntime {
|
|
37
|
+
private engine;
|
|
38
|
+
constructor(store: EAVStore);
|
|
39
|
+
/** Register a Datalog rule (or multiple). */
|
|
40
|
+
addRule(rule: DatalogRule): void;
|
|
41
|
+
addRules(rules: DatalogRule[]): void;
|
|
42
|
+
removeRule(name: string): void;
|
|
43
|
+
/** Register built-in transitive closure for a link attribute. */
|
|
44
|
+
registerTransitiveClosure(ruleName: string, linkAttribute: string): void;
|
|
45
|
+
/** Register built-in reverse reachability for a link attribute. */
|
|
46
|
+
registerReverseReachability(ruleName: string, linkAttribute: string): void;
|
|
47
|
+
/** Register built-in sibling rule for a link attribute. */
|
|
48
|
+
registerSiblings(ruleName: string, linkAttribute: string): void;
|
|
49
|
+
/** Get the underlying QueryEngine for direct query execution. */
|
|
50
|
+
getEngine(): QueryEngine;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=datalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datalog.d.ts","sourceRoot":"","sources":["../../../src/core/query/datalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,EAAE,CAoC7F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,EAAE,CAkC/F;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,EAAE,CA6BnF;AAMD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAc;gBAEhB,KAAK,EAAE,QAAQ;IAI3B,6CAA6C;IAC7C,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAIhC,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI;IAIpC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B,iEAAiE;IACjE,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAIxE,mEAAmE;IACnE,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAI1E,2DAA2D;IAC3D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAI/D,iEAAiE;IACjE,SAAS,IAAI,WAAW;CAGzB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EQL-S Query Engine — Pattern-matching evaluator over the EAV store.
|
|
3
|
+
*
|
|
4
|
+
* Evaluates queries by matching fact/link patterns against the store,
|
|
5
|
+
* binding variables, applying filters, and computing aggregates.
|
|
6
|
+
*
|
|
7
|
+
* @module trellis/core/query
|
|
8
|
+
*/
|
|
9
|
+
import type { EAVStore, Atom } from '../store/eav-store.js';
|
|
10
|
+
import type { Query, DatalogRule } from './types.js';
|
|
11
|
+
export interface QueryResult {
|
|
12
|
+
bindings: Record<string, Atom>[];
|
|
13
|
+
executionTime: number;
|
|
14
|
+
count: number;
|
|
15
|
+
}
|
|
16
|
+
export declare class QueryEngine {
|
|
17
|
+
private store;
|
|
18
|
+
private rules;
|
|
19
|
+
private maxRuleDepth;
|
|
20
|
+
constructor(store: EAVStore);
|
|
21
|
+
/** Register a Datalog rule. Multiple rules with the same name = union. */
|
|
22
|
+
addRule(rule: DatalogRule): void;
|
|
23
|
+
removeRule(name: string): void;
|
|
24
|
+
/** Execute a query against the store. */
|
|
25
|
+
execute(query: Query): QueryResult;
|
|
26
|
+
private _evaluatePatterns;
|
|
27
|
+
private _evaluatePattern;
|
|
28
|
+
private _evalFactPattern;
|
|
29
|
+
private _evalLinkPattern;
|
|
30
|
+
private _evalNotPattern;
|
|
31
|
+
private _evalOrPattern;
|
|
32
|
+
private _evalRuleApplication;
|
|
33
|
+
private _evalFilter;
|
|
34
|
+
private _aggregate;
|
|
35
|
+
private _computeAggregate;
|
|
36
|
+
private _order;
|
|
37
|
+
private _project;
|
|
38
|
+
private _resolve;
|
|
39
|
+
private _bind;
|
|
40
|
+
private _dedup;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/core/query/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAc,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EACV,KAAK,EAaL,WAAW,EACZ,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,qBAAa,WAAW;IAIV,OAAO,CAAC,KAAK;IAHzB,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,YAAY,CAAM;gBAEN,KAAK,EAAE,QAAQ;IAEnC,0EAA0E;IAC1E,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAMhC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B,yCAAyC;IACzC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW;IAuClC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,gBAAgB;IAwCxB,OAAO,CAAC,gBAAgB;IAuCxB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,oBAAoB;IAsD5B,OAAO,CAAC,WAAW;IAmCnB,OAAO,CAAC,UAAU;IA+BlB,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,MAAM;IAmBd,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,MAAM;CAYf"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EQL-S Query Module — Public API Surface
|
|
3
|
+
*
|
|
4
|
+
* @module trellis/core/query
|
|
5
|
+
*/
|
|
6
|
+
export type { Variable, Literal, Term, FactPattern, LinkPattern, NotPattern, OrPattern, RuleApplication, Pattern, FilterOp, Filter, AggregateOp, Aggregate, OrderBy, Query, Bindings, DatalogRule, } from './types.js';
|
|
7
|
+
export { isVariable, isLiteral, variable, literal } from './types.js';
|
|
8
|
+
export { QueryEngine } from './engine.js';
|
|
9
|
+
export type { QueryResult } from './engine.js';
|
|
10
|
+
export { parseQuery, parseRule, parseSimple } from './parser.js';
|
|
11
|
+
export { DatalogRuntime, transitiveClosureRules, reverseReachabilityRules, siblingRules, } from './datalog.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/query/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,QAAQ,EAAE,OAAO,EAAE,IAAI,EACvB,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EACzE,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,SAAS,EACtB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGtE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGjE,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,GACb,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EQL-S Query Parser — Parses a simple DSL into Query AST.
|
|
3
|
+
*
|
|
4
|
+
* Syntax overview:
|
|
5
|
+
* SELECT ?e ?name
|
|
6
|
+
* WHERE {
|
|
7
|
+
* [?e "type" "Project"]
|
|
8
|
+
* [?e "name" ?name]
|
|
9
|
+
* (?e "memberOf" ?org)
|
|
10
|
+
* }
|
|
11
|
+
* FILTER ?name != "archived"
|
|
12
|
+
* ORDER BY ?name ASC
|
|
13
|
+
* LIMIT 10
|
|
14
|
+
* OFFSET 5
|
|
15
|
+
*
|
|
16
|
+
* Fact patterns: [entity attr value]
|
|
17
|
+
* Link patterns: (source attr target)
|
|
18
|
+
* Not patterns: NOT [entity attr value]
|
|
19
|
+
* Or patterns: OR { branch1 } { branch2 }
|
|
20
|
+
* Rule calls: ruleName(?x, ?y)
|
|
21
|
+
*
|
|
22
|
+
* Variables start with `?`. Strings are double-quoted.
|
|
23
|
+
* Numbers are bare. Booleans: true/false.
|
|
24
|
+
*
|
|
25
|
+
* @module trellis/core/query
|
|
26
|
+
*/
|
|
27
|
+
import type { Query, DatalogRule } from './types.js';
|
|
28
|
+
export declare function parseQuery(input: string): Query;
|
|
29
|
+
export declare function parseRule(input: string): DatalogRule;
|
|
30
|
+
/**
|
|
31
|
+
* Shorthand: parse a simple "find entities where" query.
|
|
32
|
+
*
|
|
33
|
+
* Example: `find ?e where type = "Project"`
|
|
34
|
+
* Becomes: SELECT ?e WHERE { [?e "type" "Project"] }
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseSimple(input: string): Query;
|
|
37
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/core/query/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EACV,KAAK,EAEC,WAAW,EAClB,MAAM,YAAY,CAAC;AAoYpB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAG/C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAGpD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CA6ChD"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EQL-S Query Types — Entity Query Language (Structured)
|
|
3
|
+
*
|
|
4
|
+
* Defines the AST for structured queries over the EAV store.
|
|
5
|
+
* Queries are composed of patterns (fact/link clauses) that bind
|
|
6
|
+
* variables, plus optional filters, aggregations, and projections.
|
|
7
|
+
*
|
|
8
|
+
* @module trellis/core/query
|
|
9
|
+
*/
|
|
10
|
+
import type { Atom } from '../store/eav-store.js';
|
|
11
|
+
/**
|
|
12
|
+
* A query variable, prefixed with `?` in the DSL.
|
|
13
|
+
* e.g. `?e`, `?name`, `?type`
|
|
14
|
+
*/
|
|
15
|
+
export interface Variable {
|
|
16
|
+
kind: 'variable';
|
|
17
|
+
name: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A literal constant value.
|
|
21
|
+
*/
|
|
22
|
+
export interface Literal {
|
|
23
|
+
kind: 'literal';
|
|
24
|
+
value: Atom;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A term is either a variable or a literal.
|
|
28
|
+
*/
|
|
29
|
+
export type Term = Variable | Literal;
|
|
30
|
+
/**
|
|
31
|
+
* A fact pattern matches triples (e, a, v) in the EAV store.
|
|
32
|
+
*
|
|
33
|
+
* Example DSL: `[?e "type" "Project"]` or `[?e ?attr ?val]`
|
|
34
|
+
*/
|
|
35
|
+
export interface FactPattern {
|
|
36
|
+
kind: 'fact';
|
|
37
|
+
entity: Term;
|
|
38
|
+
attribute: Term;
|
|
39
|
+
value: Term;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A link pattern matches links (e1, a, e2) in the graph.
|
|
43
|
+
*
|
|
44
|
+
* Example DSL: `(?src "memberOf" ?tgt)`
|
|
45
|
+
*/
|
|
46
|
+
export interface LinkPattern {
|
|
47
|
+
kind: 'link';
|
|
48
|
+
source: Term;
|
|
49
|
+
attribute: Term;
|
|
50
|
+
target: Term;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* A negation pattern — succeeds when the inner pattern has NO matches.
|
|
54
|
+
*/
|
|
55
|
+
export interface NotPattern {
|
|
56
|
+
kind: 'not';
|
|
57
|
+
pattern: Pattern;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* An or-pattern — succeeds when ANY branch matches.
|
|
61
|
+
*/
|
|
62
|
+
export interface OrPattern {
|
|
63
|
+
kind: 'or';
|
|
64
|
+
branches: Pattern[][];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A rule application — invoke a named Datalog rule.
|
|
68
|
+
*/
|
|
69
|
+
export interface RuleApplication {
|
|
70
|
+
kind: 'rule';
|
|
71
|
+
name: string;
|
|
72
|
+
args: Term[];
|
|
73
|
+
}
|
|
74
|
+
export type Pattern = FactPattern | LinkPattern | NotPattern | OrPattern | RuleApplication;
|
|
75
|
+
export type FilterOp = '=' | '!=' | '<' | '<=' | '>' | '>=' | 'contains' | 'startsWith' | 'endsWith' | 'matches';
|
|
76
|
+
export interface Filter {
|
|
77
|
+
kind: 'filter';
|
|
78
|
+
left: Term;
|
|
79
|
+
op: FilterOp;
|
|
80
|
+
right: Term;
|
|
81
|
+
}
|
|
82
|
+
export type AggregateOp = 'count' | 'sum' | 'avg' | 'min' | 'max' | 'collect';
|
|
83
|
+
export interface Aggregate {
|
|
84
|
+
op: AggregateOp;
|
|
85
|
+
/** Variable to aggregate over. */
|
|
86
|
+
variable: string;
|
|
87
|
+
/** Output variable name. */
|
|
88
|
+
as: string;
|
|
89
|
+
}
|
|
90
|
+
export interface OrderBy {
|
|
91
|
+
variable: string;
|
|
92
|
+
direction: 'asc' | 'desc';
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* A complete EQL-S query.
|
|
96
|
+
*/
|
|
97
|
+
export interface Query {
|
|
98
|
+
/** Variables to project in the result. Empty = return all bound variables. */
|
|
99
|
+
select: string[];
|
|
100
|
+
/** Pattern clauses that must all match (conjunction). */
|
|
101
|
+
where: Pattern[];
|
|
102
|
+
/** Post-match filters. */
|
|
103
|
+
filters: Filter[];
|
|
104
|
+
/** Aggregation functions. */
|
|
105
|
+
aggregates: Aggregate[];
|
|
106
|
+
/** Ordering. */
|
|
107
|
+
orderBy: OrderBy[];
|
|
108
|
+
/** Maximum number of results (0 = unlimited). */
|
|
109
|
+
limit: number;
|
|
110
|
+
/** Number of results to skip. */
|
|
111
|
+
offset: number;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* A single set of variable bindings.
|
|
115
|
+
*/
|
|
116
|
+
export type Bindings = Map<string, Atom>;
|
|
117
|
+
/**
|
|
118
|
+
* A Datalog rule: `head :- body`.
|
|
119
|
+
*
|
|
120
|
+
* Example: `ancestor(?x, ?z) :- [?x "parent" ?y], ancestor(?y, ?z)`
|
|
121
|
+
*/
|
|
122
|
+
export interface DatalogRule {
|
|
123
|
+
name: string;
|
|
124
|
+
/** Parameter variable names for the head. */
|
|
125
|
+
params: string[];
|
|
126
|
+
/** Body patterns (conjunction). */
|
|
127
|
+
body: Pattern[];
|
|
128
|
+
/** Body filters. */
|
|
129
|
+
filters: Filter[];
|
|
130
|
+
}
|
|
131
|
+
export declare function isVariable(t: Term): t is Variable;
|
|
132
|
+
export declare function isLiteral(t: Term): t is Literal;
|
|
133
|
+
export declare function variable(name: string): Variable;
|
|
134
|
+
export declare function literal(value: Atom): Literal;
|
|
135
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/query/types.ts"],"names":[],"mappings":"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"}
|