trellis 3.1.34 → 3.2.0

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 (422) hide show
  1. package/CHANGELOG.md +16 -5
  2. package/README.md +19 -2
  3. package/bin/trellis.mjs +2 -75
  4. package/dist/better-sqlite-backend-2P4F6AOJ.js +209 -0
  5. package/dist/{better-sqlite-backend-ahx5p0br.js → better-sqlite-backend-PII64VE6.js} +37 -25
  6. package/dist/better-sqlite-backend-VUBVQ7SN.js +209 -0
  7. package/dist/better-sqlite-backend-Y3AQN65E.js +159 -0
  8. package/dist/better-sqlite-backend-Y3M7DXOX.js +159 -0
  9. package/dist/boot-middleware-FJDGVUM4.js +9 -0
  10. package/dist/boot-middleware-MHLHFCUC.js +9 -0
  11. package/dist/boot-middleware-MLJUTLUM.js +9 -0
  12. package/dist/boot-middleware-ZZPDZNYR.js +9 -0
  13. package/dist/{index-wncptktd.js → chunk-276LKLZR.js} +126 -59
  14. package/dist/chunk-2BRTCEHB.js +143 -0
  15. package/dist/chunk-2CX5UCRV.js +111 -0
  16. package/dist/chunk-2ESYSVXG.js +48 -0
  17. package/dist/{index-yp88he8n.js → chunk-2I5JU73Y.js} +88 -64
  18. package/dist/{index-w5wccer3.js → chunk-2UNSRRNB.js} +10 -5
  19. package/dist/{index-4wxa8xz4.js → chunk-335UEHQR.js} +158 -22
  20. package/dist/chunk-36VSSTL7.js +357 -0
  21. package/dist/chunk-3ETIIPPB.js +1077 -0
  22. package/dist/chunk-3GDRZTAW.js +45 -0
  23. package/dist/chunk-44FFQKQX.js +142 -0
  24. package/dist/chunk-4CF2L46N.js +29 -0
  25. package/dist/chunk-4HYPLFJD.js +150 -0
  26. package/dist/chunk-4XIVMVHC.js +361 -0
  27. package/dist/chunk-5CINODKT.js +41 -0
  28. package/dist/chunk-5ESGWJ5L.js +45 -0
  29. package/dist/chunk-5FGLQGMF.js +1676 -0
  30. package/dist/chunk-5IQZFITY.js +357 -0
  31. package/dist/{index-wt8rz4gn.js → chunk-5JWFAQDW.js} +41 -23
  32. package/dist/{index-7pjz3tsy.js → chunk-62UHTVU3.js} +50 -16
  33. package/dist/{index-h32txmxe.js → chunk-66UJQT2I.js} +6 -13
  34. package/dist/chunk-6CTA6MCE.js +340 -0
  35. package/dist/{index-4cdr7x2x.js → chunk-6RNNVOAS.js} +178 -109
  36. package/dist/chunk-6X23PZ6H.js +969 -0
  37. package/dist/chunk-7C7LL6MB.js +315 -0
  38. package/dist/chunk-7F4HM3JG.js +394 -0
  39. package/dist/chunk-7KJ7T4D3.js +910 -0
  40. package/dist/chunk-7QQQNUB5.js +92 -0
  41. package/dist/{index-53f3b8p8.js → chunk-7QWJBS72.js} +210 -165
  42. package/dist/chunk-7R36OZK3.js +957 -0
  43. package/dist/chunk-7UPKCOHE.js +946 -0
  44. package/dist/chunk-7WQGTFVJ.js +7434 -0
  45. package/dist/chunk-A3BONW34.js +35 -0
  46. package/dist/chunk-AHMDVHBL.js +141 -0
  47. package/dist/chunk-AW6A4OZY.js +171 -0
  48. package/dist/chunk-B3ZIFA2O.js +2240 -0
  49. package/dist/chunk-BJ5EKCJ5.js +458 -0
  50. package/dist/chunk-BJ7EZ7FP.js +145 -0
  51. package/dist/chunk-BQBUVMRN.js +171 -0
  52. package/dist/chunk-BRGYDO7D.js +223 -0
  53. package/dist/chunk-BXSTJVE3.js +67 -0
  54. package/dist/chunk-C5KPSEDN.js +359 -0
  55. package/dist/chunk-CCTNYTUC.js +940 -0
  56. package/dist/chunk-CYQ2OVD2.js +35 -0
  57. package/dist/chunk-DDAK7YOE.js +299 -0
  58. package/dist/chunk-DRILKBY6.js +965 -0
  59. package/dist/chunk-DXE24HNN.js +45 -0
  60. package/dist/chunk-E7ICUNW7.js +945 -0
  61. package/dist/chunk-EAL2PUOE.js +10022 -0
  62. package/dist/chunk-ELT7MLZB.js +109 -0
  63. package/dist/chunk-EO3J7GRP.js +0 -0
  64. package/dist/chunk-EWEIRF6G.js +171 -0
  65. package/dist/chunk-F5VDGQJC.js +120 -0
  66. package/dist/chunk-FCPL3IEQ.js +98 -0
  67. package/dist/{index-nq520y6k.js → chunk-FDPKYSV7.js} +43 -31
  68. package/dist/chunk-FES3TC24.js +171 -0
  69. package/dist/chunk-FF36CQHZ.js +61 -0
  70. package/dist/chunk-FKQO5A3H.js +35 -0
  71. package/dist/chunk-FOWKR5TW.js +129 -0
  72. package/dist/chunk-FZVCXDYW.js +150 -0
  73. package/dist/chunk-G3XIHPSQ.js +361 -0
  74. package/dist/chunk-GD5QJXSS.js +98 -0
  75. package/dist/chunk-GFZCJ4EH.js +108 -0
  76. package/dist/chunk-GKJLYLVU.js +359 -0
  77. package/dist/chunk-GLM4HGN4.js +55 -0
  78. package/dist/chunk-GNXHXNVQ.js +113 -0
  79. package/dist/chunk-GSR6ILTM.js +277 -0
  80. package/dist/chunk-GWRIMRSX.js +45 -0
  81. package/dist/chunk-H72UW2HJ.js +45 -0
  82. package/dist/chunk-HGI74PXB.js +7417 -0
  83. package/dist/chunk-HGRA37LO.js +145 -0
  84. package/dist/chunk-HO4TURXW.js +1078 -0
  85. package/dist/chunk-HXSRQO3L.js +145 -0
  86. package/dist/chunk-IG2X2BVO.js +373 -0
  87. package/dist/chunk-IIJVDD54.js +373 -0
  88. package/dist/chunk-IUWVEEOX.js +145 -0
  89. package/dist/chunk-IX4BBOIT.js +394 -0
  90. package/dist/{index-yhwjgfvj.js → chunk-IXU4RMQM.js} +67 -60
  91. package/dist/chunk-J3WYZO3Q.js +211 -0
  92. package/dist/{index-vkpkfwhq.js → chunk-J6OUIION.js} +234 -194
  93. package/dist/{index-xzym9w0m.js → chunk-JA7AIHRK.js} +12 -7
  94. package/dist/chunk-JUEMDWLU.js +233 -0
  95. package/dist/chunk-K46RNFDE.js +171 -0
  96. package/dist/chunk-KAGU2XMY.js +359 -0
  97. package/dist/chunk-KCVYJNVX.js +394 -0
  98. package/dist/chunk-KFQGP6VL.js +33 -0
  99. package/dist/chunk-KKDRMIV6.js +419 -0
  100. package/dist/chunk-KQ4A2D2P.js +910 -0
  101. package/dist/chunk-KSU2GW22.js +958 -0
  102. package/dist/chunk-KYLIQ3YI.js +399 -0
  103. package/dist/chunk-KZYJJIRN.js +946 -0
  104. package/dist/chunk-LFOX744K.js +96 -0
  105. package/dist/{index-rv1p47gp.js → chunk-LHOVJEWR.js} +2756 -2307
  106. package/dist/{index-h9e2efx4.js → chunk-LNUIGRDZ.js} +71 -55
  107. package/dist/chunk-LOPXTPF3.js +120 -0
  108. package/dist/chunk-LZR3VIFU.js +907 -0
  109. package/dist/chunk-MBNBTJCR.js +394 -0
  110. package/dist/chunk-MCKGQKYU.js +15 -0
  111. package/dist/{index-skhn0agf.js → chunk-MLC5BUYO.js} +19 -20
  112. package/dist/chunk-MPXUVGT3.js +104 -0
  113. package/dist/chunk-MU6EOS6F.js +0 -0
  114. package/dist/chunk-MWRQ2TXT.js +357 -0
  115. package/dist/{index-nzb3am4f.js → chunk-NO73OK2I.js} +43 -21
  116. package/dist/chunk-NPE2YJHK.js +394 -0
  117. package/dist/{index-xhcp6xrn.js → chunk-NSDXU6QX.js} +654 -500
  118. package/dist/chunk-NXIRDSZ6.js +145 -0
  119. package/dist/chunk-NZWFNHCS.js +407 -0
  120. package/dist/chunk-O2AV5WMN.js +48 -0
  121. package/dist/{index-h7zxhhhh.js → chunk-OB4CMMX6.js} +46 -38
  122. package/dist/chunk-OBKU74FU.js +7411 -0
  123. package/dist/chunk-OQNDWRDE.js +145 -0
  124. package/dist/chunk-OVWAJMB6.js +394 -0
  125. package/dist/chunk-PDHLBTTD.js +45 -0
  126. package/dist/chunk-PEQNRKLG.js +210 -0
  127. package/dist/chunk-QERIS7QY.js +7403 -0
  128. package/dist/chunk-QHA2DM3C.js +373 -0
  129. package/dist/chunk-QLM4HSYC.js +45 -0
  130. package/dist/chunk-RSWUFTO2.js +857 -0
  131. package/dist/chunk-S2OT3TQJ.js +283 -0
  132. package/dist/chunk-S5PHSN5K.js +907 -0
  133. package/dist/chunk-SIAA4J6H.js +21 -0
  134. package/dist/chunk-SPSPV5BC.js +390 -0
  135. package/dist/chunk-SQBNLUIA.js +171 -0
  136. package/dist/chunk-STLN6A6B.js +355 -0
  137. package/dist/chunk-TCKXSOBP.js +123 -0
  138. package/dist/chunk-U7HV7GU2.js +17 -0
  139. package/dist/chunk-UBGUDMUV.js +59 -0
  140. package/dist/chunk-UGZHOGRA.js +39 -0
  141. package/dist/chunk-UICF66FS.js +359 -0
  142. package/dist/chunk-UK3EQREE.js +1078 -0
  143. package/dist/chunk-UPKPURVY.js +394 -0
  144. package/dist/chunk-URC74VCN.js +959 -0
  145. package/dist/chunk-USEINYUL.js +12 -0
  146. package/dist/{index-bmyt7k8n.js → chunk-UZRUP7QW.js} +12 -4
  147. package/dist/chunk-V3G7Q3QQ.js +102 -0
  148. package/dist/chunk-VDAKEOML.js +857 -0
  149. package/dist/chunk-VUJ6SA55.js +303 -0
  150. package/dist/chunk-VUJQLIML.js +141 -0
  151. package/dist/chunk-VWKLKLYB.js +267 -0
  152. package/dist/chunk-VYC3RZMK.js +277 -0
  153. package/dist/chunk-WMERMSWI.js +154 -0
  154. package/dist/chunk-WMR777PO.js +2213 -0
  155. package/dist/{index-n9f2qyh5.js → chunk-X46IECAC.js} +55 -33
  156. package/dist/chunk-X5FLTRUB.js +517 -0
  157. package/dist/chunk-X762XWVC.js +419 -0
  158. package/dist/chunk-XEN3OEYY.js +2234 -0
  159. package/dist/chunk-XMQ7G77X.js +260 -0
  160. package/dist/chunk-XZQ66K7A.js +124 -0
  161. package/dist/{index-w7ng765c.js → chunk-YCM7ZYEZ.js} +102 -49
  162. package/dist/chunk-YY3GF7DH.js +7411 -0
  163. package/dist/chunk-ZE5R3H4C.js +907 -0
  164. package/dist/chunk-ZHVI7BQN.js +1077 -0
  165. package/dist/chunk-ZMN5LUB7.js +7411 -0
  166. package/dist/chunk-ZUV4MD5U.js +94 -0
  167. package/dist/cli/errors.d.ts +6 -0
  168. package/dist/cli/errors.d.ts.map +1 -0
  169. package/dist/cli/examples.d.ts +23 -0
  170. package/dist/cli/examples.d.ts.map +1 -0
  171. package/dist/cli/index.d.ts.map +1 -1
  172. package/dist/cli/index.js +2338 -6190
  173. package/dist/client/index.d.ts +6 -1
  174. package/dist/client/index.d.ts.map +1 -1
  175. package/dist/client/index.js +41 -21
  176. package/dist/client/live.d.ts +67 -0
  177. package/dist/client/live.d.ts.map +1 -0
  178. package/dist/client/reactive.d.ts +31 -0
  179. package/dist/client/reactive.d.ts.map +1 -0
  180. package/dist/client/sdk.d.ts +26 -2
  181. package/dist/client/sdk.d.ts.map +1 -1
  182. package/dist/client/sdk.js +9 -0
  183. package/dist/client/vcs-client.d.ts +129 -0
  184. package/dist/client/vcs-client.d.ts.map +1 -0
  185. package/dist/cms/index.js +171 -163
  186. package/dist/{config-8hczw0rs.js → config-KMY6RRK3.js} +8 -9
  187. package/dist/config-PFTP67TR.js +19 -0
  188. package/dist/config-VDMK2DUJ.js +19 -0
  189. package/dist/core/computation/index.d.ts +5 -0
  190. package/dist/core/computation/index.d.ts.map +1 -0
  191. package/dist/core/computation/rollup.d.ts +18 -0
  192. package/dist/core/computation/rollup.d.ts.map +1 -0
  193. package/dist/core/index.d.ts +5 -0
  194. package/dist/core/index.d.ts.map +1 -1
  195. package/dist/core/index.js +168 -101
  196. package/dist/core/kernel/boot-middleware.d.ts +10 -0
  197. package/dist/core/kernel/boot-middleware.d.ts.map +1 -0
  198. package/dist/core/kernel/logic-middleware.d.ts +7 -1
  199. package/dist/core/kernel/logic-middleware.d.ts.map +1 -1
  200. package/dist/core/kernel/trellis-kernel.d.ts.map +1 -1
  201. package/dist/core/ontology/types.d.ts +5 -0
  202. package/dist/core/ontology/types.d.ts.map +1 -1
  203. package/dist/core/persist/better-sqlite-backend.d.ts +9 -2
  204. package/dist/core/persist/better-sqlite-backend.d.ts.map +1 -1
  205. package/dist/core/persist/factory.d.ts +6 -7
  206. package/dist/core/persist/factory.d.ts.map +1 -1
  207. package/dist/core/persist/factory.js +2 -3
  208. package/dist/core/persist/sqljs-backend.js +2 -3
  209. package/dist/db/index.d.ts +4 -1
  210. package/dist/db/index.d.ts.map +1 -1
  211. package/dist/db/index.js +69 -56
  212. package/dist/db/inspector.js +11 -19
  213. package/dist/decisions/index.js +9 -10
  214. package/dist/deploy-66EC752W.js +9 -0
  215. package/dist/deploy-SO7AFK6L.js +9 -0
  216. package/dist/embeddings/auto-embed.d.ts +2 -2
  217. package/dist/embeddings/auto-embed.d.ts.map +1 -1
  218. package/dist/embeddings/index.js +20 -22
  219. package/dist/embeddings/search.d.ts +2 -1
  220. package/dist/embeddings/search.d.ts.map +1 -1
  221. package/dist/embeddings/store.d.ts +25 -4
  222. package/dist/embeddings/store.d.ts.map +1 -1
  223. package/dist/engine-7GXBM4IT.js +7 -0
  224. package/dist/engine-NSR6BIF7.js +7 -0
  225. package/dist/engine.d.ts +32 -12
  226. package/dist/engine.d.ts.map +1 -1
  227. package/dist/factory-2P64OC7M.js +34 -0
  228. package/dist/factory-YP4ZZK5K.js +34 -0
  229. package/dist/import-AJLYHFIA.js +10 -0
  230. package/dist/import-UZEKXU3B.js +10 -0
  231. package/dist/index.js +102 -93
  232. package/dist/launch-explorer-AI6L2AWJ.js +91 -0
  233. package/dist/launch-explorer-HZ4ZJA4X.js +95 -0
  234. package/dist/links/index.js +24 -26
  235. package/dist/plugins/agent-memory/index.js +316 -0
  236. package/dist/plugins/idea-garden/index.js +165 -0
  237. package/dist/plugins/plan-approval/index.js +579 -0
  238. package/dist/plugins/proactive-watcher/index.js +194 -0
  239. package/dist/{index-2r4jxwnb.js → query-GJL3CVGN.js} +14 -15
  240. package/dist/query-MBJSK3EB.js +31 -0
  241. package/dist/query-TJHEVSKL.js +31 -0
  242. package/dist/query-WUIKOHPE.js +524 -0
  243. package/dist/query-XYLTJYSA.js +31 -0
  244. package/dist/react/index.js +39 -70
  245. package/dist/react/realtime.js +11 -0
  246. package/dist/react/schema-hooks.js +87 -0
  247. package/dist/realtime/broadcast-channel-transport.d.ts +43 -0
  248. package/dist/realtime/broadcast-channel-transport.d.ts.map +1 -0
  249. package/dist/realtime/durable-object-relay-transport.d.ts +96 -0
  250. package/dist/realtime/durable-object-relay-transport.d.ts.map +1 -0
  251. package/dist/realtime/index.d.ts +44 -0
  252. package/dist/realtime/index.d.ts.map +1 -0
  253. package/dist/realtime/index.js +40 -0
  254. package/dist/realtime/memory-hub.d.ts +32 -0
  255. package/dist/realtime/memory-hub.d.ts.map +1 -0
  256. package/dist/realtime/persistent-channel.d.ts +105 -0
  257. package/dist/realtime/persistent-channel.d.ts.map +1 -0
  258. package/dist/realtime/presence.d.ts +73 -0
  259. package/dist/realtime/presence.d.ts.map +1 -0
  260. package/dist/realtime/relay-persistence.d.ts +37 -0
  261. package/dist/realtime/relay-persistence.d.ts.map +1 -0
  262. package/dist/realtime/relay-persistence.js +107 -0
  263. package/dist/realtime/relay-server.d.ts +103 -0
  264. package/dist/realtime/relay-server.d.ts.map +1 -0
  265. package/dist/realtime/room.d.ts +98 -0
  266. package/dist/realtime/room.d.ts.map +1 -0
  267. package/dist/realtime/text.d.ts +73 -0
  268. package/dist/realtime/text.d.ts.map +1 -0
  269. package/dist/realtime/types.d.ts +89 -0
  270. package/dist/realtime/types.d.ts.map +1 -0
  271. package/dist/realtime/websocket-relay-transport.d.ts +28 -0
  272. package/dist/realtime/websocket-relay-transport.d.ts.map +1 -0
  273. package/dist/realtime.bundle.js +1100 -0
  274. package/dist/remote-manager-BLJZ6KF6.js +224 -0
  275. package/dist/{remote-manager-xvbg4230.js → remote-manager-BPYE46SI.js} +24 -15
  276. package/dist/remote-manager-FMESEAFA.js +224 -0
  277. package/dist/remote-manager-K2WZ5RHY.js +223 -0
  278. package/dist/remote-manager-SG545WNY.js +224 -0
  279. package/dist/remote-manager-SG5PQKCH.js +224 -0
  280. package/dist/remote-manager-WGP6MIQZ.js +224 -0
  281. package/dist/scaffold/write.d.ts.map +1 -1
  282. package/dist/schema/define.d.ts +137 -0
  283. package/dist/schema/define.d.ts.map +1 -0
  284. package/dist/schema/entity-projection.d.ts +34 -0
  285. package/dist/schema/entity-projection.d.ts.map +1 -0
  286. package/dist/schema/eql.d.ts +46 -0
  287. package/dist/schema/eql.d.ts.map +1 -0
  288. package/dist/schema/index.d.ts +21 -0
  289. package/dist/schema/index.d.ts.map +1 -0
  290. package/dist/schema/index.js +45 -0
  291. package/dist/schema/kernel-resolve.d.ts +21 -0
  292. package/dist/schema/kernel-resolve.d.ts.map +1 -0
  293. package/dist/schema/mutations.d.ts +20 -0
  294. package/dist/schema/mutations.d.ts.map +1 -0
  295. package/dist/schema/resolve.d.ts +21 -0
  296. package/dist/schema/resolve.d.ts.map +1 -0
  297. package/dist/sdk-3KBB3E6V.js +16 -0
  298. package/dist/sdk-4ZQO6UTU.js +16 -0
  299. package/dist/sdk-6JA6GV3G.js +16 -0
  300. package/dist/sdk-6VTP5UTZ.js +16 -0
  301. package/dist/sdk-7VS6TYCD.js +16 -0
  302. package/dist/sdk-HQ3FTLRT.js +16 -0
  303. package/dist/sdk-HZ7NU3XE.js +15 -0
  304. package/dist/sdk-KBQE2OXT.js +16 -0
  305. package/dist/sdk-LZ7W3EEY.js +9 -0
  306. package/dist/sdk-MSCDZ7JU.js +15 -0
  307. package/dist/sdk-WNZOGO3S.js +15 -0
  308. package/dist/sdk-YLV33ZCW.js +9 -0
  309. package/dist/sdk-ZSUD2LLJ.js +16 -0
  310. package/dist/server/index.d.ts +2 -0
  311. package/dist/server/index.d.ts.map +1 -1
  312. package/dist/server/index.js +69 -61
  313. package/dist/server/node-adapter.js +5 -104
  314. package/dist/server/realtime.d.ts +10 -2
  315. package/dist/server/realtime.d.ts.map +1 -1
  316. package/dist/server/server.d.ts +7 -16
  317. package/dist/server/server.d.ts.map +1 -1
  318. package/dist/server/sprites.d.ts.map +1 -1
  319. package/dist/server/tenancy.d.ts.map +1 -1
  320. package/dist/server-AFXFFBWA.js +11 -0
  321. package/dist/server-AGHC4VUL.js +11 -0
  322. package/dist/server-BOH7M4TT.js +13 -0
  323. package/dist/server-DBUY2KY5.js +11 -0
  324. package/dist/server-GWBQJPRG.js +11 -0
  325. package/dist/server-IGBIIJSF.js +13 -0
  326. package/dist/server-JZZFULVU.js +11 -0
  327. package/dist/server-L5XAF4M5.js +11 -0
  328. package/dist/server-NYFUHANA.js +12 -0
  329. package/dist/server-OABUB2LO.js +12 -0
  330. package/dist/server-P2CKZWWV.js +12 -0
  331. package/dist/{sprites-vc4qbrp1.js → sprites-RU3E4XQN.js} +6 -7
  332. package/dist/sprites-XVSMQLSI.js +15 -0
  333. package/dist/sql-wasm-FORCZFHZ.js +2148 -0
  334. package/dist/sql-wasm-JZH76RLO.js +2148 -0
  335. package/dist/sqljs-backend-CJQOIQYE.js +266 -0
  336. package/dist/sqljs-backend-KWXBUDUO.js +266 -0
  337. package/dist/state-demo.bundle.js +1033 -0
  338. package/dist/svelte/index.d.ts +17 -0
  339. package/dist/svelte/index.d.ts.map +1 -0
  340. package/dist/svelte/index.js +51 -0
  341. package/dist/svelte/schema-hooks.d.ts +45 -0
  342. package/dist/svelte/schema-hooks.d.ts.map +1 -0
  343. package/dist/svelte/schema-hooks.js +71 -0
  344. package/dist/svelte/stores.d.ts +78 -0
  345. package/dist/svelte/stores.d.ts.map +1 -0
  346. package/dist/sync/http-transport.d.ts +3 -3
  347. package/dist/sync/http-transport.d.ts.map +1 -1
  348. package/dist/sync/index.d.ts +15 -1
  349. package/dist/sync/index.d.ts.map +1 -1
  350. package/dist/sync/index.js +617 -0
  351. package/dist/sync/memory-room.d.ts +37 -0
  352. package/dist/sync/memory-room.d.ts.map +1 -0
  353. package/dist/sync/memory-transport.d.ts +3 -3
  354. package/dist/sync/memory-transport.d.ts.map +1 -1
  355. package/dist/sync/partykit-room.d.ts +40 -0
  356. package/dist/sync/partykit-room.d.ts.map +1 -0
  357. package/dist/sync/partykit-transport.d.ts +84 -0
  358. package/dist/sync/partykit-transport.d.ts.map +1 -0
  359. package/dist/sync/room-core.d.ts +53 -0
  360. package/dist/sync/room-core.d.ts.map +1 -0
  361. package/dist/sync/sync-engine.d.ts +40 -2
  362. package/dist/sync/sync-engine.d.ts.map +1 -1
  363. package/dist/sync/sync-room-server.d.ts +39 -0
  364. package/dist/sync/sync-room-server.d.ts.map +1 -0
  365. package/dist/sync/types.d.ts +70 -3
  366. package/dist/sync/types.d.ts.map +1 -1
  367. package/dist/sync/vcs-sync-peer.d.ts +63 -0
  368. package/dist/sync/vcs-sync-peer.d.ts.map +1 -0
  369. package/dist/sync/ws-transport.d.ts +2 -2
  370. package/dist/sync/ws-transport.d.ts.map +1 -1
  371. package/dist/tenancy-CBWYEVUB.js +11 -0
  372. package/dist/tenancy-FO6WVYFN.js +13 -0
  373. package/dist/tenancy-FWDBESMX.js +14 -0
  374. package/dist/tenancy-HGPIS5QA.js +13 -0
  375. package/dist/tenancy-HXFALA37.js +14 -0
  376. package/dist/tenancy-OP34NFFS.js +14 -0
  377. package/dist/tenancy-S676GLID.js +14 -0
  378. package/dist/tenancy-V7ARWNNV.js +14 -0
  379. package/dist/tenancy-ZDN4GXK5.js +13 -0
  380. package/dist/tenancy-ZT5VMY7B.js +14 -0
  381. package/dist/ui/client.html +355 -67
  382. package/dist/ui/launch-explorer.d.ts +22 -0
  383. package/dist/ui/launch-explorer.d.ts.map +1 -0
  384. package/dist/ui/server.d.ts +1 -1
  385. package/dist/ui/server.d.ts.map +1 -1
  386. package/dist/vcs/blob-store.d.ts.map +1 -1
  387. package/dist/vcs/idb-op-log.d.ts +67 -0
  388. package/dist/vcs/idb-op-log.d.ts.map +1 -0
  389. package/dist/vcs/index.d.ts +1 -0
  390. package/dist/vcs/index.d.ts.map +1 -1
  391. package/dist/vcs/index.js +81 -72
  392. package/dist/vcs/issue.d.ts +22 -5
  393. package/dist/vcs/issue.d.ts.map +1 -1
  394. package/dist/vcs/lane-materialize.d.ts +5 -0
  395. package/dist/vcs/lane-materialize.d.ts.map +1 -1
  396. package/dist/vcs/op-log.d.ts +28 -2
  397. package/dist/vcs/op-log.d.ts.map +1 -1
  398. package/dist/vcs/ops.d.ts +10 -0
  399. package/dist/vcs/ops.d.ts.map +1 -1
  400. package/dist/{vm-config-6xhsj6b3.js → vm-config-JI4OXKDQ.js} +9 -10
  401. package/dist/vm-config-YZRJ3KUB.js +21 -0
  402. package/dist/vue/hooks.d.ts +64 -0
  403. package/dist/vue/hooks.d.ts.map +1 -0
  404. package/dist/vue/index.d.ts +19 -0
  405. package/dist/vue/index.d.ts.map +1 -0
  406. package/dist/vue/index.js +59 -0
  407. package/dist/vue/schema-hooks.d.ts +41 -0
  408. package/dist/vue/schema-hooks.d.ts.map +1 -0
  409. package/dist/vue/schema-hooks.js +64 -0
  410. package/package.json +118 -16
  411. package/dist/deploy-999q207z.js +0 -10
  412. package/dist/engine-y0724kjq.js +0 -8
  413. package/dist/import-s2b8e0ft.js +0 -11
  414. package/dist/index-a76rekgs.js +0 -67
  415. package/dist/index-c9h37r6h.js +0 -1
  416. package/dist/index-hr9qvv77.js +0 -860
  417. package/dist/index-k5b0xskw.js +0 -1
  418. package/dist/index-y6a4kj0p.js +0 -43
  419. package/dist/sdk-bepky0xs.js +0 -16
  420. package/dist/server-szdjx0nt.js +0 -13
  421. package/dist/sqlite-backend-0vsmc6qj.js +0 -8
  422. package/dist/tenancy-pjm32b4v.js +0 -14
