trellis 2.1.7 → 3.0.2
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 +65 -706
- package/dist/cli/index.d.ts +16 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +3188 -232
- 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/context/heat-map-manager.d.ts +100 -0
- package/dist/context/heat-map-manager.d.ts.map +1 -0
- package/dist/context/manager.d.ts +16 -0
- package/dist/context/manager.d.ts.map +1 -0
- package/dist/context/types.d.ts +20 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/core/agents/harness.d.ts +58 -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 +79 -0
- package/dist/core/agents/types.d.ts.map +1 -0
- package/dist/core/computation/expr-evaluator.d.ts +52 -0
- package/dist/core/computation/expr-evaluator.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 +105 -11
- package/dist/core/kernel/logic-middleware.d.ts +19 -0
- package/dist/core/kernel/logic-middleware.d.ts.map +1 -0
- package/dist/core/kernel/middleware.d.ts +28 -0
- package/dist/core/kernel/middleware.d.ts.map +1 -0
- package/dist/core/kernel/schema-middleware.d.ts +15 -0
- package/dist/core/kernel/schema-middleware.d.ts.map +1 -0
- package/dist/core/kernel/security-middleware.d.ts +24 -0
- package/dist/core/kernel/security-middleware.d.ts.map +1 -0
- package/dist/core/kernel/sync-provider.d.ts +59 -0
- package/dist/core/kernel/sync-provider.d.ts.map +1 -0
- package/dist/core/kernel/trellis-kernel.d.ts +217 -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/core-ontology.d.ts +20 -0
- package/dist/core/ontology/core-ontology.d.ts.map +1 -0
- package/dist/core/ontology/index.d.ts +12 -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 +201 -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 +62 -0
- package/dist/core/persist/backend.d.ts.map +1 -0
- package/dist/core/persist/better-sqlite-backend.d.ts +33 -0
- package/dist/core/persist/better-sqlite-backend.d.ts.map +1 -0
- package/dist/core/persist/sqlite-backend.d.ts +43 -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 +111 -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 +85 -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-999q207z.js +10 -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 +218 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/evals/types.d.ts +29 -0
- package/dist/evals/types.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-s2b8e0ft.js +11 -0
- package/dist/{index-3ejh8k6v.js → index-0q7wbasy.js} +18 -4
- package/dist/index-0zk3fx2s.js +1004 -0
- package/dist/index-2r4jxwnb.js +32 -0
- package/dist/index-6n5dcebj.js +847 -0
- package/dist/index-7e27kvvj.js +292 -0
- package/dist/index-bmyt7k8n.js +90 -0
- package/dist/index-c9h37r6h.js +1 -0
- package/dist/{index-k5kf7sd0.js → index-hmdbnd4n.js} +1 -1
- package/dist/index-k5b0xskw.js +1 -0
- package/dist/index-n9f2qyh5.js +495 -0
- package/dist/{index-22jx9qsz.js → index-q31hfjja.js} +861 -51
- package/dist/index-skhn0agf.js +155 -0
- package/dist/{index-5m0g9r0y.js → index-w7ng765c.js} +4 -497
- package/dist/index-wt8rz4gn.js +132 -0
- package/dist/index-xzym9w0m.js +43 -0
- package/dist/index-y3d71wzd.js +77 -0
- package/dist/index-y6a4kj0p.js +43 -0
- package/dist/index-yhwjgfvj.js +342 -0
- package/dist/index-yp88he8n.js +316 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -9
- 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/llm/provider.d.ts +11 -0
- package/dist/llm/provider.d.ts.map +1 -0
- package/dist/llm/types.d.ts +74 -0
- package/dist/llm/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 +15 -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/orchestration/types.d.ts +22 -0
- package/dist/orchestration/types.d.ts.map +1 -0
- package/dist/plugins/agent-memory/graph-context-manager.d.ts +75 -0
- package/dist/plugins/agent-memory/graph-context-manager.d.ts.map +1 -0
- package/dist/plugins/agent-memory/index.d.ts +30 -0
- package/dist/plugins/agent-memory/index.d.ts.map +1 -0
- package/dist/plugins/agent-memory/ontology.d.ts +13 -0
- package/dist/plugins/agent-memory/ontology.d.ts.map +1 -0
- package/dist/plugins/agent-memory/plugin.d.ts +17 -0
- package/dist/plugins/agent-memory/plugin.d.ts.map +1 -0
- package/dist/plugins/brand/cache.d.ts +18 -0
- package/dist/plugins/brand/cache.d.ts.map +1 -0
- package/dist/plugins/brand/catalog-generator.d.ts +89 -0
- package/dist/plugins/brand/catalog-generator.d.ts.map +1 -0
- package/dist/plugins/brand/constraints.d.ts +55 -0
- package/dist/plugins/brand/constraints.d.ts.map +1 -0
- package/dist/plugins/brand/index.d.ts +44 -0
- package/dist/plugins/brand/index.d.ts.map +1 -0
- package/dist/plugins/brand/mcp-tools.d.ts +101 -0
- package/dist/plugins/brand/mcp-tools.d.ts.map +1 -0
- package/dist/plugins/brand/ontology.d.ts +13 -0
- package/dist/plugins/brand/ontology.d.ts.map +1 -0
- package/dist/plugins/brand/plugin.d.ts +21 -0
- package/dist/plugins/brand/plugin.d.ts.map +1 -0
- package/dist/plugins/brand/voice-tone.d.ts +24 -0
- package/dist/plugins/brand/voice-tone.d.ts.map +1 -0
- package/dist/plugins/idea-garden/api.d.ts +26 -0
- package/dist/plugins/idea-garden/api.d.ts.map +1 -0
- package/dist/plugins/idea-garden/index.d.ts +12 -0
- package/dist/plugins/idea-garden/index.d.ts.map +1 -0
- package/dist/plugins/idea-garden/plugin.d.ts +16 -0
- package/dist/plugins/idea-garden/plugin.d.ts.map +1 -0
- package/dist/plugins/idea-garden/types.d.ts +22 -0
- package/dist/plugins/idea-garden/types.d.ts.map +1 -0
- package/dist/plugins/plan-approval/index.d.ts +36 -0
- package/dist/plugins/plan-approval/index.d.ts.map +1 -0
- package/dist/plugins/plan-approval/ontology.d.ts +11 -0
- package/dist/plugins/plan-approval/ontology.d.ts.map +1 -0
- package/dist/plugins/plan-approval/plan-manager.d.ts +104 -0
- package/dist/plugins/plan-approval/plan-manager.d.ts.map +1 -0
- package/dist/plugins/plan-approval/plugin.d.ts +110 -0
- package/dist/plugins/plan-approval/plugin.d.ts.map +1 -0
- package/dist/plugins/proactive-watcher/index.d.ts +28 -0
- package/dist/plugins/proactive-watcher/index.d.ts.map +1 -0
- package/dist/plugins/proactive-watcher/ontology.d.ts +8 -0
- package/dist/plugins/proactive-watcher/ontology.d.ts.map +1 -0
- package/dist/plugins/proactive-watcher/plugin.d.ts +20 -0
- package/dist/plugins/proactive-watcher/plugin.d.ts.map +1 -0
- package/dist/plugins/proactive-watcher/watcher-manager.d.ts +36 -0
- package/dist/plugins/proactive-watcher/watcher-manager.d.ts.map +1 -0
- package/dist/plugins/sprite-tools/checkpoint-middleware.d.ts +43 -0
- package/dist/plugins/sprite-tools/checkpoint-middleware.d.ts.map +1 -0
- package/dist/plugins/sprite-tools/index.d.ts +40 -0
- package/dist/plugins/sprite-tools/index.d.ts.map +1 -0
- package/dist/plugins/sprite-tools/plugin.d.ts +69 -0
- package/dist/plugins/sprite-tools/plugin.d.ts.map +1 -0
- package/dist/react/index.js +189 -0
- package/dist/scaffold/index.d.ts +13 -0
- package/dist/scaffold/index.d.ts.map +1 -0
- package/dist/scaffold/infer.d.ts +42 -0
- package/dist/scaffold/infer.d.ts.map +1 -0
- package/dist/scaffold/profile.d.ts +51 -0
- package/dist/scaffold/profile.d.ts.map +1 -0
- package/dist/scaffold/seed.d.ts +27 -0
- package/dist/scaffold/seed.d.ts.map +1 -0
- package/dist/scaffold/write.d.ts +53 -0
- package/dist/scaffold/write.d.ts.map +1 -0
- package/dist/sdk-snn5gad3.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 +26 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +90 -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/sprites.d.ts +26 -0
- package/dist/server/sprites.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/vm-config.d.ts +60 -0
- package/dist/server/vm-config.d.ts.map +1 -0
- package/dist/server-mrctdwzr.js +11 -0
- package/dist/sprites-vc4qbrp1.js +16 -0
- package/dist/streaming/types.d.ts +43 -0
- package/dist/streaming/types.d.ts.map +1 -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-7d1g4ayp.js +13 -0
- package/dist/ui/client.html +460 -664
- package/dist/ui/server.d.ts +42 -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/index.js +2 -2
- 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 +95 -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/vm-config-6xhsj6b3.js +22 -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 +57 -7
- package/dist/index-hybgxe40.js +0 -1174
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-Embedding Middleware
|
|
3
|
+
*
|
|
4
|
+
* Kernel middleware that automatically embeds entity facts and links
|
|
5
|
+
* on graph mutations. Runs after successful ops to index new/changed
|
|
6
|
+
* content into the vector store.
|
|
7
|
+
*
|
|
8
|
+
* @module trellis/embeddings
|
|
9
|
+
*/
|
|
10
|
+
import type { KernelMiddleware } from '../core/kernel/middleware.js';
|
|
11
|
+
import type { Embedder } from './search.js';
|
|
12
|
+
import { VectorStore } from './store.js';
|
|
13
|
+
export interface AutoEmbedOptions {
|
|
14
|
+
/** Path to the vector store SQLite database. */
|
|
15
|
+
dbPath: string;
|
|
16
|
+
/** Custom embedder function (default: transformers.js embed). */
|
|
17
|
+
embedFn?: Embedder;
|
|
18
|
+
/** Whether to embed facts individually (default: false — only entity summaries). */
|
|
19
|
+
embedIndividualFacts?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Creates a kernel middleware that auto-embeds entities on mutation.
|
|
23
|
+
*
|
|
24
|
+
* On addFacts/addLinks: embeds entity summaries into the vector store.
|
|
25
|
+
* On deleteFacts/deleteLinks: removes stale embeddings.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createAutoEmbedMiddleware(options: AutoEmbedOptions): KernelMiddleware & {
|
|
28
|
+
close: () => void;
|
|
29
|
+
};
|
|
30
|
+
export interface RAGContext {
|
|
31
|
+
/** The original query. */
|
|
32
|
+
query: string;
|
|
33
|
+
/** Retrieved chunks ranked by relevance. */
|
|
34
|
+
chunks: Array<{
|
|
35
|
+
content: string;
|
|
36
|
+
entityId: string;
|
|
37
|
+
score: number;
|
|
38
|
+
chunkType: string;
|
|
39
|
+
}>;
|
|
40
|
+
/** Total token estimate (rough: 1 token ≈ 4 chars). */
|
|
41
|
+
estimatedTokens: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Build a RAG context from a natural language query.
|
|
45
|
+
* Searches the vector store and assembles ranked context chunks.
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildRAGContext(query: string, vectorStore: VectorStore, embedFn?: Embedder, options?: {
|
|
48
|
+
maxChunks?: number;
|
|
49
|
+
maxTokens?: number;
|
|
50
|
+
minScore?: number;
|
|
51
|
+
}): Promise<RAGContext>;
|
|
52
|
+
//# sourceMappingURL=auto-embed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-embed.d.ts","sourceRoot":"","sources":["../../src/embeddings/auto-embed.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAuC,MAAM,8BAA8B,CAAC;AAG1G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAwCzC,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,oFAAoF;IACpF,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,GAAG;IAAE,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAwB7G;AA8FD,MAAM,WAAW,UAAU;IACzB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,MAAM,EAAE,KAAK,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,QAAgB,EACzB,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,UAAU,CAAC,CAgCrB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text Chunker
|
|
3
|
+
*
|
|
4
|
+
* Strategies for splitting different content types into embeddable chunks.
|
|
5
|
+
* Short text is embedded as-is; markdown is split by headings; code entities
|
|
6
|
+
* are chunked by declaration; large text uses sliding window.
|
|
7
|
+
*
|
|
8
|
+
* @see TRL-19
|
|
9
|
+
*/
|
|
10
|
+
import type { ChunkMeta } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Chunk an issue into embeddable pieces.
|
|
13
|
+
*/
|
|
14
|
+
export declare function chunkIssue(issue: {
|
|
15
|
+
id: string;
|
|
16
|
+
title?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
}): ChunkMeta[];
|
|
19
|
+
/**
|
|
20
|
+
* Chunk a decision trace into embeddable pieces.
|
|
21
|
+
* Combines tool name, rationale, context, and output summary.
|
|
22
|
+
*/
|
|
23
|
+
export declare function chunkDecision(decision: {
|
|
24
|
+
id: string;
|
|
25
|
+
toolName: string;
|
|
26
|
+
rationale?: string;
|
|
27
|
+
context?: string;
|
|
28
|
+
outputSummary?: string;
|
|
29
|
+
}): ChunkMeta[];
|
|
30
|
+
/**
|
|
31
|
+
* Chunk a milestone message.
|
|
32
|
+
*/
|
|
33
|
+
export declare function chunkMilestone(milestone: {
|
|
34
|
+
id: string;
|
|
35
|
+
message?: string;
|
|
36
|
+
}): ChunkMeta[];
|
|
37
|
+
/**
|
|
38
|
+
* Chunk a markdown file by heading sections.
|
|
39
|
+
* Each H1/H2/H3 section becomes a separate chunk.
|
|
40
|
+
* Sections that exceed MAX_CHUNK_CHARS get sliding-window split.
|
|
41
|
+
*/
|
|
42
|
+
export declare function chunkMarkdown(filePath: string, content: string): ChunkMeta[];
|
|
43
|
+
/**
|
|
44
|
+
* Chunk code entities (functions, classes, interfaces) from a parsed file.
|
|
45
|
+
* Each declaration's signature + doc-comment becomes a chunk.
|
|
46
|
+
*/
|
|
47
|
+
export declare function chunkCodeEntities(filePath: string, declarations: Array<{
|
|
48
|
+
id: string;
|
|
49
|
+
name: string;
|
|
50
|
+
kind: string;
|
|
51
|
+
signature: string;
|
|
52
|
+
docComment?: string;
|
|
53
|
+
}>): ChunkMeta[];
|
|
54
|
+
/**
|
|
55
|
+
* Chunk doc-comments extracted from source files.
|
|
56
|
+
*/
|
|
57
|
+
export declare function chunkDocComments(filePath: string, comments: Array<{
|
|
58
|
+
line: number;
|
|
59
|
+
text: string;
|
|
60
|
+
}>): ChunkMeta[];
|
|
61
|
+
/**
|
|
62
|
+
* Chunk a summary.md or similar short-to-medium text file.
|
|
63
|
+
*/
|
|
64
|
+
export declare function chunkSummary(filePath: string, content: string): ChunkMeta[];
|
|
65
|
+
/**
|
|
66
|
+
* Auto-detect file type and chunk accordingly.
|
|
67
|
+
*/
|
|
68
|
+
export declare function chunkFile(filePath: string, content: string): ChunkMeta[];
|
|
69
|
+
/**
|
|
70
|
+
* Split long text into overlapping windows.
|
|
71
|
+
*/
|
|
72
|
+
export declare function slidingWindow(text: string): string[];
|
|
73
|
+
//# sourceMappingURL=chunker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunker.d.ts","sourceRoot":"","sources":["../../src/embeddings/chunker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAevD;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,SAAS,EAAE,CAyBd;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,SAAS,EAAE,CAmBd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,SAAS,EAAE,CAYd;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAsC5E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,KAAK,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC,GACD,SAAS,EAAE,CAuBb;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9C,SAAS,EAAE,CAsBb;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAwB3E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAkBxE;AAsCD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAYpD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embeddings Module — Public API
|
|
3
|
+
*
|
|
4
|
+
* Provides semantic embedding and vector search for TrellisVCS entities.
|
|
5
|
+
*
|
|
6
|
+
* @see TRL-18
|
|
7
|
+
*/
|
|
8
|
+
export type { ChunkType, ChunkMeta, EmbeddingRecord, SearchResult, SearchOptions, EmbeddingModelConfig, } from './types.js';
|
|
9
|
+
export { DEFAULT_MODEL_CONFIG } from './types.js';
|
|
10
|
+
export { embed, embedBatch, loadModel, resetModel } from './model.js';
|
|
11
|
+
export { VectorStore, cosineSimilarity } from './store.js';
|
|
12
|
+
export { EmbeddingManager } from './search.js';
|
|
13
|
+
export type { SearchableEngine, Embedder } from './search.js';
|
|
14
|
+
export { createAutoEmbedMiddleware, buildRAGContext } from './auto-embed.js';
|
|
15
|
+
export type { AutoEmbedOptions, RAGContext } from './auto-embed.js';
|
|
16
|
+
export type { GraphChunkType } from './types.js';
|
|
17
|
+
export { chunkIssue, chunkMilestone, chunkDecision, chunkMarkdown, chunkCodeEntities, chunkDocComments, chunkSummary, chunkFile, slidingWindow, } from './chunker.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,SAAS,EACT,SAAS,EACT,eAAe,EACf,YAAY,EACZ,aAAa,EACb,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGtE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7E,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGpE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,aAAa,GACd,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Model
|
|
3
|
+
*
|
|
4
|
+
* Lazy-loads @huggingface/transformers (v3+) with all-MiniLM-L6-v2 (384-dim).
|
|
5
|
+
* Falls back to @xenova/transformers (v2) if the new package is unavailable.
|
|
6
|
+
* Model is loaded once on first use and cached for subsequent calls.
|
|
7
|
+
*
|
|
8
|
+
* @see TRL-18
|
|
9
|
+
*/
|
|
10
|
+
import { EmbeddingModelConfig } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Load the embedding model lazily. Returns the feature-extraction pipeline.
|
|
13
|
+
* Subsequent calls return the cached pipeline.
|
|
14
|
+
*/
|
|
15
|
+
export declare function loadModel(config?: EmbeddingModelConfig): Promise<any>;
|
|
16
|
+
/**
|
|
17
|
+
* Generate an embedding vector for the given text.
|
|
18
|
+
* Returns a Float32Array of length `config.dimension` (default: 384).
|
|
19
|
+
*/
|
|
20
|
+
export declare function embed(text: string, config?: EmbeddingModelConfig): Promise<Float32Array>;
|
|
21
|
+
/**
|
|
22
|
+
* Generate embeddings for multiple texts in a batch.
|
|
23
|
+
* More efficient than calling embed() individually.
|
|
24
|
+
*/
|
|
25
|
+
export declare function embedBatch(texts: string[], config?: EmbeddingModelConfig): Promise<Float32Array[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Reset the model singleton. Useful for testing.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resetModel(): void;
|
|
30
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/embeddings/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,oBAAoB,EAAwB,MAAM,YAAY,CAAC;AA2BxE;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,MAAM,GAAE,oBAA2C,GAClD,OAAO,CAAC,GAAG,CAAC,CAoBd;AAED;;;GAGG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,oBAA2C,GAClD,OAAO,CAAC,YAAY,CAAC,CAKvB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,GAAE,oBAA2C,GAClD,OAAO,CAAC,YAAY,EAAE,CAAC,CAiBzB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAGjC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic Search Integration
|
|
3
|
+
*
|
|
4
|
+
* Connects the TrellisVcsEngine to the embedding system.
|
|
5
|
+
* Provides reindex (full rebuild) and search (query → ranked results).
|
|
6
|
+
* The embedder function is pluggable for testing with mock vectors.
|
|
7
|
+
*
|
|
8
|
+
* @see TRL-20
|
|
9
|
+
*/
|
|
10
|
+
import type { SearchOptions, SearchResult } from './types.js';
|
|
11
|
+
/** Minimal engine interface — avoids importing the full engine for testability */
|
|
12
|
+
export interface SearchableEngine {
|
|
13
|
+
getRootPath(): string;
|
|
14
|
+
trackedFiles(): Array<{
|
|
15
|
+
path: string;
|
|
16
|
+
contentHash?: string;
|
|
17
|
+
}>;
|
|
18
|
+
listIssues(filters?: any): Array<{
|
|
19
|
+
id: string;
|
|
20
|
+
title?: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
}>;
|
|
23
|
+
listMilestones(): Array<{
|
|
24
|
+
id: string;
|
|
25
|
+
message?: string;
|
|
26
|
+
}>;
|
|
27
|
+
queryDecisions?(): Array<{
|
|
28
|
+
id: string;
|
|
29
|
+
toolName: string;
|
|
30
|
+
rationale?: string;
|
|
31
|
+
context?: string;
|
|
32
|
+
outputSummary?: string;
|
|
33
|
+
}>;
|
|
34
|
+
parseFile?(filePath: string): any;
|
|
35
|
+
}
|
|
36
|
+
/** Embedder function type — maps text → vector. Pluggable for testing. */
|
|
37
|
+
export type Embedder = (text: string) => Promise<Float32Array>;
|
|
38
|
+
export declare class EmbeddingManager {
|
|
39
|
+
private store;
|
|
40
|
+
private embedFn;
|
|
41
|
+
constructor(dbPath: string, embedFn?: Embedder);
|
|
42
|
+
/**
|
|
43
|
+
* Full reindex: clear store, re-chunk all entities, embed, and insert.
|
|
44
|
+
*/
|
|
45
|
+
reindex(engine: SearchableEngine): Promise<{
|
|
46
|
+
chunks: number;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* Incrementally index a single file (on file change).
|
|
50
|
+
*/
|
|
51
|
+
indexFile(filePath: string, content: string, engine?: SearchableEngine): Promise<number>;
|
|
52
|
+
/**
|
|
53
|
+
* Index an issue (on create/update).
|
|
54
|
+
*/
|
|
55
|
+
indexIssue(issue: {
|
|
56
|
+
id: string;
|
|
57
|
+
title?: string;
|
|
58
|
+
description?: string;
|
|
59
|
+
}): Promise<number>;
|
|
60
|
+
/**
|
|
61
|
+
* Index a milestone (on create).
|
|
62
|
+
*/
|
|
63
|
+
indexMilestone(milestone: {
|
|
64
|
+
id: string;
|
|
65
|
+
message?: string;
|
|
66
|
+
}): Promise<number>;
|
|
67
|
+
/**
|
|
68
|
+
* Semantic search: embed query → vector search → ranked results.
|
|
69
|
+
*/
|
|
70
|
+
search(query: string, opts?: SearchOptions): Promise<SearchResult[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Remove all data for a file.
|
|
73
|
+
*/
|
|
74
|
+
removeFile(filePath: string): void;
|
|
75
|
+
/**
|
|
76
|
+
* Get store statistics.
|
|
77
|
+
*/
|
|
78
|
+
stats(): {
|
|
79
|
+
total: number;
|
|
80
|
+
byType: Record<string, number>;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Close the store.
|
|
84
|
+
*/
|
|
85
|
+
close(): void;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/embeddings/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,OAAO,KAAK,EAGV,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAMpB,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,WAAW,IAAI,MAAM,CAAC;IACtB,YAAY,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC;QAC/B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,cAAc,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,cAAc,CAAC,IAAI,KAAK,CAAC;QACvB,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,SAAS,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC;CACnC;AAED,0EAA0E;AAC1E,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAM/D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAW;gBAEd,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ;IAK9C;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAuFpE;;OAEG;IACG,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC;IAsDlB;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE;QACtB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBnB;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE;QAC9B,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBnB;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAK1E;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,KAAK,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAO1D;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Vector Store
|
|
3
|
+
*
|
|
4
|
+
* Persistent storage for embedding vectors using bun:sqlite.
|
|
5
|
+
* Vectors are stored as Float32Array blobs; cosine similarity
|
|
6
|
+
* is computed in JavaScript for cross-platform portability.
|
|
7
|
+
*
|
|
8
|
+
* @see TRL-18
|
|
9
|
+
*/
|
|
10
|
+
import type { ChunkMeta, EmbeddingRecord, SearchOptions, SearchResult } from './types.js';
|
|
11
|
+
export declare class VectorStore {
|
|
12
|
+
private db;
|
|
13
|
+
constructor(dbPath: string);
|
|
14
|
+
/**
|
|
15
|
+
* Insert or update a chunk with its embedding vector.
|
|
16
|
+
*/
|
|
17
|
+
upsert(record: EmbeddingRecord): void;
|
|
18
|
+
/**
|
|
19
|
+
* Batch upsert multiple records.
|
|
20
|
+
*/
|
|
21
|
+
upsertBatch(records: EmbeddingRecord[]): void;
|
|
22
|
+
/**
|
|
23
|
+
* Delete a chunk and its vector by ID.
|
|
24
|
+
*/
|
|
25
|
+
delete(id: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Delete all chunks for an entity.
|
|
28
|
+
*/
|
|
29
|
+
deleteByEntity(entityId: string): void;
|
|
30
|
+
/**
|
|
31
|
+
* Delete all chunks associated with a file path.
|
|
32
|
+
*/
|
|
33
|
+
deleteByFile(filePath: string): void;
|
|
34
|
+
/**
|
|
35
|
+
* Get a chunk by ID (without vector).
|
|
36
|
+
*/
|
|
37
|
+
getChunk(id: string): ChunkMeta | null;
|
|
38
|
+
/**
|
|
39
|
+
* Search for chunks similar to the query vector.
|
|
40
|
+
* Uses brute-force cosine similarity scan.
|
|
41
|
+
*/
|
|
42
|
+
search(queryVector: Float32Array, opts?: SearchOptions): SearchResult[];
|
|
43
|
+
/**
|
|
44
|
+
* Get total count of chunks in the store.
|
|
45
|
+
*/
|
|
46
|
+
count(): number;
|
|
47
|
+
/**
|
|
48
|
+
* Get count by chunk type.
|
|
49
|
+
*/
|
|
50
|
+
countByType(): Record<string, number>;
|
|
51
|
+
/**
|
|
52
|
+
* Clear all data from the store.
|
|
53
|
+
*/
|
|
54
|
+
clear(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Close the database connection.
|
|
57
|
+
*/
|
|
58
|
+
close(): void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Compute cosine similarity between two vectors.
|
|
62
|
+
* Both vectors should already be normalized (output of mean pooling + normalize).
|
|
63
|
+
* For normalized vectors, cosine similarity = dot product.
|
|
64
|
+
*/
|
|
65
|
+
export declare function cosineSimilarity(a: Float32Array, b: Float32Array): number;
|
|
66
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/embeddings/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACV,SAAS,EAET,eAAe,EACf,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AA+BpB,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAW;gBAET,MAAM,EAAE,MAAM;IAO1B;;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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Types
|
|
3
|
+
*
|
|
4
|
+
* Types for the semantic embedding and vector search system.
|
|
5
|
+
*
|
|
6
|
+
* @see TRL-18
|
|
7
|
+
*/
|
|
8
|
+
export type ChunkType = 'issue_title' | 'issue_desc' | 'milestone_msg' | 'decision_rationale' | 'summary_md' | 'code_entity' | 'doc_comment' | 'markdown';
|
|
9
|
+
export interface ChunkMeta {
|
|
10
|
+
/** Unique chunk ID, e.g. "issue:TRL-5:title", "file:src/engine.ts:chunk:0" */
|
|
11
|
+
id: string;
|
|
12
|
+
/** EAV entity ID this chunk belongs to */
|
|
13
|
+
entityId: string;
|
|
14
|
+
/** Original text content */
|
|
15
|
+
content: string;
|
|
16
|
+
/** Chunk classification */
|
|
17
|
+
chunkType: ChunkType;
|
|
18
|
+
/** Source file path (nullable for non-file entities) */
|
|
19
|
+
filePath?: string;
|
|
20
|
+
/** When this chunk was last updated */
|
|
21
|
+
updatedAt: string;
|
|
22
|
+
}
|
|
23
|
+
export interface EmbeddingRecord extends ChunkMeta {
|
|
24
|
+
/** 384-dimensional embedding vector */
|
|
25
|
+
embedding: Float32Array;
|
|
26
|
+
}
|
|
27
|
+
export interface SearchResult {
|
|
28
|
+
/** Chunk metadata */
|
|
29
|
+
chunk: ChunkMeta;
|
|
30
|
+
/** Cosine similarity score (0..1) */
|
|
31
|
+
score: number;
|
|
32
|
+
}
|
|
33
|
+
export interface SearchOptions {
|
|
34
|
+
/** Max results to return (default: 10) */
|
|
35
|
+
limit?: number;
|
|
36
|
+
/** Filter by chunk type(s) */
|
|
37
|
+
types?: ChunkType[];
|
|
38
|
+
/** Filter by file path prefix */
|
|
39
|
+
filePrefix?: string;
|
|
40
|
+
/** Minimum similarity threshold (default: 0.0) */
|
|
41
|
+
minScore?: number;
|
|
42
|
+
}
|
|
43
|
+
export interface EmbeddingModelConfig {
|
|
44
|
+
/** Model name for transformers.js (default: "Xenova/all-MiniLM-L6-v2") */
|
|
45
|
+
modelName: string;
|
|
46
|
+
/** Embedding dimension (default: 384) */
|
|
47
|
+
dimension: number;
|
|
48
|
+
/** Cache directory for model files */
|
|
49
|
+
cacheDir?: string;
|
|
50
|
+
}
|
|
51
|
+
export declare const DEFAULT_MODEL_CONFIG: EmbeddingModelConfig;
|
|
52
|
+
/** New chunk types for generic graph entities */
|
|
53
|
+
export type GraphChunkType = ChunkType | 'entity_summary' | 'entity_fact' | 'entity_link';
|
|
54
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/embeddings/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,YAAY,GACZ,eAAe,GACf,oBAAoB,GACpB,YAAY,GACZ,aAAa,GACb,aAAa,GACb,UAAU,CAAC;AAEf,MAAM,WAAW,SAAS;IACxB,8EAA8E;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,uCAAuC;IACvC,SAAS,EAAE,YAAY,CAAC;CACzB;AAMD,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,oBAAoB,EAAE,oBAGlC,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,gBAAgB,GAChB,aAAa,GACb,aAAa,CAAC"}
|
package/dist/engine.d.ts
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TrellisVCS Engine
|
|
3
|
+
*
|
|
4
|
+
* The composition root that ties together the trellis-core kernel,
|
|
5
|
+
* the file watcher, the ingestion pipeline, and VCS middleware.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* const engine = new TrellisVcsEngine({ rootPath: '/path/to/repo' });
|
|
9
|
+
* await engine.init(); // scan + create initial ops
|
|
10
|
+
* engine.watch(); // start continuous monitoring
|
|
11
|
+
* engine.stop(); // stop watcher
|
|
12
|
+
*/
|
|
13
|
+
import { EAVStore } from './core/store/eav-store.js';
|
|
14
|
+
import type { VcsOp, TrellisVcsConfig } from './vcs/types.js';
|
|
15
|
+
import { BlobStore } from './vcs/blob-store.js';
|
|
16
|
+
import * as branchMod from './vcs/branch.js';
|
|
17
|
+
import * as milestoneMod from './vcs/milestone.js';
|
|
18
|
+
import * as checkpointMod from './vcs/checkpoint.js';
|
|
19
|
+
import * as diffMod from './vcs/diff.js';
|
|
20
|
+
import * as mergeMod from './vcs/merge.js';
|
|
21
|
+
import * as issueMod from './vcs/issue.js';
|
|
22
|
+
import * as decisionMod from './decisions/index.js';
|
|
23
|
+
import { IdeaGarden } from './garden/index.js';
|
|
24
|
+
import type { ParseResult, SemanticPatch } from './semantic/types.js';
|
|
25
|
+
import type { ProjectContext } from './scaffold/infer.js';
|
|
26
|
+
export interface InitProgress {
|
|
27
|
+
phase: 'discovering' | 'hashing' | 'recording' | 'scaffolding' | 'done';
|
|
28
|
+
current: number;
|
|
29
|
+
total: number;
|
|
30
|
+
message: string;
|
|
31
|
+
}
|
|
32
|
+
export declare class TrellisVcsEngine {
|
|
33
|
+
private config;
|
|
34
|
+
private store;
|
|
35
|
+
private opLog;
|
|
36
|
+
private watcher;
|
|
37
|
+
private ingestion;
|
|
38
|
+
private agentId;
|
|
39
|
+
private currentBranch;
|
|
40
|
+
private checkpointOpCount;
|
|
41
|
+
private checkpointThreshold;
|
|
42
|
+
private _pendingAutoCheckpoint;
|
|
43
|
+
private _blobStore;
|
|
44
|
+
constructor(opts: {
|
|
45
|
+
rootPath: string;
|
|
46
|
+
agentId?: string;
|
|
47
|
+
} & Partial<TrellisVcsConfig>);
|
|
48
|
+
/**
|
|
49
|
+
* Initialize a new TrellisVCS repo. Creates .trellis/ directory and config.
|
|
50
|
+
*/
|
|
51
|
+
initRepo(opts?: {
|
|
52
|
+
onProgress?: (progress: InitProgress) => void;
|
|
53
|
+
}): Promise<{
|
|
54
|
+
opsCreated: number;
|
|
55
|
+
context: ProjectContext;
|
|
56
|
+
}>;
|
|
57
|
+
/**
|
|
58
|
+
* Open an existing TrellisVCS repo. Loads ops and replays into EAV store.
|
|
59
|
+
*/
|
|
60
|
+
open(): {
|
|
61
|
+
opsReplayed: number;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Start watching the filesystem for changes.
|
|
65
|
+
*/
|
|
66
|
+
watch(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Stop watching.
|
|
69
|
+
*/
|
|
70
|
+
stop(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Returns all ops in the causal stream.
|
|
73
|
+
*/
|
|
74
|
+
getOps(): VcsOp[];
|
|
75
|
+
/**
|
|
76
|
+
* Returns the total number of ops.
|
|
77
|
+
*/
|
|
78
|
+
getOpCount(): number;
|
|
79
|
+
/**
|
|
80
|
+
* Returns the EAV store for direct querying.
|
|
81
|
+
*/
|
|
82
|
+
getStore(): EAVStore;
|
|
83
|
+
/**
|
|
84
|
+
* Returns the blob store for content retrieval.
|
|
85
|
+
*/
|
|
86
|
+
getBlobStore(): BlobStore | null;
|
|
87
|
+
/**
|
|
88
|
+
* Returns the current status: tracked files, last op, branch info.
|
|
89
|
+
*/
|
|
90
|
+
status(): {
|
|
91
|
+
branch: string;
|
|
92
|
+
totalOps: number;
|
|
93
|
+
trackedFiles: number;
|
|
94
|
+
lastOp: VcsOp | undefined;
|
|
95
|
+
recentOps: VcsOp[];
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Returns op history, optionally filtered by file path.
|
|
99
|
+
*/
|
|
100
|
+
log(opts?: {
|
|
101
|
+
limit?: number;
|
|
102
|
+
filePath?: string;
|
|
103
|
+
}): VcsOp[];
|
|
104
|
+
/**
|
|
105
|
+
* Returns all tracked file paths and their content hashes.
|
|
106
|
+
*/
|
|
107
|
+
trackedFiles(): Array<{
|
|
108
|
+
path: string;
|
|
109
|
+
contentHash: string | undefined;
|
|
110
|
+
}>;
|
|
111
|
+
/**
|
|
112
|
+
* Returns the root path of the repository.
|
|
113
|
+
*/
|
|
114
|
+
getRootPath(): string;
|
|
115
|
+
/**
|
|
116
|
+
* Checks if a .trellis directory exists at the root path.
|
|
117
|
+
*/
|
|
118
|
+
static isRepo(rootPath: string): boolean;
|
|
119
|
+
static repair(rootPath: string): {
|
|
120
|
+
recovered: number;
|
|
121
|
+
lost: number;
|
|
122
|
+
};
|
|
123
|
+
createBranch(name: string): Promise<VcsOp>;
|
|
124
|
+
switchBranch(name: string): void;
|
|
125
|
+
listBranches(): branchMod.BranchInfo[];
|
|
126
|
+
deleteBranch(name: string): Promise<VcsOp>;
|
|
127
|
+
getCurrentBranch(): string;
|
|
128
|
+
createMilestone(message: string, opts?: {
|
|
129
|
+
fromOpHash?: string;
|
|
130
|
+
toOpHash?: string;
|
|
131
|
+
}): Promise<VcsOp>;
|
|
132
|
+
listMilestones(): milestoneMod.MilestoneInfo[];
|
|
133
|
+
createCheckpoint(trigger?: checkpointMod.CheckpointTrigger): Promise<VcsOp>;
|
|
134
|
+
listCheckpoints(): checkpointMod.CheckpointInfo[];
|
|
135
|
+
setCheckpointThreshold(threshold: number): void;
|
|
136
|
+
/**
|
|
137
|
+
* Diff two branches by comparing their file states.
|
|
138
|
+
*/
|
|
139
|
+
diffBranches(branchA: string, branchB: string): diffMod.DiffResult;
|
|
140
|
+
/**
|
|
141
|
+
* Diff between two op hashes in the causal stream.
|
|
142
|
+
*/
|
|
143
|
+
diffOps(fromHash: string, toHash: string): diffMod.DiffResult;
|
|
144
|
+
/**
|
|
145
|
+
* Diff the current state against a specific op hash (e.g. a milestone).
|
|
146
|
+
*/
|
|
147
|
+
diffFromOp(opHash: string): diffMod.DiffResult;
|
|
148
|
+
/**
|
|
149
|
+
* Three-way merge: merge source branch state into current branch state.
|
|
150
|
+
* Uses the fork-point (branch creation op) as the common ancestor.
|
|
151
|
+
*/
|
|
152
|
+
mergeBranch(sourceBranch: string): mergeMod.MergeResult;
|
|
153
|
+
private _parsers;
|
|
154
|
+
/**
|
|
155
|
+
* Parse a file's content into AST-level entities.
|
|
156
|
+
*/
|
|
157
|
+
parseFile(content: string, filePath: string): ParseResult | null;
|
|
158
|
+
/**
|
|
159
|
+
* Compute semantic diff between two versions of a file.
|
|
160
|
+
*/
|
|
161
|
+
semanticDiff(oldContent: string, newContent: string, filePath: string): SemanticPatch[];
|
|
162
|
+
private _garden;
|
|
163
|
+
/**
|
|
164
|
+
* Get the Idea Garden instance for exploring abandoned work.
|
|
165
|
+
*/
|
|
166
|
+
garden(): IdeaGarden;
|
|
167
|
+
createIssue(title: string, opts?: {
|
|
168
|
+
priority?: 'critical' | 'high' | 'medium' | 'low';
|
|
169
|
+
labels?: string[];
|
|
170
|
+
assignee?: string;
|
|
171
|
+
parentId?: string;
|
|
172
|
+
description?: string;
|
|
173
|
+
status?: 'backlog' | 'queue';
|
|
174
|
+
criteria?: Array<{
|
|
175
|
+
description: string;
|
|
176
|
+
command?: string;
|
|
177
|
+
}>;
|
|
178
|
+
}): Promise<VcsOp>;
|
|
179
|
+
updateIssue(id: string, updates: {
|
|
180
|
+
title?: string;
|
|
181
|
+
description?: string;
|
|
182
|
+
priority?: 'critical' | 'high' | 'medium' | 'low';
|
|
183
|
+
labels?: string[];
|
|
184
|
+
assignee?: string;
|
|
185
|
+
status?: 'backlog' | 'queue' | 'in_progress' | 'paused' | 'closed';
|
|
186
|
+
}): Promise<VcsOp>;
|
|
187
|
+
startIssue(id: string): Promise<VcsOp>;
|
|
188
|
+
pauseIssue(id: string, note: string): Promise<VcsOp>;
|
|
189
|
+
resumeIssue(id: string): Promise<VcsOp>;
|
|
190
|
+
closeIssue(id: string, opts?: {
|
|
191
|
+
confirm?: boolean;
|
|
192
|
+
}): Promise<{
|
|
193
|
+
op?: VcsOp;
|
|
194
|
+
criteriaResults: issueMod.CriterionResult[];
|
|
195
|
+
}>;
|
|
196
|
+
triageIssue(id: string): Promise<VcsOp>;
|
|
197
|
+
reopenIssue(id: string): Promise<VcsOp>;
|
|
198
|
+
checkCompletionReadiness(): issueMod.CompletionReadiness;
|
|
199
|
+
assignIssue(id: string, agentId: string): Promise<VcsOp>;
|
|
200
|
+
blockIssue(id: string, blockedById: string): Promise<VcsOp>;
|
|
201
|
+
unblockIssue(id: string, blockedById: string): Promise<VcsOp>;
|
|
202
|
+
addCriterion(issueId: string, description: string, command?: string): Promise<VcsOp>;
|
|
203
|
+
setCriterionStatus(issueId: string, criterionIndex: number, status: 'passed' | 'failed' | 'pending'): Promise<VcsOp>;
|
|
204
|
+
runCriteria(issueId: string): Promise<issueMod.CriterionResult[]>;
|
|
205
|
+
listIssues(filters?: issueMod.IssueFilters): issueMod.IssueInfo[];
|
|
206
|
+
getIssue(id: string): issueMod.IssueInfo | null;
|
|
207
|
+
getActiveIssues(): issueMod.IssueInfo[];
|
|
208
|
+
recordDecision(input: decisionMod.DecisionInput): Promise<VcsOp>;
|
|
209
|
+
queryDecisions(filter?: decisionMod.DecisionFilter): decisionMod.Decision[];
|
|
210
|
+
getDecisionChain(entityId: string): decisionMod.Decision[];
|
|
211
|
+
getDecision(id: string): decisionMod.Decision | null;
|
|
212
|
+
private _ctx;
|
|
213
|
+
private applyOp;
|
|
214
|
+
private flushAutoCheckpoint;
|
|
215
|
+
private loadCurrentBranch;
|
|
216
|
+
private replayOp;
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|