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,29 @@
1
+ /**
2
+ * Agent Evals & Observability Types
3
+ *
4
+ * Testing agent success and asserting on graph state.
5
+ */
6
+ export interface EvalResult {
7
+ runId: string;
8
+ success: boolean;
9
+ score: number;
10
+ rationale?: string;
11
+ }
12
+ export type AssertionKind = 'entityExists' | 'entityAttributeMatch' | 'linkExists' | 'toolInvocationsMatch';
13
+ export interface GraphAssertion {
14
+ kind: AssertionKind;
15
+ params: Record<string, unknown>;
16
+ errorMessage?: string;
17
+ }
18
+ export interface EvalScenario {
19
+ id: string;
20
+ name: string;
21
+ agentId: string;
22
+ input: string;
23
+ expectedAssertions: GraphAssertion[];
24
+ }
25
+ export interface EvalEngine {
26
+ runScenario(scenario: EvalScenario): Promise<EvalResult>;
27
+ runSuite(scenarios: EvalScenario[]): Promise<EvalResult[]>;
28
+ }
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/evals/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,sBAAsB,GAAG,YAAY,GAAG,sBAAsB,CAAC;AAE5G,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,cAAc,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACzD,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CAC5D"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Idea Garden — Cluster Detection
3
+ *
4
+ * DESIGN.md §7.2–7.4 — Identifies "idea clusters": contiguous sequences
5
+ * of ops that were never incorporated into a milestone and were later
6
+ * diverged from.
7
+ *
8
+ * Three detection heuristics:
9
+ * 1. Context-switch detection (file-set shift)
10
+ * 2. Branch abandonment (stale un-milestoned ops)
11
+ * 3. Revert detection (ops undone by later ops)
12
+ */
13
+ import type { VcsOp } from '../vcs/types.js';
14
+ export interface IdeaCluster {
15
+ id: string;
16
+ ops: VcsOp[];
17
+ firstOp: string;
18
+ lastOp: string;
19
+ affectedFiles: string[];
20
+ affectedSymbols: string[];
21
+ estimatedIntent: string;
22
+ createdAt: string;
23
+ abandonedAt: string;
24
+ status: 'abandoned' | 'draft' | 'revived';
25
+ /** Which heuristic detected this cluster. */
26
+ detectedBy: string;
27
+ }
28
+ export interface ClusterDetector {
29
+ name: string;
30
+ detect(ops: VcsOp[], milestonedOpHashes: Set<string>): IdeaCluster[];
31
+ }
32
+ /**
33
+ * Detects clusters when the set of files being modified shifts abruptly.
34
+ * Groups consecutive un-milestoned file ops by "file affinity" — when
35
+ * the overlap between the current working set and the next op drops to zero,
36
+ * a new group starts. Groups that are followed by a different group become
37
+ * candidate clusters.
38
+ */
39
+ export declare const contextSwitchDetector: ClusterDetector;
40
+ /**
41
+ * Detects clusters where a file's content hash returns to a prior value,
42
+ * indicating the intermediate ops were "reverted."
43
+ */
44
+ export declare const revertDetector: ClusterDetector;
45
+ /**
46
+ * Detects un-milestoned ops on branches that haven't seen activity recently.
47
+ * Since we operate on a linear op stream for now, this looks for gaps
48
+ * where file ops stop and then resume on different files.
49
+ */
50
+ export declare const staleBranchDetector: ClusterDetector;
51
+ /** All built-in detectors. */
52
+ export declare const defaultDetectors: ClusterDetector[];
53
+ /**
54
+ * Run all detectors and merge results (dedup by cluster ID).
55
+ */
56
+ export declare function detectClusters(ops: VcsOp[], milestonedOpHashes: Set<string>, detectors?: ClusterDetector[]): IdeaCluster[];
57
+ //# sourceMappingURL=cluster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../src/garden/cluster.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAM7C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,KAAK,EAAE,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;IAC1C,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;CACtE;AAoCD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,eA2EnC,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,eA0D5B,CAAC;AAMF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAuDjC,CAAC;AAMF,8BAA8B;AAC9B,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAI7C,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,KAAK,EAAE,EACZ,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC/B,SAAS,GAAE,eAAe,EAAqB,GAC9C,WAAW,EAAE,CAoBf"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Idea Garden — Query Layer + Revive
3
+ *
4
+ * DESIGN.md §7.4–7.5 — Search and revive idea clusters.
5
+ *
6
+ * The Garden is a query layer over the causal stream that surfaces
7
+ * abandoned work as searchable idea clusters. It also provides the
8
+ * ability to revive clusters into new branches.
9
+ */
10
+ import type { VcsOp } from '../vcs/types.js';
11
+ import { type IdeaCluster, type ClusterDetector } from './cluster.js';
12
+ export interface ScoredCluster {
13
+ cluster: IdeaCluster;
14
+ score: number;
15
+ }
16
+ export interface GardenSearchOpts {
17
+ /** Filter by affected file path (substring match). */
18
+ file?: string;
19
+ /** Filter by keyword in affected files or estimated intent. */
20
+ keyword?: string;
21
+ /** Filter by cluster status. */
22
+ status?: IdeaCluster['status'];
23
+ /** Maximum results to return. */
24
+ limit?: number;
25
+ /** Use vector similarity when an EmbeddingManager is available (default: true). */
26
+ semantic?: boolean;
27
+ }
28
+ /**
29
+ * Optional embedding manager interface for vector-enhanced search.
30
+ * Avoids hard dependency on the embeddings module.
31
+ */
32
+ export interface GardenEmbedder {
33
+ search(query: string, opts?: {
34
+ limit?: number;
35
+ filePrefix?: string;
36
+ }): Promise<Array<{
37
+ chunk: {
38
+ filePath?: string;
39
+ content: string;
40
+ };
41
+ score: number;
42
+ }>>;
43
+ }
44
+ export interface GardenContext {
45
+ /** All ops in the stream. */
46
+ readAllOps(): VcsOp[];
47
+ /** Set of op hashes that belong to a milestone range. */
48
+ getMilestonedOpHashes(): Set<string>;
49
+ }
50
+ export declare class IdeaGarden {
51
+ private ctx;
52
+ private detectors;
53
+ private _cache;
54
+ private _revivedIds;
55
+ private _embedder;
56
+ constructor(ctx: GardenContext, detectors?: ClusterDetector[]);
57
+ /**
58
+ * Attach an embedding manager for vector-enhanced search.
59
+ */
60
+ setEmbedder(embedder: GardenEmbedder | null): void;
61
+ /**
62
+ * Invalidate the cluster cache (call after new ops are added).
63
+ */
64
+ invalidate(): void;
65
+ /**
66
+ * Detect and return all idea clusters.
67
+ */
68
+ listClusters(): IdeaCluster[];
69
+ /**
70
+ * Get a single cluster by ID.
71
+ */
72
+ getCluster(clusterId: string): IdeaCluster | null;
73
+ /**
74
+ * Search clusters with filters (synchronous keyword search).
75
+ */
76
+ search(opts?: GardenSearchOpts): IdeaCluster[];
77
+ /**
78
+ * Vector-enhanced search: uses embeddings to find clusters whose affected
79
+ * files are semantically similar to the query. Falls back to keyword search
80
+ * if no embedder is attached.
81
+ */
82
+ semanticSearch(opts?: GardenSearchOpts): Promise<ScoredCluster[]>;
83
+ /**
84
+ * Mark a cluster as revived. Returns the ops to replay.
85
+ */
86
+ revive(clusterId: string): VcsOp[] | null;
87
+ /**
88
+ * Get summary statistics for the garden.
89
+ */
90
+ stats(): {
91
+ total: number;
92
+ abandoned: number;
93
+ draft: number;
94
+ revived: number;
95
+ totalOps: number;
96
+ totalFiles: number;
97
+ };
98
+ }
99
+ /**
100
+ * Build a set of op hashes that fall within milestone ranges.
101
+ * Used by the engine to provide GardenContext.getMilestonedOpHashes().
102
+ */
103
+ export declare function buildMilestonedOpHashes(ops: VcsOp[]): Set<string>;
104
+ //# sourceMappingURL=garden.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"garden.d.ts","sourceRoot":"","sources":["../../src/garden/garden.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AAMtB,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CACR,KAAK,CAAC;QAAE,KAAK,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CACxE,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,6BAA6B;IAC7B,UAAU,IAAI,KAAK,EAAE,CAAC;IACtB,yDAAyD;IACzD,qBAAqB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;CACtC;AAMD,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,SAAS,CAA+B;gBAEpC,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE;IAK7D;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAIlD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAgB7B;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAIjD;;OAEG;IACH,MAAM,CAAC,IAAI,GAAE,gBAAqB,GAAG,WAAW,EAAE;IAmClD;;;;OAIG;IACG,cAAc,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAqE3E;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,IAAI;IAWzC;;OAEG;IACH,KAAK,IAAI;QACP,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB;CAmBF;AAMD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAwBjE"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Idea Garden — Public Surface
3
+ *
4
+ * @module garden
5
+ *
6
+ * Re-exports cluster detection heuristics (context-switch, revert, stale-branch)
7
+ * and the {@link IdeaGarden} query/revive layer.
8
+ *
9
+ * @see DESIGN.md §7 for the full Idea Garden specification.
10
+ */
11
+ export { detectClusters, defaultDetectors, contextSwitchDetector, revertDetector, staleBranchDetector, } from './cluster.js';
12
+ export type { IdeaCluster, ClusterDetector } from './cluster.js';
13
+ export { IdeaGarden, buildMilestonedOpHashes } from './garden.js';
14
+ export type { ScoredCluster, GardenSearchOpts, GardenContext, GardenEmbedder, } from './garden.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/garden/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAElE,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,cAAc,GACf,MAAM,aAAa,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Git Exporter
3
+ *
4
+ * Serializes TrellisVCS milestones back to Git commits.
5
+ * Each milestone becomes a Git commit with:
6
+ * - The milestone message as the commit message
7
+ * - File states reconstructed from the blob store
8
+ * - Author info from the milestone's createdBy identity
9
+ *
10
+ * The exporter creates a new Git repo (or uses an existing one)
11
+ * and leaves the TrellisVCS repo untouched.
12
+ */
13
+ export interface ExportOptions {
14
+ /** Path to the TrellisVCS repository to export from. */
15
+ from: string;
16
+ /** Path to the target Git repository. */
17
+ to: string;
18
+ /** Author name for commits (default: "TrellisVCS Export"). */
19
+ authorName?: string;
20
+ /** Author email for commits (default: "export@trellis.dev"). */
21
+ authorEmail?: string;
22
+ /** Callback for progress reporting. */
23
+ onProgress?: (progress: ExportProgress) => void;
24
+ }
25
+ export interface ExportProgress {
26
+ phase: 'preparing' | 'exporting' | 'done';
27
+ current: number;
28
+ total: number;
29
+ message: string;
30
+ }
31
+ export interface ExportResult {
32
+ milestonesExported: number;
33
+ commitsCreated: number;
34
+ duration: number;
35
+ }
36
+ export declare function exportToGit(opts: ExportOptions): Promise<ExportResult>;
37
+ //# sourceMappingURL=git-exporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-exporter.d.ts","sourceRoot":"","sources":["../../src/git/git-exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IAEb,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAC;IAEX,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uCAAuC;IACvC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD,wBAAsB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA0K5E"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Git Importer
3
+ *
4
+ * Converts a Git repository's commit history into TrellisVCS operations.
5
+ * Each Git commit becomes:
6
+ * 1. A sequence of Tier 0 file-level ops (vcs:fileAdd, vcs:fileModify, etc.)
7
+ * 2. A vcs:milestoneCreate op (commit message → milestone)
8
+ *
9
+ * The importer reads from the Git repo, writes into a TrellisVCS engine,
10
+ * and leaves the original Git repo untouched.
11
+ */
12
+ export interface ImportOptions {
13
+ /** Path to the source Git repository. */
14
+ from: string;
15
+ /** Path to the target TrellisVCS repository (defaults to cwd). */
16
+ to: string;
17
+ /** Agent ID for the import. Defaults to Git author info. */
18
+ agentId?: string;
19
+ /** Callback for progress reporting. */
20
+ onProgress?: (progress: ImportProgress) => void;
21
+ }
22
+ export interface ImportProgress {
23
+ phase: 'reading' | 'importing' | 'done';
24
+ current: number;
25
+ total: number;
26
+ message: string;
27
+ }
28
+ export interface ImportResult {
29
+ commitsImported: number;
30
+ opsCreated: number;
31
+ filesTracked: number;
32
+ branches: string[];
33
+ duration: number;
34
+ }
35
+ export declare function importFromGit(opts: ImportOptions): Promise<ImportResult>;
36
+ //# sourceMappingURL=git-importer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-importer.d.ts","sourceRoot":"","sources":["../../src/git/git-importer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiBH,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IAEX,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uCAAuC;IACvC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,YAAY,CAAC,CAkGvB"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Git Reader
3
+ *
4
+ * Reads a Git repository's commit graph and file-level diffs
5
+ * by shelling out to `git`. No libgit2 dependency.
6
+ */
7
+ export interface GitCommit {
8
+ hash: string;
9
+ authorName: string;
10
+ authorEmail: string;
11
+ timestamp: string;
12
+ message: string;
13
+ parentHashes: string[];
14
+ }
15
+ export interface GitFileChange {
16
+ status: 'A' | 'M' | 'D' | 'R';
17
+ path: string;
18
+ oldPath?: string;
19
+ }
20
+ export interface GitCommitWithChanges extends GitCommit {
21
+ changes: GitFileChange[];
22
+ }
23
+ export declare class GitReader {
24
+ private repoPath;
25
+ constructor(repoPath: string);
26
+ /**
27
+ * Verifies this is a valid Git repository.
28
+ */
29
+ isGitRepo(): boolean;
30
+ /**
31
+ * Returns all commits in topological order (oldest first).
32
+ */
33
+ readCommits(): GitCommit[];
34
+ /**
35
+ * Returns file changes for a specific commit.
36
+ * For the root commit (no parents), diffs against empty tree.
37
+ */
38
+ readChanges(commitHash: string, parentHash?: string): GitFileChange[];
39
+ /**
40
+ * Returns the full content of a file at a specific commit.
41
+ */
42
+ readFileContent(commitHash: string, filePath: string): Buffer | null;
43
+ /**
44
+ * Reads all commits with their file changes in topological order.
45
+ * This is the main entry point for the import pipeline.
46
+ */
47
+ readFullHistory(): GitCommitWithChanges[];
48
+ /**
49
+ * Returns the total number of commits.
50
+ */
51
+ commitCount(): number;
52
+ /**
53
+ * Returns the current branch name.
54
+ */
55
+ currentBranch(): string;
56
+ /**
57
+ * Returns all branch names.
58
+ */
59
+ branches(): string[];
60
+ private git;
61
+ private gitBuffer;
62
+ }
63
+ //# sourceMappingURL=git-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-reader.d.ts","sourceRoot":"","sources":["../../src/git/git-reader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAMD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAI5B;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,WAAW,IAAI,SAAS,EAAE;IA0B1B;;;OAGG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE;IAmCrE;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQpE;;;OAGG;IACH,eAAe,IAAI,oBAAoB,EAAE;IAUzC;;OAEG;IACH,WAAW,IAAI,MAAM;IAKrB;;OAEG;IACH,aAAa,IAAI,MAAM;IAQvB;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE;IASpB,OAAO,CAAC,GAAG;IAOX,OAAO,CAAC,SAAS;CAKlB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Git Bridge — Public Surface
3
+ */
4
+ export { GitReader } from './git-reader.js';
5
+ export { importFromGit } from './git-importer.js';
6
+ export { exportToGit } from './git-exporter.js';
7
+ export type { ImportOptions, ImportResult, ImportProgress, } from './git-importer.js';
8
+ export type { ExportOptions, ExportResult, ExportProgress, } from './git-exporter.js';
9
+ export type { GitCommit, GitFileChange, GitCommitWithChanges, } from './git-reader.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,SAAS,EACT,aAAa,EACb,oBAAoB,GACrB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Governance Module
3
+ *
4
+ * DESIGN.md §6.3–6.4 — Policy nodes and governance enforcement.
5
+ *
6
+ * Policy rules are expressed as EAV entities. The governance engine evaluates
7
+ * ops against applicable policies before allowing them through.
8
+ */
9
+ import type { VcsOp } from '../vcs/types.js';
10
+ import type { IdentityResolver } from './signing-middleware.js';
11
+ export interface PolicyRule {
12
+ id: string;
13
+ /** What this policy protects. */
14
+ target: 'branch' | 'path' | 'entityType';
15
+ targetPattern: string;
16
+ /** What action requires authorization. */
17
+ action: 'push' | 'merge' | 'createMilestone' | 'deleteBranch';
18
+ /** Who is authorized (identity entity IDs). */
19
+ requiredSigners: string[];
20
+ /** Minimum number of valid signatures required. */
21
+ minSignatures: number;
22
+ /** Optional: require CI attestation. */
23
+ requireAttestation?: {
24
+ type: 'test-pass' | 'build-pass' | 'review-approved';
25
+ from: string;
26
+ };
27
+ /** Whether this policy is active. */
28
+ enabled: boolean;
29
+ }
30
+ export interface PolicyViolation {
31
+ policyId: string;
32
+ op: VcsOp;
33
+ reason: string;
34
+ }
35
+ export interface GovernanceResult {
36
+ allowed: boolean;
37
+ violations: PolicyViolation[];
38
+ }
39
+ /**
40
+ * Evaluate an op against a set of policies.
41
+ */
42
+ export declare function evaluatePolicy(op: VcsOp, policies: PolicyRule[], resolver: IdentityResolver): GovernanceResult;
43
+ /**
44
+ * Create a new policy rule.
45
+ */
46
+ export declare function createPolicy(opts: {
47
+ id: string;
48
+ target: PolicyRule['target'];
49
+ targetPattern: string;
50
+ action: PolicyRule['action'];
51
+ requiredSigners: string[];
52
+ minSignatures?: number;
53
+ }): PolicyRule;
54
+ //# sourceMappingURL=governance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../src/identity/governance.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAOhE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,iBAAiB,GAAG,cAAc,CAAC;IAC9D,+CAA+C;IAC/C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE;QACnB,IAAI,EAAE,WAAW,GAAG,YAAY,GAAG,iBAAiB,CAAC;QACrD,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAuDD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,KAAK,EACT,QAAQ,EAAE,UAAU,EAAE,EACtB,QAAQ,EAAE,gBAAgB,GACzB,gBAAgB,CAiClB;AA2BD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,UAAU,CAUb"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Identity Module
3
+ *
4
+ * Ed25519 key pair generation, DID derivation, and local identity storage.
5
+ * DESIGN.md §6.1 — Every actor is an Identity entity with a cryptographic key pair.
6
+ *
7
+ * Private keys are stored locally in `.trellis/identity.json` (never synced).
8
+ * Public keys and DIDs are graph entities that get replicated to peers.
9
+ */
10
+ export interface IdentityConfig {
11
+ displayName: string;
12
+ email?: string;
13
+ /** Ed25519 public key, base64-encoded. */
14
+ publicKey: string;
15
+ /** Ed25519 private key, base64-encoded (local only, never synced). */
16
+ privateKey: string;
17
+ /** did:key identifier derived from public key. */
18
+ did: string;
19
+ /** Entity ID for use in the EAV store. */
20
+ entityId: string;
21
+ /** ISO timestamp of creation. */
22
+ createdAt: string;
23
+ }
24
+ export interface PublicIdentity {
25
+ displayName: string;
26
+ email?: string;
27
+ publicKey: string;
28
+ did: string;
29
+ entityId: string;
30
+ createdAt: string;
31
+ }
32
+ /**
33
+ * Generate a new Ed25519 identity.
34
+ */
35
+ export declare function createIdentity(opts: {
36
+ displayName: string;
37
+ email?: string;
38
+ }): IdentityConfig;
39
+ /**
40
+ * Sign a message (typically an op hash) with a private key.
41
+ */
42
+ export declare function signMessage(message: string, privateKeyBase64: string): string;
43
+ /**
44
+ * Verify a signature against a message and public key.
45
+ */
46
+ export declare function verifySignature(message: string, signatureBase64: string, publicKeyBase64: string): boolean;
47
+ /**
48
+ * Save an identity to the local .trellis directory.
49
+ */
50
+ export declare function saveIdentity(trellisDir: string, identity: IdentityConfig): void;
51
+ /**
52
+ * Load the local identity from .trellis/identity.json.
53
+ */
54
+ export declare function loadIdentity(trellisDir: string): IdentityConfig | null;
55
+ /**
56
+ * Check if a local identity exists.
57
+ */
58
+ export declare function hasIdentity(trellisDir: string): boolean;
59
+ /**
60
+ * Extract the public (safe-to-share) portion of an identity.
61
+ */
62
+ export declare function toPublicIdentity(identity: IdentityConfig): PublicIdentity;
63
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/identity/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,cAAc,CAqBjB;AAqBD;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,GACtB,OAAO,CAST;AAQD;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAM/E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAQtE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,CASzE"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Identity Module — Public Surface
3
+ */
4
+ export { createIdentity, signMessage, verifySignature, saveIdentity, loadIdentity, hasIdentity, toPublicIdentity, } from './identity.js';
5
+ export type { IdentityConfig, PublicIdentity } from './identity.js';
6
+ export { signOp, verifyOp, verifyOpBatch } from './signing-middleware.js';
7
+ export type { IdentityResolver, SignatureVerificationResult, } from './signing-middleware.js';
8
+ export { evaluatePolicy, createPolicy } from './governance.js';
9
+ export type { PolicyRule, PolicyViolation, GovernanceResult, } from './governance.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE1E,YAAY,EACV,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,YAAY,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Signing Middleware
3
+ *
4
+ * DESIGN.md §6.2 — Every op can be cryptographically signed by its author.
5
+ *
6
+ * This module provides:
7
+ * - `signOp`: Sign a VcsOp with a local identity's private key.
8
+ * - `verifyOp`: Verify the signature on a VcsOp.
9
+ * - `SignatureVerificationMiddleware`: Middleware that rejects ops with
10
+ * invalid signatures on remote ops.
11
+ */
12
+ import type { VcsOp } from '../vcs/types.js';
13
+ /**
14
+ * Sign a VcsOp in-place using the given private key.
15
+ * Sets `vcs.signature` and `vcs.signedBy` on the op.
16
+ */
17
+ export declare function signOp(op: VcsOp, privateKeyBase64: string, identityEntityId: string): VcsOp;
18
+ /**
19
+ * Verify the signature on a VcsOp.
20
+ * Returns true if the op has a valid signature, false if invalid.
21
+ * Returns null if the op has no signature (unsigned).
22
+ */
23
+ export declare function verifyOp(op: VcsOp, publicKeyBase64: string): boolean | null;
24
+ export interface IdentityResolver {
25
+ /** Resolve an identity entity ID to its public key (base64). */
26
+ resolvePublicKey(entityId: string): string | null;
27
+ }
28
+ export interface SignatureVerificationResult {
29
+ valid: boolean;
30
+ op: VcsOp;
31
+ reason?: string;
32
+ }
33
+ /**
34
+ * Verify all signatures on a batch of ops.
35
+ * Returns results for ops that have signatures.
36
+ */
37
+ export declare function verifyOpBatch(ops: VcsOp[], resolver: IdentityResolver): SignatureVerificationResult[];
38
+ //# sourceMappingURL=signing-middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing-middleware.d.ts","sourceRoot":"","sources":["../../src/identity/signing-middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAO7C;;;GAGG;AACH,wBAAgB,MAAM,CACpB,EAAE,EAAE,KAAK,EACT,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,GACvB,KAAK,CAOP;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,EAAE,EAAE,KAAK,EACT,eAAe,EAAE,MAAM,GACtB,OAAO,GAAG,IAAI,CAGhB;AAMD,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,KAAK,EAAE,EACZ,QAAQ,EAAE,gBAAgB,GACzB,2BAA2B,EAAE,CAyB/B"}
@@ -0,0 +1,11 @@
1
+ // @bun
2
+ import {
3
+ importFile,
4
+ importRecords
5
+ } from "./index-skhn0agf.js";
6
+ import"./index-yhwjgfvj.js";
7
+ import"./index-a76rekgs.js";
8
+ export {
9
+ importRecords,
10
+ importFile
11
+ };