package/CHANGELOG.md CHANGED
@@ -1,6 +1,17 @@
1
1
  # Changelog
2
2
 
3
- ## 3.1.32
3
+ Notable changes by release date and version. See [trellis.computer/changelog](https://trellis.computer/changelog) for the public site copy.
4
+
5
+ ## trellis [3.2.0] — 2026-06-08
6
+
7
+ - **Typed realtime SDK:** `trellis/schema` — `defineType`, `entityQuery`, `WhereFilter` operators, nested `InferResolvedType`, server `hydrateAndResolve` on subscription push.
8
+ - **Live client:** `liveEntities` / `liveEntity` in `trellis/client` with id-scoped subscriptions (`entityQuery`) instead of full-type scans.
9
+ - **Framework hooks:** `trellis/svelte/typed`, `trellis/vue/typed`, `trellis/react/typed` — typed `useEntities` / `useEntity` adapters.
10
+ - **Studio plugin exports:** `trellis/plugins/plan-approval`, `proactive-watcher`, `idea-garden`, `agent-memory` ship in `dist/` for npm consumers (Trellis Studio / opencode).
11
+ - **Ontology:** idempotent `registerType` — duplicate schema registration returns quietly (409 swallowed client-side).
12
+ - **Realtime:** explorer graph-nav + collections demos; collab presence session lifecycle hardening.
13
+
14
+ ## trellis [3.1.32] — 2026-05-29
4
15
 
5
16
  - **Agent Lanes (W1–W4):** `trellis lane` — isolated per-agent op journals under `.trellis/lanes/`, `create` / `enter` / `leave` / `status` / `diff` / `promote` / `drop`.
6
17
  - **`trellis lane promote`:** replay lane ops onto integration with `--dry-run`, `--explain`, and hard/soft/file conflict detection.
@@ -10,7 +21,7 @@
10
21
  - **`getBranchHeadOpHash`:** latest `headOpHash` fact wins (fixes stale head during promote).
11
22
  - **Op log lock:** configurable timeout via `TRELLIS_OPLOG_LOCK_MS`.
12
23
 
13
- ## 3.1.14
24
+ ## trellis [3.1.14] — 2026-05-22
14
25
 
15
26
  - CLI `trellis --version` now reports the real package version from `package.json` (was hardcoded `0.1.0`).
16
27
  - CLI `-p` / cwd resolution walks up to the nearest `.trellis` repo root (monorepo subfolders work without passing the root path).
@@ -18,7 +29,7 @@
18
29
  - `issue create` accepts `--description` as an alias for `--desc`.
19
30
  - `bin/trellis.mjs` launcher finds Homebrew Bun when Node's `PATH` is minimal (`npx trellis` / agent shells).
20
31
 
21
- ## 3.1.2
32
+ ## trellis [3.1.2] — 2026-05-12
22
33
 
23
34
  - Fixed `trellis/cms` collection reads for inferred collections whose normalized key differs from the stored entity type casing, such as `blogpost` reading `BlogPost` entities.
24
35
  - Added graph-link awareness to CMS entries so reference links such as `post --author--> author` appear in `fields` and can be expanded.
@@ -29,10 +40,10 @@
29
40
  - Added CMS client/scaffold tests and included them in the default test script.
30
41
  - Added `directory` support to CMS consumer scaffolds for multi-instance opencode routing.
31
42
 
32
- ## 3.1.1
43
+ ## trellis [3.1.1] — 2026-05-12
33
44
 
34
45
  - Published the first `trellis/cms` SDK package update after adding scaffold helpers.
35
46
 
36
- ## 3.1.0
47
+ ## trellis [3.1.0] — 2026-05-12
37
48
 
38
49
  - Added the `trellis/cms` subpath with `createCmsClient`, collection reads, entry reads, polling subscriptions, reference expansion, collection discovery, and consumer scaffold helpers for vanilla, React, Solid, and Vue.
package/README.md CHANGED
@@ -1,3 +1,10 @@
1
+ ---
2
+ title: Trellis
3
+ description: The Agentic Framework — a local-first semantic graph OS for code, agents, and decisions.
4
+ created: 2026-05-30
5
+ updated: 2026-06-05
6
+ ---
7
+
1
8
  # Trellis
2
9
 
3
10
  > **The Agentic Framework**
@@ -44,8 +51,9 @@ echo "# My Project" > README.md
44
51
  trellis issue create -t "Bootstrap Visualization"
45
52
  trellis milestone create -m "Initial Release"
46
53
 
47
- # 5. Launch the local web client to explore your semantic graph
48
- trellis web
54
+ # 5. Launch the live graph explorer (SvelteKit + realtime sidecar)
55
+ trellis ui
56
+ # Legacy VCS-only visualizer: trellis ui --legacy --port 3333
49
57
 
50
58
  # 6. Create coding session with trellis harness
51
59
  trellis code
@@ -72,6 +80,15 @@ After running `trellis init`, you'll see a progressive disclosure success screen
72
80
 
73
81
  See the [CLI guide](https://trellis.computer/docs/cli) for complete documentation.
74
82
 
83
+ ### Typed SDK + realtime (React, Vue, Svelte)
84
+
85
+ Reference apps and stable entrypoints: [docs/sdk-typed-realtime.md](./docs/sdk-typed-realtime.md).
86
+
87
+ ```bash
88
+ just graph-nav # typed live nav — examples/graph-nav
89
+ just universal-presence # presence, chat, text — examples/universal-presence
90
+ ```
91
+
75
92
  ---
76
93
 
77
94
  ## CMS Client SDK
package/bin/trellis.mjs CHANGED
@@ -1,76 +1,3 @@
1
1
  #!/usr/bin/env node
2
- // Trellis CLI launcher.
3
- //
4
- // The bundled CLI in dist/ is built with `--target bun` and uses Bun-specific
5
- // APIs at runtime. This launcher works under either runtime:
6
- // - If invoked by bun, it imports the bundle directly.
7
- // - If invoked by node (the default for `npx trellis`), it re-execs the same
8
- // script under bun. If bun is missing, it prints actionable install hints.
9
-
10
- import { spawnSync } from 'node:child_process';
11
- import { fileURLToPath } from 'node:url';
12
- import { dirname, join, delimiter } from 'node:path';
13
- import { existsSync } from 'node:fs';
14
-
15
- const isWindows = process.platform === 'win32';
16
-
17
- if (process.versions?.bun) {
18
- await import('../dist/cli/index.js');
19
- } else {
20
- const bun =
21
- findOnPath('bun') ??
22
- findUserBun() ??
23
- (existsSync('/opt/homebrew/bin/bun') ? '/opt/homebrew/bin/bun' : null);
24
- if (!bun) {
25
- process.stderr.write(
26
- [
27
- '',
28
- 'Trellis requires Bun to run.',
29
- '',
30
- 'Install Bun:',
31
- ' macOS/Linux: curl -fsSL https://bun.sh/install | bash',
32
- ' Windows: powershell -c "irm bun.sh/install.ps1 | iex"',
33
- '',
34
- 'More info: https://bun.sh',
35
- '',
36
- ].join('\n'),
37
- );
38
- process.exit(1);
39
- }
40
-
41
- const here = fileURLToPath(import.meta.url);
42
- const result = spawnSync(bun, [here, ...process.argv.slice(2)], {
43
- stdio: 'inherit',
44
- env: process.env,
45
- });
46
- const code = result.status ?? 1;
47
- if (code !== 0 && result.error) {
48
- process.stderr.write(`${result.error.message}\n`);
49
- }
50
- process.exit(code);
51
- }
52
-
53
- function findOnPath(cmd) {
54
- const PATH = process.env.PATH || '';
55
- const exts = isWindows ? ['.exe', '.cmd', '.bat', ''] : [''];
56
- for (const dir of PATH.split(isWindows ? ';' : delimiter)) {
57
- if (!dir) continue;
58
- for (const ext of exts) {
59
- const p = join(dir, cmd + ext);
60
- if (existsSync(p)) return p;
61
- }
62
- }
63
- return null;
64
- }
65
-
66
- function findUserBun() {
67
- const home = process.env.HOME || process.env.USERPROFILE;
68
- if (!home) return null;
69
- const candidates = isWindows
70
- ? [join(home, '.bun', 'bin', 'bun.exe')]
71
- : [join(home, '.bun', 'bin', 'bun')];
72
- for (const p of candidates) {
73
- if (existsSync(p)) return p;
74
- }
75
- return null;
76
- }
2
+ // Trellis CLI launcher — runs under Node.js (>=20) or any WebContainer.
3
+ import '../dist/cli/index.js';
@@ -0,0 +1,209 @@
1
+ import {
2
+ __require
3
+ } from "./chunk-KFQGP6VL.js";
4
+
5
+ // src/core/persist/better-sqlite-backend.ts
6
+ var SCHEMA_SQL = `
7
+ CREATE TABLE IF NOT EXISTS ops (
8
+ hash TEXT PRIMARY KEY,
9
+ kind TEXT NOT NULL,
10
+ timestamp TEXT NOT NULL,
11
+ agent_id TEXT NOT NULL,
12
+ previous_hash TEXT,
13
+ payload TEXT NOT NULL
14
+ );
15
+
16
+ CREATE TABLE IF NOT EXISTS snapshots (
17
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
18
+ last_op_hash TEXT NOT NULL,
19
+ data TEXT NOT NULL,
20
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
21
+ );
22
+
23
+ CREATE TABLE IF NOT EXISTS blobs (
24
+ hash TEXT PRIMARY KEY,
25
+ content BLOB NOT NULL
26
+ );
27
+
28
+ CREATE INDEX IF NOT EXISTS idx_ops_kind ON ops(kind);
29
+ CREATE INDEX IF NOT EXISTS idx_ops_timestamp ON ops(timestamp);
30
+ CREATE INDEX IF NOT EXISTS idx_ops_agent ON ops(agent_id);
31
+ CREATE INDEX IF NOT EXISTS idx_ops_previous ON ops(previous_hash);
32
+ CREATE INDEX IF NOT EXISTS idx_snapshots_op ON snapshots(last_op_hash);
33
+ `;
34
+ var BetterSqliteKernelBackend = class {
35
+ db;
36
+ _stmts;
37
+ _initialized = false;
38
+ constructor(dbPath) {
39
+ try {
40
+ const createRequire = __require("module").createRequire;
41
+ const req = createRequire(__filename);
42
+ const Database = req("better-sqlite3");
43
+ this.db = new Database(dbPath);
44
+ } catch (e) {
45
+ throw new Error(
46
+ `Failed to initialize SQLite backend: ${e instanceof Error ? e.message : "Unknown error"}. Ensure better-sqlite3 is installed: npm install better-sqlite3`
47
+ );
48
+ }
49
+ }
50
+ _prepareStatements() {
51
+ const db = this.db;
52
+ this._stmts = {
53
+ insert: db.prepare(
54
+ "INSERT OR REPLACE INTO ops (hash, kind, timestamp, agent_id, previous_hash, payload) VALUES (?, ?, ?, ?, ?, ?)"
55
+ ),
56
+ readAll: db.prepare("SELECT * FROM ops ORDER BY timestamp ASC"),
57
+ readUntil: db.prepare(
58
+ "SELECT * FROM ops WHERE rowid <= (SELECT rowid FROM ops WHERE hash = ?) ORDER BY rowid ASC"
59
+ ),
60
+ readAfter: db.prepare(
61
+ "SELECT * FROM ops WHERE rowid > (SELECT rowid FROM ops WHERE hash = ?) ORDER BY rowid ASC"
62
+ ),
63
+ getByHash: db.prepare("SELECT * FROM ops WHERE hash = ?"),
64
+ getLast: db.prepare("SELECT * FROM ops ORDER BY timestamp DESC LIMIT 1"),
65
+ count: db.prepare("SELECT COUNT(*) as count FROM ops"),
66
+ saveSnapshot: db.prepare(
67
+ "INSERT INTO snapshots (last_op_hash, data, created_at) VALUES (?, ?, ?)"
68
+ ),
69
+ loadLatestSnapshot: db.prepare(
70
+ "SELECT * FROM snapshots ORDER BY id DESC LIMIT 1"
71
+ ),
72
+ putBlob: db.prepare(
73
+ "INSERT OR REPLACE INTO blobs (hash, content) VALUES (?, ?)"
74
+ ),
75
+ getBlob: db.prepare("SELECT content FROM blobs WHERE hash = ?"),
76
+ hasBlob: db.prepare("SELECT 1 FROM blobs WHERE hash = ?")
77
+ };
78
+ }
79
+ init() {
80
+ if (this._initialized) return;
81
+ this.db.exec(SCHEMA_SQL);
82
+ this._prepareStatements();
83
+ this._initialized = true;
84
+ }
85
+ append(op) {
86
+ const payload = JSON.stringify({
87
+ facts: op.facts,
88
+ links: op.links,
89
+ deleteFacts: op.deleteFacts,
90
+ deleteLinks: op.deleteLinks
91
+ });
92
+ this._stmts.insert.run(
93
+ op.hash,
94
+ op.kind,
95
+ op.timestamp,
96
+ op.agentId,
97
+ op.previousHash ?? null,
98
+ payload
99
+ );
100
+ }
101
+ appendBatch(ops) {
102
+ for (const op of ops) {
103
+ this.append(op);
104
+ }
105
+ }
106
+ readAll() {
107
+ const rows = this._stmts.readAll.all();
108
+ return rows.map(this._rowToOp);
109
+ }
110
+ readUntil(opHash) {
111
+ const row = this._stmts.getByHash.get(opHash);
112
+ if (!row) return [];
113
+ const rows = this._stmts.readUntil.all(opHash);
114
+ return rows.map(this._rowToOp);
115
+ }
116
+ readUntilTimestamp(isoTimestamp) {
117
+ const rows = this.db.prepare("SELECT * FROM ops WHERE timestamp <= ? ORDER BY timestamp ASC").all(isoTimestamp);
118
+ return rows.map(this._rowToOp);
119
+ }
120
+ readAfter(opHash) {
121
+ const row = this._stmts.getByHash.get(opHash);
122
+ if (!row) return this.readAll();
123
+ const rows = this._stmts.readAfter.all(opHash);
124
+ return rows.map(this._rowToOp);
125
+ }
126
+ getByHash(hash) {
127
+ return this.getOpByHash(hash);
128
+ }
129
+ getOpByHash(hash) {
130
+ const row = this._stmts.getByHash.get(hash);
131
+ return row ? this._rowToOp(row) : void 0;
132
+ }
133
+ getLastOp() {
134
+ const row = this._stmts.getLast.get();
135
+ return row ? this._rowToOp(row) : void 0;
136
+ }
137
+ getOpCount() {
138
+ const row = this._stmts.count.get();
139
+ return row?.count ?? 0;
140
+ }
141
+ count() {
142
+ return this.getOpCount();
143
+ }
144
+ saveSnapshot(lastOpHash, data) {
145
+ this._stmts.saveSnapshot.run(
146
+ lastOpHash,
147
+ JSON.stringify(data),
148
+ (/* @__PURE__ */ new Date()).toISOString()
149
+ );
150
+ }
151
+ loadLatestSnapshot() {
152
+ const row = this._stmts.loadLatestSnapshot.get();
153
+ if (!row) return void 0;
154
+ return {
155
+ lastOpHash: row.last_op_hash,
156
+ data: JSON.parse(row.data)
157
+ };
158
+ }
159
+ putBlob(hash, content) {
160
+ this._stmts.putBlob.run(hash, Buffer.from(content));
161
+ }
162
+ getBlob(hash) {
163
+ const row = this._stmts.getBlob.get(hash);
164
+ if (!row) return void 0;
165
+ return new Uint8Array(row.content);
166
+ }
167
+ hasBlob(hash) {
168
+ const row = this._stmts.hasBlob.get(hash);
169
+ return !!row;
170
+ }
171
+ findCommonAncestor(hashA, hashB) {
172
+ const ancestorsA = /* @__PURE__ */ new Set();
173
+ let cursor = hashA;
174
+ while (cursor) {
175
+ ancestorsA.add(cursor);
176
+ const op = this.getOpByHash(cursor);
177
+ cursor = op?.previousHash;
178
+ }
179
+ cursor = hashB;
180
+ while (cursor) {
181
+ if (ancestorsA.has(cursor)) {
182
+ return this.getOpByHash(cursor);
183
+ }
184
+ const op = this.getOpByHash(cursor);
185
+ cursor = op?.previousHash;
186
+ }
187
+ return void 0;
188
+ }
189
+ close() {
190
+ this.db?.close();
191
+ }
192
+ _rowToOp(row) {
193
+ const payload = JSON.parse(row.payload);
194
+ return {
195
+ hash: row.hash,
196
+ kind: row.kind,
197
+ timestamp: row.timestamp,
198
+ agentId: row.agent_id,
199
+ previousHash: row.previous_hash ?? void 0,
200
+ facts: payload.facts,
201
+ links: payload.links,
202
+ deleteFacts: payload.deleteFacts,
203
+ deleteLinks: payload.deleteLinks
204
+ };
205
+ }
206
+ };
207
+ export {
208
+ BetterSqliteKernelBackend
209
+ };
@@ -1,10 +1,8 @@
1
- // @bun
2
1
  import {
3
2
  __require
4
- } from "./index-a76rekgs.js";
3
+ } from "./chunk-KFQGP6VL.js";
5
4
 
6
5
  // src/core/persist/better-sqlite-backend.ts
7
- var __filename = "/Users/trentbrew/TURTLE/Projects/Packages/trellis-package/src/core/persist/better-sqlite-backend.ts";
8
6
  var SCHEMA_SQL = `
9
7
  CREATE TABLE IF NOT EXISTS ops (
10
8
  hash TEXT PRIMARY KEY,
@@ -33,8 +31,7 @@ CREATE INDEX IF NOT EXISTS idx_ops_agent ON ops(agent_id);
33
31
  CREATE INDEX IF NOT EXISTS idx_ops_previous ON ops(previous_hash);
34
32
  CREATE INDEX IF NOT EXISTS idx_snapshots_op ON snapshots(last_op_hash);
35
33
  `;
36
-
37
- class BetterSqliteKernelBackend {
34
+ var BetterSqliteKernelBackend = class {
38
35
  db;
39
36
  _stmts;
40
37
  _initialized = false;
@@ -45,27 +42,38 @@ class BetterSqliteKernelBackend {
45
42
  const Database = req("better-sqlite3");
46
43
  this.db = new Database(dbPath);
47
44
  } catch (e) {
48
- throw new Error(`Failed to initialize SQLite backend: ${e instanceof Error ? e.message : "Unknown error"}. ` + "Ensure better-sqlite3 is installed: npm install better-sqlite3");
45
+ throw new Error(
46
+ `Failed to initialize SQLite backend: ${e instanceof Error ? e.message : "Unknown error"}. Ensure better-sqlite3 is installed: npm install better-sqlite3`
47
+ );
49
48
  }
50
49
  this._stmts = this._prepareStatements();
51
50
  }
52
51
  _prepareStatements() {
53
52
  const db = this.db;
54
53
  return {
55
- insert: db.prepare("INSERT OR REPLACE INTO ops (hash, kind, timestamp, agent_id, previous_hash, payload) VALUES (?, ?, ?, ?, ?, ?)"),
54
+ insert: db.prepare(
55
+ "INSERT OR REPLACE INTO ops (hash, kind, timestamp, agent_id, previous_hash, payload) VALUES (?, ?, ?, ?, ?, ?)"
56
+ ),
56
57
  readAll: db.prepare("SELECT * FROM ops ORDER BY timestamp ASC"),
57
- readUntil: db.prepare("SELECT * FROM ops WHERE timestamp <= (SELECT timestamp FROM ops WHERE hash = ?) ORDER BY timestamp ASC"),
58
- readAfter: db.prepare("SELECT * FROM ops WHERE timestamp > (SELECT timestamp FROM ops WHERE hash = ?) ORDER BY timestamp ASC"),
58
+ readUntil: db.prepare(
59
+ "SELECT * FROM ops WHERE timestamp <= (SELECT timestamp FROM ops WHERE hash = ?) ORDER BY timestamp ASC"
60
+ ),
61
+ readAfter: db.prepare(
62
+ "SELECT * FROM ops WHERE timestamp > (SELECT timestamp FROM ops WHERE hash = ?) ORDER BY timestamp ASC"
63
+ ),
59
64
  getByHash: db.prepare("SELECT * FROM ops WHERE hash = ?"),
60
65
  getLast: db.prepare("SELECT * FROM ops ORDER BY timestamp DESC LIMIT 1"),
61
66
  count: db.prepare("SELECT COUNT(*) as count FROM ops"),
62
- saveSnapshot: db.prepare("INSERT INTO snapshots (last_op_hash, data, created_at) VALUES (?, ?, ?)"),
63
- loadLatestSnapshot: db.prepare("SELECT * FROM snapshots ORDER BY id DESC LIMIT 1")
67
+ saveSnapshot: db.prepare(
68
+ "INSERT INTO snapshots (last_op_hash, data, created_at) VALUES (?, ?, ?)"
69
+ ),
70
+ loadLatestSnapshot: db.prepare(
71
+ "SELECT * FROM snapshots ORDER BY id DESC LIMIT 1"
72
+ )
64
73
  };
65
74
  }
66
75
  init() {
67
- if (this._initialized)
68
- return;
76
+ if (this._initialized) return;
69
77
  this.db.exec(SCHEMA_SQL);
70
78
  this._initialized = true;
71
79
  }
@@ -76,7 +84,14 @@ class BetterSqliteKernelBackend {
76
84
  deleteFacts: op.deleteFacts,
77
85
  deleteLinks: op.deleteLinks
78
86
  });
79
- this._stmts.insert.run(op.hash, op.kind, op.timestamp, op.agentId, op.previousHash ?? null, payload);
87
+ this._stmts.insert.run(
88
+ op.hash,
89
+ op.kind,
90
+ op.timestamp,
91
+ op.agentId,
92
+ op.previousHash ?? null,
93
+ payload
94
+ );
80
95
  }
