trellis 2.1.7 → 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 +199 -9
  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-22jx9qsz.js → index-czecrvvn.js} +4 -4
  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,90 @@
1
+ /**
2
+ * Entity Reference Resolver
3
+ *
4
+ * Resolves parsed EntityRefs to TrellisVCS entities by querying
5
+ * the EAV store, tracked files, semantic parser, milestones, and identities.
6
+ *
7
+ * @see TRL-12
8
+ */
9
+ import type { EntityRef, ResolvedRef } from './types.js';
10
+ /**
11
+ * Abstract interface for the engine capabilities the resolver needs.
12
+ * This allows testing with mocks without a real TrellisVcsEngine.
13
+ */
14
+ export interface ResolverContext {
15
+ /** Get a tracked file by path. Returns true if the file exists in the op stream. */
16
+ hasTrackedFile(path: string): boolean;
17
+ /** Look up an issue by ID (e.g. "TRL-5"). Returns title if found. */
18
+ getIssueTitle(id: string): string | undefined;
19
+ /** Look up a milestone by ID or message fragment. Returns message if found. */
20
+ getMilestoneTitle(idOrMessage: string): string | undefined;
21
+ /** Check if a symbol exists in a file. Returns true if found. */
22
+ hasSymbol(filePath: string, symbolName: string): boolean;
23
+ /** Check if an identity/agent ID exists. Returns true if known. */
24
+ hasIdentity(id: string): boolean;
25
+ /** List all known agent IDs (from ops). */
26
+ getKnownAgentIds(): string[];
27
+ /** List all tracked file paths. */
28
+ getTrackedFilePaths(): string[];
29
+ /** List all issue IDs. */
30
+ getIssueIds(): string[];
31
+ /** List all milestone IDs. */
32
+ getMilestoneIds(): string[];
33
+ /** Check if a decision exists by ID (e.g. "DEC-1"). */
34
+ hasDecision(id: string): boolean;
35
+ /** Get a decision's tool name as a human-readable title. */
36
+ getDecisionTitle(id: string): string | undefined;
37
+ /** Get all symbol names for a file. */
38
+ getSymbolNames(filePath: string): string[];
39
+ }
40
+ /**
41
+ * Resolve a single EntityRef against the resolver context.
42
+ */
43
+ export declare function resolveRef(ref: EntityRef, ctx: ResolverContext): ResolvedRef;
44
+ /**
45
+ * Resolve multiple EntityRefs in batch.
46
+ */
47
+ export declare function resolveRefs(refs: EntityRef[], ctx: ResolverContext): ResolvedRef[];
48
+ /**
49
+ * Minimal engine interface for building a ResolverContext.
50
+ * Accepts anything that quacks like TrellisVcsEngine.
51
+ */
52
+ export interface Enginelike {
53
+ trackedFiles(): Array<{
54
+ path: string;
55
+ contentHash: string | undefined;
56
+ }>;
57
+ getIssue(id: string): {
58
+ title?: string;
59
+ } | null;
60
+ listIssues(filters?: any): Array<{
61
+ id: string;
62
+ }>;
63
+ listMilestones(): Array<{
64
+ id: string;
65
+ message?: string;
66
+ }>;
67
+ parseFile(content: string, filePath: string): {
68
+ declarations: Array<{
69
+ name: string;
70
+ }>;
71
+ } | null;
72
+ getOps(): Array<{
73
+ agentId: string;
74
+ }>;
75
+ getRootPath(): string;
76
+ getDecision?(id: string): {
77
+ id: string;
78
+ toolName: string;
79
+ } | null;
80
+ queryDecisions?(filter?: any): Array<{
81
+ id: string;
82
+ toolName: string;
83
+ }>;
84
+ }
85
+ /**
86
+ * Build a ResolverContext from an engine-like object.
87
+ * The symbol resolution reads files from disk and parses them.
88
+ */
89
+ export declare function createResolverContext(engine: Enginelike): ResolverContext;
90
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/links/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAgB,MAAM,YAAY,CAAC;AAMvE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtC,qEAAqE;IACrE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAE9C,+EAA+E;IAC/E,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAE3D,iEAAiE;IACjE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzD,mEAAmE;IACnE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC,2CAA2C;IAC3C,gBAAgB,IAAI,MAAM,EAAE,CAAC;IAE7B,mCAAmC;IACnC,mBAAmB,IAAI,MAAM,EAAE,CAAC;IAEhC,0BAA0B;IAC1B,WAAW,IAAI,MAAM,EAAE,CAAC;IAExB,8BAA8B;IAC9B,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B,uDAAuD;IACvD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAEjD,uCAAuC;IACvC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5C;AAMD;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAiB5E;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,EAAE,EACjB,GAAG,EAAE,eAAe,GACnB,WAAW,EAAE,CAEf;AAsGD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IACzE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChD,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,cAAc,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,SAAS,CACP,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf;QAAE,YAAY,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,MAAM,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrC,WAAW,IAAI,MAAM,CAAC;IACtB,WAAW,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClE,cAAc,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,eAAe,CAiGzE"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Linked Markdown — Type Definitions
3
+ *
4
+ * Types for wiki-link parsing, entity reference resolution,
5
+ * and bidirectional reference indexing.
6
+ *
7
+ * @see TRL-11
8
+ */
9
+ export type RefNamespace = 'issue' | 'file' | 'symbol' | 'identity' | 'milestone' | 'decision';
10
+ export interface EntityRef {
11
+ /** Full matched text inside [[ ]], e.g. "issue:TRL-5|the parser ticket" */
12
+ raw: string;
13
+ /** Resolved or inferred namespace */
14
+ namespace: RefNamespace;
15
+ /** Target identifier, e.g. "TRL-5", "src/engine.ts" */
16
+ target: string;
17
+ /** Optional anchor for symbol refs, e.g. "createIssue" in [[src/engine.ts#createIssue]] */
18
+ anchor?: string;
19
+ /** Optional display alias, e.g. "the parser ticket" in [[TRL-5|the parser ticket]] */
20
+ alias?: string;
21
+ /** Where this reference was found */
22
+ source: RefSource;
23
+ }
24
+ export interface RefSource {
25
+ /** File containing the reference */
26
+ filePath: string;
27
+ /** 1-indexed line number */
28
+ line: number;
29
+ /** 0-indexed column offset of the opening [[ */
30
+ col: number;
31
+ /** Context in which the ref was found */
32
+ context: RefContext;
33
+ }
34
+ export type RefContext = 'markdown' | 'jsdoc' | 'pydoc' | 'rustdoc' | 'godoc' | 'comment';
35
+ export type RefState = 'resolved' | 'stale' | 'broken';
36
+ export interface ResolvedRef extends EntityRef {
37
+ /** Whether the reference target was found */
38
+ state: RefState;
39
+ /** EAV entity ID if resolved (e.g. "issue:TRL-5", "file:src/engine.ts") */
40
+ entityId?: string;
41
+ /** Human-readable label from the resolved entity */
42
+ title?: string;
43
+ /** For stale refs: the op hash that caused the ref to become stale */
44
+ staleOpHash?: string;
45
+ /** For stale refs: reason it became stale */
46
+ staleReason?: 'renamed' | 'deleted';
47
+ }
48
+ export interface RefIndex {
49
+ /** Forward: source file → refs it contains */
50
+ outgoing: Map<string, EntityRef[]>;
51
+ /** Backward: target entity ID → sources that reference it */
52
+ incoming: Map<string, RefSource[]>;
53
+ }
54
+ export interface RefUpdateProposal {
55
+ /** The rename that triggered this proposal */
56
+ oldTarget: string;
57
+ newTarget: string;
58
+ /** Files that would be modified */
59
+ affectedFiles: string[];
60
+ /** Individual ref rewrites */
61
+ rewrites: RefRewrite[];
62
+ }
63
+ export interface RefRewrite {
64
+ filePath: string;
65
+ line: number;
66
+ col: number;
67
+ oldText: string;
68
+ newText: string;
69
+ }
70
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/links/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,MAAM,GACN,QAAQ,GACR,UAAU,GACV,WAAW,GACX,UAAU,CAAC;AAMf,MAAM,WAAW,SAAS;IACxB,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,SAAS,EAAE,YAAY,CAAC;IACxB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,MAAM,EAAE,SAAS,CAAC;CACnB;AAMD,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAM1F,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvD,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,6CAA6C;IAC7C,KAAK,EAAE,QAAQ,CAAC;IAChB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACrC;AAMD,MAAM,WAAW,QAAQ;IACvB,8CAA8C;IAC9C,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACnC,6DAA6D;IAC7D,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;CACpC;AAMD,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,8BAA8B;IAC9B,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Trellis Docs MCP Server
3
+ *
4
+ * Exposes TrellisVCS and TrellisDB documentation to any MCP-compatible
5
+ * AI agent, enabling context-aware assistance for developers using Trellis.
6
+ *
7
+ * Modeled after the SvelteMCP pattern:
8
+ * - list-sections → discover all doc sections
9
+ * - get-documentation → fetch full content for specific sections
10
+ * - trellis-check → lint/validate trellis code patterns
11
+ *
12
+ * Usage (local):
13
+ * bun run src/mcp/docs.ts
14
+ *
15
+ * @module mcp/docs
16
+ */
17
+ export {};
18
+ //# sourceMappingURL=docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/mcp/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * TrellisVCS MCP Server — stdio entry point
4
+ *
5
+ * Run with: bun run src/mcp/index.ts
6
+ * Or via MCP config: { "command": "bun", "args": ["run", "src/mcp/index.ts"] }
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * TrellisVCS MCP Server
3
+ *
4
+ * @module mcp
5
+ *
6
+ * Exposes TrellisVcsEngine as an MCP (Model Context Protocol) server,
7
+ * enabling any MCP-compatible AI agent to interact with TrellisVCS
8
+ * repositories through structured tool calls and resource queries.
9
+ *
10
+ * Tools provide write/query actions (status, log, milestone, branch, etc.).
11
+ * Resources provide read-only context (op stream, file list, garden clusters).
12
+ */
13
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
14
+ import { HookRegistry } from '../decisions/index.js';
15
+ import type { DecisionRecorder } from '../decisions/auto-capture.js';
16
+ export declare function createTrellisMcpServer(): McpServer;
17
+ /**
18
+ * The shared hook registry for this MCP server instance.
19
+ * External agent harnesses can register pre/post hooks here.
20
+ */
21
+ export declare const hookRegistry: HookRegistry;
22
+ /**
23
+ * Create a DecisionRecorder that persists to a given repo path.
24
+ */
25
+ export declare function createRecorder(repoPath: string): DecisionRecorder;
26
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAwBrE,wBAAgB,sBAAsB,IAAI,SAAS,CAqrClD;AAMD;;;GAGG;AACH,eAAO,MAAM,YAAY,cAAqB,CAAC;AAE/C;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAKjE"}
@@ -0,0 +1,189 @@
1
+ // @bun
2
+ import {
3
+ TrellisDb
4
+ } from "../index-4beszbgg.js";
5
+ import"../index-xzym9w0m.js";
6
+ import"../index-5p6zgspx.js";
7
+ import"../index-7t92ej34.js";
8
+ import"../index-5bhe57y9.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,15 @@
1
+ // @bun
2
+ import {
3
+ FetchError,
4
+ TrellisDb
5
+ } from "./index-4beszbgg.js";
6
+ import"./index-xzym9w0m.js";
7
+ import"./index-5p6zgspx.js";
8
+ import"./index-7t92ej34.js";
9
+ import"./index-5bhe57y9.js";
10
+ import"./index-yp88he8n.js";
11
+ import"./index-a76rekgs.js";
12
+ export {
13
+ TrellisDb,
14
+ FetchError
15
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * C# Parser Adapter
3
+ *
4
+ * Tier 1 regex-based parser for C# source files.
5
+ * Extracts classes, interfaces, structs, enums, records,
6
+ * methods, properties, fields, using directives, and namespace exports.
7
+ *
8
+ * @see TRL-10
9
+ */
10
+ import type { ParserAdapter } from './types.js';
11
+ export declare const csharpParser: ParserAdapter;
12
+ //# sourceMappingURL=csharp-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csharp-parser.d.ts","sourceRoot":"","sources":["../../src/semantic/csharp-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,aAAa,EAOd,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,YAAY,EAAE,aAmB1B,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Go Parser Adapter
3
+ *
4
+ * Tier 1 regex-based parser for Go source files.
5
+ * Extracts structs, interfaces, functions, methods, type aliases,
6
+ * constants, variables, and imports.
7
+ *
8
+ * @see TRL-6
9
+ */
10
+ import type { ParserAdapter } from './types.js';
11
+ export declare const goParser: ParserAdapter;
12
+ //# sourceMappingURL=go-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-parser.d.ts","sourceRoot":"","sources":["../../src/semantic/go-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,aAAa,EAOd,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,QAAQ,EAAE,aAmBtB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Semantic Patching — Public Surface
3
+ *
4
+ * @module semantic
5
+ *
6
+ * Re-exports the {@link ParserAdapter} interface, the built-in
7
+ * {@link typescriptParser} (Tier 1 regex-based TS/JS parser), and the
8
+ * {@link semanticMerge} engine that merges patch sets with commutativity
9
+ * analysis.
10
+ *
11
+ * @see DESIGN.md §4 for the full semantic patching specification.
12
+ */
13
+ export type { ASTEntity, ASTEntityKind, ImportRelation, ExportRelation, ParseResult, ParserAdapter, SemanticPatch, SemanticMergeConflict, SemanticMergeResult, } from './types.js';
14
+ export { typescriptParser } from './ts-parser.js';
15
+ export { pythonParser } from './python-parser.js';
16
+ export { goParser } from './go-parser.js';
17
+ export { rustParser } from './rust-parser.js';
18
+ export { rubyParser } from './ruby-parser.js';
19
+ export { javaParser } from './java-parser.js';
20
+ export { csharpParser } from './csharp-parser.js';
21
+ export { patchesCommute, semanticMerge } from './semantic-merge.js';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/semantic/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,YAAY,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Java Parser Adapter
3
+ *
4
+ * Tier 1 regex-based parser for Java source files.
5
+ * Extracts classes, interfaces, enums, methods, fields,
6
+ * annotations, imports, and package declarations.
7
+ *
8
+ * @see TRL-9
9
+ */
10
+ import type { ParserAdapter } from './types.js';
11
+ export declare const javaParser: ParserAdapter;
12
+ //# sourceMappingURL=java-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java-parser.d.ts","sourceRoot":"","sources":["../../src/semantic/java-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,aAAa,EAOd,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,UAAU,EAAE,aAmBxB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Python Parser Adapter
3
+ *
4
+ * Tier 1 regex-based parser for Python source files.
5
+ * Extracts classes, functions, decorators, async functions,
6
+ * type hints, imports, and module-level variables.
7
+ *
8
+ * @see TRL-5
9
+ */
10
+ import type { ParserAdapter } from './types.js';
11
+ export declare const pythonParser: ParserAdapter;
12
+ //# sourceMappingURL=python-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-parser.d.ts","sourceRoot":"","sources":["../../src/semantic/python-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,aAAa,EAOd,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,YAAY,EAAE,aAmB1B,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Ruby Parser Adapter
3
+ *
4
+ * Tier 1 regex-based parser for Ruby source files.
5
+ * Extracts classes, modules, methods, constants, attributes,
6
+ * require/include statements, and module_function exports.
7
+ *
8
+ * @see TRL-8
9
+ */
10
+ import type { ParserAdapter } from './types.js';
11
+ export declare const rubyParser: ParserAdapter;
12
+ //# sourceMappingURL=ruby-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby-parser.d.ts","sourceRoot":"","sources":["../../src/semantic/ruby-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,aAAa,EAOd,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,UAAU,EAAE,aAmBxB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Rust Parser Adapter
3
+ *
4
+ * Tier 1 regex-based parser for Rust source files.
5
+ * Extracts structs, enums, traits, impl blocks, functions,
6
+ * methods, type aliases, constants, macros, and use statements.
7
+ *
8
+ * @see TRL-7
9
+ */
10
+ import type { ParserAdapter } from './types.js';
11
+ export declare const rustParser: ParserAdapter;
12
+ //# sourceMappingURL=rust-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust-parser.d.ts","sourceRoot":"","sources":["../../src/semantic/rust-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,aAAa,EAOd,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,UAAU,EAAE,aAmBxB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Semantic Merge Engine
3
+ *
4
+ * DESIGN.md §4.4 — Patch Commutativity and Conflict Detection.
5
+ * Two patches commute when they operate on disjoint entities.
6
+ * Two patches conflict when they both modify the same entity
7
+ * in incompatible ways.
8
+ */
9
+ import type { SemanticPatch, SemanticMergeResult } from './types.js';
10
+ /**
11
+ * Check if two patches commute (can be applied in either order).
12
+ * Returns true if they operate on disjoint entities or are identical.
13
+ */
14
+ export declare function patchesCommute(a: SemanticPatch, b: SemanticPatch): boolean;
15
+ /**
16
+ * Merge two sets of semantic patches (ours and theirs) against a common base.
17
+ * Produces a merged patch list or structured conflicts.
18
+ */
19
+ export declare function semanticMerge(oursPatches: SemanticPatch[], theirsPatches: SemanticPatch[], filePath?: string): SemanticMergeResult;
20
+ //# sourceMappingURL=semantic-merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-merge.d.ts","sourceRoot":"","sources":["../../src/semantic/semantic-merge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,aAAa,EAEb,mBAAmB,EACpB,MAAM,YAAY,CAAC;AA0EpB;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAwB1E;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,aAAa,EAAE,EAC5B,aAAa,EAAE,aAAa,EAAE,EAC9B,QAAQ,GAAE,MAAW,GACpB,mBAAmB,CAgFrB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * TypeScript/JavaScript Parser Adapter
3
+ *
4
+ * DESIGN.md §4.2 — Structural extraction of top-level declarations
5
+ * using regex-based parsing. This is a Tier 1 implementation that
6
+ * extracts functions, classes, interfaces, type aliases, enums,
7
+ * variables, imports, and exports without requiring tree-sitter.
8
+ *
9
+ * Tree-sitter can be swapped in later for full Tier 2 AST fidelity.
10
+ */
11
+ import type { ParserAdapter } from './types.js';
12
+ export declare const typescriptParser: ParserAdapter;
13
+ //# sourceMappingURL=ts-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-parser.d.ts","sourceRoot":"","sources":["../../src/semantic/ts-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,aAAa,EAOd,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,gBAAgB,EAAE,aAoB9B,CAAC"}