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.
- package/CHANGELOG.md +16 -5
- package/README.md +19 -2
- package/bin/trellis.mjs +2 -75
- package/dist/better-sqlite-backend-2P4F6AOJ.js +209 -0
- package/dist/{better-sqlite-backend-ahx5p0br.js → better-sqlite-backend-PII64VE6.js} +37 -25
- package/dist/better-sqlite-backend-VUBVQ7SN.js +209 -0
- package/dist/better-sqlite-backend-Y3AQN65E.js +159 -0
- package/dist/better-sqlite-backend-Y3M7DXOX.js +159 -0
- package/dist/boot-middleware-FJDGVUM4.js +9 -0
- package/dist/boot-middleware-MHLHFCUC.js +9 -0
- package/dist/boot-middleware-MLJUTLUM.js +9 -0
- package/dist/boot-middleware-ZZPDZNYR.js +9 -0
- package/dist/{index-wncptktd.js → chunk-276LKLZR.js} +126 -59
- package/dist/chunk-2BRTCEHB.js +143 -0
- package/dist/chunk-2CX5UCRV.js +111 -0
- package/dist/chunk-2ESYSVXG.js +48 -0
- package/dist/{index-yp88he8n.js → chunk-2I5JU73Y.js} +88 -64
- package/dist/{index-w5wccer3.js → chunk-2UNSRRNB.js} +10 -5
- package/dist/{index-4wxa8xz4.js → chunk-335UEHQR.js} +158 -22
- package/dist/chunk-36VSSTL7.js +357 -0
- package/dist/chunk-3ETIIPPB.js +1077 -0
- package/dist/chunk-3GDRZTAW.js +45 -0
- package/dist/chunk-44FFQKQX.js +142 -0
- package/dist/chunk-4CF2L46N.js +29 -0
- package/dist/chunk-4HYPLFJD.js +150 -0
- package/dist/chunk-4XIVMVHC.js +361 -0
- package/dist/chunk-5CINODKT.js +41 -0
- package/dist/chunk-5ESGWJ5L.js +45 -0
- package/dist/chunk-5FGLQGMF.js +1676 -0
- package/dist/chunk-5IQZFITY.js +357 -0
- package/dist/{index-wt8rz4gn.js → chunk-5JWFAQDW.js} +41 -23
- package/dist/{index-7pjz3tsy.js → chunk-62UHTVU3.js} +50 -16
- package/dist/{index-h32txmxe.js → chunk-66UJQT2I.js} +6 -13
- package/dist/chunk-6CTA6MCE.js +340 -0
- package/dist/{index-4cdr7x2x.js → chunk-6RNNVOAS.js} +178 -109
- package/dist/chunk-6X23PZ6H.js +969 -0
- package/dist/chunk-7C7LL6MB.js +315 -0
- package/dist/chunk-7F4HM3JG.js +394 -0
- package/dist/chunk-7KJ7T4D3.js +910 -0
- package/dist/chunk-7QQQNUB5.js +92 -0
- package/dist/{index-53f3b8p8.js → chunk-7QWJBS72.js} +210 -165
- package/dist/chunk-7R36OZK3.js +957 -0
- package/dist/chunk-7UPKCOHE.js +946 -0
- package/dist/chunk-7WQGTFVJ.js +7434 -0
- package/dist/chunk-A3BONW34.js +35 -0
- package/dist/chunk-AHMDVHBL.js +141 -0
- package/dist/chunk-AW6A4OZY.js +171 -0
- package/dist/chunk-B3ZIFA2O.js +2240 -0
- package/dist/chunk-BJ5EKCJ5.js +458 -0
- package/dist/chunk-BJ7EZ7FP.js +145 -0
- package/dist/chunk-BQBUVMRN.js +171 -0
- package/dist/chunk-BRGYDO7D.js +223 -0
- package/dist/chunk-BXSTJVE3.js +67 -0
- package/dist/chunk-C5KPSEDN.js +359 -0
- package/dist/chunk-CCTNYTUC.js +940 -0
- package/dist/chunk-CYQ2OVD2.js +35 -0
- package/dist/chunk-DDAK7YOE.js +299 -0
- package/dist/chunk-DRILKBY6.js +965 -0
- package/dist/chunk-DXE24HNN.js +45 -0
- package/dist/chunk-E7ICUNW7.js +945 -0
- package/dist/chunk-EAL2PUOE.js +10022 -0
- package/dist/chunk-ELT7MLZB.js +109 -0
- package/dist/chunk-EO3J7GRP.js +0 -0
- package/dist/chunk-EWEIRF6G.js +171 -0
- package/dist/chunk-F5VDGQJC.js +120 -0
- package/dist/chunk-FCPL3IEQ.js +98 -0
- package/dist/{index-nq520y6k.js → chunk-FDPKYSV7.js} +43 -31
- package/dist/chunk-FES3TC24.js +171 -0
- package/dist/chunk-FF36CQHZ.js +61 -0
- package/dist/chunk-FKQO5A3H.js +35 -0
- package/dist/chunk-FOWKR5TW.js +129 -0
- package/dist/chunk-FZVCXDYW.js +150 -0
- package/dist/chunk-G3XIHPSQ.js +361 -0
- package/dist/chunk-GD5QJXSS.js +98 -0
- package/dist/chunk-GFZCJ4EH.js +108 -0
- package/dist/chunk-GKJLYLVU.js +359 -0
- package/dist/chunk-GLM4HGN4.js +55 -0
- package/dist/chunk-GNXHXNVQ.js +113 -0
- package/dist/chunk-GSR6ILTM.js +277 -0
- package/dist/chunk-GWRIMRSX.js +45 -0
- package/dist/chunk-H72UW2HJ.js +45 -0
- package/dist/chunk-HGI74PXB.js +7417 -0
- package/dist/chunk-HGRA37LO.js +145 -0
- package/dist/chunk-HO4TURXW.js +1078 -0
- package/dist/chunk-HXSRQO3L.js +145 -0
- package/dist/chunk-IG2X2BVO.js +373 -0
- package/dist/chunk-IIJVDD54.js +373 -0
- package/dist/chunk-IUWVEEOX.js +145 -0
- package/dist/chunk-IX4BBOIT.js +394 -0
- package/dist/{index-yhwjgfvj.js → chunk-IXU4RMQM.js} +67 -60
- package/dist/chunk-J3WYZO3Q.js +211 -0
- package/dist/{index-vkpkfwhq.js → chunk-J6OUIION.js} +234 -194
- package/dist/{index-xzym9w0m.js → chunk-JA7AIHRK.js} +12 -7
- package/dist/chunk-JUEMDWLU.js +233 -0
- package/dist/chunk-K46RNFDE.js +171 -0
- package/dist/chunk-KAGU2XMY.js +359 -0
- package/dist/chunk-KCVYJNVX.js +394 -0
- package/dist/chunk-KFQGP6VL.js +33 -0
- package/dist/chunk-KKDRMIV6.js +419 -0
- package/dist/chunk-KQ4A2D2P.js +910 -0
- package/dist/chunk-KSU2GW22.js +958 -0
- package/dist/chunk-KYLIQ3YI.js +399 -0
- package/dist/chunk-KZYJJIRN.js +946 -0
- package/dist/chunk-LFOX744K.js +96 -0
- package/dist/{index-rv1p47gp.js → chunk-LHOVJEWR.js} +2756 -2307
- package/dist/{index-h9e2efx4.js → chunk-LNUIGRDZ.js} +71 -55
- package/dist/chunk-LOPXTPF3.js +120 -0
- package/dist/chunk-LZR3VIFU.js +907 -0
- package/dist/chunk-MBNBTJCR.js +394 -0
- package/dist/chunk-MCKGQKYU.js +15 -0
- package/dist/{index-skhn0agf.js → chunk-MLC5BUYO.js} +19 -20
- package/dist/chunk-MPXUVGT3.js +104 -0
- package/dist/chunk-MU6EOS6F.js +0 -0
- package/dist/chunk-MWRQ2TXT.js +357 -0
- package/dist/{index-nzb3am4f.js → chunk-NO73OK2I.js} +43 -21
- package/dist/chunk-NPE2YJHK.js +394 -0
- package/dist/{index-xhcp6xrn.js → chunk-NSDXU6QX.js} +654 -500
- package/dist/chunk-NXIRDSZ6.js +145 -0
- package/dist/chunk-NZWFNHCS.js +407 -0
- package/dist/chunk-O2AV5WMN.js +48 -0
- package/dist/{index-h7zxhhhh.js → chunk-OB4CMMX6.js} +46 -38
- package/dist/chunk-OBKU74FU.js +7411 -0
- package/dist/chunk-OQNDWRDE.js +145 -0
- package/dist/chunk-OVWAJMB6.js +394 -0
- package/dist/chunk-PDHLBTTD.js +45 -0
- package/dist/chunk-PEQNRKLG.js +210 -0
- package/dist/chunk-QERIS7QY.js +7403 -0
- package/dist/chunk-QHA2DM3C.js +373 -0
- package/dist/chunk-QLM4HSYC.js +45 -0
- package/dist/chunk-RSWUFTO2.js +857 -0
- package/dist/chunk-S2OT3TQJ.js +283 -0
- package/dist/chunk-S5PHSN5K.js +907 -0
- package/dist/chunk-SIAA4J6H.js +21 -0
- package/dist/chunk-SPSPV5BC.js +390 -0
- package/dist/chunk-SQBNLUIA.js +171 -0
- package/dist/chunk-STLN6A6B.js +355 -0
- package/dist/chunk-TCKXSOBP.js +123 -0
- package/dist/chunk-U7HV7GU2.js +17 -0
- package/dist/chunk-UBGUDMUV.js +59 -0
- package/dist/chunk-UGZHOGRA.js +39 -0
- package/dist/chunk-UICF66FS.js +359 -0
- package/dist/chunk-UK3EQREE.js +1078 -0
- package/dist/chunk-UPKPURVY.js +394 -0
- package/dist/chunk-URC74VCN.js +959 -0
- package/dist/chunk-USEINYUL.js +12 -0
- package/dist/{index-bmyt7k8n.js → chunk-UZRUP7QW.js} +12 -4
- package/dist/chunk-V3G7Q3QQ.js +102 -0
- package/dist/chunk-VDAKEOML.js +857 -0
- package/dist/chunk-VUJ6SA55.js +303 -0
- package/dist/chunk-VUJQLIML.js +141 -0
- package/dist/chunk-VWKLKLYB.js +267 -0
- package/dist/chunk-VYC3RZMK.js +277 -0
- package/dist/chunk-WMERMSWI.js +154 -0
- package/dist/chunk-WMR777PO.js +2213 -0
- package/dist/{index-n9f2qyh5.js → chunk-X46IECAC.js} +55 -33
- package/dist/chunk-X5FLTRUB.js +517 -0
- package/dist/chunk-X762XWVC.js +419 -0
- package/dist/chunk-XEN3OEYY.js +2234 -0
- package/dist/chunk-XMQ7G77X.js +260 -0
- package/dist/chunk-XZQ66K7A.js +124 -0
- package/dist/{index-w7ng765c.js → chunk-YCM7ZYEZ.js} +102 -49
- package/dist/chunk-YY3GF7DH.js +7411 -0
- package/dist/chunk-ZE5R3H4C.js +907 -0
- package/dist/chunk-ZHVI7BQN.js +1077 -0
- package/dist/chunk-ZMN5LUB7.js +7411 -0
- package/dist/chunk-ZUV4MD5U.js +94 -0
- package/dist/cli/errors.d.ts +6 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/examples.d.ts +23 -0
- package/dist/cli/examples.d.ts.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2338 -6190
- package/dist/client/index.d.ts +6 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +41 -21
- package/dist/client/live.d.ts +67 -0
- package/dist/client/live.d.ts.map +1 -0
- package/dist/client/reactive.d.ts +31 -0
- package/dist/client/reactive.d.ts.map +1 -0
- package/dist/client/sdk.d.ts +26 -2
- package/dist/client/sdk.d.ts.map +1 -1
- package/dist/client/sdk.js +9 -0
- package/dist/client/vcs-client.d.ts +129 -0
- package/dist/client/vcs-client.d.ts.map +1 -0
- package/dist/cms/index.js +171 -163
- package/dist/{config-8hczw0rs.js → config-KMY6RRK3.js} +8 -9
- package/dist/config-PFTP67TR.js +19 -0
- package/dist/config-VDMK2DUJ.js +19 -0
- package/dist/core/computation/index.d.ts +5 -0
- package/dist/core/computation/index.d.ts.map +1 -0
- package/dist/core/computation/rollup.d.ts +18 -0
- package/dist/core/computation/rollup.d.ts.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +168 -101
- package/dist/core/kernel/boot-middleware.d.ts +10 -0
- package/dist/core/kernel/boot-middleware.d.ts.map +1 -0
- package/dist/core/kernel/logic-middleware.d.ts +7 -1
- package/dist/core/kernel/logic-middleware.d.ts.map +1 -1
- package/dist/core/kernel/trellis-kernel.d.ts.map +1 -1
- package/dist/core/ontology/types.d.ts +5 -0
- package/dist/core/ontology/types.d.ts.map +1 -1
- package/dist/core/persist/better-sqlite-backend.d.ts +9 -2
- package/dist/core/persist/better-sqlite-backend.d.ts.map +1 -1
- package/dist/core/persist/factory.d.ts +6 -7
- package/dist/core/persist/factory.d.ts.map +1 -1
- package/dist/core/persist/factory.js +2 -3
- package/dist/core/persist/sqljs-backend.js +2 -3
- package/dist/db/index.d.ts +4 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +69 -56
- package/dist/db/inspector.js +11 -19
- package/dist/decisions/index.js +9 -10
- package/dist/deploy-66EC752W.js +9 -0
- package/dist/deploy-SO7AFK6L.js +9 -0
- package/dist/embeddings/auto-embed.d.ts +2 -2
- package/dist/embeddings/auto-embed.d.ts.map +1 -1
- package/dist/embeddings/index.js +20 -22
- package/dist/embeddings/search.d.ts +2 -1
- package/dist/embeddings/search.d.ts.map +1 -1
- package/dist/embeddings/store.d.ts +25 -4
- package/dist/embeddings/store.d.ts.map +1 -1
- package/dist/engine-7GXBM4IT.js +7 -0
- package/dist/engine-NSR6BIF7.js +7 -0
- package/dist/engine.d.ts +32 -12
- package/dist/engine.d.ts.map +1 -1
- package/dist/factory-2P64OC7M.js +34 -0
- package/dist/factory-YP4ZZK5K.js +34 -0
- package/dist/import-AJLYHFIA.js +10 -0
- package/dist/import-UZEKXU3B.js +10 -0
- package/dist/index.js +102 -93
- package/dist/launch-explorer-AI6L2AWJ.js +91 -0
- package/dist/launch-explorer-HZ4ZJA4X.js +95 -0
- package/dist/links/index.js +24 -26
- package/dist/plugins/agent-memory/index.js +316 -0
- package/dist/plugins/idea-garden/index.js +165 -0
- package/dist/plugins/plan-approval/index.js +579 -0
- package/dist/plugins/proactive-watcher/index.js +194 -0
- package/dist/{index-2r4jxwnb.js → query-GJL3CVGN.js} +14 -15
- package/dist/query-MBJSK3EB.js +31 -0
- package/dist/query-TJHEVSKL.js +31 -0
- package/dist/query-WUIKOHPE.js +524 -0
- package/dist/query-XYLTJYSA.js +31 -0
- package/dist/react/index.js +39 -70
- package/dist/react/realtime.js +11 -0
- package/dist/react/schema-hooks.js +87 -0
- package/dist/realtime/broadcast-channel-transport.d.ts +43 -0
- package/dist/realtime/broadcast-channel-transport.d.ts.map +1 -0
- package/dist/realtime/durable-object-relay-transport.d.ts +96 -0
- package/dist/realtime/durable-object-relay-transport.d.ts.map +1 -0
- package/dist/realtime/index.d.ts +44 -0
- package/dist/realtime/index.d.ts.map +1 -0
- package/dist/realtime/index.js +40 -0
- package/dist/realtime/memory-hub.d.ts +32 -0
- package/dist/realtime/memory-hub.d.ts.map +1 -0
- package/dist/realtime/persistent-channel.d.ts +105 -0
- package/dist/realtime/persistent-channel.d.ts.map +1 -0
- package/dist/realtime/presence.d.ts +73 -0
- package/dist/realtime/presence.d.ts.map +1 -0
- package/dist/realtime/relay-persistence.d.ts +37 -0
- package/dist/realtime/relay-persistence.d.ts.map +1 -0
- package/dist/realtime/relay-persistence.js +107 -0
- package/dist/realtime/relay-server.d.ts +103 -0
- package/dist/realtime/relay-server.d.ts.map +1 -0
- package/dist/realtime/room.d.ts +98 -0
- package/dist/realtime/room.d.ts.map +1 -0
- package/dist/realtime/text.d.ts +73 -0
- package/dist/realtime/text.d.ts.map +1 -0
- package/dist/realtime/types.d.ts +89 -0
- package/dist/realtime/types.d.ts.map +1 -0
- package/dist/realtime/websocket-relay-transport.d.ts +28 -0
- package/dist/realtime/websocket-relay-transport.d.ts.map +1 -0
- package/dist/realtime.bundle.js +1100 -0
- package/dist/remote-manager-BLJZ6KF6.js +224 -0
- package/dist/{remote-manager-xvbg4230.js → remote-manager-BPYE46SI.js} +24 -15
- package/dist/remote-manager-FMESEAFA.js +224 -0
- package/dist/remote-manager-K2WZ5RHY.js +223 -0
- package/dist/remote-manager-SG545WNY.js +224 -0
- package/dist/remote-manager-SG5PQKCH.js +224 -0
- package/dist/remote-manager-WGP6MIQZ.js +224 -0
- package/dist/scaffold/write.d.ts.map +1 -1
- package/dist/schema/define.d.ts +137 -0
- package/dist/schema/define.d.ts.map +1 -0
- package/dist/schema/entity-projection.d.ts +34 -0
- package/dist/schema/entity-projection.d.ts.map +1 -0
- package/dist/schema/eql.d.ts +46 -0
- package/dist/schema/eql.d.ts.map +1 -0
- package/dist/schema/index.d.ts +21 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +45 -0
- package/dist/schema/kernel-resolve.d.ts +21 -0
- package/dist/schema/kernel-resolve.d.ts.map +1 -0
- package/dist/schema/mutations.d.ts +20 -0
- package/dist/schema/mutations.d.ts.map +1 -0
- package/dist/schema/resolve.d.ts +21 -0
- package/dist/schema/resolve.d.ts.map +1 -0
- package/dist/sdk-3KBB3E6V.js +16 -0
- package/dist/sdk-4ZQO6UTU.js +16 -0
- package/dist/sdk-6JA6GV3G.js +16 -0
- package/dist/sdk-6VTP5UTZ.js +16 -0
- package/dist/sdk-7VS6TYCD.js +16 -0
- package/dist/sdk-HQ3FTLRT.js +16 -0
- package/dist/sdk-HZ7NU3XE.js +15 -0
- package/dist/sdk-KBQE2OXT.js +16 -0
- package/dist/sdk-LZ7W3EEY.js +9 -0
- package/dist/sdk-MSCDZ7JU.js +15 -0
- package/dist/sdk-WNZOGO3S.js +15 -0
- package/dist/sdk-YLV33ZCW.js +9 -0
- package/dist/sdk-ZSUD2LLJ.js +16 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +69 -61
- package/dist/server/node-adapter.js +5 -104
- package/dist/server/realtime.d.ts +10 -2
- package/dist/server/realtime.d.ts.map +1 -1
- package/dist/server/server.d.ts +7 -16
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/sprites.d.ts.map +1 -1
- package/dist/server/tenancy.d.ts.map +1 -1
- package/dist/server-AFXFFBWA.js +11 -0
- package/dist/server-AGHC4VUL.js +11 -0
- package/dist/server-BOH7M4TT.js +13 -0
- package/dist/server-DBUY2KY5.js +11 -0
- package/dist/server-GWBQJPRG.js +11 -0
- package/dist/server-IGBIIJSF.js +13 -0
- package/dist/server-JZZFULVU.js +11 -0
- package/dist/server-L5XAF4M5.js +11 -0
- package/dist/server-NYFUHANA.js +12 -0
- package/dist/server-OABUB2LO.js +12 -0
- package/dist/server-P2CKZWWV.js +12 -0
- package/dist/{sprites-vc4qbrp1.js → sprites-RU3E4XQN.js} +6 -7
- package/dist/sprites-XVSMQLSI.js +15 -0
- package/dist/sql-wasm-FORCZFHZ.js +2148 -0
- package/dist/sql-wasm-JZH76RLO.js +2148 -0
- package/dist/sqljs-backend-CJQOIQYE.js +266 -0
- package/dist/sqljs-backend-KWXBUDUO.js +266 -0
- package/dist/state-demo.bundle.js +1033 -0
- package/dist/svelte/index.d.ts +17 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +51 -0
- package/dist/svelte/schema-hooks.d.ts +45 -0
- package/dist/svelte/schema-hooks.d.ts.map +1 -0
- package/dist/svelte/schema-hooks.js +71 -0
- package/dist/svelte/stores.d.ts +78 -0
- package/dist/svelte/stores.d.ts.map +1 -0
- package/dist/sync/http-transport.d.ts +3 -3
- package/dist/sync/http-transport.d.ts.map +1 -1
- package/dist/sync/index.d.ts +15 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +617 -0
- package/dist/sync/memory-room.d.ts +37 -0
- package/dist/sync/memory-room.d.ts.map +1 -0
- package/dist/sync/memory-transport.d.ts +3 -3
- package/dist/sync/memory-transport.d.ts.map +1 -1
- package/dist/sync/partykit-room.d.ts +40 -0
- package/dist/sync/partykit-room.d.ts.map +1 -0
- package/dist/sync/partykit-transport.d.ts +84 -0
- package/dist/sync/partykit-transport.d.ts.map +1 -0
- package/dist/sync/room-core.d.ts +53 -0
- package/dist/sync/room-core.d.ts.map +1 -0
- package/dist/sync/sync-engine.d.ts +40 -2
- package/dist/sync/sync-engine.d.ts.map +1 -1
- package/dist/sync/sync-room-server.d.ts +39 -0
- package/dist/sync/sync-room-server.d.ts.map +1 -0
- package/dist/sync/types.d.ts +70 -3
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/vcs-sync-peer.d.ts +63 -0
- package/dist/sync/vcs-sync-peer.d.ts.map +1 -0
- package/dist/sync/ws-transport.d.ts +2 -2
- package/dist/sync/ws-transport.d.ts.map +1 -1
- package/dist/tenancy-CBWYEVUB.js +11 -0
- package/dist/tenancy-FO6WVYFN.js +13 -0
- package/dist/tenancy-FWDBESMX.js +14 -0
- package/dist/tenancy-HGPIS5QA.js +13 -0
- package/dist/tenancy-HXFALA37.js +14 -0
- package/dist/tenancy-OP34NFFS.js +14 -0
- package/dist/tenancy-S676GLID.js +14 -0
- package/dist/tenancy-V7ARWNNV.js +14 -0
- package/dist/tenancy-ZDN4GXK5.js +13 -0
- package/dist/tenancy-ZT5VMY7B.js +14 -0
- package/dist/ui/client.html +355 -67
- package/dist/ui/launch-explorer.d.ts +22 -0
- package/dist/ui/launch-explorer.d.ts.map +1 -0
- package/dist/ui/server.d.ts +1 -1
- package/dist/ui/server.d.ts.map +1 -1
- package/dist/vcs/blob-store.d.ts.map +1 -1
- package/dist/vcs/idb-op-log.d.ts +67 -0
- package/dist/vcs/idb-op-log.d.ts.map +1 -0
- package/dist/vcs/index.d.ts +1 -0
- package/dist/vcs/index.d.ts.map +1 -1
- package/dist/vcs/index.js +81 -72
- package/dist/vcs/issue.d.ts +22 -5
- package/dist/vcs/issue.d.ts.map +1 -1
- package/dist/vcs/lane-materialize.d.ts +5 -0
- package/dist/vcs/lane-materialize.d.ts.map +1 -1
- package/dist/vcs/op-log.d.ts +28 -2
- package/dist/vcs/op-log.d.ts.map +1 -1
- package/dist/vcs/ops.d.ts +10 -0
- package/dist/vcs/ops.d.ts.map +1 -1
- package/dist/{vm-config-6xhsj6b3.js → vm-config-JI4OXKDQ.js} +9 -10
- package/dist/vm-config-YZRJ3KUB.js +21 -0
- package/dist/vue/hooks.d.ts +64 -0
- package/dist/vue/hooks.d.ts.map +1 -0
- package/dist/vue/index.d.ts +19 -0
- package/dist/vue/index.d.ts.map +1 -0
- package/dist/vue/index.js +59 -0
- package/dist/vue/schema-hooks.d.ts +41 -0
- package/dist/vue/schema-hooks.d.ts.map +1 -0
- package/dist/vue/schema-hooks.js +64 -0
- package/package.json +118 -16
- package/dist/deploy-999q207z.js +0 -10
- package/dist/engine-y0724kjq.js +0 -8
- package/dist/import-s2b8e0ft.js +0 -11
- package/dist/index-a76rekgs.js +0 -67
- package/dist/index-c9h37r6h.js +0 -1
- package/dist/index-hr9qvv77.js +0 -860
- package/dist/index-k5b0xskw.js +0 -1
- package/dist/index-y6a4kj0p.js +0 -43
- package/dist/sdk-bepky0xs.js +0 -16
- package/dist/server-szdjx0nt.js +0 -13
- package/dist/sqlite-backend-0vsmc6qj.js +0 -8
- package/dist/tenancy-pjm32b4v.js +0 -14
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__require
|
|
3
|
+
} from "./chunk-SIAA4J6H.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
|
+
};
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__require
|
|
3
|
+
} from "./chunk-MCKGQKYU.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
|
+
this._stmts = this._prepareStatements();
|
|
50
|
+
}
|
|
51
|
+
_prepareStatements() {
|
|
52
|
+
const db = this.db;
|
|
53
|
+
return {
|
|
54
|
+
insert: db.prepare(
|
|
55
|
+
"INSERT OR REPLACE INTO ops (hash, kind, timestamp, agent_id, previous_hash, payload) VALUES (?, ?, ?, ?, ?, ?)"
|
|
56
|
+
),
|
|
57
|
+
readAll: db.prepare("SELECT * FROM ops 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
|
+
),
|
|
64
|
+
getByHash: db.prepare("SELECT * FROM ops WHERE hash = ?"),
|
|
65
|
+
getLast: db.prepare("SELECT * FROM ops ORDER BY timestamp DESC LIMIT 1"),
|
|
66
|
+
count: db.prepare("SELECT COUNT(*) as count FROM ops"),
|
|
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
|
+
)
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
init() {
|
|
76
|
+
if (this._initialized) return;
|
|
77
|
+
this.db.exec(SCHEMA_SQL);
|
|
78
|
+
this._initialized = true;
|
|
79
|
+
}
|
|
80
|
+
append(op) {
|
|
81
|
+
const payload = JSON.stringify({
|
|
82
|
+
facts: op.facts,
|
|
83
|
+
links: op.links,
|
|
84
|
+
deleteFacts: op.deleteFacts,
|
|
85
|
+
deleteLinks: op.deleteLinks
|
|
86
|
+
});
|
|
87
|
+
this._stmts.insert.run(
|
|
88
|
+
op.hash,
|
|
89
|
+
op.kind,
|
|
90
|
+
op.timestamp,
|
|
91
|
+
op.agentId,
|
|
92
|
+
op.previousHash ?? null,
|
|
93
|
+
payload
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
readAll() {
|
|
97
|
+
const rows = this._stmts.readAll.all();
|
|
98
|
+
return rows.map(this._rowToOp);
|
|
99
|
+
}
|
|
100
|
+
readUntil(opHash) {
|
|
101
|
+
const row = this._stmts.getByHash.get(opHash);
|
|
102
|
+
if (!row) return [];
|
|
103
|
+
const rows = this._stmts.readUntil.all(opHash);
|
|
104
|
+
return rows.map(this._rowToOp);
|
|
105
|
+
}
|
|
106
|
+
readUntilTimestamp(isoTimestamp) {
|
|
107
|
+
const rows = this.db.prepare("SELECT * FROM ops WHERE timestamp <= ? ORDER BY timestamp ASC").all(isoTimestamp);
|
|
108
|
+
return rows.map(this._rowToOp);
|
|
109
|
+
}
|
|
110
|
+
readAfter(opHash) {
|
|
111
|
+
const row = this._stmts.getByHash.get(opHash);
|
|
112
|
+
if (!row) return this.readAll();
|
|
113
|
+
const rows = this._stmts.readAfter.all(opHash);
|
|
114
|
+
return rows.map(this._rowToOp);
|
|
115
|
+
}
|
|
116
|
+
getByHash(hash) {
|
|
117
|
+
const row = this._stmts.getByHash.get(hash);
|
|
118
|
+
return row ? this._rowToOp(row) : void 0;
|
|
119
|
+
}
|
|
120
|
+
getLastOp() {
|
|
121
|
+
const row = this._stmts.getLast.get();
|
|
122
|
+
return row ? this._rowToOp(row) : void 0;
|
|
123
|
+
}
|
|
124
|
+
getOpCount() {
|
|
125
|
+
const row = this._stmts.count.get();
|
|
126
|
+
return row?.count ?? 0;
|
|
127
|
+
}
|
|
128
|
+
saveSnapshot(hash, data) {
|
|
129
|
+
this._stmts.saveSnapshot.run(hash, data, (/* @__PURE__ */ new Date()).toISOString());
|
|
130
|
+
}
|
|
131
|
+
loadLatestSnapshot() {
|
|
132
|
+
const row = this._stmts.loadLatestSnapshot.get();
|
|
133
|
+
if (!row) return void 0;
|
|
134
|
+
return {
|
|
135
|
+
lastOpHash: row.last_op_hash,
|
|
136
|
+
data: row.data
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
close() {
|
|
140
|
+
this.db?.close();
|
|
141
|
+
}
|
|
142
|
+
_rowToOp(row) {
|
|
143
|
+
const payload = JSON.parse(row.payload);
|
|
144
|
+
return {
|
|
145
|
+
hash: row.hash,
|
|
146
|
+
kind: row.kind,
|
|
147
|
+
timestamp: row.timestamp,
|
|
148
|
+
agentId: row.agent_id,
|
|
149
|
+
previousHash: row.previous_hash ?? void 0,
|
|
150
|
+
facts: payload.facts,
|
|
151
|
+
links: payload.links,
|
|
152
|
+
deleteFacts: payload.deleteFacts,
|
|
153
|
+
deleteLinks: payload.deleteLinks
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
export {
|
|
158
|
+
BetterSqliteKernelBackend
|
|
159
|
+
};
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__require
|
|
3
|
+
} from "./chunk-2ESYSVXG.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
|
+
this._stmts = this._prepareStatements();
|
|
50
|
+
}
|
|
51
|
+
_prepareStatements() {
|
|
52
|
+
const db = this.db;
|
|
53
|
+
return {
|
|
54
|
+
insert: db.prepare(
|
|
55
|
+
"INSERT OR REPLACE INTO ops (hash, kind, timestamp, agent_id, previous_hash, payload) VALUES (?, ?, ?, ?, ?, ?)"
|
|
56
|
+
),
|
|
57
|
+
readAll: db.prepare("SELECT * FROM ops 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
|
+
),
|
|
64
|
+
getByHash: db.prepare("SELECT * FROM ops WHERE hash = ?"),
|
|
65
|
+
getLast: db.prepare("SELECT * FROM ops ORDER BY timestamp DESC LIMIT 1"),
|
|
66
|
+
count: db.prepare("SELECT COUNT(*) as count FROM ops"),
|
|
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
|
+
)
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
init() {
|
|
76
|
+
if (this._initialized) return;
|
|
77
|
+
this.db.exec(SCHEMA_SQL);
|
|
78
|
+
this._initialized = true;
|
|
79
|
+
}
|
|
80
|
+
append(op) {
|
|
81
|
+
const payload = JSON.stringify({
|
|
82
|
+
facts: op.facts,
|
|
83
|
+
links: op.links,
|
|
84
|
+
deleteFacts: op.deleteFacts,
|
|
85
|
+
deleteLinks: op.deleteLinks
|
|
86
|
+
});
|
|
87
|
+
this._stmts.insert.run(
|
|
88
|
+
op.hash,
|
|
89
|
+
op.kind,
|
|
90
|
+
op.timestamp,
|
|
91
|
+
op.agentId,
|
|
92
|
+
op.previousHash ?? null,
|
|
93
|
+
payload
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
readAll() {
|
|
97
|
+
const rows = this._stmts.readAll.all();
|
|
98
|
+
return rows.map(this._rowToOp);
|
|
99
|
+
}
|
|
100
|
+
readUntil(opHash) {
|
|
101
|
+
const row = this._stmts.getByHash.get(opHash);
|
|
102
|
+
if (!row) return [];
|
|
103
|
+
const rows = this._stmts.readUntil.all(opHash);
|
|
104
|
+
return rows.map(this._rowToOp);
|
|
105
|
+
}
|
|
106
|
+
readUntilTimestamp(isoTimestamp) {
|
|
107
|
+
const rows = this.db.prepare("SELECT * FROM ops WHERE timestamp <= ? ORDER BY timestamp ASC").all(isoTimestamp);
|
|
108
|
+
return rows.map(this._rowToOp);
|
|
109
|
+
}
|
|
110
|
+
readAfter(opHash) {
|
|
111
|
+
const row = this._stmts.getByHash.get(opHash);
|
|
112
|
+
if (!row) return this.readAll();
|
|
113
|
+
const rows = this._stmts.readAfter.all(opHash);
|
|
114
|
+
return rows.map(this._rowToOp);
|
|
115
|
+
}
|
|
116
|
+
getByHash(hash) {
|
|
117
|
+
const row = this._stmts.getByHash.get(hash);
|
|
118
|
+
return row ? this._rowToOp(row) : void 0;
|
|
119
|
+
}
|
|
120
|
+
getLastOp() {
|
|
121
|
+
const row = this._stmts.getLast.get();
|
|
122
|
+
return row ? this._rowToOp(row) : void 0;
|
|
123
|
+
}
|
|
124
|
+
getOpCount() {
|
|
125
|
+
const row = this._stmts.count.get();
|
|
126
|
+
return row?.count ?? 0;
|
|
127
|
+
}
|
|
128
|
+
saveSnapshot(hash, data) {
|
|
129
|
+
this._stmts.saveSnapshot.run(hash, data, (/* @__PURE__ */ new Date()).toISOString());
|
|
130
|
+
}
|
|
131
|
+
loadLatestSnapshot() {
|
|
132
|
+
const row = this._stmts.loadLatestSnapshot.get();
|
|
133
|
+
if (!row) return void 0;
|
|
134
|
+
return {
|
|
135
|
+
lastOpHash: row.last_op_hash,
|
|
136
|
+
data: row.data
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
close() {
|
|
140
|
+
this.db?.close();
|
|
141
|
+
}
|
|
142
|
+
_rowToOp(row) {
|
|
143
|
+
const payload = JSON.parse(row.payload);
|
|
144
|
+
return {
|
|
145
|
+
hash: row.hash,
|
|
146
|
+
kind: row.kind,
|
|
147
|
+
timestamp: row.timestamp,
|
|
148
|
+
agentId: row.agent_id,
|
|
149
|
+
previousHash: row.previous_hash ?? void 0,
|
|
150
|
+
facts: payload.facts,
|
|
151
|
+
links: payload.links,
|
|
152
|
+
deleteFacts: payload.deleteFacts,
|
|
153
|
+
deleteLinks: payload.deleteLinks
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
export {
|
|
158
|
+
BetterSqliteKernelBackend
|
|
159
|
+
};
|