trellis 2.1.6 → 2.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/README.md +100 -10
  2. package/dist/cli/index.d.ts +14 -0
  3. package/dist/cli/index.d.ts.map +1 -0
  4. package/dist/cli/index.js +212 -12
  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/core/agents/harness.d.ts +49 -0
  14. package/dist/core/agents/harness.d.ts.map +1 -0
  15. package/dist/core/agents/index.d.ts +8 -0
  16. package/dist/core/agents/index.d.ts.map +1 -0
  17. package/dist/core/agents/types.d.ts +63 -0
  18. package/dist/core/agents/types.d.ts.map +1 -0
  19. package/dist/core/index.d.ts +25 -0
  20. package/dist/core/index.d.ts.map +1 -0
  21. package/dist/core/index.js +15 -9
  22. package/dist/core/kernel/middleware.d.ts +28 -0
  23. package/dist/core/kernel/middleware.d.ts.map +1 -0
  24. package/dist/core/kernel/trellis-kernel.d.ts +162 -0
  25. package/dist/core/kernel/trellis-kernel.d.ts.map +1 -0
  26. package/dist/core/ontology/builtins.d.ts +16 -0
  27. package/dist/core/ontology/builtins.d.ts.map +1 -0
  28. package/dist/core/ontology/index.d.ts +10 -0
  29. package/dist/core/ontology/index.d.ts.map +1 -0
  30. package/dist/core/ontology/registry.d.ts +70 -0
  31. package/dist/core/ontology/registry.d.ts.map +1 -0
  32. package/dist/core/ontology/types.d.ts +97 -0
  33. package/dist/core/ontology/types.d.ts.map +1 -0
  34. package/dist/core/ontology/validator.d.ts +34 -0
  35. package/dist/core/ontology/validator.d.ts.map +1 -0
  36. package/dist/core/persist/backend.d.ts +60 -0
  37. package/dist/core/persist/backend.d.ts.map +1 -0
  38. package/dist/core/persist/sqlite-backend.d.ts +41 -0
  39. package/dist/core/persist/sqlite-backend.d.ts.map +1 -0
  40. package/dist/core/plugins/index.d.ts +8 -0
  41. package/dist/core/plugins/index.d.ts.map +1 -0
  42. package/dist/core/plugins/registry.d.ts +69 -0
  43. package/dist/core/plugins/registry.d.ts.map +1 -0
  44. package/dist/core/plugins/types.d.ts +87 -0
  45. package/dist/core/plugins/types.d.ts.map +1 -0
  46. package/dist/core/query/datalog.d.ts +52 -0
  47. package/dist/core/query/datalog.d.ts.map +1 -0
  48. package/dist/core/query/engine.d.ts +42 -0
  49. package/dist/core/query/engine.d.ts.map +1 -0
  50. package/dist/core/query/index.d.ts +12 -0
  51. package/dist/core/query/index.d.ts.map +1 -0
  52. package/dist/core/query/parser.d.ts +37 -0
  53. package/dist/core/query/parser.d.ts.map +1 -0
  54. package/dist/core/query/types.d.ts +135 -0
  55. package/dist/core/query/types.d.ts.map +1 -0
  56. package/dist/core/store/eav-store.d.ts +107 -0
  57. package/dist/core/store/eav-store.d.ts.map +1 -0
  58. package/dist/db/index.d.ts +18 -0
  59. package/dist/db/index.d.ts.map +1 -0
  60. package/dist/db/index.js +83 -0
  61. package/dist/db/inspector.js +28 -0
  62. package/dist/db/trellis.css +1 -0
  63. package/dist/decisions/auto-capture.d.ts +31 -0
  64. package/dist/decisions/auto-capture.d.ts.map +1 -0
  65. package/dist/decisions/hooks.d.ts +48 -0
  66. package/dist/decisions/hooks.d.ts.map +1 -0
  67. package/dist/decisions/index.d.ts +36 -0
  68. package/dist/decisions/index.d.ts.map +1 -0
  69. package/dist/decisions/types.d.ts +73 -0
  70. package/dist/decisions/types.d.ts.map +1 -0
  71. package/dist/deploy-99j5dc9c.js +9 -0
  72. package/dist/embeddings/auto-embed.d.ts +52 -0
  73. package/dist/embeddings/auto-embed.d.ts.map +1 -0
  74. package/dist/embeddings/chunker.d.ts +73 -0
  75. package/dist/embeddings/chunker.d.ts.map +1 -0
  76. package/dist/embeddings/index.d.ts +18 -0
  77. package/dist/embeddings/index.d.ts.map +1 -0
  78. package/dist/embeddings/model.d.ts +30 -0
  79. package/dist/embeddings/model.d.ts.map +1 -0
  80. package/dist/embeddings/search.d.ts +87 -0
  81. package/dist/embeddings/search.d.ts.map +1 -0
  82. package/dist/embeddings/store.d.ts +66 -0
  83. package/dist/embeddings/store.d.ts.map +1 -0
  84. package/dist/embeddings/types.d.ts +54 -0
  85. package/dist/embeddings/types.d.ts.map +1 -0
  86. package/dist/engine-y0724kjq.js +8 -0
  87. package/dist/engine.d.ts +216 -0
  88. package/dist/engine.d.ts.map +1 -0
  89. package/dist/garden/cluster.d.ts +57 -0
  90. package/dist/garden/cluster.d.ts.map +1 -0
  91. package/dist/garden/garden.d.ts +104 -0
  92. package/dist/garden/garden.d.ts.map +1 -0
  93. package/dist/garden/index.d.ts +15 -0
  94. package/dist/garden/index.d.ts.map +1 -0
  95. package/dist/git/git-exporter.d.ts +37 -0
  96. package/dist/git/git-exporter.d.ts.map +1 -0
  97. package/dist/git/git-importer.d.ts +36 -0
  98. package/dist/git/git-importer.d.ts.map +1 -0
  99. package/dist/git/git-reader.d.ts +63 -0
  100. package/dist/git/git-reader.d.ts.map +1 -0
  101. package/dist/git/index.d.ts +10 -0
  102. package/dist/git/index.d.ts.map +1 -0
  103. package/dist/identity/governance.d.ts +54 -0
  104. package/dist/identity/governance.d.ts.map +1 -0
  105. package/dist/identity/identity.d.ts +63 -0
  106. package/dist/identity/identity.d.ts.map +1 -0
  107. package/dist/identity/index.d.ts +10 -0
  108. package/dist/identity/index.d.ts.map +1 -0
  109. package/dist/identity/signing-middleware.d.ts +38 -0
  110. package/dist/identity/signing-middleware.d.ts.map +1 -0
  111. package/dist/import-fyg5sgq4.js +11 -0
  112. package/dist/{index-5m0g9r0y.js → index-04sq3h27.js} +1 -496
  113. package/dist/index-2r4jxwnb.js +32 -0
  114. package/dist/index-4beszbgg.js +292 -0
  115. package/dist/index-5bhe57y9.js +326 -0
  116. package/dist/index-5p6zgspx.js +77 -0
  117. package/dist/index-7t92ej34.js +544 -0
  118. package/dist/index-8fjwnztt.js +155 -0
  119. package/dist/{index-5b01h414.js → index-czecrvvn.js} +9 -9
  120. package/dist/index-hgd30epa.js +149 -0
  121. package/dist/index-k5b0xskw.js +1 -0
  122. package/dist/index-kbnht9p8.js +1 -0
  123. package/dist/index-n9f2qyh5.js +495 -0
  124. package/dist/index-xr7rx360.js +814 -0
  125. package/dist/index-xzym9w0m.js +43 -0
  126. package/dist/index-yp88he8n.js +316 -0
  127. package/dist/index.d.ts +23 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +9 -7
  130. package/dist/links/index.d.ts +16 -0
  131. package/dist/links/index.d.ts.map +1 -0
  132. package/dist/links/lifecycle.d.ts +112 -0
  133. package/dist/links/lifecycle.d.ts.map +1 -0
  134. package/dist/links/parser.d.ts +56 -0
  135. package/dist/links/parser.d.ts.map +1 -0
  136. package/dist/links/ref-index.d.ts +55 -0
  137. package/dist/links/ref-index.d.ts.map +1 -0
  138. package/dist/links/resolver.d.ts +90 -0
  139. package/dist/links/resolver.d.ts.map +1 -0
  140. package/dist/links/types.d.ts +70 -0
  141. package/dist/links/types.d.ts.map +1 -0
  142. package/dist/mcp/docs.d.ts +18 -0
  143. package/dist/mcp/docs.d.ts.map +1 -0
  144. package/dist/mcp/index.d.ts +9 -0
  145. package/dist/mcp/index.d.ts.map +1 -0
  146. package/dist/mcp/server.d.ts +26 -0
  147. package/dist/mcp/server.d.ts.map +1 -0
  148. package/dist/react/index.js +189 -0
  149. package/dist/sdk-sj8rp0m7.js +15 -0
  150. package/dist/semantic/csharp-parser.d.ts +12 -0
  151. package/dist/semantic/csharp-parser.d.ts.map +1 -0
  152. package/dist/semantic/go-parser.d.ts +12 -0
  153. package/dist/semantic/go-parser.d.ts.map +1 -0
  154. package/dist/semantic/index.d.ts +22 -0
  155. package/dist/semantic/index.d.ts.map +1 -0
  156. package/dist/semantic/java-parser.d.ts +12 -0
  157. package/dist/semantic/java-parser.d.ts.map +1 -0
  158. package/dist/semantic/python-parser.d.ts +12 -0
  159. package/dist/semantic/python-parser.d.ts.map +1 -0
  160. package/dist/semantic/ruby-parser.d.ts +12 -0
  161. package/dist/semantic/ruby-parser.d.ts.map +1 -0
  162. package/dist/semantic/rust-parser.d.ts +12 -0
  163. package/dist/semantic/rust-parser.d.ts.map +1 -0
  164. package/dist/semantic/semantic-merge.d.ts +20 -0
  165. package/dist/semantic/semantic-merge.d.ts.map +1 -0
  166. package/dist/semantic/ts-parser.d.ts +13 -0
  167. package/dist/semantic/ts-parser.d.ts.map +1 -0
  168. package/dist/semantic/types.d.ts +130 -0
  169. package/dist/semantic/types.d.ts.map +1 -0
  170. package/dist/server/auth.d.ts +72 -0
  171. package/dist/server/auth.d.ts.map +1 -0
  172. package/dist/server/deploy.d.ts +44 -0
  173. package/dist/server/deploy.d.ts.map +1 -0
  174. package/dist/server/import.d.ts +40 -0
  175. package/dist/server/import.d.ts.map +1 -0
  176. package/dist/server/index.d.ts +24 -0
  177. package/dist/server/index.d.ts.map +1 -0
  178. package/dist/server/index.js +60 -0
  179. package/dist/server/permissions.d.ts +84 -0
  180. package/dist/server/permissions.d.ts.map +1 -0
  181. package/dist/server/realtime.d.ts +78 -0
  182. package/dist/server/realtime.d.ts.map +1 -0
  183. package/dist/server/server.d.ts +43 -0
  184. package/dist/server/server.d.ts.map +1 -0
  185. package/dist/server/tenancy.d.ts +53 -0
  186. package/dist/server/tenancy.d.ts.map +1 -0
  187. package/dist/server-3vkpnpbz.js +11 -0
  188. package/dist/sync/http-transport.d.ts +47 -0
  189. package/dist/sync/http-transport.d.ts.map +1 -0
  190. package/dist/sync/index.d.ts +22 -0
  191. package/dist/sync/index.d.ts.map +1 -0
  192. package/dist/sync/memory-transport.d.ts +27 -0
  193. package/dist/sync/memory-transport.d.ts.map +1 -0
  194. package/dist/sync/multi-repo.d.ts +82 -0
  195. package/dist/sync/multi-repo.d.ts.map +1 -0
  196. package/dist/sync/reconciler.d.ts +48 -0
  197. package/dist/sync/reconciler.d.ts.map +1 -0
  198. package/dist/sync/sync-engine.d.ts +65 -0
  199. package/dist/sync/sync-engine.d.ts.map +1 -0
  200. package/dist/sync/types.d.ts +71 -0
  201. package/dist/sync/types.d.ts.map +1 -0
  202. package/dist/sync/ws-transport.d.ts +41 -0
  203. package/dist/sync/ws-transport.d.ts.map +1 -0
  204. package/dist/tenancy-tjr7kk2v.js +13 -0
  205. package/dist/ui/server.d.ts +38 -0
  206. package/dist/ui/server.d.ts.map +1 -0
  207. package/dist/vcs/blob-store.d.ts +49 -0
  208. package/dist/vcs/blob-store.d.ts.map +1 -0
  209. package/dist/vcs/branch.d.ts +35 -0
  210. package/dist/vcs/branch.d.ts.map +1 -0
  211. package/dist/vcs/checkpoint.d.ts +24 -0
  212. package/dist/vcs/checkpoint.d.ts.map +1 -0
  213. package/dist/vcs/decompose.d.ts +19 -0
  214. package/dist/vcs/decompose.d.ts.map +1 -0
  215. package/dist/vcs/diff.d.ts +65 -0
  216. package/dist/vcs/diff.d.ts.map +1 -0
  217. package/dist/vcs/engine-context.d.ts +21 -0
  218. package/dist/vcs/engine-context.d.ts.map +1 -0
  219. package/dist/vcs/index.d.ts +23 -0
  220. package/dist/vcs/index.d.ts.map +1 -0
  221. package/dist/vcs/issue.d.ts +159 -0
  222. package/dist/vcs/issue.d.ts.map +1 -0
  223. package/dist/vcs/merge.d.ts +55 -0
  224. package/dist/vcs/merge.d.ts.map +1 -0
  225. package/dist/vcs/milestone.d.ts +30 -0
  226. package/dist/vcs/milestone.d.ts.map +1 -0
  227. package/dist/vcs/ops.d.ts +27 -0
  228. package/dist/vcs/ops.d.ts.map +1 -0
  229. package/dist/vcs/types.d.ts +94 -0
  230. package/dist/vcs/types.d.ts.map +1 -0
  231. package/dist/vcs/vcs-middleware.d.ts +14 -0
  232. package/dist/vcs/vcs-middleware.d.ts.map +1 -0
  233. package/dist/watcher/fs-watcher.d.ts +51 -0
  234. package/dist/watcher/fs-watcher.d.ts.map +1 -0
  235. package/dist/watcher/index.d.ts +9 -0
  236. package/dist/watcher/index.d.ts.map +1 -0
  237. package/dist/watcher/ingestion.d.ts +28 -0
  238. package/dist/watcher/ingestion.d.ts.map +1 -0
  239. package/package.json +44 -4
  240. package/dist/index-hybgxe40.js +0 -1174
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch.d.ts","sourceRoot":"","sources":["../../src/vcs/branch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;CACvB;AAMD;;GAEG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,KAAK,CAAC,CAmBhB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,GACX,IAAI,CAON;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,aAAa,EAClB,aAAa,EAAE,MAAM,GACpB,UAAU,EAAE,CAmBd;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,KAAK,CAAC,CAkBhB;AAMD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAG1E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAY7D"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Checkpoint Module
3
+ *
4
+ * Extracted from engine.ts per DESIGN.md §8.1.
5
+ * Handles checkpoint creation, listing, and auto-checkpoint logic.
6
+ */
7
+ import type { VcsOp } from './types.js';
8
+ import type { EngineContext } from './engine-context.js';
9
+ export type CheckpointTrigger = 'manual' | 'op-count' | 'interval' | 'green-build';
10
+ export interface CheckpointInfo {
11
+ id: string;
12
+ createdAt?: string;
13
+ trigger?: string;
14
+ atOpHash?: string;
15
+ }
16
+ /**
17
+ * Create a checkpoint at the current position in the causal stream.
18
+ */
19
+ export declare function createCheckpoint(ctx: EngineContext, trigger?: CheckpointTrigger): Promise<VcsOp>;
20
+ /**
21
+ * List all checkpoints from the EAV store.
22
+ */
23
+ export declare function listCheckpoints(ctx: EngineContext): CheckpointInfo[];
24
+ //# sourceMappingURL=checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/vcs/checkpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,CAAC;AAEnF,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,aAAa,EAClB,OAAO,GAAE,iBAA4B,GACpC,OAAO,CAAC,KAAK,CAAC,CAQhB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,EAAE,CAgBpE"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * VCS Op Decomposition
3
+ *
4
+ * Converts high-level VcsOps into primitive EAV store operations
5
+ * (addFacts, addLinks, deleteFacts, deleteLinks).
6
+ */
7
+ import type { Fact, Link } from '../core/store/eav-store.js';
8
+ import type { VcsOp } from './types.js';
9
+ export interface DecomposedOp {
10
+ addFacts: Fact[];
11
+ addLinks: Link[];
12
+ deleteFacts: Fact[];
13
+ deleteLinks: Link[];
14
+ }
15
+ /**
16
+ * Decomposes a VcsOp into primitive store operations.
17
+ */
18
+ export declare function decompose(op: VcsOp): DecomposedOp;
19
+ //# sourceMappingURL=decompose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decompose.d.ts","sourceRoot":"","sources":["../../src/vcs/decompose.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAUxC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,WAAW,EAAE,IAAI,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,KAAK,GAAG,YAAY,CAwbjD"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Diff Engine
3
+ *
4
+ * File-level diff with unified text output (Tier 0 / P3).
5
+ * Compares two points in history by reconstructing file states from the
6
+ * op stream and producing file-level diffs with optional unified text diffs
7
+ * via the blob store.
8
+ *
9
+ * DESIGN.md §4.5 — "At Tier 0 (before AST parsing is available), the diff
10
+ * engine falls back to file-level comparison."
11
+ */
12
+ import type { VcsOp } from './types.js';
13
+ import type { BlobStore } from './blob-store.js';
14
+ export interface FileLevelDiff {
15
+ kind: 'fileAdded' | 'fileModified' | 'fileDeleted' | 'fileRenamed';
16
+ path: string;
17
+ oldPath?: string;
18
+ oldContentHash?: string;
19
+ newContentHash?: string;
20
+ /** Unified diff text (only for fileModified when blob content is available). */
21
+ unifiedDiff?: string;
22
+ }
23
+ export interface DiffResult {
24
+ diffs: FileLevelDiff[];
25
+ filesChanged: string[];
26
+ stats: {
27
+ added: number;
28
+ modified: number;
29
+ removed: number;
30
+ renamed: number;
31
+ };
32
+ }
33
+ export interface FileState {
34
+ contentHash?: string;
35
+ deleted?: boolean;
36
+ }
37
+ /**
38
+ * Compute file-level diffs between two file state snapshots.
39
+ * Optionally produces unified text diffs when a blob store is provided.
40
+ */
41
+ export declare function diffFileStates(stateA: Map<string, FileState>, stateB: Map<string, FileState>, blobStore?: BlobStore | null): DiffResult;
42
+ /**
43
+ * Build cumulative file state from an array of ops up to (and including)
44
+ * the op with the given hash. If no hash given, uses all ops.
45
+ */
46
+ export declare function buildFileStateAtOp(ops: VcsOp[], atOpHash?: string): Map<string, FileState>;
47
+ /**
48
+ * Diff two op hashes in the same op stream.
49
+ */
50
+ export declare function diffOpRange(ops: VcsOp[], fromHash: string, toHash: string, blobStore?: BlobStore | null): DiffResult;
51
+ interface EditOp {
52
+ kind: 'equal' | 'insert' | 'delete';
53
+ line: string;
54
+ }
55
+ /**
56
+ * Generate a unified diff string from two text inputs.
57
+ */
58
+ export declare function generateUnifiedDiff(filePath: string, oldText: string, newText: string, contextLines?: number): string;
59
+ /**
60
+ * Myers diff algorithm — computes the shortest edit script between two
61
+ * arrays of lines. Returns a sequence of equal/insert/delete operations.
62
+ */
63
+ export declare function myersDiff(oldLines: string[], newLines: string[]): EditOp[];
64
+ export {};
65
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/vcs/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAMjD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC9B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC9B,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,GAC3B,UAAU,CAoEZ;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,KAAK,EAAE,EACZ,QAAQ,CAAC,EAAE,MAAM,GAChB,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CA0BxB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,KAAK,EAAE,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,GAC3B,UAAU,CAIZ;AAMD,UAAU,MAAM;IACd,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,MAAU,GACvB,MAAM,CA8BR;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA8F1E"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Engine Context
3
+ *
4
+ * Shared interface that module functions (branch, milestone, checkpoint)
5
+ * use to access engine internals without depending on the engine class.
6
+ */
7
+ import type { EAVStore } from '../core/store/eav-store.js';
8
+ import type { VcsOp } from './types.js';
9
+ export interface EngineContext {
10
+ /** The EAV store for querying/mutating graph state. */
11
+ store: EAVStore;
12
+ /** Agent ID for op attribution. */
13
+ agentId: string;
14
+ /** Get all ops from the log. */
15
+ readAllOps(): VcsOp[];
16
+ /** Get the last op in the log. */
17
+ getLastOp(): VcsOp | undefined;
18
+ /** Apply an op (decompose + persist + auto-checkpoint flag). */
19
+ applyOp(op: VcsOp): void;
20
+ }
21
+ //# sourceMappingURL=engine-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-context.d.ts","sourceRoot":"","sources":["../../src/vcs/engine-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAQ,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,KAAK,EAAE,QAAQ,CAAC;IAEhB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,UAAU,IAAI,KAAK,EAAE,CAAC;IAEtB,kCAAkC;IAClC,SAAS,IAAI,KAAK,GAAG,SAAS,CAAC;IAE/B,gEAAgE;IAChE,OAAO,CAAC,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC;CAC1B"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * TrellisVCS Core — Public Surface
3
+ *
4
+ * @module vcs
5
+ *
6
+ * Re-exports all core VCS primitives: op types and constructors, EAV
7
+ * decomposition, branch/milestone/checkpoint management, file-level
8
+ * diff and three-way merge, the content-addressed blob store, and the
9
+ * shared {@link EngineContext} interface.
10
+ */
11
+ export * from './types.js';
12
+ export * from './ops.js';
13
+ export * from './decompose.js';
14
+ export * from './vcs-middleware.js';
15
+ export * from './blob-store.js';
16
+ export * from './engine-context.js';
17
+ export * from './branch.js';
18
+ export * from './milestone.js';
19
+ export * from './checkpoint.js';
20
+ export * from './diff.js';
21
+ export * from './merge.js';
22
+ export * from './issue.js';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vcs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Issue Module
3
+ *
4
+ * Extracted per DESIGN.md pattern (like milestone.ts, branch.ts).
5
+ * Handles issue creation, lifecycle (start/pause/resume/close/reopen),
6
+ * acceptance criteria, and queries.
7
+ */
8
+ import type { VcsOp } from './types.js';
9
+ import type { EngineContext } from './engine-context.js';
10
+ export interface IssueInfo {
11
+ id: string;
12
+ title?: string;
13
+ description?: string;
14
+ status?: string;
15
+ priority?: string;
16
+ labels: string[];
17
+ assignee?: string;
18
+ createdAt?: string;
19
+ createdBy?: string;
20
+ startedAt?: string;
21
+ pausedAt?: string;
22
+ pauseNote?: string;
23
+ closedAt?: string;
24
+ parentId?: string;
25
+ branchName?: string;
26
+ blockedBy: string[];
27
+ blocking: string[];
28
+ isBlocked: boolean;
29
+ criteria: CriterionInfo[];
30
+ }
31
+ export interface CriterionInfo {
32
+ id: string;
33
+ description?: string;
34
+ command?: string;
35
+ status?: string;
36
+ lastRunAt?: string;
37
+ lastOutput?: string;
38
+ }
39
+ export interface CriterionResult {
40
+ id: string;
41
+ description?: string;
42
+ command?: string;
43
+ status: 'passed' | 'failed' | 'skipped';
44
+ output?: string;
45
+ exitCode?: number;
46
+ }
47
+ export interface IssueFilters {
48
+ status?: string;
49
+ assignee?: string;
50
+ label?: string;
51
+ parentId?: string;
52
+ blocked?: boolean;
53
+ }
54
+ /**
55
+ * Create a new issue.
56
+ */
57
+ export declare function createIssue(ctx: EngineContext, rootPath: string, title: string, opts?: {
58
+ priority?: 'critical' | 'high' | 'medium' | 'low';
59
+ labels?: string[];
60
+ assignee?: string;
61
+ parentId?: string;
62
+ description?: string;
63
+ status?: 'backlog' | 'queue';
64
+ criteria?: Array<{
65
+ description: string;
66
+ command?: string;
67
+ }>;
68
+ }): Promise<VcsOp>;
69
+ /**
70
+ * Update an issue's metadata.
71
+ */
72
+ export declare function updateIssue(ctx: EngineContext, id: string, updates: {
73
+ title?: string;
74
+ description?: string;
75
+ priority?: 'critical' | 'high' | 'medium' | 'low';
76
+ labels?: string[];
77
+ assignee?: string;
78
+ status?: 'backlog' | 'queue' | 'in_progress' | 'paused' | 'closed';
79
+ }): Promise<VcsOp>;
80
+ /**
81
+ * Start working on an issue: sets in_progress, auto-assigns, creates branch.
82
+ * Returns the issueStart op. The caller (engine) is responsible for
83
+ * actually creating the branch and switching to it.
84
+ */
85
+ export declare function startIssue(ctx: EngineContext, id: string, branchName: string): Promise<VcsOp>;
86
+ /**
87
+ * Pause an in-progress issue.
88
+ */
89
+ export declare function pauseIssue(ctx: EngineContext, id: string, note: string): Promise<VcsOp>;
90
+ /**
91
+ * Resume a paused issue.
92
+ */
93
+ export declare function resumeIssue(ctx: EngineContext, id: string): Promise<VcsOp>;
94
+ /**
95
+ * Close an issue. Requires all criteria to have passed and confirm=true.
96
+ */
97
+ export declare function closeIssue(ctx: EngineContext, id: string, opts?: {
98
+ confirm?: boolean;
99
+ }): Promise<{
100
+ op?: VcsOp;
101
+ criteriaResults: CriterionResult[];
102
+ }>;
103
+ /**
104
+ * Triage a backlog issue to queue (ready to start).
105
+ */
106
+ export declare function triageIssue(ctx: EngineContext, id: string): Promise<VcsOp>;
107
+ /**
108
+ * Reopen a closed issue.
109
+ */
110
+ export declare function reopenIssue(ctx: EngineContext, id: string): Promise<VcsOp>;
111
+ /**
112
+ * Assign an issue to an agent.
113
+ */
114
+ export declare function assignIssue(ctx: EngineContext, id: string, agentId: string): Promise<VcsOp>;
115
+ /**
116
+ * Block an issue by another issue.
117
+ */
118
+ export declare function blockIssue(ctx: EngineContext, id: string, blockedById: string): Promise<VcsOp>;
119
+ /**
120
+ * Remove a blocking relationship.
121
+ */
122
+ export declare function unblockIssue(ctx: EngineContext, id: string, blockedById: string): Promise<VcsOp>;
123
+ /**
124
+ * Add an acceptance criterion to an issue.
125
+ */
126
+ export declare function addCriterion(ctx: EngineContext, issueId: string, description: string, command?: string): Promise<VcsOp>;
127
+ /**
128
+ * Manually set a criterion's status (for non-command criteria).
129
+ */
130
+ export declare function setCriterionStatus(ctx: EngineContext, issueId: string, criterionIndex: number, status: 'passed' | 'failed' | 'pending'): Promise<VcsOp>;
131
+ /**
132
+ * Run all acceptance criteria for an issue. Executes test commands
133
+ * and emits criterionUpdate ops with results.
134
+ */
135
+ export declare function runCriteria(ctx: EngineContext, issueId: string, rootPath: string): Promise<CriterionResult[]>;
136
+ /**
137
+ * List all issues, optionally filtered.
138
+ */
139
+ export declare function listIssues(ctx: EngineContext, filters?: IssueFilters): IssueInfo[];
140
+ /**
141
+ * Get a single issue by ID.
142
+ */
143
+ export declare function getIssue(ctx: EngineContext, id: string): IssueInfo | null;
144
+ /**
145
+ * Get all active (in_progress) issues.
146
+ */
147
+ export declare function getActiveIssues(ctx: EngineContext): IssueInfo[];
148
+ export interface CompletionReadiness {
149
+ ready: boolean;
150
+ queue: IssueInfo[];
151
+ paused: IssueInfo[];
152
+ inProgress: IssueInfo[];
153
+ summary: string;
154
+ }
155
+ /**
156
+ * Check whether all work is complete: no issues in queue, paused, or in_progress.
157
+ */
158
+ export declare function checkCompletionReadiness(ctx: EngineContext): CompletionReadiness;
159
+ //# sourceMappingURL=issue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../src/vcs/issue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Merge Engine
3
+ *
4
+ * Three-way file-level merge with text-based fallback (Tier 0 / P3).
5
+ * Merges a source branch into the current branch by:
6
+ * 1. Finding the common ancestor (fork point) in the op stream
7
+ * 2. Building file states at ancestor, ours, and theirs
8
+ * 3. Producing a merged file state or conflicts
9
+ *
10
+ * DESIGN.md §4.4 — Patch Commutativity and Conflict Detection
11
+ */
12
+ import type { BlobStore } from './blob-store.js';
13
+ import { type FileState } from './diff.js';
14
+ export interface MergeConflict {
15
+ path: string;
16
+ kind: 'modify-modify' | 'modify-delete' | 'add-add';
17
+ /** Content from the current (ours) branch. */
18
+ ours?: string;
19
+ /** Content from the source (theirs) branch. */
20
+ theirs?: string;
21
+ /** Content from the common ancestor. */
22
+ base?: string;
23
+ /** For text conflicts: attempted merge with conflict markers. */
24
+ mergedWithMarkers?: string;
25
+ }
26
+ export interface MergeResult {
27
+ /** True if merge completed without conflicts. */
28
+ clean: boolean;
29
+ /** Merged file states to apply (path → content string). */
30
+ mergedFiles: Map<string, string | null>;
31
+ /** Conflicts requiring manual resolution. */
32
+ conflicts: MergeConflict[];
33
+ /** Summary stats. */
34
+ stats: {
35
+ added: number;
36
+ modified: number;
37
+ deleted: number;
38
+ conflicted: number;
39
+ };
40
+ }
41
+ /**
42
+ * Perform a three-way merge given ancestor, ours, and theirs file states.
43
+ */
44
+ export declare function threeWayMerge(base: Map<string, FileState>, ours: Map<string, FileState>, theirs: Map<string, FileState>, blobStore?: BlobStore | null): MergeResult;
45
+ export interface TextMergeResult {
46
+ clean: boolean;
47
+ merged: string;
48
+ }
49
+ /**
50
+ * Three-way line-level text merge.
51
+ * Uses a simple approach: diff base→ours and base→theirs, then interleave.
52
+ * Produces conflict markers when both sides change the same region.
53
+ */
54
+ export declare function threeWayTextMerge(baseText: string, oursText: string, theirsText: string): TextMergeResult;
55
+ //# sourceMappingURL=merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/vcs/merge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAM/D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS,CAAC;IACpD,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,KAAK,EAAE,OAAO,CAAC;IACf,2DAA2D;IAC3D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,6CAA6C;IAC7C,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,qBAAqB;IACrB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC9B,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,GAC3B,WAAW,CAsJb;AAMD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,eAAe,CA8EjB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Milestone Module
3
+ *
4
+ * Extracted from engine.ts per DESIGN.md §8.1.
5
+ * Handles milestone creation, listing, and op-range computation.
6
+ */
7
+ import type { VcsOp } from './types.js';
8
+ import type { EngineContext } from './engine-context.js';
9
+ export interface MilestoneInfo {
10
+ id: string;
11
+ message?: string;
12
+ createdAt?: string;
13
+ createdBy?: string;
14
+ fromOpHash?: string;
15
+ toOpHash?: string;
16
+ affectedFiles: string[];
17
+ }
18
+ /**
19
+ * Create a milestone spanning a range of ops.
20
+ * If no fromOpHash is specified, spans from the last milestone (or start).
21
+ */
22
+ export declare function createMilestone(ctx: EngineContext, message: string, opts?: {
23
+ fromOpHash?: string;
24
+ toOpHash?: string;
25
+ }): Promise<VcsOp>;
26
+ /**
27
+ * List all milestones from the EAV store.
28
+ */
29
+ export declare function listMilestones(ctx: EngineContext): MilestoneInfo[];
30
+ //# sourceMappingURL=milestone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milestone.d.ts","sourceRoot":"","sources":["../../src/vcs/milestone.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAMD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IACL,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,KAAK,CAAC,CAuDhB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,EAAE,CAuBlE"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * VCS Operation Constructors
3
+ *
4
+ * Helpers to create content-addressed VcsOps with proper
5
+ * causality chaining and metadata.
6
+ */
7
+ import type { VcsOp, VcsOpKind, VcsPayload } from './types.js';
8
+ /**
9
+ * Creates a VcsOp with full metadata, hash, and causal chain link.
10
+ */
11
+ export declare function createVcsOp(kind: VcsOpKind, params: {
12
+ agentId: string;
13
+ previousHash?: string;
14
+ vcs: VcsPayload;
15
+ }): Promise<VcsOp>;
16
+ /**
17
+ * Checks whether a KernelOp is a VcsOp (has a vcs payload).
18
+ */
19
+ export declare function isVcsOp(op: {
20
+ kind: string;
21
+ vcs?: unknown;
22
+ }): op is VcsOp;
23
+ /**
24
+ * Checks whether an op kind is a VCS kind.
25
+ */
26
+ export declare function isVcsOpKind(kind: string): kind is VcsOpKind;
27
+ //# sourceMappingURL=ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/vcs/ops.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/D;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,UAAU,CAAC;CACjB,GACA,OAAO,CAAC,KAAK,CAAC,CAsBhB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,EAAE,IAAI,KAAK,CAKxE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,SAAS,CAE3D"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * TrellisVCS Type Definitions
3
+ *
4
+ * VCS-specific operation kinds, payloads, and entity types
5
+ * that extend the trellis-core kernel primitives.
6
+ */
7
+ export type VcsOpKind = 'vcs:fileAdd' | 'vcs:fileModify' | 'vcs:fileDelete' | 'vcs:fileRename' | 'vcs:dirAdd' | 'vcs:dirDelete' | 'vcs:branchCreate' | 'vcs:branchDelete' | 'vcs:branchAdvance' | 'vcs:milestoneCreate' | 'vcs:checkpointCreate' | 'vcs:merge' | 'vcs:symbolRename' | 'vcs:symbolMove' | 'vcs:symbolExtract' | 'vcs:signatureChange' | 'vcs:issueCreate' | 'vcs:issueUpdate' | 'vcs:issueStart' | 'vcs:issuePause' | 'vcs:issueResume' | 'vcs:issueClose' | 'vcs:issueReopen' | 'vcs:criterionAdd' | 'vcs:criterionUpdate' | 'vcs:issueBlock' | 'vcs:issueUnblock' | 'vcs:decisionRecord';
8
+ export interface VcsPayload {
9
+ filePath?: string;
10
+ oldFilePath?: string;
11
+ contentHash?: string;
12
+ oldContentHash?: string;
13
+ size?: number;
14
+ language?: string;
15
+ branchName?: string;
16
+ targetOpHash?: string;
17
+ sourceBranch?: string;
18
+ baseBranch?: string;
19
+ milestoneId?: string;
20
+ message?: string;
21
+ fromOpHash?: string;
22
+ toOpHash?: string;
23
+ trigger?: 'green-build' | 'interval' | 'op-count' | 'manual';
24
+ signature?: string;
25
+ signedBy?: string;
26
+ issueId?: string;
27
+ issueTitle?: string;
28
+ issueStatus?: 'backlog' | 'queue' | 'in_progress' | 'paused' | 'closed';
29
+ issuePriority?: 'critical' | 'high' | 'medium' | 'low';
30
+ issueLabels?: string[];
31
+ parentIssueId?: string;
32
+ issueDescription?: string;
33
+ issueAssignee?: string;
34
+ pauseNote?: string;
35
+ blockedByIssueId?: string;
36
+ decisionId?: string;
37
+ decisionContext?: string;
38
+ decisionRationale?: string;
39
+ decisionAlternatives?: string;
40
+ decisionToolName?: string;
41
+ decisionToolInput?: string;
42
+ decisionToolOutput?: string;
43
+ criterionId?: string;
44
+ criterionDescription?: string;
45
+ criterionCommand?: string;
46
+ criterionStatus?: 'pending' | 'passed' | 'failed';
47
+ criterionOutput?: string;
48
+ }
49
+ /**
50
+ * A VcsOp mirrors KernelOp but widens `kind` to accept VCS-specific strings.
51
+ * We don't extend KernelOp directly because the kernel types `kind` as a
52
+ * narrow union; our VCS kinds are a superset.
53
+ */
54
+ export interface VcsOp {
55
+ hash: string;
56
+ kind: VcsOpKind | string;
57
+ timestamp: string;
58
+ agentId: string;
59
+ previousHash?: string;
60
+ facts?: import('../core/store/eav-store.js').Fact[];
61
+ links?: import('../core/store/eav-store.js').Link[];
62
+ vcs?: VcsPayload;
63
+ }
64
+ export interface FileChangeEvent {
65
+ type: 'add' | 'modify' | 'delete' | 'rename';
66
+ path: string;
67
+ oldPath?: string;
68
+ contentHash?: string;
69
+ oldContentHash?: string;
70
+ size?: number;
71
+ timestamp: string;
72
+ }
73
+ export declare function fileEntityId(path: string): string;
74
+ export declare function dirEntityId(path: string): string;
75
+ export declare function branchEntityId(name: string): string;
76
+ export declare function milestoneEntityId(hash: string): string;
77
+ export declare function checkpointEntityId(hash: string): string;
78
+ export declare function issueEntityId(id: string): string;
79
+ export declare function criterionEntityId(issueId: string, index: number): string;
80
+ export declare function decisionEntityId(id: string): string;
81
+ export interface TrellisVcsConfig {
82
+ /** Absolute path to the repository root. */
83
+ rootPath: string;
84
+ /** Glob patterns to ignore (e.g. ['node_modules', '.git', '*.log']). */
85
+ ignorePatterns: string[];
86
+ /** Debounce interval for file watcher in ms. */
87
+ debounceMs: number;
88
+ /** Name of the default branch. */
89
+ defaultBranch: string;
90
+ /** Path to the .trellis database file. */
91
+ dbPath: string;
92
+ }
93
+ export declare const DEFAULT_CONFIG: Omit<TrellisVcsConfig, 'rootPath'>;
94
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vcs/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * VCS Middleware
3
+ *
4
+ * Intercepts VcsOps in the kernel middleware chain and decomposes
5
+ * them into primitive EAV store operations before passing to the
6
+ * next middleware (or the store).
7
+ */
8
+ import type { KernelMiddleware, MiddlewareContext, OpMiddlewareNext } from '../core/kernel/middleware.js';
9
+ import type { KernelOp } from '../core/persist/backend.js';
10
+ export declare class VcsMiddleware implements KernelMiddleware {
11
+ name: string;
12
+ handleOp(op: KernelOp, ctx: MiddlewareContext, next: OpMiddlewareNext): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=vcs-middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vcs-middleware.d.ts","sourceRoot":"","sources":["../../src/vcs/vcs-middleware.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAK3D,qBAAa,aAAc,YAAW,gBAAgB;IACpD,IAAI,SAAS;IAEP,QAAQ,CACZ,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,IAAI,CAAC;CAuDjB"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Filesystem Watcher
3
+ *
4
+ * Monitors a directory tree for changes using Bun's fs.watch.
5
+ * Debounces rapid events and filters ignored paths.
6
+ * Emits FileChangeEvents to a callback.
7
+ */
8
+ import type { FileChangeEvent } from '../vcs/types.js';
9
+ export interface FileWatcherConfig {
10
+ rootPath: string;
11
+ ignorePatterns: string[];
12
+ debounceMs: number;
13
+ onEvent: (event: FileChangeEvent) => void | Promise<void>;
14
+ }
15
+ export interface ScanProgress {
16
+ phase: 'discovering' | 'hashing' | 'done';
17
+ current: number;
18
+ total: number;
19
+ message: string;
20
+ }
21
+ export declare class FileWatcher {
22
+ private config;
23
+ private watchers;
24
+ private debounceTimers;
25
+ private knownFiles;
26
+ private running;
27
+ constructor(config: FileWatcherConfig);
28
+ /**
29
+ * Scans the directory tree and builds an initial map of all tracked files.
30
+ * Returns the list of FileChangeEvents for the initial state (all adds).
31
+ */
32
+ scan(opts?: {
33
+ onProgress?: (progress: ScanProgress) => void;
34
+ }): Promise<FileChangeEvent[]>;
35
+ /**
36
+ * Starts watching the directory tree for changes.
37
+ */
38
+ start(): void;
39
+ /**
40
+ * Stops all watchers.
41
+ */
42
+ stop(): void;
43
+ /**
44
+ * Returns the current known file map (path → contentHash).
45
+ */
46
+ getKnownFiles(): Map<string, string>;
47
+ private debouncedHandle;
48
+ private handleChange;
49
+ private walkDir;
50
+ }
51
+ //# sourceMappingURL=fs-watcher.d.ts.map