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,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan Approval Plugin — Trellis plugin for multi-turn planning with
|
|
3
|
+
* buffered mutations and user approval.
|
|
4
|
+
*
|
|
5
|
+
* Registers the plan approval ontology and provides agent tool definitions
|
|
6
|
+
* that the harness can register for plan-mode interactions.
|
|
7
|
+
*
|
|
8
|
+
* @module trellis/plugins/plan-approval
|
|
9
|
+
*/
|
|
10
|
+
import type { PluginDef } from '../../core/plugins/types.js';
|
|
11
|
+
import type { ToolHandler } from '../../core/agents/types.js';
|
|
12
|
+
import type { PlanManager } from './plan-manager.js';
|
|
13
|
+
/**
|
|
14
|
+
* Create the plan approval plugin instance.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createPlanApprovalPlugin(): PluginDef;
|
|
17
|
+
/**
|
|
18
|
+
* Context required by plan approval tools.
|
|
19
|
+
*/
|
|
20
|
+
export interface PlanToolContext {
|
|
21
|
+
planManager: PlanManager;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Tool: enterPlanMode
|
|
25
|
+
*
|
|
26
|
+
* Agent calls this when it wants to plan a set of operations before
|
|
27
|
+
* executing them. Subsequent plan* tool calls buffer operations.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createEnterPlanModeTool(ctx: PlanToolContext): {
|
|
30
|
+
def: {
|
|
31
|
+
name: string;
|
|
32
|
+
description: string;
|
|
33
|
+
schema: string;
|
|
34
|
+
};
|
|
35
|
+
handler: ToolHandler;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Tool: planCreateEntity
|
|
39
|
+
*
|
|
40
|
+
* Buffer a createEntity operation in the active plan.
|
|
41
|
+
*/
|
|
42
|
+
export declare function createPlanCreateEntityTool(ctx: PlanToolContext): {
|
|
43
|
+
def: {
|
|
44
|
+
name: string;
|
|
45
|
+
description: string;
|
|
46
|
+
schema: string;
|
|
47
|
+
};
|
|
48
|
+
handler: ToolHandler;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Tool: planUpdateEntity
|
|
52
|
+
*/
|
|
53
|
+
export declare function createPlanUpdateEntityTool(ctx: PlanToolContext): {
|
|
54
|
+
def: {
|
|
55
|
+
name: string;
|
|
56
|
+
description: string;
|
|
57
|
+
schema: string;
|
|
58
|
+
};
|
|
59
|
+
handler: ToolHandler;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Tool: planAddLink
|
|
63
|
+
*/
|
|
64
|
+
export declare function createPlanAddLinkTool(ctx: PlanToolContext): {
|
|
65
|
+
def: {
|
|
66
|
+
name: string;
|
|
67
|
+
description: string;
|
|
68
|
+
schema: string;
|
|
69
|
+
};
|
|
70
|
+
handler: ToolHandler;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Tool: submitPlan
|
|
74
|
+
*
|
|
75
|
+
* Submit the active plan for user review. This signals the harness to
|
|
76
|
+
* pause the agent loop and yield control to the caller.
|
|
77
|
+
*
|
|
78
|
+
* The tool result includes `_planPending: true` which the harness
|
|
79
|
+
* recognizes as a signal to set run status to `plan_pending`.
|
|
80
|
+
*/
|
|
81
|
+
export declare function createSubmitPlanTool(ctx: PlanToolContext): {
|
|
82
|
+
def: {
|
|
83
|
+
name: string;
|
|
84
|
+
description: string;
|
|
85
|
+
schema: string;
|
|
86
|
+
};
|
|
87
|
+
handler: ToolHandler;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Tool: cancelPlan
|
|
91
|
+
*/
|
|
92
|
+
export declare function createCancelPlanTool(ctx: PlanToolContext): {
|
|
93
|
+
def: {
|
|
94
|
+
name: string;
|
|
95
|
+
description: string;
|
|
96
|
+
schema: string;
|
|
97
|
+
};
|
|
98
|
+
handler: ToolHandler;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Register all plan approval tools with an AgentHarness.
|
|
102
|
+
*/
|
|
103
|
+
export declare function registerPlanTools(harness: {
|
|
104
|
+
registerTool: (def: {
|
|
105
|
+
name: string;
|
|
106
|
+
description: string;
|
|
107
|
+
schema?: string;
|
|
108
|
+
}, handler: ToolHandler) => Promise<string>;
|
|
109
|
+
}, ctx: PlanToolContext): Promise<string[]>;
|
|
110
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/plan-approval/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,SAAS,CA6BpD;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG;IAC7D,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,WAAW,CAAC;CACtB,CAwBA;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,eAAe,GAAG;IAChE,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,WAAW,CAAC;CACtB,CA2BA;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,eAAe,GAAG;IAChE,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,WAAW,CAAC;CACtB,CAyBA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG;IAC3D,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,WAAW,CAAC;CACtB,CA2BA;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG;IAC1D,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,WAAW,CAAC;CACtB,CA+BA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG;IAC1D,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,WAAW,CAAC;CACtB,CAeA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE;IAAE,YAAY,EAAE,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,EACjI,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAanB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proactive Watcher — Trellis plugin that monitors the graph and surfaces
|
|
3
|
+
* agent suggestions proactively.
|
|
4
|
+
*
|
|
5
|
+
* @module trellis/plugins/proactive-watcher
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createProactiveWatcherPlugin } from 'trellis/plugins/proactive-watcher';
|
|
10
|
+
*
|
|
11
|
+
* const plugin = createProactiveWatcherPlugin(kernel, harness);
|
|
12
|
+
*
|
|
13
|
+
* // Add custom heuristic rules
|
|
14
|
+
* plugin.manager.addRule({
|
|
15
|
+
* id: 'missing-docs',
|
|
16
|
+
* description: 'Suggests docs when new feature flags are added',
|
|
17
|
+
* condition: (op) => op.facts?.some(f => f.v === 'FeatureFlag') ?? false,
|
|
18
|
+
* agentId: 'proactive-agent',
|
|
19
|
+
* promptFactory: (op) => `A new feature flag was added: ${JSON.stringify(op)}. Suggest writing docs.`
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* pluginRegistry.register(plugin);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export { proactiveWatcherOntology } from './ontology.js';
|
|
26
|
+
export { createProactiveWatcherPlugin } from './plugin.js';
|
|
27
|
+
export { WatcherManager, type WatcherRule, } from './watcher-manager.js';
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/proactive-watcher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proactive Watcher Ontology
|
|
3
|
+
*
|
|
4
|
+
* Defines the schemas for proactive suggestions generated by the watcher.
|
|
5
|
+
*/
|
|
6
|
+
import type { OntologySchema } from '../../core/ontology/types.js';
|
|
7
|
+
export declare const proactiveWatcherOntology: OntologySchema;
|
|
8
|
+
//# sourceMappingURL=ontology.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ontology.d.ts","sourceRoot":"","sources":["../../../src/plugins/proactive-watcher/ontology.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,eAAO,MAAM,wBAAwB,EAAE,cAoDtC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proactive Watcher Plugin
|
|
3
|
+
*
|
|
4
|
+
* Subscribes to Kernel events (op:applied, entity:updated, etc.) via the
|
|
5
|
+
* Plugin EventBus. When specific patterns are detected, it invokes an agent
|
|
6
|
+
* to generate suggestions (e.g. creating tasks, documenting changes).
|
|
7
|
+
*
|
|
8
|
+
* Suggestions are currently "suggestion-only" (v1) and can be surfaced
|
|
9
|
+
* to the user without automatically executing.
|
|
10
|
+
*
|
|
11
|
+
* @module trellis/plugins/proactive-watcher
|
|
12
|
+
*/
|
|
13
|
+
import type { PluginDef } from '../../core/plugins/types.js';
|
|
14
|
+
import type { TrellisKernel } from '../../core/kernel/trellis-kernel.js';
|
|
15
|
+
import type { AgentHarness } from '../../core/agents/harness.js';
|
|
16
|
+
import { WatcherManager } from './watcher-manager.js';
|
|
17
|
+
export declare function createProactiveWatcherPlugin(kernel: TrellisKernel, harness: AgentHarness): PluginDef & {
|
|
18
|
+
manager: WatcherManager;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/proactive-watcher/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,YAAY,GACpB,SAAS,GAAG;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,CAgCzC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Watcher Manager
|
|
3
|
+
*
|
|
4
|
+
* Processes kernel operations asynchronously, evaluates simple heuristics,
|
|
5
|
+
* and launches background agent tasks to generate Proactive Suggestions.
|
|
6
|
+
*/
|
|
7
|
+
import type { TrellisKernel } from '../../core/kernel/trellis-kernel.js';
|
|
8
|
+
import type { AgentHarness } from '../../core/agents/harness.js';
|
|
9
|
+
import type { KernelOp } from '../../core/persist/backend.js';
|
|
10
|
+
import type { PluginContext } from '../../core/plugins/types.js';
|
|
11
|
+
export interface WatcherRule {
|
|
12
|
+
id: string;
|
|
13
|
+
description: string;
|
|
14
|
+
/** Evaluate if the rule matches this operation */
|
|
15
|
+
condition: (op: KernelOp, kernel: TrellisKernel) => boolean;
|
|
16
|
+
/** Agent ID to invoke if condition matches */
|
|
17
|
+
agentId: string;
|
|
18
|
+
/** Generate the prompt for the agent based on the operation */
|
|
19
|
+
promptFactory: (op: KernelOp) => string;
|
|
20
|
+
}
|
|
21
|
+
export declare class WatcherManager {
|
|
22
|
+
private kernel;
|
|
23
|
+
private harness;
|
|
24
|
+
private ctx;
|
|
25
|
+
private rules;
|
|
26
|
+
private suggestionCounter;
|
|
27
|
+
constructor(kernel: TrellisKernel, harness: AgentHarness);
|
|
28
|
+
setContext(ctx: PluginContext | null): void;
|
|
29
|
+
addRule(rule: WatcherRule): void;
|
|
30
|
+
/**
|
|
31
|
+
* Called by the event handler on `op:applied`.
|
|
32
|
+
*/
|
|
33
|
+
processOperation(data: unknown): Promise<void>;
|
|
34
|
+
private _evaluateRule;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=watcher-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watcher-manager.d.ts","sourceRoot":"","sources":["../../../src/plugins/proactive-watcher/watcher-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC;IAC5D,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,aAAa,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC;CACzC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,iBAAiB,CAAK;gBAElB,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY;IAKxD,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAI3C,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAIhC;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YA+BtC,aAAa;CAuE5B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checkpoint Middleware — Deterministic auto-checkpointing before large mutations.
|
|
3
|
+
*
|
|
4
|
+
* Counts facts + links in each mutation and triggers a kernel checkpoint when
|
|
5
|
+
* a batch exceeds a configurable threshold. This ensures safety-critical
|
|
6
|
+
* behavior is deterministic (middleware), not dependent on LLM prompt
|
|
7
|
+
* compliance.
|
|
8
|
+
*
|
|
9
|
+
* @module trellis/plugins/sprite-tools
|
|
10
|
+
*/
|
|
11
|
+
import type { KernelMiddleware } from '../../core/kernel/middleware.js';
|
|
12
|
+
export interface CheckpointMiddlewareConfig {
|
|
13
|
+
/**
|
|
14
|
+
* Trigger a checkpoint when a single mutation batch contains this many
|
|
15
|
+
* or more combined facts + links (adds + deletes).
|
|
16
|
+
* Default: 50.
|
|
17
|
+
*/
|
|
18
|
+
threshold?: number;
|
|
19
|
+
/**
|
|
20
|
+
* Callback invoked when a checkpoint is auto-triggered.
|
|
21
|
+
* Useful for logging or notification.
|
|
22
|
+
*/
|
|
23
|
+
onCheckpoint?: (batchSize: number) => void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Create a CheckpointMiddleware instance.
|
|
27
|
+
*
|
|
28
|
+
* The middleware hooks into `handleOp`. It inspects each op's payload size
|
|
29
|
+
* and if it exceeds the threshold, calls `checkpoint()` on the kernel
|
|
30
|
+
* *before* the op proceeds through the chain.
|
|
31
|
+
*
|
|
32
|
+
* Because the middleware only has access to the op and the `next` function
|
|
33
|
+
* (not the kernel directly), the actual checkpoint call is deferred to the
|
|
34
|
+
* caller via the `onCheckpoint` callback. The caller should wire this to
|
|
35
|
+
* `kernel.checkpoint()`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function createCheckpointMiddleware(config?: CheckpointMiddlewareConfig): KernelMiddleware & {
|
|
38
|
+
getStats: () => {
|
|
39
|
+
checkpointsTriggered: number;
|
|
40
|
+
lastBatchSize: number;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=checkpoint-middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint-middleware.d.ts","sourceRoot":"","sources":["../../../src/plugins/sprite-tools/checkpoint-middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,iCAAiC,CAAC;AAGzC,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,CAAC,EAAE,0BAA0B,GAClC,gBAAgB,GAAG;IAAE,QAAQ,EAAE,MAAM;QAAE,oBAAoB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAqChG"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sprite Tools — Trellis plugin for agent-driven checkpoint, deploy,
|
|
3
|
+
* rollback, and infrastructure management.
|
|
4
|
+
*
|
|
5
|
+
* @module trellis/plugins/sprite-tools
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import {
|
|
10
|
+
* createSpriteToolsPlugin,
|
|
11
|
+
* registerSpriteTools,
|
|
12
|
+
* createCheckpointMiddleware,
|
|
13
|
+
* } from 'trellis/plugins/sprite-tools';
|
|
14
|
+
*
|
|
15
|
+
* // 1. Register the plugin
|
|
16
|
+
* const plugin = createSpriteToolsPlugin();
|
|
17
|
+
* pluginRegistry.register(plugin);
|
|
18
|
+
* await pluginRegistry.load('trellis:sprite-tools', kernel, ontologyRegistry);
|
|
19
|
+
*
|
|
20
|
+
* // 2. Add checkpoint middleware (auto-checkpoint before large mutations)
|
|
21
|
+
* const checkpointMw = createCheckpointMiddleware({
|
|
22
|
+
* threshold: 50,
|
|
23
|
+
* onCheckpoint: (batchSize) => {
|
|
24
|
+
* console.log(`Auto-checkpoint triggered (batch: ${batchSize})`);
|
|
25
|
+
* kernel.checkpoint();
|
|
26
|
+
* },
|
|
27
|
+
* });
|
|
28
|
+
* // Wire into kernel config or add via addMiddleware()
|
|
29
|
+
*
|
|
30
|
+
* // 3. Register tools with the agent harness
|
|
31
|
+
* await registerSpriteTools(harness, { kernel });
|
|
32
|
+
*
|
|
33
|
+
* // Agent can now use: createCheckpoint, rollback, deployToSprite,
|
|
34
|
+
* // getDeployStatus, listOps
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export { createSpriteToolsPlugin } from './plugin.js';
|
|
38
|
+
export { registerSpriteTools, createCheckpointTool, createRollbackTool, createGetDeployStatusTool, createDeployToSpriteTool, createListOpsTool, type SpriteToolContext, } from './plugin.js';
|
|
39
|
+
export { createCheckpointMiddleware, type CheckpointMiddlewareConfig, } from './checkpoint-middleware.js';
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/sprite-tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,0BAA0B,EAC1B,KAAK,0BAA0B,GAChC,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sprite Tools Plugin — Agent tools for checkpoint, deploy, rollback,
|
|
3
|
+
* and deploy status.
|
|
4
|
+
*
|
|
5
|
+
* Thin wrappers around existing kernel primitives:
|
|
6
|
+
* - checkpoint → kernel.checkpoint()
|
|
7
|
+
* - deploy → deploy() from src/server/deploy.ts
|
|
8
|
+
* - rollback → kernel.timeTravel(opHash)
|
|
9
|
+
* - status → readConfig() from src/client/config.ts
|
|
10
|
+
*
|
|
11
|
+
* @module trellis/plugins/sprite-tools
|
|
12
|
+
*/
|
|
13
|
+
import type { PluginDef } from '../../core/plugins/types.js';
|
|
14
|
+
import type { ToolHandler } from '../../core/agents/types.js';
|
|
15
|
+
import type { TrellisKernel } from '../../core/kernel/trellis-kernel.js';
|
|
16
|
+
export declare function createSpriteToolsPlugin(): PluginDef;
|
|
17
|
+
export interface SpriteToolContext {
|
|
18
|
+
kernel: TrellisKernel;
|
|
19
|
+
/** Directory containing .trellis-db.json (defaults to cwd). */
|
|
20
|
+
configDir?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function createCheckpointTool(ctx: SpriteToolContext): {
|
|
23
|
+
def: {
|
|
24
|
+
name: string;
|
|
25
|
+
description: string;
|
|
26
|
+
schema: string;
|
|
27
|
+
};
|
|
28
|
+
handler: ToolHandler;
|
|
29
|
+
};
|
|
30
|
+
export declare function createRollbackTool(ctx: SpriteToolContext): {
|
|
31
|
+
def: {
|
|
32
|
+
name: string;
|
|
33
|
+
description: string;
|
|
34
|
+
schema: string;
|
|
35
|
+
};
|
|
36
|
+
handler: ToolHandler;
|
|
37
|
+
};
|
|
38
|
+
export declare function createGetDeployStatusTool(ctx: SpriteToolContext): {
|
|
39
|
+
def: {
|
|
40
|
+
name: string;
|
|
41
|
+
description: string;
|
|
42
|
+
schema: string;
|
|
43
|
+
};
|
|
44
|
+
handler: ToolHandler;
|
|
45
|
+
};
|
|
46
|
+
export declare function createDeployToSpriteTool(ctx: SpriteToolContext): {
|
|
47
|
+
def: {
|
|
48
|
+
name: string;
|
|
49
|
+
description: string;
|
|
50
|
+
schema: string;
|
|
51
|
+
};
|
|
52
|
+
handler: ToolHandler;
|
|
53
|
+
};
|
|
54
|
+
export declare function createListOpsTool(ctx: SpriteToolContext): {
|
|
55
|
+
def: {
|
|
56
|
+
name: string;
|
|
57
|
+
description: string;
|
|
58
|
+
schema: string;
|
|
59
|
+
};
|
|
60
|
+
handler: ToolHandler;
|
|
61
|
+
};
|
|
62
|
+
export declare function registerSpriteTools(harness: {
|
|
63
|
+
registerTool: (def: {
|
|
64
|
+
name: string;
|
|
65
|
+
description: string;
|
|
66
|
+
schema?: string;
|
|
67
|
+
}, handler: ToolHandler) => Promise<string>;
|
|
68
|
+
}, ctx: SpriteToolContext): Promise<string[]>;
|
|
69
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/sprite-tools/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAMzE,wBAAgB,uBAAuB,IAAI,SAAS,CAenD;AAMD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,GAAG;IAC5D,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,WAAW,CAAC;CACtB,CAkCA;AAMD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,GAAG;IAC1D,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,WAAW,CAAC;CACtB,CA2CA;AAMD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,iBAAiB,GAAG;IACjE,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,WAAW,CAAC;CACtB,CAgDA;AAMD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,iBAAiB,GAAG;IAChE,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,WAAW,CAAC;CACtB,CAkEA;AAMD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG;IACzD,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE,WAAW,CAAC;CACtB,CAuCA;AAMD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE;IACP,YAAY,EAAE,CACZ,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAC3D,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB,EACD,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CAUnB"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
TrellisDb
|
|
4
|
+
} from "../index-7e27kvvj.js";
|
|
5
|
+
import"../index-xzym9w0m.js";
|
|
6
|
+
import"../index-y3d71wzd.js";
|
|
7
|
+
import"../index-0zk3fx2s.js";
|
|
8
|
+
import"../index-yhwjgfvj.js";
|
|
9
|
+
import"../index-yp88he8n.js";
|
|
10
|
+
import"../index-a76rekgs.js";
|
|
11
|
+
|
|
12
|
+
// src/react/provider.tsx
|
|
13
|
+
import {
|
|
14
|
+
createContext,
|
|
15
|
+
useContext,
|
|
16
|
+
useMemo,
|
|
17
|
+
useEffect
|
|
18
|
+
} from "react";
|
|
19
|
+
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
20
|
+
var TrellisContext = createContext(null);
|
|
21
|
+
function TrellisProvider({
|
|
22
|
+
url,
|
|
23
|
+
apiKey,
|
|
24
|
+
tenantId,
|
|
25
|
+
children
|
|
26
|
+
}) {
|
|
27
|
+
const client = useMemo(() => {
|
|
28
|
+
const opts = { url };
|
|
29
|
+
if (apiKey)
|
|
30
|
+
opts.apiKey = apiKey;
|
|
31
|
+
if (tenantId)
|
|
32
|
+
opts.tenantId = tenantId;
|
|
33
|
+
return new TrellisDb(opts);
|
|
34
|
+
}, [url, apiKey, tenantId]);
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
return () => {
|
|
37
|
+
client.disconnect();
|
|
38
|
+
};
|
|
39
|
+
}, [client]);
|
|
40
|
+
return /* @__PURE__ */ jsxDEV(TrellisContext.Provider, {
|
|
41
|
+
value: client,
|
|
42
|
+
children
|
|
43
|
+
}, undefined, false, undefined, this);
|
|
44
|
+
}
|
|
45
|
+
function useTrellis() {
|
|
46
|
+
const client = useContext(TrellisContext);
|
|
47
|
+
if (!client) {
|
|
48
|
+
throw new Error("useTrellis() must be used within a <TrellisProvider>. " + 'Wrap your app with <TrellisProvider url="...">.');
|
|
49
|
+
}
|
|
50
|
+
return client;
|
|
51
|
+
}
|
|
52
|
+
// src/react/hooks.ts
|
|
53
|
+
import { useState, useEffect as useEffect2, useCallback, useRef } from "react";
|
|
54
|
+
function useEntity(id, options = {}) {
|
|
55
|
+
const client = useTrellis();
|
|
56
|
+
const [data, setData] = useState(null);
|
|
57
|
+
const [loading, setLoading] = useState(true);
|
|
58
|
+
const [error, setError] = useState(null);
|
|
59
|
+
const fetch = useCallback(async () => {
|
|
60
|
+
if (!id) {
|
|
61
|
+
setData(null);
|
|
62
|
+
setLoading(false);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
setLoading(true);
|
|
67
|
+
const entity = await client.read(id);
|
|
68
|
+
setData(entity);
|
|
69
|
+
setError(null);
|
|
70
|
+
} catch (err) {
|
|
71
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
72
|
+
} finally {
|
|
73
|
+
setLoading(false);
|
|
74
|
+
}
|
|
75
|
+
}, [client, id]);
|
|
76
|
+
useEffect2(() => {
|
|
77
|
+
fetch();
|
|
78
|
+
}, [fetch]);
|
|
79
|
+
useEffect2(() => {
|
|
80
|
+
if (!options.pollInterval || !id)
|
|
81
|
+
return;
|
|
82
|
+
const interval = setInterval(fetch, options.pollInterval);
|
|
83
|
+
return () => clearInterval(interval);
|
|
84
|
+
}, [fetch, options.pollInterval, id]);
|
|
85
|
+
return { data, loading, error, refetch: fetch };
|
|
86
|
+
}
|
|
87
|
+
function useEntities(options = {}) {
|
|
88
|
+
const client = useTrellis();
|
|
89
|
+
const [data, setData] = useState([]);
|
|
90
|
+
const [total, setTotal] = useState(0);
|
|
91
|
+
const [loading, setLoading] = useState(true);
|
|
92
|
+
const [error, setError] = useState(null);
|
|
93
|
+
const optsRef = useRef(options);
|
|
94
|
+
optsRef.current = options;
|
|
95
|
+
const fetch = useCallback(async () => {
|
|
96
|
+
try {
|
|
97
|
+
setLoading(true);
|
|
98
|
+
const result = await client.list(optsRef.current.type, {
|
|
99
|
+
limit: optsRef.current.limit,
|
|
100
|
+
offset: optsRef.current.offset
|
|
101
|
+
});
|
|
102
|
+
setData(result.data);
|
|
103
|
+
setTotal(result.total);
|
|
104
|
+
setError(null);
|
|
105
|
+
} catch (err) {
|
|
106
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
107
|
+
} finally {
|
|
108
|
+
setLoading(false);
|
|
109
|
+
}
|
|
110
|
+
}, [client, options.type, options.limit, options.offset]);
|
|
111
|
+
useEffect2(() => {
|
|
112
|
+
fetch();
|
|
113
|
+
}, [fetch]);
|
|
114
|
+
useEffect2(() => {
|
|
115
|
+
if (!options.pollInterval)
|
|
116
|
+
return;
|
|
117
|
+
const interval = setInterval(fetch, options.pollInterval);
|
|
118
|
+
return () => clearInterval(interval);
|
|
119
|
+
}, [fetch, options.pollInterval]);
|
|
120
|
+
return { data, total, loading, error, refetch: fetch };
|
|
121
|
+
}
|
|
122
|
+
function useQuery(eql, options = {}) {
|
|
123
|
+
const client = useTrellis();
|
|
124
|
+
const [data, setData] = useState([]);
|
|
125
|
+
const [loading, setLoading] = useState(true);
|
|
126
|
+
const [error, setError] = useState(null);
|
|
127
|
+
const enabled = options.enabled !== false;
|
|
128
|
+
const refetch = useCallback(async () => {
|
|
129
|
+
if (!enabled || !eql.trim())
|
|
130
|
+
return;
|
|
131
|
+
try {
|
|
132
|
+
setLoading(true);
|
|
133
|
+
const result = await client.query(eql);
|
|
134
|
+
setData(result.bindings);
|
|
135
|
+
setError(null);
|
|
136
|
+
} catch (err) {
|
|
137
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
138
|
+
} finally {
|
|
139
|
+
setLoading(false);
|
|
140
|
+
}
|
|
141
|
+
}, [client, eql, enabled]);
|
|
142
|
+
useEffect2(() => {
|
|
143
|
+
if (!enabled || !eql.trim()) {
|
|
144
|
+
setData([]);
|
|
145
|
+
setLoading(false);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
setLoading(true);
|
|
149
|
+
const sub = client.subscribe(eql, (result) => {
|
|
150
|
+
setData(result);
|
|
151
|
+
setLoading(false);
|
|
152
|
+
setError(null);
|
|
153
|
+
});
|
|
154
|
+
return () => {
|
|
155
|
+
sub.unsubscribe();
|
|
156
|
+
};
|
|
157
|
+
}, [client, eql, enabled]);
|
|
158
|
+
return { data, loading, error, refetch };
|
|
159
|
+
}
|
|
160
|
+
function useMutation() {
|
|
161
|
+
const client = useTrellis();
|
|
162
|
+
const [loading, setLoading] = useState(false);
|
|
163
|
+
const [error, setError] = useState(null);
|
|
164
|
+
async function run(fn) {
|
|
165
|
+
setLoading(true);
|
|
166
|
+
setError(null);
|
|
167
|
+
try {
|
|
168
|
+
return await fn();
|
|
169
|
+
} catch (err) {
|
|
170
|
+
const e = err instanceof Error ? err : new Error(String(err));
|
|
171
|
+
setError(e);
|
|
172
|
+
throw e;
|
|
173
|
+
} finally {
|
|
174
|
+
setLoading(false);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const create = useCallback((type, attributes = {}) => run(() => client.create(type, attributes)), [client]);
|
|
178
|
+
const update = useCallback((id, attributes) => run(() => client.update(id, attributes)), [client]);
|
|
179
|
+
const remove = useCallback((id) => run(() => client.delete(id)), [client]);
|
|
180
|
+
return { create, update, remove, loading, error };
|
|
181
|
+
}
|
|
182
|
+
export {
|
|
183
|
+
useTrellis,
|
|
184
|
+
useQuery,
|
|
185
|
+
useMutation,
|
|
186
|
+
useEntity,
|
|
187
|
+
useEntities,
|
|
188
|
+
TrellisProvider
|
|
189
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scaffold module index
|
|
3
|
+
* @module trellis/scaffold
|
|
4
|
+
*/
|
|
5
|
+
export { inferProjectContext } from './infer.js';
|
|
6
|
+
export type { ProjectContext, InferenceConfidence, InferOptions } from './infer.js';
|
|
7
|
+
export { loadProfile, saveProfile, hasProfile, updateProfile, promptForProfile, } from './profile.js';
|
|
8
|
+
export type { UserProfile } from './profile.js';
|
|
9
|
+
export { writeAgentScaffold, writeIdeScaffold } from './write.js';
|
|
10
|
+
export type { AgentScaffoldConfig, ScaffoldInput, IdeScaffoldInput, IdeType, WorkspaceFootprint, FrameworkType } from './write.js';
|
|
11
|
+
export { seedContext } from './seed.js';
|
|
12
|
+
export type { SeedResult } from './seed.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEpF,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEnI,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Context Inference
|
|
3
|
+
*
|
|
4
|
+
* Analyzes a repository root to infer domain, ecosystem, and description
|
|
5
|
+
* without requiring user input. Used during `trellis init` to seed the
|
|
6
|
+
* agent scaffold with meaningful context.
|
|
7
|
+
*
|
|
8
|
+
* @module trellis/scaffold/infer
|
|
9
|
+
*/
|
|
10
|
+
export type InferenceConfidence = 'high' | 'medium' | 'low';
|
|
11
|
+
export type FrameworkType = 'react' | 'vue' | 'svelte' | 'next' | 'nuxt' | 'remotion' | 'expo' | 'bun' | 'node' | 'cli' | 'library' | 'animation' | 'games' | 'none';
|
|
12
|
+
export interface ProjectContext {
|
|
13
|
+
/** Inferred domain (e.g. 'animation-studio', 'web-app', 'library', etc.) */
|
|
14
|
+
domain: string | null;
|
|
15
|
+
/** Short human-readable description (from README or package.json) */
|
|
16
|
+
description: string | null;
|
|
17
|
+
/** Primary ecosystem (e.g. 'bun', 'node', 'python', 'rust') */
|
|
18
|
+
ecosystem: string | null;
|
|
19
|
+
/** Project name (from package.json or directory name) */
|
|
20
|
+
name: string | null;
|
|
21
|
+
/** Inferred framework (e.g. 'react', 'next', 'cli', etc.) */
|
|
22
|
+
framework: FrameworkType | null;
|
|
23
|
+
/** Approximate file count */
|
|
24
|
+
fileCount: number;
|
|
25
|
+
/** How confident the inference is — determines whether prompts fire */
|
|
26
|
+
confidence: InferenceConfidence;
|
|
27
|
+
/** Key indicator files that were detected */
|
|
28
|
+
indicators: string[];
|
|
29
|
+
}
|
|
30
|
+
export interface InferOptions {
|
|
31
|
+
/** Pre-computed file count from an existing scan (avoids double walk) */
|
|
32
|
+
precomputedFileCount?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Infer project context from the filesystem without user input.
|
|
36
|
+
*
|
|
37
|
+
* @param rootPath - Absolute path to the project root
|
|
38
|
+
* @param opts - Optional pre-computed data to avoid duplicate work
|
|
39
|
+
* @returns A ProjectContext object to seed the agent scaffold
|
|
40
|
+
*/
|
|
41
|
+
export declare function inferProjectContext(rootPath: string, opts?: InferOptions): Promise<ProjectContext>;
|
|
42
|
+
//# sourceMappingURL=infer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../src/scaffold/infer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAErK,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,qEAAqE;IACrE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+DAA+D;IAC/D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yDAAyD;IACzD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,6DAA6D;IAC7D,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,UAAU,EAAE,mBAAmB,CAAC;IAChC,6CAA6C;IAC7C,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAoQD,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,cAAc,CAAC,CAkBzB"}
|