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.
Files changed (346) hide show
  1. package/README.md +65 -706
  2. package/dist/cli/index.d.ts +16 -0
  3. package/dist/cli/index.d.ts.map +1 -0
  4. package/dist/cli/index.js +3188 -232
  5. package/dist/client/config.d.ts +56 -0
  6. package/dist/client/config.d.ts.map +1 -0
  7. package/dist/client/index.d.ts +15 -0
  8. package/dist/client/index.d.ts.map +1 -0
  9. package/dist/client/index.js +32 -0
  10. package/dist/client/sdk.d.ts +152 -0
  11. package/dist/client/sdk.d.ts.map +1 -0
  12. package/dist/config-8hczw0rs.js +20 -0
  13. package/dist/context/heat-map-manager.d.ts +100 -0
  14. package/dist/context/heat-map-manager.d.ts.map +1 -0
  15. package/dist/context/manager.d.ts +16 -0
  16. package/dist/context/manager.d.ts.map +1 -0
  17. package/dist/context/types.d.ts +20 -0
  18. package/dist/context/types.d.ts.map +1 -0
  19. package/dist/core/agents/harness.d.ts +58 -0
  20. package/dist/core/agents/harness.d.ts.map +1 -0
  21. package/dist/core/agents/index.d.ts +8 -0
  22. package/dist/core/agents/index.d.ts.map +1 -0
  23. package/dist/core/agents/types.d.ts +79 -0
  24. package/dist/core/agents/types.d.ts.map +1 -0
  25. package/dist/core/computation/expr-evaluator.d.ts +52 -0
  26. package/dist/core/computation/expr-evaluator.d.ts.map +1 -0
  27. package/dist/core/index.d.ts +25 -0
  28. package/dist/core/index.d.ts.map +1 -0
  29. package/dist/core/index.js +105 -11
  30. package/dist/core/kernel/logic-middleware.d.ts +19 -0
  31. package/dist/core/kernel/logic-middleware.d.ts.map +1 -0
  32. package/dist/core/kernel/middleware.d.ts +28 -0
  33. package/dist/core/kernel/middleware.d.ts.map +1 -0
  34. package/dist/core/kernel/schema-middleware.d.ts +15 -0
  35. package/dist/core/kernel/schema-middleware.d.ts.map +1 -0
  36. package/dist/core/kernel/security-middleware.d.ts +24 -0
  37. package/dist/core/kernel/security-middleware.d.ts.map +1 -0
  38. package/dist/core/kernel/sync-provider.d.ts +59 -0
  39. package/dist/core/kernel/sync-provider.d.ts.map +1 -0
  40. package/dist/core/kernel/trellis-kernel.d.ts +217 -0
  41. package/dist/core/kernel/trellis-kernel.d.ts.map +1 -0
  42. package/dist/core/ontology/builtins.d.ts +16 -0
  43. package/dist/core/ontology/builtins.d.ts.map +1 -0
  44. package/dist/core/ontology/core-ontology.d.ts +20 -0
  45. package/dist/core/ontology/core-ontology.d.ts.map +1 -0
  46. package/dist/core/ontology/index.d.ts +12 -0
  47. package/dist/core/ontology/index.d.ts.map +1 -0
  48. package/dist/core/ontology/registry.d.ts +70 -0
  49. package/dist/core/ontology/registry.d.ts.map +1 -0
  50. package/dist/core/ontology/types.d.ts +201 -0
  51. package/dist/core/ontology/types.d.ts.map +1 -0
  52. package/dist/core/ontology/validator.d.ts +34 -0
  53. package/dist/core/ontology/validator.d.ts.map +1 -0
  54. package/dist/core/persist/backend.d.ts +62 -0
  55. package/dist/core/persist/backend.d.ts.map +1 -0
  56. package/dist/core/persist/better-sqlite-backend.d.ts +33 -0
  57. package/dist/core/persist/better-sqlite-backend.d.ts.map +1 -0
  58. package/dist/core/persist/sqlite-backend.d.ts +43 -0
  59. package/dist/core/persist/sqlite-backend.d.ts.map +1 -0
  60. package/dist/core/plugins/index.d.ts +8 -0
  61. package/dist/core/plugins/index.d.ts.map +1 -0
  62. package/dist/core/plugins/registry.d.ts +69 -0
  63. package/dist/core/plugins/registry.d.ts.map +1 -0
  64. package/dist/core/plugins/types.d.ts +87 -0
  65. package/dist/core/plugins/types.d.ts.map +1 -0
  66. package/dist/core/query/datalog.d.ts +52 -0
  67. package/dist/core/query/datalog.d.ts.map +1 -0
  68. package/dist/core/query/engine.d.ts +42 -0
  69. package/dist/core/query/engine.d.ts.map +1 -0
  70. package/dist/core/query/index.d.ts +12 -0
  71. package/dist/core/query/index.d.ts.map +1 -0
  72. package/dist/core/query/parser.d.ts +37 -0
  73. package/dist/core/query/parser.d.ts.map +1 -0
  74. package/dist/core/query/types.d.ts +135 -0
  75. package/dist/core/query/types.d.ts.map +1 -0
  76. package/dist/core/store/eav-store.d.ts +111 -0
  77. package/dist/core/store/eav-store.d.ts.map +1 -0
  78. package/dist/db/index.d.ts +18 -0
  79. package/dist/db/index.d.ts.map +1 -0
  80. package/dist/db/index.js +85 -0
  81. package/dist/db/inspector.js +28 -0
  82. package/dist/db/trellis.css +1 -0
  83. package/dist/decisions/auto-capture.d.ts +31 -0
  84. package/dist/decisions/auto-capture.d.ts.map +1 -0
  85. package/dist/decisions/hooks.d.ts +48 -0
  86. package/dist/decisions/hooks.d.ts.map +1 -0
  87. package/dist/decisions/index.d.ts +36 -0
  88. package/dist/decisions/index.d.ts.map +1 -0
  89. package/dist/decisions/types.d.ts +73 -0
  90. package/dist/decisions/types.d.ts.map +1 -0
  91. package/dist/deploy-999q207z.js +10 -0
  92. package/dist/embeddings/auto-embed.d.ts +52 -0
  93. package/dist/embeddings/auto-embed.d.ts.map +1 -0
  94. package/dist/embeddings/chunker.d.ts +73 -0
  95. package/dist/embeddings/chunker.d.ts.map +1 -0
  96. package/dist/embeddings/index.d.ts +18 -0
  97. package/dist/embeddings/index.d.ts.map +1 -0
  98. package/dist/embeddings/model.d.ts +30 -0
  99. package/dist/embeddings/model.d.ts.map +1 -0
  100. package/dist/embeddings/search.d.ts +87 -0
  101. package/dist/embeddings/search.d.ts.map +1 -0
  102. package/dist/embeddings/store.d.ts +66 -0
  103. package/dist/embeddings/store.d.ts.map +1 -0
  104. package/dist/embeddings/types.d.ts +54 -0
  105. package/dist/embeddings/types.d.ts.map +1 -0
  106. package/dist/engine-y0724kjq.js +8 -0
  107. package/dist/engine.d.ts +218 -0
  108. package/dist/engine.d.ts.map +1 -0
  109. package/dist/evals/types.d.ts +29 -0
  110. package/dist/evals/types.d.ts.map +1 -0
  111. package/dist/garden/cluster.d.ts +57 -0
  112. package/dist/garden/cluster.d.ts.map +1 -0
  113. package/dist/garden/garden.d.ts +104 -0
  114. package/dist/garden/garden.d.ts.map +1 -0
  115. package/dist/garden/index.d.ts +15 -0
  116. package/dist/garden/index.d.ts.map +1 -0
  117. package/dist/git/git-exporter.d.ts +37 -0
  118. package/dist/git/git-exporter.d.ts.map +1 -0
  119. package/dist/git/git-importer.d.ts +36 -0
  120. package/dist/git/git-importer.d.ts.map +1 -0
  121. package/dist/git/git-reader.d.ts +63 -0
  122. package/dist/git/git-reader.d.ts.map +1 -0
  123. package/dist/git/index.d.ts +10 -0
  124. package/dist/git/index.d.ts.map +1 -0
  125. package/dist/identity/governance.d.ts +54 -0
  126. package/dist/identity/governance.d.ts.map +1 -0
  127. package/dist/identity/identity.d.ts +63 -0
  128. package/dist/identity/identity.d.ts.map +1 -0
  129. package/dist/identity/index.d.ts +10 -0
  130. package/dist/identity/index.d.ts.map +1 -0
  131. package/dist/identity/signing-middleware.d.ts +38 -0
  132. package/dist/identity/signing-middleware.d.ts.map +1 -0
  133. package/dist/import-s2b8e0ft.js +11 -0
  134. package/dist/{index-3ejh8k6v.js → index-0q7wbasy.js} +18 -4
  135. package/dist/index-0zk3fx2s.js +1004 -0
  136. package/dist/index-2r4jxwnb.js +32 -0
  137. package/dist/index-6n5dcebj.js +847 -0
  138. package/dist/index-7e27kvvj.js +292 -0
  139. package/dist/index-bmyt7k8n.js +90 -0
  140. package/dist/index-c9h37r6h.js +1 -0
  141. package/dist/{index-k5kf7sd0.js → index-hmdbnd4n.js} +1 -1
  142. package/dist/index-k5b0xskw.js +1 -0
  143. package/dist/index-n9f2qyh5.js +495 -0
  144. package/dist/{index-22jx9qsz.js → index-q31hfjja.js} +861 -51
  145. package/dist/index-skhn0agf.js +155 -0
  146. package/dist/{index-5m0g9r0y.js → index-w7ng765c.js} +4 -497
  147. package/dist/index-wt8rz4gn.js +132 -0
  148. package/dist/index-xzym9w0m.js +43 -0
  149. package/dist/index-y3d71wzd.js +77 -0
  150. package/dist/index-y6a4kj0p.js +43 -0
  151. package/dist/index-yhwjgfvj.js +342 -0
  152. package/dist/index-yp88he8n.js +316 -0
  153. package/dist/index.d.ts +25 -0
  154. package/dist/index.d.ts.map +1 -0
  155. package/dist/index.js +21 -9
  156. package/dist/links/index.d.ts +16 -0
  157. package/dist/links/index.d.ts.map +1 -0
  158. package/dist/links/lifecycle.d.ts +112 -0
  159. package/dist/links/lifecycle.d.ts.map +1 -0
  160. package/dist/links/parser.d.ts +56 -0
  161. package/dist/links/parser.d.ts.map +1 -0
  162. package/dist/links/ref-index.d.ts +55 -0
  163. package/dist/links/ref-index.d.ts.map +1 -0
  164. package/dist/links/resolver.d.ts +90 -0
  165. package/dist/links/resolver.d.ts.map +1 -0
  166. package/dist/links/types.d.ts +70 -0
  167. package/dist/links/types.d.ts.map +1 -0
  168. package/dist/llm/provider.d.ts +11 -0
  169. package/dist/llm/provider.d.ts.map +1 -0
  170. package/dist/llm/types.d.ts +74 -0
  171. package/dist/llm/types.d.ts.map +1 -0
  172. package/dist/mcp/docs.d.ts +18 -0
  173. package/dist/mcp/docs.d.ts.map +1 -0
  174. package/dist/mcp/index.d.ts +15 -0
  175. package/dist/mcp/index.d.ts.map +1 -0
  176. package/dist/mcp/server.d.ts +26 -0
  177. package/dist/mcp/server.d.ts.map +1 -0
  178. package/dist/orchestration/types.d.ts +22 -0
  179. package/dist/orchestration/types.d.ts.map +1 -0
  180. package/dist/plugins/agent-memory/graph-context-manager.d.ts +75 -0
  181. package/dist/plugins/agent-memory/graph-context-manager.d.ts.map +1 -0
  182. package/dist/plugins/agent-memory/index.d.ts +30 -0
  183. package/dist/plugins/agent-memory/index.d.ts.map +1 -0
  184. package/dist/plugins/agent-memory/ontology.d.ts +13 -0
  185. package/dist/plugins/agent-memory/ontology.d.ts.map +1 -0
  186. package/dist/plugins/agent-memory/plugin.d.ts +17 -0
  187. package/dist/plugins/agent-memory/plugin.d.ts.map +1 -0
  188. package/dist/plugins/brand/cache.d.ts +18 -0
  189. package/dist/plugins/brand/cache.d.ts.map +1 -0
  190. package/dist/plugins/brand/catalog-generator.d.ts +89 -0
  191. package/dist/plugins/brand/catalog-generator.d.ts.map +1 -0
  192. package/dist/plugins/brand/constraints.d.ts +55 -0
  193. package/dist/plugins/brand/constraints.d.ts.map +1 -0
  194. package/dist/plugins/brand/index.d.ts +44 -0
  195. package/dist/plugins/brand/index.d.ts.map +1 -0
  196. package/dist/plugins/brand/mcp-tools.d.ts +101 -0
  197. package/dist/plugins/brand/mcp-tools.d.ts.map +1 -0
  198. package/dist/plugins/brand/ontology.d.ts +13 -0
  199. package/dist/plugins/brand/ontology.d.ts.map +1 -0
  200. package/dist/plugins/brand/plugin.d.ts +21 -0
  201. package/dist/plugins/brand/plugin.d.ts.map +1 -0
  202. package/dist/plugins/brand/voice-tone.d.ts +24 -0
  203. package/dist/plugins/brand/voice-tone.d.ts.map +1 -0
  204. package/dist/plugins/idea-garden/api.d.ts +26 -0
  205. package/dist/plugins/idea-garden/api.d.ts.map +1 -0
  206. package/dist/plugins/idea-garden/index.d.ts +12 -0
  207. package/dist/plugins/idea-garden/index.d.ts.map +1 -0
  208. package/dist/plugins/idea-garden/plugin.d.ts +16 -0
  209. package/dist/plugins/idea-garden/plugin.d.ts.map +1 -0
  210. package/dist/plugins/idea-garden/types.d.ts +22 -0
  211. package/dist/plugins/idea-garden/types.d.ts.map +1 -0
  212. package/dist/plugins/plan-approval/index.d.ts +36 -0
  213. package/dist/plugins/plan-approval/index.d.ts.map +1 -0
  214. package/dist/plugins/plan-approval/ontology.d.ts +11 -0
  215. package/dist/plugins/plan-approval/ontology.d.ts.map +1 -0
  216. package/dist/plugins/plan-approval/plan-manager.d.ts +104 -0
  217. package/dist/plugins/plan-approval/plan-manager.d.ts.map +1 -0
  218. package/dist/plugins/plan-approval/plugin.d.ts +110 -0
  219. package/dist/plugins/plan-approval/plugin.d.ts.map +1 -0
  220. package/dist/plugins/proactive-watcher/index.d.ts +28 -0
  221. package/dist/plugins/proactive-watcher/index.d.ts.map +1 -0
  222. package/dist/plugins/proactive-watcher/ontology.d.ts +8 -0
  223. package/dist/plugins/proactive-watcher/ontology.d.ts.map +1 -0
  224. package/dist/plugins/proactive-watcher/plugin.d.ts +20 -0
  225. package/dist/plugins/proactive-watcher/plugin.d.ts.map +1 -0
  226. package/dist/plugins/proactive-watcher/watcher-manager.d.ts +36 -0
  227. package/dist/plugins/proactive-watcher/watcher-manager.d.ts.map +1 -0
  228. package/dist/plugins/sprite-tools/checkpoint-middleware.d.ts +43 -0
  229. package/dist/plugins/sprite-tools/checkpoint-middleware.d.ts.map +1 -0
  230. package/dist/plugins/sprite-tools/index.d.ts +40 -0
  231. package/dist/plugins/sprite-tools/index.d.ts.map +1 -0
  232. package/dist/plugins/sprite-tools/plugin.d.ts +69 -0
  233. package/dist/plugins/sprite-tools/plugin.d.ts.map +1 -0
  234. package/dist/react/index.js +189 -0
  235. package/dist/scaffold/index.d.ts +13 -0
  236. package/dist/scaffold/index.d.ts.map +1 -0
  237. package/dist/scaffold/infer.d.ts +42 -0
  238. package/dist/scaffold/infer.d.ts.map +1 -0
  239. package/dist/scaffold/profile.d.ts +51 -0
  240. package/dist/scaffold/profile.d.ts.map +1 -0
  241. package/dist/scaffold/seed.d.ts +27 -0
  242. package/dist/scaffold/seed.d.ts.map +1 -0
  243. package/dist/scaffold/write.d.ts +53 -0
  244. package/dist/scaffold/write.d.ts.map +1 -0
  245. package/dist/sdk-snn5gad3.js +15 -0
  246. package/dist/semantic/csharp-parser.d.ts +12 -0
  247. package/dist/semantic/csharp-parser.d.ts.map +1 -0
  248. package/dist/semantic/go-parser.d.ts +12 -0
  249. package/dist/semantic/go-parser.d.ts.map +1 -0
  250. package/dist/semantic/index.d.ts +22 -0
  251. package/dist/semantic/index.d.ts.map +1 -0
  252. package/dist/semantic/java-parser.d.ts +12 -0
  253. package/dist/semantic/java-parser.d.ts.map +1 -0
  254. package/dist/semantic/python-parser.d.ts +12 -0
  255. package/dist/semantic/python-parser.d.ts.map +1 -0
  256. package/dist/semantic/ruby-parser.d.ts +12 -0
  257. package/dist/semantic/ruby-parser.d.ts.map +1 -0
  258. package/dist/semantic/rust-parser.d.ts +12 -0
  259. package/dist/semantic/rust-parser.d.ts.map +1 -0
  260. package/dist/semantic/semantic-merge.d.ts +20 -0
  261. package/dist/semantic/semantic-merge.d.ts.map +1 -0
  262. package/dist/semantic/ts-parser.d.ts +13 -0
  263. package/dist/semantic/ts-parser.d.ts.map +1 -0
  264. package/dist/semantic/types.d.ts +130 -0
  265. package/dist/semantic/types.d.ts.map +1 -0
  266. package/dist/server/auth.d.ts +72 -0
  267. package/dist/server/auth.d.ts.map +1 -0
  268. package/dist/server/deploy.d.ts +44 -0
  269. package/dist/server/deploy.d.ts.map +1 -0
  270. package/dist/server/import.d.ts +40 -0
  271. package/dist/server/import.d.ts.map +1 -0
  272. package/dist/server/index.d.ts +26 -0
  273. package/dist/server/index.d.ts.map +1 -0
  274. package/dist/server/index.js +90 -0
  275. package/dist/server/permissions.d.ts +84 -0
  276. package/dist/server/permissions.d.ts.map +1 -0
  277. package/dist/server/realtime.d.ts +78 -0
  278. package/dist/server/realtime.d.ts.map +1 -0
  279. package/dist/server/server.d.ts +43 -0
  280. package/dist/server/server.d.ts.map +1 -0
  281. package/dist/server/sprites.d.ts +26 -0
  282. package/dist/server/sprites.d.ts.map +1 -0
  283. package/dist/server/tenancy.d.ts +53 -0
  284. package/dist/server/tenancy.d.ts.map +1 -0
  285. package/dist/server/vm-config.d.ts +60 -0
  286. package/dist/server/vm-config.d.ts.map +1 -0
  287. package/dist/server-mrctdwzr.js +11 -0
  288. package/dist/sprites-vc4qbrp1.js +16 -0
  289. package/dist/streaming/types.d.ts +43 -0
  290. package/dist/streaming/types.d.ts.map +1 -0
  291. package/dist/sync/http-transport.d.ts +47 -0
  292. package/dist/sync/http-transport.d.ts.map +1 -0
  293. package/dist/sync/index.d.ts +22 -0
  294. package/dist/sync/index.d.ts.map +1 -0
  295. package/dist/sync/memory-transport.d.ts +27 -0
  296. package/dist/sync/memory-transport.d.ts.map +1 -0
  297. package/dist/sync/multi-repo.d.ts +82 -0
  298. package/dist/sync/multi-repo.d.ts.map +1 -0
  299. package/dist/sync/reconciler.d.ts +48 -0
  300. package/dist/sync/reconciler.d.ts.map +1 -0
  301. package/dist/sync/sync-engine.d.ts +65 -0
  302. package/dist/sync/sync-engine.d.ts.map +1 -0
  303. package/dist/sync/types.d.ts +71 -0
  304. package/dist/sync/types.d.ts.map +1 -0
  305. package/dist/sync/ws-transport.d.ts +41 -0
  306. package/dist/sync/ws-transport.d.ts.map +1 -0
  307. package/dist/tenancy-7d1g4ayp.js +13 -0
  308. package/dist/ui/client.html +460 -664
  309. package/dist/ui/server.d.ts +42 -0
  310. package/dist/ui/server.d.ts.map +1 -0
  311. package/dist/vcs/blob-store.d.ts +49 -0
  312. package/dist/vcs/blob-store.d.ts.map +1 -0
  313. package/dist/vcs/branch.d.ts +35 -0
  314. package/dist/vcs/branch.d.ts.map +1 -0
  315. package/dist/vcs/checkpoint.d.ts +24 -0
  316. package/dist/vcs/checkpoint.d.ts.map +1 -0
  317. package/dist/vcs/decompose.d.ts +19 -0
  318. package/dist/vcs/decompose.d.ts.map +1 -0
  319. package/dist/vcs/diff.d.ts +65 -0
  320. package/dist/vcs/diff.d.ts.map +1 -0
  321. package/dist/vcs/engine-context.d.ts +21 -0
  322. package/dist/vcs/engine-context.d.ts.map +1 -0
  323. package/dist/vcs/index.d.ts +23 -0
  324. package/dist/vcs/index.d.ts.map +1 -0
  325. package/dist/vcs/index.js +2 -2
  326. package/dist/vcs/issue.d.ts +159 -0
  327. package/dist/vcs/issue.d.ts.map +1 -0
  328. package/dist/vcs/merge.d.ts +55 -0
  329. package/dist/vcs/merge.d.ts.map +1 -0
  330. package/dist/vcs/milestone.d.ts +30 -0
  331. package/dist/vcs/milestone.d.ts.map +1 -0
  332. package/dist/vcs/ops.d.ts +27 -0
  333. package/dist/vcs/ops.d.ts.map +1 -0
  334. package/dist/vcs/types.d.ts +95 -0
  335. package/dist/vcs/types.d.ts.map +1 -0
  336. package/dist/vcs/vcs-middleware.d.ts +14 -0
  337. package/dist/vcs/vcs-middleware.d.ts.map +1 -0
  338. package/dist/vm-config-6xhsj6b3.js +22 -0
  339. package/dist/watcher/fs-watcher.d.ts +51 -0
  340. package/dist/watcher/fs-watcher.d.ts.map +1 -0
  341. package/dist/watcher/index.d.ts +9 -0
  342. package/dist/watcher/index.d.ts.map +1 -0
  343. package/dist/watcher/ingestion.d.ts +28 -0
  344. package/dist/watcher/ingestion.d.ts.map +1 -0
  345. package/package.json +57 -7
  346. 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"}