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,70 @@
1
+ /**
2
+ * Ontology Registry — Manages loaded ontology schemas.
3
+ *
4
+ * Provides registration, lookup, inheritance resolution, and
5
+ * entity-type-to-schema mapping.
6
+ *
7
+ * @module trellis/core/ontology
8
+ */
9
+ import type { OntologySchema, EntityDef, RelationDef, AttributeDef } from './types.js';
10
+ export declare class OntologyRegistry {
11
+ private schemas;
12
+ /** Resolved entity defs (with inherited attributes merged). */
13
+ private resolvedEntities;
14
+ /** Resolved relation defs. */
15
+ private resolvedRelations;
16
+ /**
17
+ * Register an ontology schema.
18
+ * Throws if an ontology with the same ID is already registered at the same version.
19
+ */
20
+ register(schema: OntologySchema): void;
21
+ /**
22
+ * Unregister an ontology by ID.
23
+ */
24
+ unregister(id: string): void;
25
+ /**
26
+ * Get a registered ontology schema by ID.
27
+ */
28
+ get(id: string): OntologySchema | undefined;
29
+ /**
30
+ * List all registered ontology schemas.
31
+ */
32
+ list(): OntologySchema[];
33
+ /**
34
+ * Get the resolved entity definition for an entity type name.
35
+ * Returns the entity def with inherited attributes merged in.
36
+ */
37
+ getEntityDef(typeName: string): EntityDef | undefined;
38
+ /**
39
+ * Get the ontology ID that defines a given entity type.
40
+ */
41
+ getEntityOntology(typeName: string): string | undefined;
42
+ /**
43
+ * List all known entity type names.
44
+ */
45
+ listEntityTypes(): string[];
46
+ /**
47
+ * Get all relation definitions involving a given entity type
48
+ * (either as source or target).
49
+ */
50
+ getRelationsForType(typeName: string): RelationDef[];
51
+ /**
52
+ * Get a specific relation definition by name.
53
+ */
54
+ getRelationDef(name: string): RelationDef | undefined;
55
+ /**
56
+ * List all known relation names.
57
+ */
58
+ listRelationNames(): string[];
59
+ /**
60
+ * Check if an entity type is known to any registered ontology.
61
+ */
62
+ hasEntityType(typeName: string): boolean;
63
+ /**
64
+ * Get the required attributes for an entity type.
65
+ */
66
+ getRequiredAttributes(typeName: string): AttributeDef[];
67
+ private _resolve;
68
+ private _resolveEntity;
69
+ }
70
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/ontology/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAMpB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAA0C;IACzD,+DAA+D;IAC/D,OAAO,CAAC,gBAAgB,CAAkE;IAC1F,8BAA8B;IAC9B,OAAO,CAAC,iBAAiB,CAAsE;IAE/F;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAWtC;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAwB5B;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI3C;;OAEG;IACH,IAAI,IAAI,cAAc,EAAE;IAIxB;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIrD;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvD;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IAepD;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAKrD;;OAEG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxC;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE;IAUvD,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,cAAc;CA+BvB"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Ontology Type System — Declarative schemas for entity types, attributes,
3
+ * constraints, and relationships.
4
+ *
5
+ * Ontologies define the "shape" of entities in the graph. They are used for:
6
+ * - Schema validation (reject mutations that violate constraints)
7
+ * - Documentation (describe what entity types exist and their attributes)
8
+ * - Code generation and tooling (auto-complete, type checking)
9
+ *
10
+ * @module trellis/core/ontology
11
+ */
12
+ import type { Atom } from '../store/eav-store.js';
13
+ export declare const PropertyTypeSchema: readonly ["title", "rich_text", "number", "select", "multi_select", "status", "date", "people", "files", "checkbox", "url", "email", "phone_number", "relation", "rollup", "formula", "ai_generated", "json"];
14
+ export type PropertyType = (typeof PropertyTypeSchema)[number];
15
+ export type OntologyTier = 'core' | 'system' | 'user';
16
+ /**
17
+ * - core: Built into the kernel, immutable. Defines the structural type hierarchy.
18
+ * - system: Shipped with the app, versioned with releases. Entity types like task, note, etc.
19
+ * - user: Created at runtime via API. Custom schemas and marketplace imports.
20
+ */
21
+ export interface RelationConfig {
22
+ targetSchema?: string;
23
+ cardinality?: 'one' | 'many';
24
+ syncedProperty?: string;
25
+ }
26
+ export interface RollupConfig {
27
+ relationProperty: string;
28
+ targetProperty: string;
29
+ aggregation: 'count' | 'sum' | 'avg' | 'min' | 'max' | 'median' | 'mode';
30
+ }
31
+ export interface AiGeneratedConfig {
32
+ prompt: string;
33
+ model?: string;
34
+ }
35
+ export interface PropertyValueSpecification {
36
+ name: string;
37
+ valueType: PropertyType;
38
+ required?: boolean;
39
+ description?: string;
40
+ selectOptions?: Atom[];
41
+ relation?: RelationConfig;
42
+ formula?: string;
43
+ rollup?: RollupConfig;
44
+ aiGenerated?: AiGeneratedConfig;
45
+ icon?: string;
46
+ group?: string;
47
+ display?: 'pill' | 'toggle' | 'inline-input' | 'popover';
48
+ editable?: boolean;
49
+ computed?: boolean;
50
+ modes?: ('view' | 'create' | 'edit')[];
51
+ defaultValue?: Atom;
52
+ min?: number;
53
+ max?: number;
54
+ pattern?: string;
55
+ minLength?: number;
56
+ maxLength?: number;
57
+ }
58
+ export type EntityClass = 'temporal' | 'document' | 'actor' | 'container';
59
+ export type AttrType = 'string' | 'number' | 'boolean' | 'date' | 'ref' | 'any';
60
+ export interface AttributeDef {
61
+ name: string;
62
+ type: AttrType;
63
+ description?: string;
64
+ required?: boolean;
65
+ unique?: boolean;
66
+ default?: Atom;
67
+ enum?: Atom[];
68
+ pattern?: string;
69
+ min?: number;
70
+ max?: number;
71
+ refTypes?: string[];
72
+ }
73
+ export interface RelationDef {
74
+ name: string;
75
+ description?: string;
76
+ sourceTypes: string[];
77
+ targetTypes: string[];
78
+ cardinality?: 'one' | 'many';
79
+ required?: boolean;
80
+ inverse?: string;
81
+ }
82
+ export interface SchemaDefinition {
83
+ '@id': string;
84
+ '@type': 'trellis:Schema';
85
+ version: string;
86
+ fields: PropertyValueSpecification[];
87
+ tier?: OntologyTier;
88
+ subClassOf?: string;
89
+ entityClass?: EntityClass;
90
+ label?: string;
91
+ labelPlural?: string;
92
+ icon?: string;
93
+ color?: string;
94
+ projections?: string[];
95
+ defaultProjection?: string;
96
+ dialogShell?: string;
97
+ panels?: {
98
+ properties: string;
99
+ content: string;
100
+ footerActions: string[];
101
+ };
102
+ propertyFieldIds?: string[];
103
+ defaultSortField?: string;
104
+ searchFields?: string[];
105
+ }
106
+ export interface ProjectionDefinition {
107
+ '@id': string;
108
+ '@type': 'trellis:Projection';
109
+ name: string;
110
+ type: string;
111
+ query?: string;
112
+ icon?: string;
113
+ component?: string;
114
+ order?: number;
115
+ status?: string;
116
+ requirements?: {
117
+ schema?: {
118
+ fieldTypes: string[];
119
+ };
120
+ };
121
+ config?: Record<string, unknown>;
122
+ }
123
+ export interface RouteDefinition {
124
+ '@id': string;
125
+ '@type': 'trellis:Route';
126
+ routePath: string;
127
+ label: string;
128
+ icon?: string;
129
+ tint?: string;
130
+ order?: number;
131
+ inRail?: boolean;
132
+ railPosition?: 'primary' | 'secondary';
133
+ collapseSidebar?: boolean;
134
+ requiresAuth?: boolean;
135
+ inCommandPalette?: boolean;
136
+ searchKeywords?: string[];
137
+ permissions?: Record<string, unknown>;
138
+ meta?: {
139
+ title?: string;
140
+ description?: string;
141
+ subtitle?: string;
142
+ showBackButton?: boolean;
143
+ fullWidth?: boolean;
144
+ hideSidebar?: boolean;
145
+ sidebarSectionPath?: string;
146
+ };
147
+ sidebarSections?: unknown[];
148
+ children?: unknown[];
149
+ editable?: boolean;
150
+ tabs?: unknown[];
151
+ entityType?: string;
152
+ pageVariant?: string;
153
+ projectionTypes?: string[];
154
+ }
155
+ export interface WorkspaceConfig {
156
+ workspace: {
157
+ name?: string;
158
+ description?: string;
159
+ ontologies?: Record<string, SchemaDefinition>;
160
+ graph?: {
161
+ nodes?: unknown[];
162
+ edges?: unknown[];
163
+ };
164
+ projections?: Record<string, ProjectionDefinition>;
165
+ routes?: Record<string, RouteDefinition>;
166
+ app?: {
167
+ title?: string;
168
+ description?: string;
169
+ version?: string;
170
+ devPort?: number;
171
+ };
172
+ };
173
+ }
174
+ export interface EntityDef {
175
+ name: string;
176
+ description?: string;
177
+ attributes: AttributeDef[];
178
+ abstract?: boolean;
179
+ extends?: string;
180
+ }
181
+ export interface OntologySchema {
182
+ id: string;
183
+ name: string;
184
+ version: string;
185
+ description?: string;
186
+ entities: EntityDef[];
187
+ relations: RelationDef[];
188
+ }
189
+ export interface ValidationError {
190
+ entityId: string;
191
+ entityType: string;
192
+ field: string;
193
+ message: string;
194
+ severity: 'error' | 'warning';
195
+ }
196
+ export interface ValidationResult {
197
+ valid: boolean;
198
+ errors: ValidationError[];
199
+ warnings: ValidationError[];
200
+ }
201
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/ontology/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Ontology Validation — Schema enforcement for graph mutations.
3
+ *
4
+ * Provides both standalone validation (check existing entities against schemas)
5
+ * and a kernel middleware that rejects mutations violating ontology constraints.
6
+ *
7
+ * @module trellis/core/ontology
8
+ */
9
+ import type { EAVStore } from '../store/eav-store.js';
10
+ import type { KernelMiddleware } from '../kernel/middleware.js';
11
+ import type { OntologyRegistry } from './registry.js';
12
+ import type { ValidationResult } from './types.js';
13
+ /**
14
+ * Validate a single entity against the ontology registry.
15
+ */
16
+ export declare function validateEntity(entityId: string, store: EAVStore, registry: OntologyRegistry): ValidationResult;
17
+ /**
18
+ * Validate all entities in the store against the ontology registry.
19
+ */
20
+ export declare function validateStore(store: EAVStore, registry: OntologyRegistry): ValidationResult;
21
+ /**
22
+ * Creates a kernel middleware that validates mutations against the ontology.
23
+ *
24
+ * - On `addFacts`: validates that new facts conform to attribute definitions
25
+ * - On `addLinks`: validates that links conform to relation definitions
26
+ * - Blocks operations that would create invalid data (throws on error)
27
+ *
28
+ * @param registry The ontology registry to validate against
29
+ * @param strict If true, unknown entity types cause errors (default: false = warnings only)
30
+ */
31
+ export declare function createValidationMiddleware(registry: OntologyRegistry, options?: {
32
+ strict?: boolean;
33
+ }): KernelMiddleware;
34
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/core/ontology/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AAExE,OAAO,KAAK,EAAE,gBAAgB,EAAuC,MAAM,yBAAyB,CAAC;AACrG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAKV,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,gBAAgB,GACzB,gBAAgB,CAoMlB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,gBAAgB,GACzB,gBAAgB,CAkBlB;AAsCD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,gBAAgB,CA4ElB"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Kernel persistence backend types.
3
+ * Inlined from trellis-core for single-package publish.
4
+ *
5
+ * @module trellis/core
6
+ */
7
+ import type { Fact, Link } from '../store/eav-store.js';
8
+ export type KernelOpKind = 'addFacts' | 'addLinks' | 'deleteFacts' | 'deleteLinks';
9
+ export interface KernelOp {
10
+ /**
11
+ * Content hash of this operation (including previousHash).
12
+ * Format: trellis:op:{hash}
13
+ */
14
+ hash: string;
15
+ /**
16
+ * Kind of operation.
17
+ */
18
+ kind: KernelOpKind;
19
+ /**
20
+ * ISO timestamp of when the op was created.
21
+ */
22
+ timestamp: string;
23
+ /**
24
+ * The ID of the agent that performed the operation.
25
+ */
26
+ agentId: string;
27
+ /**
28
+ * Hash of the previous operation in the local chain.
29
+ */
30
+ previousHash?: string;
31
+ /**
32
+ * The actual data payload.
33
+ */
34
+ facts?: Fact[];
35
+ links?: Link[];
36
+ /**
37
+ * Facts to delete (for update/delete operations).
38
+ */
39
+ deleteFacts?: Fact[];
40
+ /**
41
+ * Links to delete (for update/delete operations).
42
+ */
43
+ deleteLinks?: Link[];
44
+ }
45
+ export interface KernelBackend {
46
+ init(): void;
47
+ append(op: KernelOp): void;
48
+ readAll(): KernelOp[];
49
+ readUntil(hash: string): KernelOp[];
50
+ readAfter(hash: string): KernelOp[];
51
+ readUntilTimestamp(isoTimestamp: string): KernelOp[];
52
+ getByHash(hash: string): KernelOp | undefined;
53
+ getLastOp(): KernelOp | undefined;
54
+ getOpCount(): number;
55
+ saveSnapshot(lastOpHash: string, data: any): void;
56
+ loadLatestSnapshot(): {
57
+ lastOpHash: string;
58
+ data: any;
59
+ } | undefined;
60
+ close?(): void;
61
+ }
62
+ //# sourceMappingURL=backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../../src/core/persist/backend.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,UAAU,GACV,aAAa,GACb,aAAa,CAAC;AAElB,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,OAAO,IAAI,QAAQ,EAAE,CAAC;IACtB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IACpC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IACpC,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IACrD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,SAAS,IAAI,QAAQ,GAAG,SAAS,CAAC;IAClC,UAAU,IAAI,MAAM,CAAC;IAGrB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAClD,kBAAkB,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC;IAEpE,KAAK,CAAC,IAAI,IAAI,CAAC;CAChB"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Better-SQLite3-backed Kernel Backend
3
+ *
4
+ * Node.js compatible SQLite backend using better-sqlite3.
5
+ * Use this backend when running in Node.js environments.
6
+ *
7
+ * @module trellis/core/persist
8
+ */
9
+ import type { KernelOp, KernelBackend } from './backend.js';
10
+ export declare class BetterSqliteKernelBackend implements KernelBackend {
11
+ private db;
12
+ private _stmts;
13
+ private _initialized;
14
+ constructor(dbPath: string);
15
+ private _prepareStatements;
16
+ init(): void;
17
+ append(op: KernelOp): void;
18
+ readAll(): KernelOp[];
19
+ readUntil(opHash: string): KernelOp[];
20
+ readUntilTimestamp(isoTimestamp: string): KernelOp[];
21
+ readAfter(opHash: string): KernelOp[];
22
+ getByHash(hash: string): KernelOp | undefined;
23
+ getLastOp(): KernelOp | undefined;
24
+ getOpCount(): number;
25
+ saveSnapshot(hash: string, data: string): void;
26
+ loadLatestSnapshot(): {
27
+ lastOpHash: string;
28
+ data: string;
29
+ } | undefined;
30
+ close(): void;
31
+ private _rowToOp;
32
+ }
33
+ //# sourceMappingURL=better-sqlite-backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"better-sqlite-backend.d.ts","sourceRoot":"","sources":["../../../src/core/persist/better-sqlite-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAuC5D,qBAAa,yBAA0B,YAAW,aAAa;IAC7D,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,MAAM,CAUZ;IACF,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,MAAM;IAmB1B,OAAO,CAAC,kBAAkB;IA0B1B,IAAI,IAAI,IAAI;IAQZ,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAkB1B,OAAO,IAAI,QAAQ,EAAE;IAKrB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IAQrC,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,EAAE;IAOpD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IAQrC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAK7C,SAAS,IAAI,QAAQ,GAAG,SAAS;IAKjC,UAAU,IAAI,MAAM;IAKpB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9C,kBAAkB,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAStE,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,QAAQ;CAcjB"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * SQLite-backed Kernel Backend
3
+ *
4
+ * Replaces the P0 JsonOpLog with a proper WAL-mode SQLite database.
5
+ * Stores ops, snapshots, and blobs in a single database file.
6
+ *
7
+ * @module trellis/core
8
+ */
9
+ import type { KernelOp, KernelBackend } from './backend.js';
10
+ export declare class SqliteKernelBackend implements KernelBackend {
11
+ private dbPath;
12
+ private db;
13
+ private _stmts;
14
+ constructor(dbPath: string);
15
+ init(): void;
16
+ private _prepareStatements;
17
+ append(op: KernelOp): void;
18
+ appendBatch(ops: KernelOp[]): void;
19
+ readAll(): KernelOp[];
20
+ readUntil(hash: string): KernelOp[];
21
+ readAfter(hash: string): KernelOp[];
22
+ readUntilTimestamp(isoTimestamp: string): KernelOp[];
23
+ getLastOp(): KernelOp | undefined;
24
+ getByHash(hash: string): KernelOp | undefined;
25
+ getOpCount(): number;
26
+ getOpByHash(hash: string): KernelOp | undefined;
27
+ count(): number;
28
+ /**
29
+ * Find the common ancestor op of two op hashes by walking
30
+ * previousHash chains until they converge.
31
+ */
32
+ findCommonAncestor(hashA: string, hashB: string): KernelOp | undefined;
33
+ saveSnapshot(lastOpHash: string, data: any): void;
34
+ loadLatestSnapshot(): {
35
+ lastOpHash: string;
36
+ data: any;
37
+ } | undefined;
38
+ putBlob(hash: string, content: Uint8Array): void;
39
+ getBlob(hash: string): Uint8Array | undefined;
40
+ hasBlob(hash: string): boolean;
41
+ close(): void;
42
+ }
43
+ //# sourceMappingURL=sqlite-backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-backend.d.ts","sourceRoot":"","sources":["../../../src/core/persist/sqlite-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAuC5D,qBAAa,mBAAoB,YAAW,aAAa;IAiB3C,OAAO,CAAC,MAAM;IAhB1B,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,MAAM,CAaE;gBAEI,MAAM,EAAE,MAAM;IAIlC,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,kBAAkB;IAqD1B,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAoB1B,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI;IASlC,OAAO,IAAI,QAAQ,EAAE;IAKrB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAKnC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAKnC,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,EAAE;IAUpD,SAAS,IAAI,QAAQ,GAAG,SAAS;IAKjC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI7C,UAAU,IAAI,MAAM;IAIpB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAK/C,KAAK,IAAI,MAAM;IAKf;;;OAGG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IA2BtE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAOjD,kBAAkB,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,SAAS;IAanE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAOhD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAM7C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ9B,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Plugin System — Public API Surface
3
+ *
4
+ * @module trellis/core/plugins
5
+ */
6
+ export { PluginRegistry, EventBus } from './registry.js';
7
+ export type { PluginDef, PluginContext, PluginManifest, EventCallback, EventHandler, WellKnownEvent, WorkspaceConfig, } from './types.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzD,YAAY,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Plugin Registry — Load, register, and manage plugins.
3
+ *
4
+ * Handles plugin lifecycle, dependency resolution, event dispatching,
5
+ * and workspace configuration.
6
+ *
7
+ * @module trellis/core/plugins
8
+ */
9
+ import type { TrellisKernel } from '../kernel/trellis-kernel.js';
10
+ import type { OntologyRegistry } from '../ontology/registry.js';
11
+ import type { QueryEngine } from '../query/engine.js';
12
+ import type { PluginDef, EventCallback, WorkspaceConfig } from './types.js';
13
+ export declare class EventBus {
14
+ private handlers;
15
+ on(event: string, handler: EventCallback): void;
16
+ off(event: string, handler: EventCallback): void;
17
+ emit(event: string, data?: unknown): Promise<void>;
18
+ listEvents(): string[];
19
+ clear(): void;
20
+ }
21
+ export declare class PluginRegistry {
22
+ private plugins;
23
+ private eventBus;
24
+ private workspaceConfig;
25
+ private logs;
26
+ /**
27
+ * Register a plugin definition. Does not load it yet.
28
+ */
29
+ register(def: PluginDef): void;
30
+ /**
31
+ * Unregister a plugin. Unloads it first if loaded.
32
+ */
33
+ unregister(id: string): Promise<void>;
34
+ /**
35
+ * Load a plugin (call onLoad, register middleware/ontologies/rules/events).
36
+ * Resolves dependencies first.
37
+ */
38
+ load(id: string, kernel?: TrellisKernel, ontologyRegistry?: OntologyRegistry, queryEngine?: QueryEngine): Promise<void>;
39
+ /**
40
+ * Unload a plugin (call onUnload, remove middleware/events).
41
+ */
42
+ unload(id: string): Promise<void>;
43
+ /**
44
+ * Load all registered plugins in dependency order.
45
+ */
46
+ loadAll(kernel?: TrellisKernel, ontologyRegistry?: OntologyRegistry, queryEngine?: QueryEngine): Promise<void>;
47
+ /**
48
+ * Unload all plugins in reverse order.
49
+ */
50
+ unloadAll(): Promise<void>;
51
+ get(id: string): PluginDef | undefined;
52
+ isLoaded(id: string): boolean;
53
+ list(): Array<{
54
+ def: PluginDef;
55
+ loaded: boolean;
56
+ }>;
57
+ listLoaded(): PluginDef[];
58
+ getEventBus(): EventBus;
59
+ emit(event: string, data?: unknown): Promise<void>;
60
+ on(event: string, handler: EventCallback): void;
61
+ getWorkspaceConfig(): WorkspaceConfig;
62
+ setWorkspaceConfig(config: WorkspaceConfig): void;
63
+ getConfigValue(key: string): unknown;
64
+ setConfigValue(key: string, value: unknown): void;
65
+ getLogs(pluginId?: string): typeof this.logs;
66
+ private _buildContext;
67
+ private _resolveDependencyOrder;
68
+ }
69
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/plugins/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EACV,SAAS,EAGT,aAAa,EAEb,eAAe,EAChB,MAAM,YAAY,CAAC;AAMpB,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAA8C;IAE9D,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAM/C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAQ1C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxD,UAAU,IAAI,MAAM,EAAE;IAItB,KAAK,IAAI,IAAI;CAGd;AAMD,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAA+D;IAC9E,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,IAAI,CAAuE;IAEnF;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAO9B;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3C;;;OAGG;IACG,IAAI,CACR,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,aAAa,EACtB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC;IA0DhB;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvC;;OAEG;IACG,OAAO,CACX,MAAM,CAAC,EAAE,aAAa,EACtB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC;IAOhB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAItC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI7B,IAAI,IAAI,KAAK,CAAC;QAAE,GAAG,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAIlD,UAAU,IAAI,SAAS,EAAE;IAUzB,WAAW,IAAI,QAAQ;IAIjB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAQ/C,kBAAkB,IAAI,eAAe;IAIrC,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAIjD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIpC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IASjD,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,IAAI,CAAC,IAAI;IAS5C,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,uBAAuB;CA0BhC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Plugin System Types
3
+ *
4
+ * Defines the plugin interface, manifest format, lifecycle hooks,
5
+ * and event system for extensibility.
6
+ *
7
+ * @module trellis/core/plugins
8
+ */
9
+ import type { KernelMiddleware } from '../kernel/middleware.js';
10
+ import type { OntologySchema } from '../ontology/types.js';
11
+ import type { DatalogRule } from '../query/types.js';
12
+ export interface PluginDef {
13
+ /** Unique plugin identifier (e.g. "trellis:security", "my-org:custom"). */
14
+ id: string;
15
+ /** Human-readable name. */
16
+ name: string;
17
+ /** Semantic version. */
18
+ version: string;
19
+ /** Description. */
20
+ description?: string;
21
+ /** Plugin dependencies (other plugin IDs). */
22
+ dependencies?: string[];
23
+ /** Kernel middleware provided by this plugin. */
24
+ middleware?: KernelMiddleware[];
25
+ /** Ontology schemas provided by this plugin. */
26
+ ontologies?: OntologySchema[];
27
+ /** Datalog rules provided by this plugin. */
28
+ rules?: DatalogRule[];
29
+ /** Event listeners provided by this plugin. */
30
+ eventHandlers?: EventHandler[];
31
+ /** Called when the plugin is loaded. */
32
+ onLoad?: (ctx: PluginContext) => void | Promise<void>;
33
+ /** Called when the plugin is unloaded. */
34
+ onUnload?: (ctx: PluginContext) => void | Promise<void>;
35
+ }
36
+ export interface PluginContext {
37
+ /** The plugin's own ID. */
38
+ pluginId: string;
39
+ /** Subscribe to events. */
40
+ on: (event: string, handler: EventCallback) => void;
41
+ /** Emit an event. */
42
+ emit: (event: string, data?: unknown) => void;
43
+ /** Get workspace config value. */
44
+ getConfig: (key: string) => unknown;
45
+ /** Log a message. */
46
+ log: (message: string) => void;
47
+ }
48
+ export type EventCallback = (data: unknown) => void | Promise<void>;
49
+ export interface EventHandler {
50
+ /** Event name pattern (e.g. "op:*", "entity:created", "milestone:created"). */
51
+ event: string;
52
+ /** Handler function. */
53
+ handler: EventCallback;
54
+ }
55
+ /** Well-known event names. */
56
+ export type WellKnownEvent = 'op:applied' | 'entity:created' | 'entity:updated' | 'entity:deleted' | 'link:added' | 'link:removed' | 'milestone:created' | 'issue:created' | 'issue:closed' | 'plugin:loaded' | 'plugin:unloaded';
57
+ export interface WorkspaceConfig {
58
+ /** Active ontology IDs. */
59
+ ontologies?: string[];
60
+ /** Active plugin IDs. */
61
+ plugins?: string[];
62
+ /** Tracked file patterns (globs). */
63
+ trackedPaths?: string[];
64
+ /** Ignore patterns. */
65
+ ignorePaths?: string[];
66
+ /** Branch policies. */
67
+ branchPolicies?: Record<string, {
68
+ linear?: boolean;
69
+ }>;
70
+ /** Embedding model override. */
71
+ embeddingModel?: string;
72
+ /** Snapshot threshold (ops between auto-snapshots). */
73
+ snapshotThreshold?: number;
74
+ /** Custom key-value settings. */
75
+ settings?: Record<string, unknown>;
76
+ }
77
+ export interface PluginManifest {
78
+ /** Plugin ID. */
79
+ id: string;
80
+ /** Installed version. */
81
+ version: string;
82
+ /** Whether the plugin is enabled. */
83
+ enabled: boolean;
84
+ /** Plugin-specific configuration. */
85
+ config?: Record<string, unknown>;
86
+ }
87
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/plugins/types.ts"],"names":[],"mappings":"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"}