81
96
  readAll() {
82
97
  const rows = this._stmts.readAll.all();
@@ -84,8 +99,7 @@ class BetterSqliteKernelBackend {
84
99
  }
85
100
  readUntil(opHash) {
86
101
  const row = this._stmts.getByHash.get(opHash);
87
- if (!row)
88
- return [];
102
+ if (!row) return [];
89
103
  const rows = this._stmts.readUntil.all(opHash);
90
104
  return rows.map(this._rowToOp);
91
105
  }
@@ -95,30 +109,28 @@ class BetterSqliteKernelBackend {
95
109
  }
96
110
  readAfter(opHash) {
97
111
  const row = this._stmts.getByHash.get(opHash);
98
- if (!row)
99
- return this.readAll();
112
+ if (!row) return this.readAll();
100
113
  const rows = this._stmts.readAfter.all(opHash);
101
114
  return rows.map(this._rowToOp);
102
115
  }
103
116
  getByHash(hash) {
104
117
  const row = this._stmts.getByHash.get(hash);
105
- return row ? this._rowToOp(row) : undefined;
118
+ return row ? this._rowToOp(row) : void 0;
106
119
  }
107
120
  getLastOp() {
108
121
  const row = this._stmts.getLast.get();
109
- return row ? this._rowToOp(row) : undefined;
122
+ return row ? this._rowToOp(row) : void 0;
110
123
  }
111
124
  getOpCount() {
112
125
  const row = this._stmts.count.get();
113
126
  return row?.count ?? 0;
114
127
  }
115
128
  saveSnapshot(hash, data) {
116
- this._stmts.saveSnapshot.run(hash, data, new Date().toISOString());
129
+ this._stmts.saveSnapshot.run(hash, data, (/* @__PURE__ */ new Date()).toISOString());
117
130
  }
118
131
  loadLatestSnapshot() {
119
132
  const row = this._stmts.loadLatestSnapshot.get();
120
- if (!row)
121
- return;
133
+ if (!row) return void 0;
122
134
  return {
123
135
  lastOpHash: row.last_op_hash,
124
136
  data: row.data
@@ -134,14 +146,14 @@ class BetterSqliteKernelBackend {
134
146
  kind: row.kind,
135
147
  timestamp: row.timestamp,
136
148
  agentId: row.agent_id,
137
- previousHash: row.previous_hash ?? undefined,
149
+ previousHash: row.previous_hash ?? void 0,
138
150
  facts: payload.facts,
139
151
  links: payload.links,
140
152
  deleteFacts: payload.deleteFacts,
141
153
  deleteLinks: payload.deleteLinks
142
154
  };
143
155
  }
144
- }
156
+ };
145
157
  export {
146
158
  BetterSqliteKernelBackend
147
159
  };