@nicia-ai/typegraph 0.44.0 → 0.46.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/dist/backend/drizzle/indexes.cjs +11 -11
- package/dist/backend/drizzle/indexes.d.cts +1 -1
- package/dist/backend/drizzle/indexes.d.ts +1 -1
- package/dist/backend/drizzle/indexes.js +7 -7
- package/dist/backend/index.cjs +53 -54
- package/dist/backend/index.d.cts +3 -3
- package/dist/backend/index.d.ts +3 -3
- package/dist/backend/index.js +13 -14
- package/dist/backend/postgres/index.cjs +29 -30
- package/dist/backend/postgres/index.d.cts +7 -7
- package/dist/backend/postgres/index.d.ts +7 -7
- package/dist/backend/postgres/index.js +16 -17
- package/dist/backend/postgres/pglite-store.cjs +48 -43
- package/dist/backend/postgres/pglite-store.cjs.map +1 -1
- package/dist/backend/postgres/pglite-store.d.cts +15 -9
- package/dist/backend/postgres/pglite-store.d.ts +15 -9
- package/dist/backend/postgres/pglite-store.js +44 -39
- package/dist/backend/postgres/pglite-store.js.map +1 -1
- package/dist/backend/postgres/pglite.cjs +18 -19
- package/dist/backend/postgres/pglite.d.cts +4 -4
- package/dist/backend/postgres/pglite.d.ts +4 -4
- package/dist/backend/postgres/pglite.js +17 -18
- package/dist/backend/sqlite/index.cjs +26 -27
- package/dist/backend/sqlite/index.d.cts +6 -6
- package/dist/backend/sqlite/index.d.ts +6 -6
- package/dist/backend/sqlite/index.js +14 -15
- package/dist/backend/sqlite/libsql.cjs +21 -22
- package/dist/backend/sqlite/libsql.cjs.map +1 -1
- package/dist/backend/sqlite/libsql.d.cts +15 -8
- package/dist/backend/sqlite/libsql.d.ts +15 -8
- package/dist/backend/sqlite/libsql.js +17 -18
- package/dist/backend/sqlite/libsql.js.map +1 -1
- package/dist/backend/sqlite/local-store.cjs +49 -44
- package/dist/backend/sqlite/local-store.cjs.map +1 -1
- package/dist/backend/sqlite/local-store.d.cts +15 -10
- package/dist/backend/sqlite/local-store.d.ts +15 -10
- package/dist/backend/sqlite/local-store.js +45 -40
- package/dist/backend/sqlite/local-store.js.map +1 -1
- package/dist/backend/sqlite/local.cjs +19 -20
- package/dist/backend/sqlite/local.d.cts +3 -3
- package/dist/backend/sqlite/local.d.ts +3 -3
- package/dist/backend/sqlite/local.js +17 -18
- package/dist/{chunk-XMYJY7NI.js → chunk-2LG2XB2M.js} +3 -3
- package/dist/{chunk-XMYJY7NI.js.map → chunk-2LG2XB2M.js.map} +1 -1
- package/dist/{chunk-QGKILWGZ.cjs → chunk-2NA5DYLO.cjs} +4 -4
- package/dist/{chunk-QGKILWGZ.cjs.map → chunk-2NA5DYLO.cjs.map} +1 -1
- package/dist/{chunk-5MUSU4ZP.cjs → chunk-3DHZCOT7.cjs} +20 -20
- package/dist/chunk-3DHZCOT7.cjs.map +1 -0
- package/dist/{chunk-OVUUTCPJ.cjs → chunk-4UGOKMI5.cjs} +268 -150
- package/dist/chunk-4UGOKMI5.cjs.map +1 -0
- package/dist/{chunk-FRHHDHKH.js → chunk-5262ZMTR.js} +26 -5
- package/dist/chunk-5262ZMTR.js.map +1 -0
- package/dist/{chunk-HOIFFY4M.js → chunk-5763DULU.js} +248 -76
- package/dist/chunk-5763DULU.js.map +1 -0
- package/dist/{chunk-7G32LIQM.js → chunk-5UVRGXD3.js} +277 -7
- package/dist/chunk-5UVRGXD3.js.map +1 -0
- package/dist/{chunk-IIT5K7SK.cjs → chunk-62ZP23AW.cjs} +15 -15
- package/dist/{chunk-IIT5K7SK.cjs.map → chunk-62ZP23AW.cjs.map} +1 -1
- package/dist/{chunk-S4KQ5LV4.js → chunk-775A4ZMN.js} +40 -6
- package/dist/chunk-775A4ZMN.js.map +1 -0
- package/dist/{chunk-QYWINYEA.cjs → chunk-7BQXPCGN.cjs} +830 -170
- package/dist/chunk-7BQXPCGN.cjs.map +1 -0
- package/dist/{chunk-FJMPR3OH.cjs → chunk-7EO3TCQB.cjs} +33 -7
- package/dist/chunk-7EO3TCQB.cjs.map +1 -0
- package/dist/chunk-7GT72YHH.cjs +1979 -0
- package/dist/chunk-7GT72YHH.cjs.map +1 -0
- package/dist/{chunk-SQRD2CYF.js → chunk-7VQXLT5O.js} +717 -76
- package/dist/chunk-7VQXLT5O.js.map +1 -0
- package/dist/{chunk-BCP7LLOY.js → chunk-7Z5OR7KO.js} +2706 -625
- package/dist/chunk-7Z5OR7KO.js.map +1 -0
- package/dist/chunk-A4OC4DVN.cjs +12 -0
- package/dist/{chunk-4SZ6XPTG.cjs.map → chunk-A4OC4DVN.cjs.map} +1 -1
- package/dist/{chunk-TDXIBCGY.cjs → chunk-A7J2YDDI.cjs} +5 -3
- package/dist/chunk-A7J2YDDI.cjs.map +1 -0
- package/dist/{chunk-FMMIX6N4.js → chunk-AKLS3BYZ.js} +56 -5
- package/dist/chunk-AKLS3BYZ.js.map +1 -0
- package/dist/{chunk-D7PG5D5K.js → chunk-AMKPPFUO.js} +32 -6
- package/dist/chunk-AMKPPFUO.js.map +1 -0
- package/dist/{chunk-PAW2XUZN.js → chunk-ASTI57H3.js} +3 -3
- package/dist/{chunk-PAW2XUZN.js.map → chunk-ASTI57H3.js.map} +1 -1
- package/dist/{chunk-FMGEZBAQ.js → chunk-BKCUOV7A.js} +27 -5
- package/dist/chunk-BKCUOV7A.js.map +1 -0
- package/dist/chunk-BSFJMMV3.cjs +268 -0
- package/dist/chunk-BSFJMMV3.cjs.map +1 -0
- package/dist/{chunk-63KCKSSH.js → chunk-C23WSN5E.js} +209 -24
- package/dist/chunk-C23WSN5E.js.map +1 -0
- package/dist/{chunk-JRP3VGHS.js → chunk-CBTIUB76.js} +3 -3
- package/dist/{chunk-JRP3VGHS.js.map → chunk-CBTIUB76.js.map} +1 -1
- package/dist/chunk-CNV4TXJG.js +58 -0
- package/dist/chunk-CNV4TXJG.js.map +1 -0
- package/dist/{chunk-QB6VMOJ2.cjs → chunk-CXBHOOIQ.cjs} +45 -10
- package/dist/chunk-CXBHOOIQ.cjs.map +1 -0
- package/dist/{chunk-46GDII45.js → chunk-DCQVHAYQ.js} +5 -5
- package/dist/{chunk-46GDII45.js.map → chunk-DCQVHAYQ.js.map} +1 -1
- package/dist/chunk-DLNROMQ7.js +306 -0
- package/dist/chunk-DLNROMQ7.js.map +1 -0
- package/dist/chunk-DYATYRY4.js +47 -0
- package/dist/chunk-DYATYRY4.js.map +1 -0
- package/dist/chunk-E4WNQBEF.cjs +217 -0
- package/dist/chunk-E4WNQBEF.cjs.map +1 -0
- package/dist/{chunk-G6Q5UM7U.js → chunk-FWJKWH6U.js} +5 -3
- package/dist/chunk-FWJKWH6U.js.map +1 -0
- package/dist/{chunk-BNUFUFAU.js → chunk-HFHTMECK.js} +7 -7
- package/dist/chunk-HFHTMECK.js.map +1 -0
- package/dist/{chunk-TFMVL4QH.js → chunk-I5MOXA4H.js} +20 -14
- package/dist/chunk-I5MOXA4H.js.map +1 -0
- package/dist/{chunk-4MB3AQAQ.js → chunk-J3WZ3FA2.js} +77 -3
- package/dist/chunk-J3WZ3FA2.js.map +1 -0
- package/dist/{chunk-UR7W5YQK.js → chunk-JBQQ7THH.js} +5 -3
- package/dist/chunk-JBQQ7THH.js.map +1 -0
- package/dist/chunk-JIVMTW7W.js +3393 -0
- package/dist/chunk-JIVMTW7W.js.map +1 -0
- package/dist/{chunk-2Y4IFKW7.js → chunk-JXA2ZP2Q.js} +6 -17
- package/dist/chunk-JXA2ZP2Q.js.map +1 -0
- package/dist/{chunk-GYA4JRP5.js → chunk-JXXDZTMN.js} +2 -2
- package/dist/chunk-JXXDZTMN.js.map +1 -0
- package/dist/chunk-JZUR7ZWE.js +254 -0
- package/dist/chunk-JZUR7ZWE.js.map +1 -0
- package/dist/chunk-K5ELX2GT.js +248 -0
- package/dist/chunk-K5ELX2GT.js.map +1 -0
- package/dist/chunk-LBJKZXDE.cjs +257 -0
- package/dist/chunk-LBJKZXDE.cjs.map +1 -0
- package/dist/{chunk-FGO5JFVJ.cjs → chunk-M4BDU5RX.cjs} +12 -12
- package/dist/{chunk-FGO5JFVJ.cjs.map → chunk-M4BDU5RX.cjs.map} +1 -1
- package/dist/{chunk-MIJKEVV7.js → chunk-MSY7FSX4.js} +37 -4
- package/dist/chunk-MSY7FSX4.js.map +1 -0
- package/dist/{chunk-ST3LPB2V.cjs → chunk-MUK4BU7K.cjs} +788 -146
- package/dist/chunk-MUK4BU7K.cjs.map +1 -0
- package/dist/{chunk-MCHP7RHZ.cjs → chunk-MXJDTH5B.cjs} +64 -41
- package/dist/chunk-MXJDTH5B.cjs.map +1 -0
- package/dist/{chunk-2VLBGQBY.cjs → chunk-N3257XE6.cjs} +724 -577
- package/dist/chunk-N3257XE6.cjs.map +1 -0
- package/dist/chunk-N66HCGCY.cjs +57 -0
- package/dist/chunk-N66HCGCY.cjs.map +1 -0
- package/dist/{chunk-CPEL3YIR.cjs → chunk-NFCVHQ5P.cjs} +55 -22
- package/dist/chunk-NFCVHQ5P.cjs.map +1 -0
- package/dist/{chunk-C4F7VJ5D.cjs → chunk-NI72YOJB.cjs} +84 -2
- package/dist/chunk-NI72YOJB.cjs.map +1 -0
- package/dist/{chunk-EE7N5XXQ.cjs → chunk-NK5Q7UNE.cjs} +10 -21
- package/dist/chunk-NK5Q7UNE.cjs.map +1 -0
- package/dist/{chunk-PHXITZE4.js → chunk-NMWDXFPH.js} +4 -4
- package/dist/{chunk-PHXITZE4.js.map → chunk-NMWDXFPH.js.map} +1 -1
- package/dist/{chunk-FSXTPBRN.js → chunk-NQ6BRJBE.js} +416 -850
- package/dist/chunk-NQ6BRJBE.js.map +1 -0
- package/dist/chunk-OH5E5KIO.js +2057 -0
- package/dist/chunk-OH5E5KIO.js.map +1 -0
- package/dist/chunk-ONU3HIED.cjs +2082 -0
- package/dist/chunk-ONU3HIED.cjs.map +1 -0
- package/dist/{chunk-STQ3BSED.cjs → chunk-PNN7RHVR.cjs} +66 -44
- package/dist/chunk-PNN7RHVR.cjs.map +1 -0
- package/dist/{chunk-6DCB664D.js → chunk-PQBQG7IM.js} +3 -3
- package/dist/{chunk-6DCB664D.js.map → chunk-PQBQG7IM.js.map} +1 -1
- package/dist/{chunk-ACSVZPK7.cjs → chunk-PWLJ77UV.cjs} +5 -3
- package/dist/chunk-PWLJ77UV.cjs.map +1 -0
- package/dist/chunk-Q7Q4WSLJ.cjs +328 -0
- package/dist/chunk-Q7Q4WSLJ.cjs.map +1 -0
- package/dist/{chunk-BEFM74L2.js → chunk-QLRESYPU.js} +637 -493
- package/dist/chunk-QLRESYPU.js.map +1 -0
- package/dist/{chunk-SBPC5IP3.js → chunk-QWX5YA3K.js} +784 -202
- package/dist/chunk-QWX5YA3K.js.map +1 -0
- package/dist/{chunk-TCRIQMBU.js → chunk-RJS7DECT.js} +8 -9
- package/dist/chunk-RJS7DECT.js.map +1 -0
- package/dist/{chunk-6JZUSDY2.cjs → chunk-RMQLSPA2.cjs} +297 -27
- package/dist/chunk-RMQLSPA2.cjs.map +1 -0
- package/dist/{chunk-SJDMVITW.cjs → chunk-RT5ZY4XA.cjs} +6 -5
- package/dist/chunk-RT5ZY4XA.cjs.map +1 -0
- package/dist/{chunk-IJTLXNGJ.js → chunk-T4XNKYXB.js} +780 -127
- package/dist/chunk-T4XNKYXB.js.map +1 -0
- package/dist/{chunk-PDGEXGS6.cjs → chunk-TQR4KBY2.cjs} +354 -182
- package/dist/chunk-TQR4KBY2.cjs.map +1 -0
- package/dist/chunk-TTAITEPJ.cjs +755 -0
- package/dist/chunk-TTAITEPJ.cjs.map +1 -0
- package/dist/{chunk-NN3QSOVS.cjs → chunk-U5SON7R2.cjs} +27 -27
- package/dist/{chunk-NN3QSOVS.cjs.map → chunk-U5SON7R2.cjs.map} +1 -1
- package/dist/{chunk-A2I2XO52.cjs → chunk-U63GDNRC.cjs} +32 -26
- package/dist/chunk-U63GDNRC.cjs.map +1 -0
- package/dist/{chunk-YNULOIR5.cjs → chunk-UDISNXDL.cjs} +64 -43
- package/dist/chunk-UDISNXDL.cjs.map +1 -0
- package/dist/{chunk-GWEDD3DH.js → chunk-UV3SN74I.js} +5 -5
- package/dist/{chunk-GWEDD3DH.js.map → chunk-UV3SN74I.js.map} +1 -1
- package/dist/{chunk-U5W4LKZV.cjs → chunk-VCRRKBLN.cjs} +9 -9
- package/dist/{chunk-U5W4LKZV.cjs.map → chunk-VCRRKBLN.cjs.map} +1 -1
- package/dist/{chunk-EFELJVLA.js → chunk-VGTJPTIC.js} +28 -5
- package/dist/chunk-VGTJPTIC.js.map +1 -0
- package/dist/chunk-VQH4VAWD.cjs +12 -0
- package/dist/{chunk-EPTSMFH7.cjs.map → chunk-VQH4VAWD.cjs.map} +1 -1
- package/dist/{chunk-SNXVDZAJ.js → chunk-W6OG3HDG.js} +5 -4
- package/dist/chunk-W6OG3HDG.js.map +1 -0
- package/dist/chunk-WDGA7IYB.js +207 -0
- package/dist/chunk-WDGA7IYB.js.map +1 -0
- package/dist/chunk-WEVQJ5LH.js +736 -0
- package/dist/chunk-WEVQJ5LH.js.map +1 -0
- package/dist/{chunk-3PRKZW6D.cjs → chunk-XBYVV3MP.cjs} +60 -5
- package/dist/chunk-XBYVV3MP.cjs.map +1 -0
- package/dist/{chunk-GFRGG2US.cjs → chunk-XCAGZAKP.cjs} +7 -7
- package/dist/{chunk-GFRGG2US.cjs.map → chunk-XCAGZAKP.cjs.map} +1 -1
- package/dist/{chunk-XR4YZFKW.cjs → chunk-XDF2UPEQ.cjs} +3864 -1783
- package/dist/chunk-XDF2UPEQ.cjs.map +1 -0
- package/dist/{chunk-7V2FGGI2.cjs → chunk-XMQSEJCF.cjs} +632 -1080
- package/dist/chunk-XMQSEJCF.cjs.map +1 -0
- package/dist/chunk-XNLIZYRZ.cjs +3432 -0
- package/dist/chunk-XNLIZYRZ.cjs.map +1 -0
- package/dist/{chunk-66UVLHQA.cjs → chunk-XNSI2FJO.cjs} +99 -100
- package/dist/chunk-XNSI2FJO.cjs.map +1 -0
- package/dist/chunk-XQSCL77R.cjs +60 -0
- package/dist/chunk-XQSCL77R.cjs.map +1 -0
- package/dist/{chunk-SVJ5GEXW.cjs → chunk-XUO3KQFO.cjs} +2 -2
- package/dist/chunk-XUO3KQFO.cjs.map +1 -0
- package/dist/{chunk-HJH3RMXG.cjs → chunk-YAAM3M2S.cjs} +10 -10
- package/dist/{chunk-HJH3RMXG.cjs.map → chunk-YAAM3M2S.cjs.map} +1 -1
- package/dist/{chunk-ATLN63JA.js → chunk-YBFHZUXX.js} +6 -6
- package/dist/{chunk-ATLN63JA.js.map → chunk-YBFHZUXX.js.map} +1 -1
- package/dist/{chunk-K3BUWSFR.js → chunk-YDFDBE6D.js} +119 -6
- package/dist/chunk-YDFDBE6D.js.map +1 -0
- package/dist/{chunk-OSZPLZIV.cjs → chunk-YVWGEQJE.cjs} +318 -132
- package/dist/chunk-YVWGEQJE.cjs.map +1 -0
- package/dist/{chunk-QT6V3YRH.js → chunk-YWGVVALJ.js} +3 -3
- package/dist/{chunk-QT6V3YRH.js.map → chunk-YWGVVALJ.js.map} +1 -1
- package/dist/core/index.cjs +40 -41
- package/dist/core/index.d.cts +4 -5
- package/dist/core/index.d.ts +4 -5
- package/dist/core/index.js +8 -9
- package/dist/{ddl-eWg7hx6R.d.cts → ddl-BJcOp4WZ.d.cts} +3 -3
- package/dist/{ddl-D5369kOY.d.ts → ddl-BXfGHbPN.d.ts} +3 -3
- package/dist/graph-extension/index.cjs +26 -23
- package/dist/graph-extension/index.d.cts +16 -6
- package/dist/graph-extension/index.d.ts +16 -6
- package/dist/graph-extension/index.js +7 -8
- package/dist/graph-merge/index.cjs +2459 -655
- package/dist/graph-merge/index.cjs.map +1 -1
- package/dist/graph-merge/index.d.cts +170 -33
- package/dist/graph-merge/index.d.ts +170 -33
- package/dist/graph-merge/index.js +2269 -468
- package/dist/graph-merge/index.js.map +1 -1
- package/dist/{index-By89Sezh.d.ts → index-BSHvKfok.d.ts} +221 -10
- package/dist/{index-DcQ3Sxs-.d.cts → index-DxaYCv8Y.d.cts} +221 -10
- package/dist/index.cjs +330 -269
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +590 -576
- package/dist/index.d.ts +590 -576
- package/dist/index.js +73 -50
- package/dist/index.js.map +1 -1
- package/dist/indexes/index.cjs +17 -17
- package/dist/indexes/index.d.cts +4 -4
- package/dist/indexes/index.d.ts +4 -4
- package/dist/indexes/index.js +10 -10
- package/dist/interchange/index.cjs +165 -50
- package/dist/interchange/index.cjs.map +1 -1
- package/dist/interchange/index.d.cts +261 -16
- package/dist/interchange/index.d.ts +261 -16
- package/dist/interchange/index.js +128 -24
- package/dist/interchange/index.js.map +1 -1
- package/dist/{manager-B0KjKE93.d.ts → manager-CfZAimti.d.ts} +36 -5
- package/dist/{manager-Cn0NFIhN.d.cts → manager-HGk6E_HW.d.cts} +36 -5
- package/dist/{materialize-indexes-BD4V3svD.d.ts → materialize-indexes-6A7dWGtb.d.cts} +10 -2
- package/dist/{materialize-indexes-DVRhd5h4.d.cts → materialize-indexes-BMJP6Tms.d.ts} +10 -2
- package/dist/{postgres-DaEWvN4x.d.cts → postgres-DFYWENdR.d.cts} +1961 -439
- package/dist/{postgres-u0a0HN2D.d.ts → postgres-e7a9TdvR.d.ts} +1961 -439
- package/dist/profiler/index.cjs +15 -15
- package/dist/profiler/index.d.cts +9 -10
- package/dist/profiler/index.d.ts +9 -10
- package/dist/profiler/index.js +4 -4
- package/dist/provenance/index.cjs +46 -48
- package/dist/provenance/index.cjs.map +1 -1
- package/dist/provenance/index.d.cts +7 -7
- package/dist/provenance/index.d.ts +7 -7
- package/dist/provenance/index.js +12 -14
- package/dist/provenance/index.js.map +1 -1
- package/dist/schema/index.cjs +50 -49
- package/dist/schema/index.d.cts +9 -16
- package/dist/schema/index.d.ts +9 -16
- package/dist/schema/index.js +23 -22
- package/dist/{searchable-CnYEancP.d.ts → searchable-9OQoPuRs.d.ts} +1 -2
- package/dist/{searchable-BT7j9_IK.d.cts → searchable-CIje5XYD.d.cts} +1 -2
- package/dist/{sqlite-BrMoSsI7.d.cts → sqlite-DerU5tc7.d.ts} +2029 -347
- package/dist/{sqlite-CHhZUyO5.d.ts → sqlite-DitnISa9.d.cts} +2029 -347
- package/dist/{store-view-Bvdku0Ht.d.ts → store-DawaWWjJ.d.ts} +3145 -2556
- package/dist/{store-view-w-md0nQ4.d.cts → store-RwTJx8LX.d.cts} +3145 -2556
- package/dist/{temporal-BCORwUau.d.cts → temporal-Bn-Fi8FJ.d.cts} +1 -1
- package/dist/{temporal--x9T8K4S.d.ts → temporal-BtM4UALv.d.ts} +1 -1
- package/dist/{types-6-WJmSD4.d.cts → types-CoIx8HX5.d.cts} +1 -1
- package/dist/{types-Cjvkj0jA.d.ts → types-HkveCCx0.d.cts} +866 -21
- package/dist/{types-Cjvkj0jA.d.cts → types-HkveCCx0.d.ts} +866 -21
- package/dist/{types-COODtTJU.d.ts → types-KFfk-8Ah.d.ts} +1 -1
- package/dist/{where-CUQmCR6d.d.cts → where--fk7_0kv.d.cts} +1 -1
- package/dist/{where-5xVawAwL.d.ts → where-ws5hf-Ov.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-2BIG7U6E.cjs +0 -83
- package/dist/chunk-2BIG7U6E.cjs.map +0 -1
- package/dist/chunk-2L54C2C2.js +0 -144
- package/dist/chunk-2L54C2C2.js.map +0 -1
- package/dist/chunk-2VLBGQBY.cjs.map +0 -1
- package/dist/chunk-2WDD2NO3.js +0 -59
- package/dist/chunk-2WDD2NO3.js.map +0 -1
- package/dist/chunk-2Y4IFKW7.js.map +0 -1
- package/dist/chunk-35S6P5ZU.js +0 -27
- package/dist/chunk-35S6P5ZU.js.map +0 -1
- package/dist/chunk-3PRKZW6D.cjs.map +0 -1
- package/dist/chunk-4MB3AQAQ.js.map +0 -1
- package/dist/chunk-4SZ6XPTG.cjs +0 -12
- package/dist/chunk-5MUSU4ZP.cjs.map +0 -1
- package/dist/chunk-63KCKSSH.js.map +0 -1
- package/dist/chunk-66UVLHQA.cjs.map +0 -1
- package/dist/chunk-6JZUSDY2.cjs.map +0 -1
- package/dist/chunk-764JHTLT.cjs +0 -15
- package/dist/chunk-764JHTLT.cjs.map +0 -1
- package/dist/chunk-7G32LIQM.js.map +0 -1
- package/dist/chunk-7V2FGGI2.cjs.map +0 -1
- package/dist/chunk-A2I2XO52.cjs.map +0 -1
- package/dist/chunk-A4PBRX4C.cjs +0 -100
- package/dist/chunk-A4PBRX4C.cjs.map +0 -1
- package/dist/chunk-ACSVZPK7.cjs.map +0 -1
- package/dist/chunk-ALFUGRYB.cjs +0 -1282
- package/dist/chunk-ALFUGRYB.cjs.map +0 -1
- package/dist/chunk-B75XRV3O.js +0 -125
- package/dist/chunk-B75XRV3O.js.map +0 -1
- package/dist/chunk-BCP7LLOY.js.map +0 -1
- package/dist/chunk-BEFM74L2.js.map +0 -1
- package/dist/chunk-BNUFUFAU.js.map +0 -1
- package/dist/chunk-C4F7VJ5D.cjs.map +0 -1
- package/dist/chunk-CPEL3YIR.cjs.map +0 -1
- package/dist/chunk-D7PG5D5K.js.map +0 -1
- package/dist/chunk-DI74SMXS.cjs +0 -29
- package/dist/chunk-DI74SMXS.cjs.map +0 -1
- package/dist/chunk-DK2S42XB.js +0 -77
- package/dist/chunk-DK2S42XB.js.map +0 -1
- package/dist/chunk-DRACN6XG.js +0 -27
- package/dist/chunk-DRACN6XG.js.map +0 -1
- package/dist/chunk-EE7N5XXQ.cjs.map +0 -1
- package/dist/chunk-EFELJVLA.js.map +0 -1
- package/dist/chunk-EPTSMFH7.cjs +0 -12
- package/dist/chunk-EQ7JKLZO.cjs +0 -157
- package/dist/chunk-EQ7JKLZO.cjs.map +0 -1
- package/dist/chunk-FJMPR3OH.cjs.map +0 -1
- package/dist/chunk-FMGEZBAQ.js.map +0 -1
- package/dist/chunk-FMMIX6N4.js.map +0 -1
- package/dist/chunk-FRHHDHKH.js.map +0 -1
- package/dist/chunk-FSXTPBRN.js.map +0 -1
- package/dist/chunk-G6Q5UM7U.js.map +0 -1
- package/dist/chunk-GYA4JRP5.js.map +0 -1
- package/dist/chunk-HOHAJ2NR.cjs +0 -61
- package/dist/chunk-HOHAJ2NR.cjs.map +0 -1
- package/dist/chunk-HOIFFY4M.js.map +0 -1
- package/dist/chunk-IIMQJYAM.js +0 -81
- package/dist/chunk-IIMQJYAM.js.map +0 -1
- package/dist/chunk-IJTLXNGJ.js.map +0 -1
- package/dist/chunk-ITE4IXAK.js +0 -25
- package/dist/chunk-ITE4IXAK.js.map +0 -1
- package/dist/chunk-K3BUWSFR.js.map +0 -1
- package/dist/chunk-KCO5EFJU.js +0 -79
- package/dist/chunk-KCO5EFJU.js.map +0 -1
- package/dist/chunk-KKYELPZ2.cjs +0 -83
- package/dist/chunk-KKYELPZ2.cjs.map +0 -1
- package/dist/chunk-MCHP7RHZ.cjs.map +0 -1
- package/dist/chunk-MIJKEVV7.js.map +0 -1
- package/dist/chunk-NCX65HBY.cjs +0 -1396
- package/dist/chunk-NCX65HBY.cjs.map +0 -1
- package/dist/chunk-OSZPLZIV.cjs.map +0 -1
- package/dist/chunk-OVUUTCPJ.cjs.map +0 -1
- package/dist/chunk-PDGEXGS6.cjs.map +0 -1
- package/dist/chunk-QB6VMOJ2.cjs.map +0 -1
- package/dist/chunk-QMQLUA66.js +0 -12
- package/dist/chunk-QMQLUA66.js.map +0 -1
- package/dist/chunk-QYWINYEA.cjs.map +0 -1
- package/dist/chunk-S4KQ5LV4.js.map +0 -1
- package/dist/chunk-SBPC5IP3.js.map +0 -1
- package/dist/chunk-SJDMVITW.cjs.map +0 -1
- package/dist/chunk-SNXVDZAJ.js.map +0 -1
- package/dist/chunk-SQRD2CYF.js.map +0 -1
- package/dist/chunk-ST3LPB2V.cjs.map +0 -1
- package/dist/chunk-STQ3BSED.cjs.map +0 -1
- package/dist/chunk-SVJ5GEXW.cjs.map +0 -1
- package/dist/chunk-TCRIQMBU.js.map +0 -1
- package/dist/chunk-TDXIBCGY.cjs.map +0 -1
- package/dist/chunk-TFMVL4QH.js.map +0 -1
- package/dist/chunk-TRF4EBJT.cjs +0 -30
- package/dist/chunk-TRF4EBJT.cjs.map +0 -1
- package/dist/chunk-TVLKA4AY.js +0 -94
- package/dist/chunk-TVLKA4AY.js.map +0 -1
- package/dist/chunk-UR7W5YQK.js.map +0 -1
- package/dist/chunk-VITTKBWF.js +0 -1263
- package/dist/chunk-VITTKBWF.js.map +0 -1
- package/dist/chunk-WBUFJ7BS.cjs +0 -131
- package/dist/chunk-WBUFJ7BS.cjs.map +0 -1
- package/dist/chunk-XR4YZFKW.cjs.map +0 -1
- package/dist/chunk-YNULOIR5.cjs.map +0 -1
- package/dist/chunk-ZDH3DX3C.cjs +0 -30
- package/dist/chunk-ZDH3DX3C.cjs.map +0 -1
- package/dist/chunk-ZTAJL4DT.cjs +0 -85
- package/dist/chunk-ZTAJL4DT.cjs.map +0 -1
- package/dist/define-graph-DVF-oN1i.d.cts +0 -173
- package/dist/define-graph-SvYXOl78.d.ts +0 -173
|
@@ -375,6 +375,31 @@ type TableContribution = Readonly<{
|
|
|
375
375
|
* signature.
|
|
376
376
|
*/
|
|
377
377
|
createDdl: readonly string[];
|
|
378
|
+
/**
|
|
379
|
+
* Idempotent (`DROP ... IF EXISTS`) statements that tear this
|
|
380
|
+
* contribution's storage down, ordered so that running the list
|
|
381
|
+
* leaves nothing behind. Declaring it is what makes a contribution
|
|
382
|
+
* *rebuildable*: the destructive
|
|
383
|
+
* `store.rebuildContribution()` path drops through these statements
|
|
384
|
+
* before re-running {@link createDdl}, which is the only repair for a
|
|
385
|
+
* table provisioned at a shape the current `createDdl` no longer
|
|
386
|
+
* produces.
|
|
387
|
+
*
|
|
388
|
+
* Optional because it is a capability, not an invariant. A
|
|
389
|
+
* contribution whose content cannot be reconstructed from data
|
|
390
|
+
* TypeGraph already stores has no business advertising a rebuild —
|
|
391
|
+
* dropping it would destroy the only copy — and a third-party
|
|
392
|
+
* strategy that predates this field keeps compiling and is reported
|
|
393
|
+
* as not rebuildable rather than silently rebuilt through a
|
|
394
|
+
* synthesized `DROP`. Backends surface the resulting gap as
|
|
395
|
+
* `capabilities.contributions.rebuild`.
|
|
396
|
+
*
|
|
397
|
+
* The rebuild visits a strategy's `runtimeEnsure` contributions, the
|
|
398
|
+
* same set the boot ensure provisions — so a companion table a strategy
|
|
399
|
+
* declares outside that set is neither dropped nor recreated, and must
|
|
400
|
+
* not be something the recreated storage depends on.
|
|
401
|
+
*/
|
|
402
|
+
dropDdl?: readonly string[];
|
|
378
403
|
/**
|
|
379
404
|
* When `true`, the post-schema-load focused ensure
|
|
380
405
|
* (`loadActiveSchemaWithBootstrap`) materializes this contribution
|
|
@@ -492,6 +517,14 @@ type FulltextStrategy = Readonly<{
|
|
|
492
517
|
* Replaces the former `generateDdl(tableName)`: DDL is now one field
|
|
493
518
|
* of a contribution rather than the strategy's whole storage
|
|
494
519
|
* surface. (Public API change — see #129.)
|
|
520
|
+
*
|
|
521
|
+
* Declare `dropDdl` on each contribution to opt the strategy into the
|
|
522
|
+
* destructive `store.rebuildContribution("fulltext")` path — the only
|
|
523
|
+
* repair for storage provisioned at a shape `createDdl` no longer
|
|
524
|
+
* produces. Fulltext content is reconstructed from the node rows, so a
|
|
525
|
+
* rebuild loses nothing; a strategy that omits `dropDdl` is reported
|
|
526
|
+
* as not rebuildable instead of being dropped through a synthesized
|
|
527
|
+
* statement.
|
|
495
528
|
*/
|
|
496
529
|
ownedTables: (this: void, primaryTableName: string) => readonly StrategyTableContribution[];
|
|
497
530
|
/**
|
|
@@ -572,7 +605,17 @@ type DialectCapabilities = Readonly<{
|
|
|
572
605
|
*/
|
|
573
606
|
emitNotMaterializedHint: boolean;
|
|
574
607
|
/**
|
|
575
|
-
* Whether
|
|
608
|
+
* Whether a traversal must pin its frontier ahead of the edge table with
|
|
609
|
+
* `CROSS JOIN`, because the engine reads FROM order as a join-order directive
|
|
610
|
+
* rather than costing the orderings itself.
|
|
611
|
+
*
|
|
612
|
+
* Set for engines whose planner has no useful statistics for the driving
|
|
613
|
+
* relation and can therefore choose to enumerate candidate edges instead —
|
|
614
|
+
* once per frontier row. Two traversal shapes need the pin: a recursive term,
|
|
615
|
+
* whose driving relation is the worktable, and an identity-expanded step,
|
|
616
|
+
* which reaches the edge through `COALESCE` over an outer join and so exposes
|
|
617
|
+
* no direct frontier-to-edge equality. Every other traversal joins on the
|
|
618
|
+
* frontier's own columns and is left to the planner.
|
|
576
619
|
*/
|
|
577
620
|
forceRecursiveWorktableOuterJoinOrder: boolean;
|
|
578
621
|
/**
|
|
@@ -777,6 +820,13 @@ interface DialectAdapter {
|
|
|
777
820
|
* PostgreSQL: jsonb_typeof(column #> path) = 'number'
|
|
778
821
|
*/
|
|
779
822
|
readonly jsonPathIsNumber: (this: void, column: SqlFragment, pointer: JsonPointer) => SqlFragment;
|
|
823
|
+
/**
|
|
824
|
+
* Replaces top-level JSON object properties while preserving explicit JSON
|
|
825
|
+
* null values. This is the token-level dialect seam used by set-based node
|
|
826
|
+
* mutation; callers validate the patch against the node schema before SQL
|
|
827
|
+
* compilation.
|
|
828
|
+
*/
|
|
829
|
+
readonly jsonSetProperties: (this: void, column: SqlFragment, patch: Readonly<Record<string, JsonValue>>, unsetProperties?: readonly string[]) => SqlFragment;
|
|
780
830
|
/**
|
|
781
831
|
* Null-safe equality: `TRUE` when both sides are equal OR both are NULL.
|
|
782
832
|
* Unlike `=`, a NULL on either side does not yield NULL/unknown.
|
|
@@ -1038,6 +1088,14 @@ type SqlTableNames = Readonly<{
|
|
|
1038
1088
|
recordedClock?: string | undefined;
|
|
1039
1089
|
/** Durable per-graph revision-origin table name (default: "typegraph_revision_origins") */
|
|
1040
1090
|
revisionOrigins?: string | undefined;
|
|
1091
|
+
/** Identity assertion ledger (default: "typegraph_identity_assertions") */
|
|
1092
|
+
identityAssertions?: string | undefined;
|
|
1093
|
+
/** Recorded identity assertion relation */
|
|
1094
|
+
recordedIdentityAssertions?: string | undefined;
|
|
1095
|
+
/** Derived current identity closure */
|
|
1096
|
+
identityClosure?: string | undefined;
|
|
1097
|
+
/** Derived separation relation over identity classes */
|
|
1098
|
+
identitySeparation?: string | undefined;
|
|
1041
1099
|
/** Node fulltext table name (default: "typegraph_node_fulltext") */
|
|
1042
1100
|
fulltext: string;
|
|
1043
1101
|
/** Node uniques table name (default: "typegraph_node_uniques") */
|
|
@@ -1056,6 +1114,10 @@ type ResolvedSqlTableNames = Readonly<{
|
|
|
1056
1114
|
recordedClock: string;
|
|
1057
1115
|
/** Durable per-graph revision-origin table name */
|
|
1058
1116
|
revisionOrigins: string;
|
|
1117
|
+
identityAssertions: string;
|
|
1118
|
+
recordedIdentityAssertions: string;
|
|
1119
|
+
identityClosure: string;
|
|
1120
|
+
identitySeparation: string;
|
|
1059
1121
|
/** Node fulltext table name */
|
|
1060
1122
|
fulltext: string;
|
|
1061
1123
|
/** Node uniques table name */
|
|
@@ -1076,6 +1138,14 @@ type SqlSchemaFields = Readonly<{
|
|
|
1076
1138
|
recordedClockTable: SqlFragment;
|
|
1077
1139
|
/** Get a `SqlFragment` reference to the durable per-graph revision origins. */
|
|
1078
1140
|
revisionOriginsTable: SqlFragment;
|
|
1141
|
+
/** Get a `SqlFragment` reference to the identity assertion ledger. */
|
|
1142
|
+
identityAssertionsTable: SqlFragment;
|
|
1143
|
+
/** Get a `SqlFragment` reference to the recorded identity assertion relation. */
|
|
1144
|
+
recordedIdentityAssertionsTable: SqlFragment;
|
|
1145
|
+
/** Get a `SqlFragment` reference to the derived identity closure. */
|
|
1146
|
+
identityClosureTable: SqlFragment;
|
|
1147
|
+
/** Get a `SqlFragment` reference to the derived identity separation relation. */
|
|
1148
|
+
identitySeparationTable: SqlFragment;
|
|
1079
1149
|
/** Get a `SqlFragment` reference to the fulltext table. */
|
|
1080
1150
|
fulltextTable: SqlFragment;
|
|
1081
1151
|
}>;
|
|
@@ -1095,6 +1165,10 @@ declare abstract class SqlSchema implements SqlSchemaFields {
|
|
|
1095
1165
|
abstract readonly recordedEdgesTable: SqlFragment;
|
|
1096
1166
|
abstract readonly recordedClockTable: SqlFragment;
|
|
1097
1167
|
abstract readonly revisionOriginsTable: SqlFragment;
|
|
1168
|
+
abstract readonly identityAssertionsTable: SqlFragment;
|
|
1169
|
+
abstract readonly recordedIdentityAssertionsTable: SqlFragment;
|
|
1170
|
+
abstract readonly identityClosureTable: SqlFragment;
|
|
1171
|
+
abstract readonly identitySeparationTable: SqlFragment;
|
|
1098
1172
|
abstract readonly fulltextTable: SqlFragment;
|
|
1099
1173
|
}
|
|
1100
1174
|
/**
|
|
@@ -1311,6 +1385,10 @@ type VectorStrategy = Readonly<{
|
|
|
1311
1385
|
buildUpsertBatch?: (this: void, slot: VectorSlot, params: UpsertEmbeddingBatchParams, timestamp: string) => readonly SqlFragment[];
|
|
1312
1386
|
/** Emits the statement(s) that delete a single embedding from the slot. */
|
|
1313
1387
|
buildDelete: (this: void, slot: VectorSlot, params: DeleteEmbeddingParams) => readonly SqlFragment[];
|
|
1388
|
+
/** Emits one set-based delete for many node ids in a vector slot. */
|
|
1389
|
+
buildDeleteBatch: (this: void, slot: VectorSlot, params: Omit<DeleteEmbeddingParams, "nodeId"> & Readonly<{
|
|
1390
|
+
nodeIds: readonly string[];
|
|
1391
|
+
}>) => readonly SqlFragment[];
|
|
1314
1392
|
/**
|
|
1315
1393
|
* Raw DDL statement(s) that drop the slot's entire physical storage
|
|
1316
1394
|
* (table + ANN index, and any engine-managed shadow tables). Used by the
|
|
@@ -1810,6 +1888,185 @@ type OntologyRelation = Readonly<{
|
|
|
1810
1888
|
*/
|
|
1811
1889
|
declare function isMetaEdge(value: unknown): value is MetaEdge;
|
|
1812
1890
|
|
|
1891
|
+
/** Brand key for GraphDef */
|
|
1892
|
+
declare const GRAPH_DEF_BRAND: "__graphDef";
|
|
1893
|
+
/**
|
|
1894
|
+
* An edge entry in the graph definition.
|
|
1895
|
+
* Can be:
|
|
1896
|
+
* - EdgeType directly (constrained or unconstrained)
|
|
1897
|
+
* - EdgeRegistration object (always works, can override/narrow defaults)
|
|
1898
|
+
*/
|
|
1899
|
+
type EdgeEntry = EdgeRegistration | AnyEdgeType;
|
|
1900
|
+
/**
|
|
1901
|
+
* Normalized edge map type - all entries become EdgeRegistration.
|
|
1902
|
+
* For bare EdgeTypes, constrained endpoints are extracted from the type;
|
|
1903
|
+
* unconstrained edges fall back to all node types in the graph.
|
|
1904
|
+
*/
|
|
1905
|
+
type NormalizedEdges<TNodes extends Record<string, NodeRegistration>, TEdges extends Record<string, EdgeEntry>> = {
|
|
1906
|
+
[K in keyof TEdges]: TEdges[K] extends EdgeRegistration ? TEdges[K] : TEdges[K] extends AnyEdgeType ? EdgeRegistration<TEdges[K], TEdges[K]["from"] extends readonly (infer N extends NodeType)[] ? N : TNodes[keyof TNodes]["type"], TEdges[K]["to"] extends readonly (infer N extends NodeType)[] ? N : TNodes[keyof TNodes]["type"]> : never;
|
|
1907
|
+
};
|
|
1908
|
+
/** Durable graph-level configuration for the TypeGraph Identity Profile. */
|
|
1909
|
+
type GraphIdentityConfig = Readonly<{
|
|
1910
|
+
/** Whether equal ids in different kinds implicitly join one identity class. */
|
|
1911
|
+
sameIdAcrossKinds: "fold" | "ignore";
|
|
1912
|
+
}>;
|
|
1913
|
+
/**
|
|
1914
|
+
* Configuration for defineGraph.
|
|
1915
|
+
*/
|
|
1916
|
+
type GraphDefConfig<TNodes extends Record<string, NodeRegistration>, TEdges extends Record<string, EdgeEntry>, TOntology extends readonly OntologyRelation[], TIdentity extends GraphIdentityConfig | undefined> = Readonly<{
|
|
1917
|
+
/** Unique identifier for this graph */
|
|
1918
|
+
id: string;
|
|
1919
|
+
/** Node registrations */
|
|
1920
|
+
nodes: TNodes;
|
|
1921
|
+
/** Edge registrations or EdgeTypes with built-in domain/range */
|
|
1922
|
+
edges: TEdges;
|
|
1923
|
+
/** Ontology relations */
|
|
1924
|
+
ontology?: TOntology;
|
|
1925
|
+
/** Graph-wide defaults */
|
|
1926
|
+
defaults?: GraphDefaults;
|
|
1927
|
+
/** Enables the TypeGraph Identity Profile for this graph. */
|
|
1928
|
+
identity?: TIdentity;
|
|
1929
|
+
/**
|
|
1930
|
+
* Index declarations attached to this graph.
|
|
1931
|
+
*
|
|
1932
|
+
* Accepts the outputs of `defineNodeIndex` / `defineEdgeIndex` (which
|
|
1933
|
+
* already return `IndexDeclaration` values) or pre-built declarations
|
|
1934
|
+
* reconstructed from a stored schema or graph extension.
|
|
1935
|
+
*
|
|
1936
|
+
* Validated at definition time: every index must reference a `kind`
|
|
1937
|
+
* that exists in `nodes` / `edges`, and index `name`s must be unique
|
|
1938
|
+
* within the graph.
|
|
1939
|
+
*
|
|
1940
|
+
* Index DDL is **not** generated by `defineGraph`. Indexes flow into
|
|
1941
|
+
* `SerializedSchema.indexes` so they can later be materialized via
|
|
1942
|
+
* `store.materializeIndexes()` — lifting the storage concern out of
|
|
1943
|
+
* the schema-version commit path.
|
|
1944
|
+
*/
|
|
1945
|
+
indexes?: readonly IndexDeclaration[];
|
|
1946
|
+
}>;
|
|
1947
|
+
/**
|
|
1948
|
+
* A graph definition.
|
|
1949
|
+
*
|
|
1950
|
+
* This is a compile-time artifact that describes the structure of a graph.
|
|
1951
|
+
* Use `createStore()` to create a runtime store from this definition.
|
|
1952
|
+
*/
|
|
1953
|
+
type GraphDef<TNodes extends Record<string, NodeRegistration> = Record<string, NodeRegistration>, TEdges extends Record<string, EdgeRegistration> = Record<string, EdgeRegistration>, TOntology extends readonly OntologyRelation[] = readonly OntologyRelation[], TIdentity extends GraphIdentityConfig | undefined = GraphIdentityConfig | undefined> = Readonly<{
|
|
1954
|
+
[GRAPH_DEF_BRAND]: true;
|
|
1955
|
+
id: string;
|
|
1956
|
+
nodes: TNodes;
|
|
1957
|
+
edges: TEdges;
|
|
1958
|
+
ontology: TOntology;
|
|
1959
|
+
/** Durable graph-level opt-in to the TypeGraph Identity Profile. */
|
|
1960
|
+
identity: TIdentity;
|
|
1961
|
+
defaults: Readonly<{
|
|
1962
|
+
onNodeDelete: DeleteBehavior;
|
|
1963
|
+
temporalMode: TemporalMode;
|
|
1964
|
+
}>;
|
|
1965
|
+
/**
|
|
1966
|
+
* Index declarations attached to this graph. Preserves whatever the
|
|
1967
|
+
* caller passed to `defineGraph` (including an explicit empty array)
|
|
1968
|
+
* for introspection purposes.
|
|
1969
|
+
*
|
|
1970
|
+
* The serialized canonical form is order-canonicalized (sorted by
|
|
1971
|
+
* `name`) and treats `undefined` and `[]` as the same "no slice" form
|
|
1972
|
+
* — an empty array does not bump the schema hash, since indexes are
|
|
1973
|
+
* an unordered set keyed by name and `[]` carries no semantic meaning
|
|
1974
|
+
* that an absent slice doesn't.
|
|
1975
|
+
*/
|
|
1976
|
+
indexes: readonly IndexDeclaration[] | undefined;
|
|
1977
|
+
/**
|
|
1978
|
+
* Graph extension this graph was merged with, if any. Set by
|
|
1979
|
+
* `mergeGraphExtension`; never set by `defineGraph` directly.
|
|
1980
|
+
* Exists solely so re-serialization is stable — the rest of the
|
|
1981
|
+
* system reads the merged kinds through `nodes` / `edges` /
|
|
1982
|
+
* `ontology` and never inspects this field. Absent on graphs that
|
|
1983
|
+
* have never been extended; legacy graphs hash byte-identically.
|
|
1984
|
+
*/
|
|
1985
|
+
extension: GraphExtension | undefined;
|
|
1986
|
+
/**
|
|
1987
|
+
* Soft-deprecated kind names attached to this graph. Set by the
|
|
1988
|
+
* loader from the persisted schema and by `store.deprecateKinds(...)`
|
|
1989
|
+
* / `store.undeprecateKinds(...)`. A purely informational signal
|
|
1990
|
+
* surfaced for introspection — does not gate reads, writes, or
|
|
1991
|
+
* queries. Defaults to the empty set on freshly-defined graphs.
|
|
1992
|
+
*/
|
|
1993
|
+
deprecatedKinds: ReadonlySet<string>;
|
|
1994
|
+
}>;
|
|
1995
|
+
/**
|
|
1996
|
+
* Extract node kind names from a GraphDef.
|
|
1997
|
+
*/
|
|
1998
|
+
type NodeKinds<G extends GraphDef> = keyof G["nodes"] & string;
|
|
1999
|
+
/**
|
|
2000
|
+
* Extract edge kind names from a GraphDef.
|
|
2001
|
+
*/
|
|
2002
|
+
type EdgeKinds<G extends GraphDef> = keyof G["edges"] & string;
|
|
2003
|
+
/**
|
|
2004
|
+
* Get a NodeType from a GraphDef by kind name.
|
|
2005
|
+
*/
|
|
2006
|
+
type GetNodeType<G extends GraphDef, K extends NodeKinds<G>> = G["nodes"][K]["type"];
|
|
2007
|
+
/**
|
|
2008
|
+
* Get an EdgeType from a GraphDef by kind name.
|
|
2009
|
+
*/
|
|
2010
|
+
type GetEdgeType<G extends GraphDef, K extends EdgeKinds<G>> = G["edges"][K]["type"];
|
|
2011
|
+
/**
|
|
2012
|
+
* Get all NodeTypes from a GraphDef.
|
|
2013
|
+
*/
|
|
2014
|
+
type AllNodeTypes<G extends GraphDef> = {
|
|
2015
|
+
[K in NodeKinds<G>]: G["nodes"][K]["type"];
|
|
2016
|
+
}[NodeKinds<G>];
|
|
2017
|
+
/**
|
|
2018
|
+
* Get all EdgeTypes from a GraphDef.
|
|
2019
|
+
*/
|
|
2020
|
+
type AllEdgeTypes<G extends GraphDef> = {
|
|
2021
|
+
[K in EdgeKinds<G>]: G["edges"][K]["type"];
|
|
2022
|
+
}[EdgeKinds<G>];
|
|
2023
|
+
/**
|
|
2024
|
+
* Creates a graph definition.
|
|
2025
|
+
*
|
|
2026
|
+
* @example
|
|
2027
|
+
* ```typescript
|
|
2028
|
+
* const graph = defineGraph({
|
|
2029
|
+
* id: "my_graph",
|
|
2030
|
+
* nodes: {
|
|
2031
|
+
* Person: { type: Person },
|
|
2032
|
+
* Company: { type: Company },
|
|
2033
|
+
* },
|
|
2034
|
+
* edges: {
|
|
2035
|
+
* // Traditional EdgeRegistration syntax
|
|
2036
|
+
* worksAt: {
|
|
2037
|
+
* type: worksAt,
|
|
2038
|
+
* from: [Person],
|
|
2039
|
+
* to: [Company],
|
|
2040
|
+
* cardinality: "many",
|
|
2041
|
+
* },
|
|
2042
|
+
* // Or use EdgeType directly if it has from/to defined
|
|
2043
|
+
* knows, // EdgeType with built-in domain/range
|
|
2044
|
+
* },
|
|
2045
|
+
* ontology: [
|
|
2046
|
+
* subClassOf(Company, Organization),
|
|
2047
|
+
* disjointWith(Person, Organization),
|
|
2048
|
+
* ],
|
|
2049
|
+
* defaults: {
|
|
2050
|
+
* onNodeDelete: "restrict",
|
|
2051
|
+
* temporalMode: "current",
|
|
2052
|
+
* },
|
|
2053
|
+
* });
|
|
2054
|
+
* ```
|
|
2055
|
+
*/
|
|
2056
|
+
declare function defineGraph<const TNodes extends Record<string, NodeRegistration<NodeType>>, const TEdges extends Record<string, EdgeEntry>, const TOntology extends readonly OntologyRelation[], const TIdentity extends GraphIdentityConfig | undefined = undefined>(config: GraphDefConfig<TNodes, TEdges, TOntology, TIdentity>): GraphDef<TNodes, NormalizedEdges<TNodes, TEdges>, TOntology, TIdentity>;
|
|
2057
|
+
/**
|
|
2058
|
+
* Checks if a value is a GraphDef.
|
|
2059
|
+
*/
|
|
2060
|
+
declare function isGraphDef(value: unknown): value is GraphDef;
|
|
2061
|
+
/**
|
|
2062
|
+
* Gets all node kind names from a GraphDef.
|
|
2063
|
+
*/
|
|
2064
|
+
declare function getNodeKinds<G extends GraphDef>(graph: G): readonly (keyof G["nodes"] & string)[];
|
|
2065
|
+
/**
|
|
2066
|
+
* Gets all edge kind names from a GraphDef.
|
|
2067
|
+
*/
|
|
2068
|
+
declare function getEdgeKinds<G extends GraphDef>(graph: G): readonly (keyof G["edges"] & string)[];
|
|
2069
|
+
|
|
1813
2070
|
/**
|
|
1814
2071
|
* JSON Schema type (subset used by Zod toJSONSchema).
|
|
1815
2072
|
*
|
|
@@ -1937,6 +2194,8 @@ type SerializedSchema = Readonly<{
|
|
|
1937
2194
|
onNodeDelete: DeleteBehavior;
|
|
1938
2195
|
temporalMode: TemporalMode;
|
|
1939
2196
|
}>;
|
|
2197
|
+
/** Durable opt-in to the TypeGraph Identity Profile. */
|
|
2198
|
+
identity?: GraphIdentityConfig;
|
|
1940
2199
|
/**
|
|
1941
2200
|
* Index declarations attached to the graph.
|
|
1942
2201
|
*
|
|
@@ -2047,6 +2306,48 @@ type FilteredApproximateSearch = Readonly<{
|
|
|
2047
2306
|
*/
|
|
2048
2307
|
guaranteesFullPage: boolean;
|
|
2049
2308
|
}>;
|
|
2309
|
+
/**
|
|
2310
|
+
* Whether an engine exposes a PER-SEARCH knob for the ANN candidate frontier —
|
|
2311
|
+
* the parameter {@link VectorSearchParams.efSearch} maps onto.
|
|
2312
|
+
*
|
|
2313
|
+
* Declared, never inferred: `efSearch` is an accepted option, so a backend that
|
|
2314
|
+
* cannot apply it must refuse it rather than ignore it (AGENTS.md contract
|
|
2315
|
+
* discipline). This capability is what the shared refusal predicate reads, and
|
|
2316
|
+
* what a caller reads to know whether passing `efSearch` will be honored.
|
|
2317
|
+
*
|
|
2318
|
+
* - **pgvector**: `hnsw.ef_search`, applied per search with `SET LOCAL` inside
|
|
2319
|
+
* the search's own transaction — hence `requiresTransactionScope`, since a
|
|
2320
|
+
* session-wide `SET` would leak the override into concurrent searches.
|
|
2321
|
+
* - **sqlite-vec**: `tunable: false`. A vec0 KNN takes `k` and nothing else;
|
|
2322
|
+
* there is no frontier to widen.
|
|
2323
|
+
* - **libSQL DiskANN**: `tunable: false`. `vector_top_k(idx, q, k)` is a table
|
|
2324
|
+
* function with no per-query parameters; DiskANN's `search_l` is fixed at
|
|
2325
|
+
* index-creation time.
|
|
2326
|
+
*/
|
|
2327
|
+
type VectorSearchFrontierTuning = Readonly<{
|
|
2328
|
+
tunable: true;
|
|
2329
|
+
/** Engine-native parameter `efSearch` maps to (`"hnsw.ef_search"`). */
|
|
2330
|
+
parameter: string;
|
|
2331
|
+
/**
|
|
2332
|
+
* The one index type whose search honors the parameter. `efSearch` on a
|
|
2333
|
+
* slot of any other index type is refused, not ignored: an IVFFlat or
|
|
2334
|
+
* brute-force slot would silently discard it.
|
|
2335
|
+
*/
|
|
2336
|
+
indexType: VectorIndexType;
|
|
2337
|
+
/**
|
|
2338
|
+
* `true` when applying the parameter needs a transaction to scope it to
|
|
2339
|
+
* the one search. A backend that reports `transactions: false` refuses
|
|
2340
|
+
* `efSearch` rather than leaking a session-wide setting.
|
|
2341
|
+
*/
|
|
2342
|
+
requiresTransactionScope: boolean;
|
|
2343
|
+
}> | Readonly<{
|
|
2344
|
+
tunable: false;
|
|
2345
|
+
/**
|
|
2346
|
+
* Why this engine has no per-search frontier knob — surfaced in the
|
|
2347
|
+
* refusal's details so the state is named rather than implied.
|
|
2348
|
+
*/
|
|
2349
|
+
reason: string;
|
|
2350
|
+
}>;
|
|
2050
2351
|
/**
|
|
2051
2352
|
* Vector search capabilities.
|
|
2052
2353
|
*/
|
|
@@ -2067,6 +2368,14 @@ type VectorCapabilities = Readonly<{
|
|
|
2067
2368
|
* an engine promise it does not keep.
|
|
2068
2369
|
*/
|
|
2069
2370
|
filteredApproximateSearch: FilteredApproximateSearch;
|
|
2371
|
+
/**
|
|
2372
|
+
* Whether a per-search ANN frontier override (`efSearch`) can be applied.
|
|
2373
|
+
* See {@link VectorSearchFrontierTuning}.
|
|
2374
|
+
*
|
|
2375
|
+
* Required, so a new vector strategy must state whether it honors the
|
|
2376
|
+
* option instead of inheriting silence — the exact defect this closes.
|
|
2377
|
+
*/
|
|
2378
|
+
searchFrontierTuning: VectorSearchFrontierTuning;
|
|
2070
2379
|
}>;
|
|
2071
2380
|
/**
|
|
2072
2381
|
* Query modes for fulltext search.
|
|
@@ -2112,6 +2421,46 @@ type GraphAnalyticsCapabilities = Readonly<{
|
|
|
2112
2421
|
supported: boolean;
|
|
2113
2422
|
mathFunctions: boolean;
|
|
2114
2423
|
}>;
|
|
2424
|
+
/**
|
|
2425
|
+
* How much of the contribution health lifecycle a backend can serve.
|
|
2426
|
+
*
|
|
2427
|
+
* The three rungs escalate — probe (read-only) → repair
|
|
2428
|
+
* (non-destructive) → rebuild (destructive) — and each is declared
|
|
2429
|
+
* separately because a backend can genuinely stop at any of them. A
|
|
2430
|
+
* backend that provisions contributions but cannot probe its own catalog
|
|
2431
|
+
* is a real gap, and the honest answer to `store.probeContributions()`
|
|
2432
|
+
* there is a refusal, not `ready`: "assessed and healthy" and "never
|
|
2433
|
+
* looked" must never share a return value.
|
|
2434
|
+
*/
|
|
2435
|
+
type ContributionCapabilities = Readonly<{
|
|
2436
|
+
/**
|
|
2437
|
+
* Whether strategy-owned contribution tables are provisioned and
|
|
2438
|
+
* attested by durable markers on this backend at all. `false` means
|
|
2439
|
+
* there is nothing to assess, and the probe reports no entries rather
|
|
2440
|
+
* than refusing.
|
|
2441
|
+
*/
|
|
2442
|
+
supported: boolean;
|
|
2443
|
+
/**
|
|
2444
|
+
* Whether the backend can cross its durable markers against the live
|
|
2445
|
+
* catalog — `store.probeContributions()` and
|
|
2446
|
+
* `store.verifyContributions()`. False with `supported: true` is the
|
|
2447
|
+
* declared gap: both refuse with `ConfigurationError`.
|
|
2448
|
+
*/
|
|
2449
|
+
probe: boolean;
|
|
2450
|
+
/**
|
|
2451
|
+
* Whether the backend can run the destructive drop → recreate →
|
|
2452
|
+
* repopulate → stamp rebuild (`store.rebuildContribution()`). Requires
|
|
2453
|
+
* both a strategy that declares `dropDdl` and a transactional schema
|
|
2454
|
+
* fence to run it under; false means `rebuildContribution` refuses.
|
|
2455
|
+
*
|
|
2456
|
+
* Describes the fulltext projection only. `rebuildContribution("vector")`
|
|
2457
|
+
* refuses on every backend regardless of this flag — embeddings exist
|
|
2458
|
+
* only in the storage a rebuild would drop, so there is nothing to
|
|
2459
|
+
* reconstruct them from — and `reembedVectorField` is the sanctioned
|
|
2460
|
+
* destructive path there.
|
|
2461
|
+
*/
|
|
2462
|
+
rebuild: boolean;
|
|
2463
|
+
}>;
|
|
2115
2464
|
|
|
2116
2465
|
/**
|
|
2117
2466
|
* Backend capabilities that vary by dialect.
|
|
@@ -2151,6 +2500,12 @@ type BackendCapabilities = Readonly<{
|
|
|
2151
2500
|
fulltext?: FulltextCapabilities | undefined;
|
|
2152
2501
|
/** Whole-graph analytics capabilities (undefined when unavailable). */
|
|
2153
2502
|
graphAnalytics?: GraphAnalyticsCapabilities | undefined;
|
|
2503
|
+
/**
|
|
2504
|
+
* How far up the contribution health ladder this backend goes
|
|
2505
|
+
* (undefined on a backend with no contribution machinery at all,
|
|
2506
|
+
* equivalent to every member `false`).
|
|
2507
|
+
*/
|
|
2508
|
+
contributions?: ContributionCapabilities | undefined;
|
|
2154
2509
|
}>;
|
|
2155
2510
|
/** Keeps session-scoped analytics honest when a required SQL feature is absent. */
|
|
2156
2511
|
declare function normalizeGraphAnalyticsCapabilities(capabilities: BackendCapabilities): BackendCapabilities;
|
|
@@ -2276,11 +2631,69 @@ type UpdateNodeParams = Readonly<{
|
|
|
2276
2631
|
kind: string;
|
|
2277
2632
|
id: string;
|
|
2278
2633
|
props: Readonly<Record<string, unknown>>;
|
|
2634
|
+
/** Applied when resurrecting a tombstone; omitted means the resurrection instant. */
|
|
2635
|
+
validFrom?: string | null;
|
|
2279
2636
|
validTo?: string;
|
|
2637
|
+
/**
|
|
2638
|
+
* The effective `valid_from` this write ASSERTS the target row already
|
|
2639
|
+
* carries, stated only by a caller whose decision DEPENDED on it.
|
|
2640
|
+
*
|
|
2641
|
+
* `(graph_id, kind, id)` does not pin a row across time. A caller that
|
|
2642
|
+
* validated the document's window against the bound it probed — interchange
|
|
2643
|
+
* import's `onConflict: "update"` is the case — decided what to write from a
|
|
2644
|
+
* value a concurrent `hardDelete` + recreate can replace between the probe
|
|
2645
|
+
* and the write, so a predicate on identity alone lets that decision land on
|
|
2646
|
+
* a row it was never computed for: the document's stated `validFrom` is
|
|
2647
|
+
* ignored, or a `valid_to` is persisted below the new row's `valid_from`.
|
|
2648
|
+
* Stating the bound here puts it in the UPDATE's own `WHERE`, which is the
|
|
2649
|
+
* only placement the race cannot slip past.
|
|
2650
|
+
*
|
|
2651
|
+
* NULL-SAFE: `null` asserts the row has NO lower bound (`IS NULL`), a string
|
|
2652
|
+
* asserts equality, and omitting it asserts nothing. `null` and `undefined`
|
|
2653
|
+
* are therefore NOT interchangeable here — see `expectedValidFromPredicate`.
|
|
2654
|
+
*
|
|
2655
|
+
* A backend MUST apply the predicate when it is present, on the same terms as
|
|
2656
|
+
* {@link UpdateEdgeParams.kind}: silently ignoring it re-opens the window the
|
|
2657
|
+
* caller stated it to close. A write whose stated bound does not match affects
|
|
2658
|
+
* zero rows and surfaces as a `no_row_returned` `DatabaseOperationError`.
|
|
2659
|
+
*/
|
|
2660
|
+
expectedValidFrom?: string | null;
|
|
2280
2661
|
incrementVersion?: boolean;
|
|
2281
2662
|
/** If true, clears deleted_at (un-deletes the node). Used by upsert. */
|
|
2282
2663
|
clearDeleted?: boolean;
|
|
2283
2664
|
}>;
|
|
2665
|
+
/**
|
|
2666
|
+
* Parameters for updating a set of live nodes selected by a compiled
|
|
2667
|
+
* TypeGraph query.
|
|
2668
|
+
*
|
|
2669
|
+
* The candidate query must expose the named node-id column from the same graph
|
|
2670
|
+
* and kind. The backend independently fences the rows it writes to
|
|
2671
|
+
* `graphId` and `kind`; constructing the matching candidate query remains the
|
|
2672
|
+
* caller's responsibility.
|
|
2673
|
+
* Property values replace top-level keys, including preserving an explicit
|
|
2674
|
+
* JSON `null` value.
|
|
2675
|
+
*
|
|
2676
|
+
* This is a storage primitive: callers that expose it as a graph mutation are
|
|
2677
|
+
* responsible for schema validation and for synchronizing uniqueness,
|
|
2678
|
+
* fulltext, and vector sidecars. The result contains after-images only; callers
|
|
2679
|
+
* that need previous property values must freeze the candidate set and retain
|
|
2680
|
+
* its before-images in the same transaction before invoking this method.
|
|
2681
|
+
*/
|
|
2682
|
+
type UpdateNodeSetParams = Readonly<{
|
|
2683
|
+
graphId: string;
|
|
2684
|
+
kind: string;
|
|
2685
|
+
patch: Readonly<Record<string, JsonValue>>;
|
|
2686
|
+
/** Top-level properties to remove (the storage form of an `undefined` patch value). */
|
|
2687
|
+
unsetProperties?: readonly string[];
|
|
2688
|
+
candidateIds: CompiledSelectSql;
|
|
2689
|
+
/** Projected SQL column holding the candidate node id (for example `n_id`). */
|
|
2690
|
+
candidateIdColumn: string;
|
|
2691
|
+
}>;
|
|
2692
|
+
/** The after-images changed by {@link GraphBackend.updateNodeSet}. */
|
|
2693
|
+
type UpdateNodeSetResult = Readonly<{
|
|
2694
|
+
affectedCount: number;
|
|
2695
|
+
rows: readonly NodeRow[];
|
|
2696
|
+
}>;
|
|
2284
2697
|
/**
|
|
2285
2698
|
* Parameters for deleting a node (soft delete).
|
|
2286
2699
|
*/
|
|
@@ -2328,8 +2741,71 @@ type TrustedImportSession = Readonly<{
|
|
|
2328
2741
|
type UpdateEdgeParams = Readonly<{
|
|
2329
2742
|
graphId: string;
|
|
2330
2743
|
id: string;
|
|
2744
|
+
/**
|
|
2745
|
+
* The kind this write ASSERTS the target row already carries.
|
|
2746
|
+
*
|
|
2747
|
+
* Edge ids are graph-global while public collections are kind-scoped, so a
|
|
2748
|
+
* kind-scoped write has an expected kind and must not land on a row carrying
|
|
2749
|
+
* a different one. Stating it here puts the predicate in the write
|
|
2750
|
+
* statement's own `WHERE`, which is the only placement a concurrent
|
|
2751
|
+
* `hardDelete` + recreate cannot slip past: a read-then-write pair keyed on
|
|
2752
|
+
* `(graph_id, id)` alone re-resolves that id between the read and the write
|
|
2753
|
+
* under PostgreSQL READ COMMITTED. A write whose stated kind does not match
|
|
2754
|
+
* affects zero rows.
|
|
2755
|
+
*
|
|
2756
|
+
* A backend MUST apply the predicate when it is present — silently ignoring
|
|
2757
|
+
* it re-opens the window the caller stated it to close, and the ignoring
|
|
2758
|
+
* backend looks correct until it is raced.
|
|
2759
|
+
* `tests/edge-write-self-verification.test.ts` asserts the behavior against
|
|
2760
|
+
* the built-in backends.
|
|
2761
|
+
*
|
|
2762
|
+
* Omitted where the operation legitimately spans kinds: the node delete
|
|
2763
|
+
* cascade removes every connected edge whatever its kind, so it states none.
|
|
2764
|
+
* {@link DeleteEdgeParams} and {@link HardDeleteEdgeParams} carry the same
|
|
2765
|
+
* field with the same contract.
|
|
2766
|
+
*/
|
|
2767
|
+
kind?: string;
|
|
2768
|
+
/**
|
|
2769
|
+
* The ENDPOINTS this write asserts the target row already carries, stated
|
|
2770
|
+
* only by a write that actually checked them.
|
|
2771
|
+
*
|
|
2772
|
+
* Kind alone does not pin a row's identity. An edge's endpoints are immutable
|
|
2773
|
+
* for a given row, but the ID is not: a concurrent `hardDelete` + recreate
|
|
2774
|
+
* under the SAME kind with DIFFERENT endpoints satisfies a kind-only
|
|
2775
|
+
* predicate, so an upsert that resolved this id BY endpoints could otherwise
|
|
2776
|
+
* write to an edge pointing somewhere it never looked. Carrying them here
|
|
2777
|
+
* closes that, on the same terms and in the same `WHERE` as `kind`.
|
|
2778
|
+
*
|
|
2779
|
+
* All four move together or not at all — they are one assertion. A plain
|
|
2780
|
+
* `update` on a kind-scoped collection states none of them, because it
|
|
2781
|
+
* resolved the edge by id and kind and made no claim about where it points;
|
|
2782
|
+
* predicating on endpoints it never checked would refuse legitimate writes.
|
|
2783
|
+
* The same MUST-apply contract as `kind` binds a backend that receives them.
|
|
2784
|
+
*/
|
|
2785
|
+
fromKind?: string;
|
|
2786
|
+
fromId?: string;
|
|
2787
|
+
toKind?: string;
|
|
2788
|
+
toId?: string;
|
|
2331
2789
|
props: Readonly<Record<string, unknown>>;
|
|
2790
|
+
/**
|
|
2791
|
+
* Applied when resurrecting a tombstone, where it asserts a COMPLETE window:
|
|
2792
|
+
* `validTo` is rewritten alongside it (omitted `validTo` reopens the window).
|
|
2793
|
+
* Omitting `validFrom` on a resurrection leaves the stored window in place.
|
|
2794
|
+
*/
|
|
2795
|
+
validFrom?: string | null;
|
|
2332
2796
|
validTo?: string;
|
|
2797
|
+
/**
|
|
2798
|
+
* The effective `valid_from` this write asserts the target row already
|
|
2799
|
+
* carries. Same three states, same NULL-safety, and the same MUST-apply
|
|
2800
|
+
* contract as {@link UpdateNodeParams.expectedValidFrom}; stated by the same
|
|
2801
|
+
* kind of caller, one whose verdict READ that bound.
|
|
2802
|
+
*
|
|
2803
|
+
* Separate from the immutable-identity components above because it is not
|
|
2804
|
+
* immutable: a resurrection rewrites `valid_from`. It is asserted for the
|
|
2805
|
+
* opposite reason — precisely because it can change, a decision computed from
|
|
2806
|
+
* it must be fenced against it having changed.
|
|
2807
|
+
*/
|
|
2808
|
+
expectedValidFrom?: string | null;
|
|
2333
2809
|
clearDeleted?: boolean;
|
|
2334
2810
|
}>;
|
|
2335
2811
|
/**
|
|
@@ -2338,6 +2814,8 @@ type UpdateEdgeParams = Readonly<{
|
|
|
2338
2814
|
type DeleteEdgeParams = Readonly<{
|
|
2339
2815
|
graphId: string;
|
|
2340
2816
|
id: string;
|
|
2817
|
+
/** See {@link UpdateEdgeParams.kind}. */
|
|
2818
|
+
kind?: string;
|
|
2341
2819
|
}>;
|
|
2342
2820
|
/**
|
|
2343
2821
|
* Parameters for hard deleting a node (permanent removal).
|
|
@@ -2353,6 +2831,8 @@ type HardDeleteNodeParams = Readonly<{
|
|
|
2353
2831
|
type HardDeleteEdgeParams = Readonly<{
|
|
2354
2832
|
graphId: string;
|
|
2355
2833
|
id: string;
|
|
2834
|
+
/** See {@link UpdateEdgeParams.kind}. */
|
|
2835
|
+
kind?: string;
|
|
2356
2836
|
}>;
|
|
2357
2837
|
/** Parameters for a batched edge delete (soft or hard). */
|
|
2358
2838
|
type DeleteEdgesBatchParams = Readonly<{
|
|
@@ -2471,9 +2951,19 @@ type VectorSearchParams = Readonly<{
|
|
|
2471
2951
|
* trades latency for recall. The floor for the over-fetch to fill its
|
|
2472
2952
|
* candidate set is `efSearch >= limit`; ~2–4× is the high-recall
|
|
2473
2953
|
* target. Applied transaction-locally (`SET LOCAL`) on the Postgres
|
|
2474
|
-
* HNSW path only.
|
|
2475
|
-
*
|
|
2476
|
-
*
|
|
2954
|
+
* HNSW path only.
|
|
2955
|
+
*
|
|
2956
|
+
* APPLIED OR REFUSED, never ignored. Read
|
|
2957
|
+
* `capabilities.vector.searchFrontierTuning` to know which you get:
|
|
2958
|
+
*
|
|
2959
|
+
* - `tunable: false` (sqlite-vec, libSQL DiskANN — no per-search frontier
|
|
2960
|
+
* knob exists): `UnsupportedBackendCapabilityError`.
|
|
2961
|
+
* - a slot whose index type is not the tunable one (pgvector IVFFlat or
|
|
2962
|
+
* brute-force): `ConfigurationError`.
|
|
2963
|
+
* - `requiresTransactionScope` on a backend reporting
|
|
2964
|
+
* `transactions: false` (for example `drizzle-orm/neon-http`):
|
|
2965
|
+
* `UnsupportedBackendCapabilityError`, because `SET LOCAL` has no frame
|
|
2966
|
+
* to be local to.
|
|
2477
2967
|
*/
|
|
2478
2968
|
efSearch?: number;
|
|
2479
2969
|
}>;
|
|
@@ -2888,13 +3378,11 @@ type ContributionDiagnosticState = "orphaned-marker" | "missing-marker" | "faile
|
|
|
2888
3378
|
* storage, so applying it to a `missing-marker` — where the table is
|
|
2889
3379
|
* intact and only the bookkeeping is wrong — discards every embedding
|
|
2890
3380
|
* to fix a marker, and without an `embed` callback it leaves the field
|
|
2891
|
-
* empty.
|
|
2892
|
-
* `
|
|
2893
|
-
*
|
|
2894
|
-
* `
|
|
2895
|
-
*
|
|
2896
|
-
* reads as initialized. See the per-state repair tables in the
|
|
2897
|
-
* troubleshooting guide.
|
|
3381
|
+
* empty. Prefer `store.repairContributions()` for `missing-marker` and
|
|
3382
|
+
* `failed-materialization`; it resolves the current strategy declarations
|
|
3383
|
+
* internally and keeps the normal signature-drift guard enabled. It reports
|
|
3384
|
+
* `stale` and `orphaned-marker` as `requires-rebuild`. See the per-state
|
|
3385
|
+
* repair table in the troubleshooting guide.
|
|
2898
3386
|
*/
|
|
2899
3387
|
type ContributionDiagnostic = Readonly<{
|
|
2900
3388
|
/** Producing strategy, e.g. `"fts5"` / `"tsvector"` / `"pgvector"`. */
|
|
@@ -2924,6 +3412,146 @@ type ContributionDiagnostic = Readonly<{
|
|
|
2924
3412
|
*/
|
|
2925
3413
|
lastError?: string;
|
|
2926
3414
|
}>;
|
|
3415
|
+
/**
|
|
3416
|
+
* Outcome of one contribution considered by
|
|
3417
|
+
* {@link GraphBackend.repairContributions}.
|
|
3418
|
+
*
|
|
3419
|
+
* Repair targets are always resolved from the backend's current strategy
|
|
3420
|
+
* declarations. The diagnostic is returned for operator context only; callers
|
|
3421
|
+
* never pass diagnostics or physical DDL back into the repair API.
|
|
3422
|
+
*/
|
|
3423
|
+
type ContributionRepairEntry = Readonly<{
|
|
3424
|
+
diagnostic: ContributionDiagnostic;
|
|
3425
|
+
status: "repaired";
|
|
3426
|
+
}> | Readonly<{
|
|
3427
|
+
diagnostic: ContributionDiagnostic;
|
|
3428
|
+
status: "requires-rebuild";
|
|
3429
|
+
}> | Readonly<{
|
|
3430
|
+
diagnostic: ContributionDiagnostic;
|
|
3431
|
+
status: "failed";
|
|
3432
|
+
error: string;
|
|
3433
|
+
}>;
|
|
3434
|
+
/** Result of a contribution repair pass followed by a fresh verification. */
|
|
3435
|
+
type ContributionRepairResult = Readonly<{
|
|
3436
|
+
results: readonly ContributionRepairEntry[];
|
|
3437
|
+
remaining: readonly ContributionDiagnostic[];
|
|
3438
|
+
}>;
|
|
3439
|
+
/**
|
|
3440
|
+
* The search projection a probe entry summarizes. Deliberately the
|
|
3441
|
+
* logical *class* rather than one physical table: a caller asking "is
|
|
3442
|
+
* search ready?" is deciding whether to issue a fulltext or a vector
|
|
3443
|
+
* query, and a per-`(kind, field)` breakdown of pgvector tables answers
|
|
3444
|
+
* a question they did not ask. The physical detail an operator needs to
|
|
3445
|
+
* act is one `verifyContributions()` call away, and
|
|
3446
|
+
* {@link ContributionProbeEntry.detail} names the affected slots.
|
|
3447
|
+
*/
|
|
3448
|
+
type ContributionProbeContribution = "fulltext" | "vector";
|
|
3449
|
+
/**
|
|
3450
|
+
* Readiness of one search projection.
|
|
3451
|
+
*
|
|
3452
|
+
* - `ready` — every contribution backing this projection is attested by
|
|
3453
|
+
* its durable marker and present in the catalog. Not a promise about
|
|
3454
|
+
* future coherence: a write that lands after the probe returns is
|
|
3455
|
+
* outside what any assessment can cover.
|
|
3456
|
+
* - `degraded` — at least one contribution is unusable. Queries against
|
|
3457
|
+
* this projection will be refused (`StoreNotInitializedError`) or will
|
|
3458
|
+
* read incomplete storage.
|
|
3459
|
+
* {@link ContributionProbeEntry.detail} says which and why.
|
|
3460
|
+
* - `building` — **reserved.** No shipped path publishes it. Recording
|
|
3461
|
+
* an in-flight marker would need a fifth
|
|
3462
|
+
* {@link ContributionDiagnosticState} and would widen the hot-path
|
|
3463
|
+
* gate's verdict set; the destructive rebuild instead runs inside one
|
|
3464
|
+
* transaction, so a concurrent probe observes the state before or
|
|
3465
|
+
* after it and never a partial one. Reserved rather than removed so a
|
|
3466
|
+
* future streaming/async materializer can populate it without a
|
|
3467
|
+
* breaking change — treat it as "not `ready`" today.
|
|
3468
|
+
*/
|
|
3469
|
+
type ContributionProbeState = "ready" | "degraded" | "building";
|
|
3470
|
+
/**
|
|
3471
|
+
* One search projection's readiness, from
|
|
3472
|
+
* {@link GraphBackend.probeContributions}.
|
|
3473
|
+
*/
|
|
3474
|
+
type ContributionProbeEntry = Readonly<{
|
|
3475
|
+
contribution: ContributionProbeContribution;
|
|
3476
|
+
state: ContributionProbeState;
|
|
3477
|
+
/**
|
|
3478
|
+
* Operator-facing summary of why the projection is not `ready` —
|
|
3479
|
+
* e.g. `"fulltext table \"typegraph_node_fulltext\" is missing
|
|
3480
|
+
* (orphaned-marker)"`. Absent on a `ready` entry.
|
|
3481
|
+
*
|
|
3482
|
+
* Human-readable and not a stable format: route on `state`, and call
|
|
3483
|
+
* `store.verifyContributions()` for the structured per-table
|
|
3484
|
+
* diagnostics this string is derived from.
|
|
3485
|
+
*/
|
|
3486
|
+
detail?: string;
|
|
3487
|
+
}>;
|
|
3488
|
+
/**
|
|
3489
|
+
* Result of {@link GraphBackend.probeContributions}.
|
|
3490
|
+
*
|
|
3491
|
+
* A projection with no declared contributions is omitted rather than
|
|
3492
|
+
* reported `ready`, so an empty `entries` array means "nothing to
|
|
3493
|
+
* assess" — a graph with no `searchable()` or `embedding()` fields, or a
|
|
3494
|
+
* backend with no contribution support — never "assessed and healthy".
|
|
3495
|
+
*/
|
|
3496
|
+
type ContributionProbeResult = Readonly<{
|
|
3497
|
+
/**
|
|
3498
|
+
* The durable graph revision the assessment was taken at, so a caller
|
|
3499
|
+
* can place this probe in the graph's committed history.
|
|
3500
|
+
*
|
|
3501
|
+
* Graph-global, like the clock it reads: it advances on every committed
|
|
3502
|
+
* capture from any writer, so an advance between two probes means
|
|
3503
|
+
* "something committed in between", never "the write this caller just
|
|
3504
|
+
* made landed". Confirm a specific write by observing the write itself.
|
|
3505
|
+
*
|
|
3506
|
+
* Absent unless the Store is revision-tracked (`revisionTracking:
|
|
3507
|
+
* true` or `history: true`) — the same condition under which
|
|
3508
|
+
* `store.revisionNow()` returns a value. This is the one honest shape:
|
|
3509
|
+
* a store with no durable revision clock has no revision to stamp, and
|
|
3510
|
+
* substituting a wall-clock timestamp or the schema version would be a
|
|
3511
|
+
* materially weaker guarantee wearing the name of a stronger one. The
|
|
3512
|
+
* schema version in particular does not advance on data writes, so it
|
|
3513
|
+
* could not order a probe against a caller's write at all.
|
|
3514
|
+
*/
|
|
3515
|
+
graphRevision?: string;
|
|
3516
|
+
entries: readonly ContributionProbeEntry[];
|
|
3517
|
+
}>;
|
|
3518
|
+
/**
|
|
3519
|
+
* Which search projection {@link GraphBackend.rebuildContribution}
|
|
3520
|
+
* targets. Scoped explicitly at the call site rather than inferred from
|
|
3521
|
+
* a diagnostic: the operation destroys storage, so which storage is the
|
|
3522
|
+
* caller's decision to state, not TypeGraph's to guess.
|
|
3523
|
+
*/
|
|
3524
|
+
type ContributionRebuildScope = ContributionProbeContribution;
|
|
3525
|
+
/**
|
|
3526
|
+
* What a rebuild's `repopulate` callback reconstructed. Reported back so
|
|
3527
|
+
* the rebuild result can distinguish "recreated empty storage" from
|
|
3528
|
+
* "recreated and refilled", which is the difference between a finished
|
|
3529
|
+
* repair and half of one.
|
|
3530
|
+
*/
|
|
3531
|
+
type ContributionRepopulationStats = Readonly<{
|
|
3532
|
+
/** Nodes scanned. */
|
|
3533
|
+
processed: number;
|
|
3534
|
+
/** Content rows written. */
|
|
3535
|
+
repopulated: number;
|
|
3536
|
+
/** Nodes whose stored `props` could not be read as an object. */
|
|
3537
|
+
skipped: number;
|
|
3538
|
+
}>;
|
|
3539
|
+
/** Outcome of one destructive contribution rebuild. */
|
|
3540
|
+
type ContributionRebuildResult = Readonly<{
|
|
3541
|
+
/** Physical tables dropped and recreated, in the order rebuilt. */
|
|
3542
|
+
rebuilt: readonly string[];
|
|
3543
|
+
/** Nodes scanned while reconstructing content from stored rows. */
|
|
3544
|
+
processed: number;
|
|
3545
|
+
/** Content rows written into the recreated storage. */
|
|
3546
|
+
repopulated: number;
|
|
3547
|
+
/**
|
|
3548
|
+
* Nodes whose stored `props` could not be read as an object, so no
|
|
3549
|
+
* content row could be reconstructed for them. Non-zero means the
|
|
3550
|
+
* rebuilt index is missing those nodes; the IDs come back from
|
|
3551
|
+
* `store.search.rebuildFulltext()`, which reports them individually.
|
|
3552
|
+
*/
|
|
3553
|
+
skipped: number;
|
|
3554
|
+
}>;
|
|
2927
3555
|
/**
|
|
2928
3556
|
* One row of the per-deployment `typegraph_kind_removals` table:
|
|
2929
3557
|
* a graph-extension kind that has been removed from the schema and whose
|
|
@@ -2970,6 +3598,21 @@ type TransactionOptions = Readonly<{
|
|
|
2970
3598
|
*/
|
|
2971
3599
|
accessMode?: "read_only" | "read_write";
|
|
2972
3600
|
}>;
|
|
3601
|
+
/**
|
|
3602
|
+
* The physical names of the four Operational Identity relations: the current
|
|
3603
|
+
* assertion ledger, its recorded-time twin, and the two DERIVED relations
|
|
3604
|
+
* (closure, separation) rebuilt from the ledger.
|
|
3605
|
+
*
|
|
3606
|
+
* Named once so the two ports that speak about them —
|
|
3607
|
+
* {@link GraphBackend.ensureIdentityTables} and
|
|
3608
|
+
* {@link GraphBackend.identityTableDdl} — cannot drift apart.
|
|
3609
|
+
*/
|
|
3610
|
+
type IdentityTableNames = Readonly<{
|
|
3611
|
+
identityAssertions: string;
|
|
3612
|
+
recordedIdentityAssertions: string;
|
|
3613
|
+
identityClosure: string;
|
|
3614
|
+
identitySeparation: string;
|
|
3615
|
+
}>;
|
|
2973
3616
|
/**
|
|
2974
3617
|
* The GraphBackend interface abstracts database operations.
|
|
2975
3618
|
*
|
|
@@ -3011,6 +3654,7 @@ type GraphBackend = Readonly<{
|
|
|
3011
3654
|
insertNodesBatch?: (this: void, params: readonly InsertNodeParams[]) => Promise<void>;
|
|
3012
3655
|
insertNodesBatchReturning?: (this: void, params: readonly InsertNodeParams[]) => Promise<readonly NodeRow[]>;
|
|
3013
3656
|
updateNode: (this: void, params: UpdateNodeParams) => Promise<NodeRow>;
|
|
3657
|
+
updateNodeSet?: (this: void, params: UpdateNodeSetParams) => Promise<UpdateNodeSetResult>;
|
|
3014
3658
|
deleteNode: (this: void, params: DeleteNodeParams) => Promise<void>;
|
|
3015
3659
|
hardDeleteNode: (this: void, params: HardDeleteNodeParams) => Promise<void>;
|
|
3016
3660
|
getNode: (this: void, graphId: string, kind: string, id: string) => Promise<NodeRow | undefined>;
|
|
@@ -3055,6 +3699,14 @@ type GraphBackend = Readonly<{
|
|
|
3055
3699
|
* path is unaffected.
|
|
3056
3700
|
*/
|
|
3057
3701
|
findEdgesByEndpointSet?: (this: void, params: FindEdgesByEndpointSetParams) => Promise<readonly EdgeRow[]>;
|
|
3702
|
+
/**
|
|
3703
|
+
* Reads several edge kinds from a heterogeneous set of endpoints without
|
|
3704
|
+
* issuing one statement per licensed `(edge kind, endpoint kind)` pair.
|
|
3705
|
+
*
|
|
3706
|
+
* Optional for custom backends. Store-level heterogeneous bulk reads refuse
|
|
3707
|
+
* when it is absent rather than hiding a per-kind/per-endpoint fallback.
|
|
3708
|
+
*/
|
|
3709
|
+
findEdgesByHeterogeneousEndpointSet?: (this: void, params: FindEdgesByHeterogeneousEndpointSetParams) => Promise<readonly EdgeRow[]>;
|
|
3058
3710
|
countEdgesByKind: (this: void, params: CountEdgesByKindParams) => Promise<number>;
|
|
3059
3711
|
insertUnique: (this: void, params: InsertUniqueParams) => Promise<void>;
|
|
3060
3712
|
/**
|
|
@@ -3065,6 +3717,12 @@ type GraphBackend = Readonly<{
|
|
|
3065
3717
|
*/
|
|
3066
3718
|
insertUniqueBatch?: (this: void, entries: readonly InsertUniqueParams[]) => Promise<void>;
|
|
3067
3719
|
deleteUnique: (this: void, params: DeleteUniqueParams) => Promise<void>;
|
|
3720
|
+
/**
|
|
3721
|
+
* Permanently removes every uniqueness sidecar owned by the specified
|
|
3722
|
+
* concrete nodes. Optional capability used by set-based updates before they
|
|
3723
|
+
* rebuild reservations from the returned node after-images.
|
|
3724
|
+
*/
|
|
3725
|
+
hardDeleteUniquesByNodeIds?: (this: void, params: HardDeleteUniquesByNodeIdsParams) => Promise<void>;
|
|
3068
3726
|
checkUnique: (this: void, params: CheckUniqueParams) => Promise<UniqueRow | undefined>;
|
|
3069
3727
|
checkUniqueBatch?: (this: void, params: CheckUniqueBatchParams) => Promise<readonly UniqueRow[]>;
|
|
3070
3728
|
getActiveSchema: (this: void, graphId: string) => Promise<SchemaVersionRow | undefined>;
|
|
@@ -3119,11 +3777,32 @@ type GraphBackend = Readonly<{
|
|
|
3119
3777
|
* transaction-scoped backend. PostgreSQL locks the active schema row, so a
|
|
3120
3778
|
* concurrent change either becomes visible at read committed or raises the
|
|
3121
3779
|
* database's native serialization failure at stronger isolation.
|
|
3780
|
+
*
|
|
3781
|
+
* On rejection the thrown `StaleVersionError` reports the active
|
|
3782
|
+
* version this transaction can observe after the conflict resolves, so
|
|
3783
|
+
* `details.actual` names the version that won rather than the absence the
|
|
3784
|
+
* blocked read momentarily saw.
|
|
3122
3785
|
*/
|
|
3123
3786
|
lockSchemaVersionForWrite?: (this: void, params: Readonly<{
|
|
3124
3787
|
graphId: string;
|
|
3125
3788
|
expectedVersion: number;
|
|
3126
3789
|
}>) => Promise<void>;
|
|
3790
|
+
/**
|
|
3791
|
+
* Internal schema-lifecycle seam for features whose data preflight must
|
|
3792
|
+
* commit atomically with the schema CAS. The callback runs in the same
|
|
3793
|
+
* write transaction after the schema write fence is acquired and before the
|
|
3794
|
+
* version write; it receives no schema-version write methods, so callers
|
|
3795
|
+
* cannot bypass the CAS.
|
|
3796
|
+
*
|
|
3797
|
+
* The preflight target is a {@link SchemaCommitPreflightBackend}: the
|
|
3798
|
+
* transaction backend plus the schema-write DDL primitive, because a
|
|
3799
|
+
* transition may have to CREATE the storage its own preflight then fills —
|
|
3800
|
+
* and creating it outside this transaction would publish it empty whenever
|
|
3801
|
+
* the commit is refused.
|
|
3802
|
+
*
|
|
3803
|
+
* @internal
|
|
3804
|
+
*/
|
|
3805
|
+
commitSchemaVersionWithPreflight?: (this: void, params: CommitSchemaVersionParams, preflight: (target: SchemaCommitPreflightBackend) => Promise<void>) => Promise<SchemaVersionRow>;
|
|
3127
3806
|
/**
|
|
3128
3807
|
* Atomically flips the active schema pointer to an existing version,
|
|
3129
3808
|
* with optimistic compare-and-swap on the currently active version.
|
|
@@ -3158,6 +3837,9 @@ type GraphBackend = Readonly<{
|
|
|
3158
3837
|
*/
|
|
3159
3838
|
upsertEmbeddingBatch?: (this: void, params: UpsertEmbeddingBatchParams) => Promise<void>;
|
|
3160
3839
|
deleteEmbedding?: (this: void, params: DeleteEmbeddingParams) => Promise<void>;
|
|
3840
|
+
deleteEmbeddingBatch?: (this: void, params: Omit<DeleteEmbeddingParams, "nodeId"> & Readonly<{
|
|
3841
|
+
nodeIds: readonly string[];
|
|
3842
|
+
}>) => Promise<void>;
|
|
3161
3843
|
/**
|
|
3162
3844
|
* KNN search over one `(nodeKind, fieldPath)` slot. Top-k is computed
|
|
3163
3845
|
* over CURRENT nodes only — non-tombstoned AND inside their validity
|
|
@@ -3229,6 +3911,54 @@ type GraphBackend = Readonly<{
|
|
|
3229
3911
|
* without replaying all base-table DDL during a merge read.
|
|
3230
3912
|
*/
|
|
3231
3913
|
ensureRevisionOriginsTable?: (this: void) => Promise<void>;
|
|
3914
|
+
/**
|
|
3915
|
+
* Idempotently ensure ONLY the three Operational Identity relations exist —
|
|
3916
|
+
* the current-assertions table, the recorded-time assertions table, and the
|
|
3917
|
+
* derived closure and separation tables — with their indexes and CHECK
|
|
3918
|
+
* constraints (CREATE TABLE / CREATE INDEX IF NOT EXISTS).
|
|
3919
|
+
*
|
|
3920
|
+
* First enablement of identity on an existing populated deployment attaches
|
|
3921
|
+
* via `createStore` / `createSqliteBackend` / `createPostgresBackend`, none
|
|
3922
|
+
* of which run DDL, so the enablement preflight would otherwise
|
|
3923
|
+
* SELECT/DELETE/INSERT tables that do not exist yet. The store calls this
|
|
3924
|
+
* before the enablement locks and closure rebuild. Focused rather than
|
|
3925
|
+
* `bootstrapTables` for the same concurrency rationale as
|
|
3926
|
+
* {@link ensureRevisionOriginsTable}. Stores call it before opening the
|
|
3927
|
+
* schema-commit transaction so DDL does not re-enter its per-graph lock.
|
|
3928
|
+
* Returns the logical names that were absent before this call. Callers set
|
|
3929
|
+
* `provisionMissing` only for safe first enablement; on an already-enabled
|
|
3930
|
+
* graph, missing ledger tables are deliberately left absent so a failed open
|
|
3931
|
+
* cannot make its next retry silently accept empty replacement storage.
|
|
3932
|
+
*
|
|
3933
|
+
* @internal
|
|
3934
|
+
*/
|
|
3935
|
+
ensureIdentityTables?: (this: void, tableNames: IdentityTableNames, options: Readonly<{
|
|
3936
|
+
provisionMissing: boolean;
|
|
3937
|
+
}>) => Promise<readonly string[]>;
|
|
3938
|
+
/**
|
|
3939
|
+
* The idempotent CREATE statements for exactly the identity relations —
|
|
3940
|
+
* the same DDL {@link ensureIdentityTables} issues, handed back as data
|
|
3941
|
+
* instead of executed.
|
|
3942
|
+
*
|
|
3943
|
+
* Pure and synchronous: it executes nothing and probes no catalog, so it is
|
|
3944
|
+
* safe to call from inside an already-open transaction, where invoking a
|
|
3945
|
+
* top-level backend method would re-enter the backend's serialized statement
|
|
3946
|
+
* queue and deadlock. That is the whole point. Provisioning a missing DERIVED
|
|
3947
|
+
* relation (closure, separation) on an already-enabled graph has to CREATE it
|
|
3948
|
+
* and FILL it in one transaction, because a created-but-empty derived
|
|
3949
|
+
* relation is readable and answers every question with "nothing" — for the
|
|
3950
|
+
* separation relation, "nothing" means "not separated", which is exactly the
|
|
3951
|
+
* answer that lets a contradictory merge commit.
|
|
3952
|
+
*
|
|
3953
|
+
* A backend that omits this cannot offer that atomicity. Callers do not fall
|
|
3954
|
+
* back: when a fill is owed, the upgrade is REFUSED with the typed
|
|
3955
|
+
* `IDENTITY_UPGRADE_REQUIRES_ATOMIC_DDL` error naming this port — creating
|
|
3956
|
+
* and filling back-to-back would publish the readable-empty state the
|
|
3957
|
+
* paragraph above forbids.
|
|
3958
|
+
*
|
|
3959
|
+
* @internal
|
|
3960
|
+
*/
|
|
3961
|
+
identityTableDdl?: (this: void, tableNames: IdentityTableNames) => readonly string[];
|
|
3232
3962
|
/**
|
|
3233
3963
|
* Look up a recorded materialization for a declared index by its
|
|
3234
3964
|
* physical SQL index name. Returns `undefined` if no row exists.
|
|
@@ -3295,11 +4025,11 @@ type GraphBackend = Readonly<{
|
|
|
3295
4025
|
assertRuntimeContributionsInitialized?: (this: void, graphId: string) => Promise<void>;
|
|
3296
4026
|
/**
|
|
3297
4027
|
* Bootstraps the per-deployment `typegraph_kind_removals` table so
|
|
3298
|
-
* `store.
|
|
3299
|
-
* removal status. Mirrors the focused-bootstrap
|
|
3300
|
-
* on `ensureIndexMaterializationsTable` — the full
|
|
3301
|
-
* touches every base table and risks Postgres SHARE-lock
|
|
3302
|
-
* under concurrent replica startup.
|
|
4028
|
+
* `store.evolve()` can check pending removals and the removal verbs can
|
|
4029
|
+
* persist and materialize removal status. Mirrors the focused-bootstrap
|
|
4030
|
+
* rationale documented on `ensureIndexMaterializationsTable` — the full
|
|
4031
|
+
* `bootstrapTables` touches every base table and risks Postgres SHARE-lock
|
|
4032
|
+
* deadlock under concurrent replica startup.
|
|
3303
4033
|
*/
|
|
3304
4034
|
ensureKindRemovalsTable?: (this: void) => Promise<void>;
|
|
3305
4035
|
/**
|
|
@@ -3430,6 +4160,73 @@ type GraphBackend = Readonly<{
|
|
|
3430
4160
|
* Present only on backends that can probe their own catalog.
|
|
3431
4161
|
*/
|
|
3432
4162
|
verifyContributions?: (this: void, graphId: string, vectorSlots: readonly VectorSlot[]) => Promise<readonly ContributionDiagnostic[]>;
|
|
4163
|
+
/**
|
|
4164
|
+
* Re-audit current contribution declarations and non-destructively repair
|
|
4165
|
+
* `missing-marker` and `failed-materialization` findings. The backend must
|
|
4166
|
+
* resolve every target itself; it must not accept caller-provided physical
|
|
4167
|
+
* identities or DDL. `stale` and `orphaned-marker` findings are returned as
|
|
4168
|
+
* `requires-rebuild` because repairing either can require destructive data
|
|
4169
|
+
* reconstruction.
|
|
4170
|
+
*
|
|
4171
|
+
* Present only on backends that can both probe their catalog and run the
|
|
4172
|
+
* strategy-owned contribution DDL.
|
|
4173
|
+
*/
|
|
4174
|
+
repairContributions?: (this: void, graphId: string, vectorSlots: readonly VectorSlot[]) => Promise<ContributionRepairResult>;
|
|
4175
|
+
/**
|
|
4176
|
+
* Read-only readiness probe: the same marker-versus-catalog audit
|
|
4177
|
+
* `verifyContributions` performs, projected onto one entry per search
|
|
4178
|
+
* projection. Shares that method's detection logic exactly — a second
|
|
4179
|
+
* implementation would be free to disagree with the one the hot-path
|
|
4180
|
+
* gate actually consults, and a health check that disagrees with the
|
|
4181
|
+
* gate is worse than none.
|
|
4182
|
+
*
|
|
4183
|
+
* Writes nothing: no DDL, no marker writes, no effect on the
|
|
4184
|
+
* per-instance caches the hot path relies on. Safe on a read path, on
|
|
4185
|
+
* a replica, and under a least-privilege role.
|
|
4186
|
+
*
|
|
4187
|
+
* Present only on backends that can probe their catalog; a backend
|
|
4188
|
+
* that provisions contributions without this method declares the gap
|
|
4189
|
+
* as `capabilities.contributions.probe === false`.
|
|
4190
|
+
*/
|
|
4191
|
+
probeContributions?: (this: void, graphId: string, vectorSlots: readonly VectorSlot[]) => Promise<readonly ContributionProbeEntry[]>;
|
|
4192
|
+
/**
|
|
4193
|
+
* Destructively rebuild one search projection for one graph: clear that
|
|
4194
|
+
* graph's rows from the projection's storage, ensure the storage matches
|
|
4195
|
+
* the current `createDdl`, reconstruct the graph's content, and stamp the
|
|
4196
|
+
* durable marker at the current signature.
|
|
4197
|
+
*
|
|
4198
|
+
* This is the repair `repairContributions` deliberately refuses to
|
|
4199
|
+
* perform, and it must never be reachable from it. A `stale`
|
|
4200
|
+
* contribution's table exists at the *old* physical shape, so the
|
|
4201
|
+
* idempotent `CREATE ... IF NOT EXISTS` in the ordinary ensure path
|
|
4202
|
+
* no-ops; re-stamping the marker there would leave it blessing a table
|
|
4203
|
+
* whose shape is wrong, which is exactly what the drift guard exists
|
|
4204
|
+
* to prevent. Only a drop makes the recreate meaningful, and destroying
|
|
4205
|
+
* content is a decision the caller states rather than one a flag named
|
|
4206
|
+
* `force` implies.
|
|
4207
|
+
*
|
|
4208
|
+
* The fulltext projection's storage is one physical table shared by every
|
|
4209
|
+
* graph in the database, while this call is fenced per graph.
|
|
4210
|
+
* Implementations must therefore scope the teardown to `graphId` and may
|
|
4211
|
+
* drop the storage only when doing so destroys no other graph's rows;
|
|
4212
|
+
* when the recorded shape is stale and the drop that would repair it is
|
|
4213
|
+
* not available, they refuse (`shared-storage-in-use`) rather than
|
|
4214
|
+
* re-stamp a shape nothing verified.
|
|
4215
|
+
*
|
|
4216
|
+
* Runs the whole sequence inside one transaction under the same
|
|
4217
|
+
* per-graph fence as a schema commit, so an interrupted rebuild leaves
|
|
4218
|
+
* the contribution exactly as it was rather than attested-but-empty.
|
|
4219
|
+
*
|
|
4220
|
+
* `repopulate` receives that transaction and reconstructs content from
|
|
4221
|
+
* rows TypeGraph already stores. The inversion exists because deciding
|
|
4222
|
+
* *what* content a node contributes needs the schema registry, which
|
|
4223
|
+
* is a Store-layer concern the backend must not reach into.
|
|
4224
|
+
*
|
|
4225
|
+
* @param scope which projection to rebuild. Implementations must
|
|
4226
|
+
* refuse `"vector"`: embeddings live only in the storage this would
|
|
4227
|
+
* drop, so there is nothing to reconstruct them from.
|
|
4228
|
+
*/
|
|
4229
|
+
rebuildContribution?: (this: void, graphId: string, scope: ContributionRebuildScope, repopulate: (target: TransactionBackend) => Promise<ContributionRepopulationStats>) => Promise<ContributionRebuildResult>;
|
|
3433
4230
|
/**
|
|
3434
4231
|
* Bootstraps the fulltext storage table the active `FulltextStrategy`
|
|
3435
4232
|
* owns. Same focused-bootstrap rationale as the other `ensure*Table`
|
|
@@ -3564,16 +4361,16 @@ type AdapterBackend<TNativeTransaction> = GraphBackend & Readonly<{
|
|
|
3564
4361
|
}>;
|
|
3565
4362
|
type BackendIdentity = Pick<GraphBackend, "dialect" | "capabilities" | "tableNames" | "fulltextStrategy" | "vectorStrategy">;
|
|
3566
4363
|
type NodeEntityReadBackend = Pick<GraphBackend, "getNode" | "getNodes" | "findNodesByKind" | "countNodesByKind">;
|
|
3567
|
-
type NodeEntityWriteBackend = Pick<GraphBackend, "insertNode" | "insertNodeNoReturn" | "insertNodesBatch" | "insertNodesBatchReturning" | "updateNode" | "deleteNode" | "hardDeleteNode">;
|
|
3568
|
-
type EdgeEntityReadBackend = Pick<GraphBackend, "getEdge" | "getEdges" | "countEdgesFrom" | "edgeExistsBetween" | "findEdgesConnectedTo" | "findEdgesByKind" | "findEdgesByEndpointSet" | "countEdgesByKind">;
|
|
4364
|
+
type NodeEntityWriteBackend = Pick<GraphBackend, "insertNode" | "insertNodeNoReturn" | "insertNodesBatch" | "insertNodesBatchReturning" | "updateNode" | "updateNodeSet" | "deleteNode" | "hardDeleteNode">;
|
|
4365
|
+
type EdgeEntityReadBackend = Pick<GraphBackend, "getEdge" | "getEdges" | "countEdgesFrom" | "edgeExistsBetween" | "findEdgesConnectedTo" | "findEdgesByKind" | "findEdgesByEndpointSet" | "findEdgesByHeterogeneousEndpointSet" | "countEdgesByKind">;
|
|
3569
4366
|
type EdgeEntityWriteBackend = Pick<GraphBackend, "insertEdge" | "insertEdgeNoReturn" | "insertEdgesBatch" | "insertEdgesBatchReturning" | "updateEdge" | "deleteEdge" | "deleteEdgesBatch" | "hardDeleteEdge" | "hardDeleteEdgesBatch">;
|
|
3570
4367
|
type GraphEntityReadBackend = NodeEntityReadBackend & EdgeEntityReadBackend;
|
|
3571
4368
|
type GraphEntityWriteBackend = NodeEntityWriteBackend & EdgeEntityWriteBackend;
|
|
3572
|
-
type UniqueConstraintBackend = Pick<GraphBackend, "insertUnique" | "insertUniqueBatch" | "deleteUnique" | "checkUnique" | "checkUniqueBatch">;
|
|
4369
|
+
type UniqueConstraintBackend = Pick<GraphBackend, "insertUnique" | "insertUniqueBatch" | "deleteUnique" | "hardDeleteUniquesByNodeIds" | "checkUnique" | "checkUniqueBatch">;
|
|
3573
4370
|
type SchemaReadBackend = Pick<GraphBackend, "getActiveSchema" | "getSchemaVersion">;
|
|
3574
4371
|
type SchemaCommitBackend = Pick<GraphBackend, "commitSchemaVersion" | "commitSchemaVersionIfKindsEmpty" | "setActiveVersion">;
|
|
3575
4372
|
type SchemaWriteFenceBackend = Pick<GraphBackend, "lockSchemaVersionForWrite">;
|
|
3576
|
-
type VectorOperationBackend = Pick<GraphBackend, "upsertEmbedding" | "upsertEmbeddingBatch" | "deleteEmbedding" | "vectorSearch" | "createVectorIndex" | "dropVectorIndex">;
|
|
4373
|
+
type VectorOperationBackend = Pick<GraphBackend, "upsertEmbedding" | "upsertEmbeddingBatch" | "deleteEmbedding" | "deleteEmbeddingBatch" | "vectorSearch" | "createVectorIndex" | "dropVectorIndex">;
|
|
3577
4374
|
type FulltextOperationBackend = Pick<GraphBackend, "upsertFulltext" | "deleteFulltext" | "upsertFulltextBatch" | "deleteFulltextBatch" | "fulltextSearch">;
|
|
3578
4375
|
type IndexMaterializationBackend = Pick<GraphBackend, "ensureIndexMaterializationsTable" | "getIndexMaterialization" | "getIndexMaterializations" | "recordIndexMaterialization">;
|
|
3579
4376
|
type ContributionMaterializationBackend = Pick<GraphBackend, "ensureContributionMaterializationsTable" | "getContributionMaterialization" | "recordContributionMaterialization" | "assertRuntimeContributionsInitialized" | "ensureRuntimeContributions" | "ensureFulltextTable">;
|
|
@@ -3605,6 +4402,23 @@ type TransactionReadBackend = Readonly<BackendIdentity & GraphEntityReadBackend
|
|
|
3605
4402
|
* lifecycle owner rather than an already-open transaction.
|
|
3606
4403
|
*/
|
|
3607
4404
|
type TransactionBackend = Readonly<BackendIdentity & GraphEntityReadBackend & GraphEntityWriteBackend & UniqueConstraintBackend & SchemaReadBackend & Pick<GraphBackend, "lockSchemaVersionForWrite"> & VectorOperationBackend & FulltextOperationBackend & IndexMaterializationBackend & ContributionMaterializationBackend & RemovalMaterializationBackend & GraphLifecycleBackend & QueryExecutionBackend & RawQueryExecutionBackend & RawStatementExecutionBackend>;
|
|
4405
|
+
/**
|
|
4406
|
+
* The target a schema-commit preflight runs against: a transaction backend
|
|
4407
|
+
* that MAY also carry the schema-write DDL primitive.
|
|
4408
|
+
*
|
|
4409
|
+
* Optional, deliberately. Both bundled backends pass the same
|
|
4410
|
+
* {@link SchemaWriteTransactionBackend} their `schemaWriteTransaction` exposes,
|
|
4411
|
+
* so DDL is available there; a custom backend may implement
|
|
4412
|
+
* {@link GraphBackend.commitSchemaVersionWithPreflight} over a transaction that
|
|
4413
|
+
* cannot run DDL. Declaring the port as present-or-absent lets a preflight that
|
|
4414
|
+
* needs it refuse with a typed error naming the capability, instead of calling
|
|
4415
|
+
* `undefined` — or, far worse, skipping the DDL and continuing.
|
|
4416
|
+
*
|
|
4417
|
+
* @internal
|
|
4418
|
+
*/
|
|
4419
|
+
type SchemaCommitPreflightBackend = TransactionBackend & Readonly<{
|
|
4420
|
+
executeSchemaDdl?: (this: void, ddl: string) => Promise<void>;
|
|
4421
|
+
}>;
|
|
3608
4422
|
/**
|
|
3609
4423
|
* Parameters for inserting a unique constraint entry.
|
|
3610
4424
|
*/
|
|
@@ -3625,6 +4439,12 @@ type DeleteUniqueParams = Readonly<{
|
|
|
3625
4439
|
constraintName: string;
|
|
3626
4440
|
key: string;
|
|
3627
4441
|
}>;
|
|
4442
|
+
/** Parameters for permanently clearing uniqueness sidecars by node identity. */
|
|
4443
|
+
type HardDeleteUniquesByNodeIdsParams = Readonly<{
|
|
4444
|
+
graphId: string;
|
|
4445
|
+
concreteKind: string;
|
|
4446
|
+
nodeIds: readonly string[];
|
|
4447
|
+
}>;
|
|
3628
4448
|
/**
|
|
3629
4449
|
* Parameters for checking a unique constraint.
|
|
3630
4450
|
*/
|
|
@@ -3906,6 +4726,29 @@ type FindEdgesByEndpointSetParams = Readonly<{
|
|
|
3906
4726
|
/** Timestamp for "current" and "asOf" temporal modes. */
|
|
3907
4727
|
asOf?: string;
|
|
3908
4728
|
}>;
|
|
4729
|
+
/**
|
|
4730
|
+
* Parameters for reading several edge kinds from several endpoint kinds.
|
|
4731
|
+
*
|
|
4732
|
+
* The endpoint pairs are joined as a relation, so round trips are independent
|
|
4733
|
+
* of the number of licensed edge-kind/endpoint-kind combinations. Large source
|
|
4734
|
+
* sets may still be split to respect the backend's bind-parameter budget.
|
|
4735
|
+
*/
|
|
4736
|
+
type FindEdgesByHeterogeneousEndpointSetParams = Readonly<{
|
|
4737
|
+
graphId: string;
|
|
4738
|
+
side: EdgeEndpointSide;
|
|
4739
|
+
endpoints: readonly Readonly<{
|
|
4740
|
+
kind: string;
|
|
4741
|
+
id: string;
|
|
4742
|
+
}>[];
|
|
4743
|
+
edgeKinds: readonly string[];
|
|
4744
|
+
limitPerEndpoint?: number;
|
|
4745
|
+
/** If true, exclude deleted edges. Default true. */
|
|
4746
|
+
excludeDeleted?: boolean;
|
|
4747
|
+
/** Temporal mode for filtering by validity period. */
|
|
4748
|
+
temporalMode?: TemporalMode;
|
|
4749
|
+
/** Timestamp for "current" and "asOf" temporal modes. */
|
|
4750
|
+
asOf?: string;
|
|
4751
|
+
}>;
|
|
3909
4752
|
/**
|
|
3910
4753
|
* Parameters for counting edges by kind.
|
|
3911
4754
|
*/
|
|
@@ -4283,6 +5126,8 @@ type Traversal = Readonly<{
|
|
|
4283
5126
|
joinEdgeField: "from_id" | "to_id";
|
|
4284
5127
|
/** If true, use LEFT JOIN instead of INNER JOIN (optional match) */
|
|
4285
5128
|
optional: boolean;
|
|
5129
|
+
/** Expand this hop through coordinate-visible Operational Identity members. */
|
|
5130
|
+
includeIdentityMembers?: boolean;
|
|
4286
5131
|
/** Variable-length traversal configuration (for recursive CTEs) */
|
|
4287
5132
|
variableLength?: VariableLengthSpec;
|
|
4288
5133
|
}>;
|
|
@@ -4756,4 +5601,4 @@ type RelationalIndexDeclaration = NodeIndexDeclaration | EdgeIndexDeclaration;
|
|
|
4756
5601
|
type IndexDeclaration = RelationalIndexDeclaration | VectorIndexDeclaration;
|
|
4757
5602
|
type SystemColumnName = "graph_id" | "kind" | "id" | "from_kind" | "from_id" | "to_kind" | "to_id" | "deleted_at" | "valid_from" | "valid_to" | "created_at" | "updated_at" | "version";
|
|
4758
5603
|
|
|
4759
|
-
export { type InferenceType as $, type AdapterBackend as A, type BackendCapabilities as B, type ContributionDiagnostic as C, type DeleteBehavior as D, type EdgeRegistration as E, type FulltextStrategy as F, type GraphExtension as G, type SerializedEdgeDef as H, type IndexDeclaration as I, type JsonPointer as J, type KindEntity as K, type IndexEntity as L, type SerializedMetaEdge as M, type NodeRegistration as N, type OntologyRelation as O, type SerializedOntologyRelation as P, type QueryAst as Q, type RelationalIndexDeclaration as R, type SqlDialect as S, type TemporalMode as T, type SerializedClosures as U, type VectorStrategy as V, type SchemaHash as W, type NullCheckOp as X, type JsonSchema as Y, type SerializedOntology as Z, type SerializedUniqueConstraint as _, type ContributionDiagnosticState as a, type ParameterRef as a$, type EdgeType as a0, type AggregateExpr as a1, type FieldRef as a2, type ComparisonOp as a3, type AggregateComparisonPredicate as a4, type TraversalDirection as a5, type AdapterBackendTransactions as a6, type BackendIdentity as a7, type BackendLifecycle as a8, type BackendMaintenance as a9, type FulltextSearchParams as aA, type FulltextSearchResult as aB, type GraphAnalyticsCapabilities as aC, type GraphEntityReadBackend as aD, type GraphEntityWriteBackend as aE, type GraphExtensionVersion as aF, type GraphLifecycleBackend as aG, type HybridFusionOptions as aH, type IndexMaterializationBackend as aI, type IntentSql as aJ, type JsonPointerFor as aK, type JsonPointerInput as aL, type JsonPointerSegment as aM, type JsonPointerSegments as aN, type JsonPointerSegmentsFor as aO, type JsonValue as aP, type KindAnnotations as aQ, LEGACY_GRAPH_EXTENSION_VERSION as aR, type LockSchemaVersionForWriteParams as aS, MAX_JSON_POINTER_DEPTH as aT, type MetaEdge as aU, type MetaEdgeProperties as aV, type NodeEntityReadBackend as aW, type NodeEntityWriteBackend as aX, type NodeId as aY, type NodeProps as aZ, type OrderSpec as a_, type BackendTransactions as aa, CURRENT_GRAPH_EXTENSION_VERSION as ab, type Cardinality as ac, type Collation as ad, type CommitSchemaVersionExpected as ae, type CommitSchemaVersionIfKindsEmptyResult as af, type CommitSchemaVersionParams as ag, type CompiledRowsSql as ah, type CompiledSelectSql as ai, type CompiledStatementSql as aj, type ContributionMaterializationBackend as ak, DEFAULT_SQL_SCHEMA as al, type DeleteFulltextBatchParams as am, type EdgeEntityReadBackend as an, type EdgeEntityWriteBackend as ao, type EdgeId as ap, type EdgeProps as aq, type EdgeTypeWithEndpoints as ar, type EndpointExistence as as, type ExternalRecordedReadSource as at, type FilteredApproximateSearch as au, type FilteredApproximateSearchMode as av, type FulltextBatchRow as aw, type FulltextCapabilities as ax, type FulltextOperationBackend as ay, type FulltextQueryMode as az, type NodeType as b, sql as b$, Placeholder as b0, type PopulatedSchemaKind as b1, type QueryExecutionBackend as b2, type RawQueryExecutionBackend as b3, type RawStatementExecutionBackend as b4, type RecordedRelationOptions as b5, type RemovalMaterializationBackend as b6, type RenderedSql as b7, type ResolveJsonPointer as b8, type ResolveJsonPointerSegments as b9, type UniqueConstraint as bA, type UniqueConstraintBackend as bB, type UniquenessScope as bC, type UpsertFulltextBatchParams as bD, type VectorCapabilities as bE, type VectorOperationBackend as bF, asEdgeId as bG, asNodeId as bH, buildVectorCapabilities as bI, createSqlSchema as bJ, fts5Strategy as bK, isEdgeType as bL, isEdgeTypeWithEndpoints as bM, isMetaEdge as bN, isNodeType as bO, isSqlFragment as bP, joinJsonPointers as bQ, jsonPointer as bR, normalizeJsonPointer as bS, parseJsonPointer as bT, recordedRelation as bU, renderPostgres as bV, renderSql as bW, renderSqlInline as bX, renderSqlite as bY, rowPropsToJsonText as bZ, rowPropsToObject as b_, type ResolvedSqlTableNames as ba, type RowProps as bb, type SchemaCommitBackend as bc, type SchemaKindEmptinessProbe as bd, type SchemaReadBackend as be, type SchemaWriteFenceBackend as bf, type SetActiveVersionParams as bg, type SortDirection as bh, type SqlChunk as bi, type SqlFragment as bj, type SqlIdentifierChunk as bk, type SqlIntent as bl, type SqlParameterChunk as bm, type SqlPlaceholderChunk as bn, SqlSchema as bo, type SqlTableNames as bp, type SqlTag as bq, type SqlTextChunk as br, type StrategyTableContribution as bs, type TableContribution as bt, type TransactionBackend as bu, type TransactionOptions as bv, type TransactionReadBackend as bw, type TraversalExpansion as bx, type TrustedImportOptions as by, type TrustedImportSession as bz, type AnyEdgeType as c, type ExtensionPropertyType as c$, tsvectorStrategy as c0, type ExtensionNodeDef as c1, type ExtensionEdgeDef as c2, type ExtensionOntologyRelation as c3, type ExtensionIndex as c4, type ValueType as c5, type PredicateExpression as c6, type VectorMetricType as c7, type Traversal as c8, type NodePredicate as c9, D1_MAX_BIND_PARAMETERS as cA, DURABLE_OBJECT_MAX_BIND_PARAMETERS as cB, type DeleteEdgeParams as cC, type DeleteEdgesBatchParams as cD, type DeleteEmbeddingParams as cE, type DeleteFulltextParams as cF, type DeleteNodeParams as cG, type DeleteUniqueParams as cH, type DialectAdapter as cI, type DialectCapabilities as cJ, type DialectRecursiveQueryStrategy as cK, type DialectStandardQueryStrategy as cL, type DialectVectorPredicateStrategy as cM, type DropVectorIndexParams as cN, type EdgeExistsBetweenParams as cO, type ExtensionArrayItemType as cP, type ExtensionArrayProperty as cQ, type ExtensionBooleanProperty as cR, type ExtensionEdgeIndex as cS, type ExtensionEmbeddingModifier as cT, type ExtensionEnumProperty as cU, type ExtensionIndexWhere as cV, type ExtensionNodeIndex as cW, type ExtensionNumberProperty as cX, type ExtensionObjectFieldProperty as cY, type ExtensionObjectProperty as cZ, type ExtensionPropertyModifiers as c_, type ProjectedField as ca, type AggregateOrderSpec as cb, type GroupBySpec as cc, type RecursiveCyclePolicy as cd, type NodeRow as ce, type EdgeRow as cf, type VectorSlotMap as cg, type RecordedReadBinding as ch, type SelectiveField as ci, type ComposableQuery as cj, type SetOperationType as ck, type SetOperation as cl, type VectorMetric as cm, ALL_FULLTEXT_MODES as cn, ALL_META_EDGE_NAMES as co, BASE_CONTRIBUTION_OWNER as cp, type CheckUniqueBatchParams as cq, type CheckUniqueParams as cr, type ClaimIndexMaterializationParams as cs, type CompiledTemporaryStatementSql as ct, type ContributionMaterializationIdentity as cu, type ContributionMaterializationRow as cv, type CountEdgesByKindParams as cw, type CountEdgesFromParams as cx, type CountNodesByKindParams as cy, type CreateVectorIndexParams as cz, type GraphDefaults as d, GRAPH_EXTENSION_TOP_LEVEL_KEYS as d$, type ExtensionSearchableModifier as d0, type ExtensionStringProperty as d1, type ExtensionUniqueConstraint as d2, type ExtensionUniqueWhere as d3, FULLTEXT_CONTRIBUTION_NAME as d4, type FindEdgesByKindParams as d5, type FindEdgesConnectedToParams as d6, type FindNodesByKindParams as d7, type GraphReadBackend as d8, type HardDeleteEdgeParams as d9, SQLITE_MAX_BIND_PARAMETERS as dA, type SqlCompilationBackend as dB, type TombstonedNodeRow as dC, type UniqueRow as dD, type UpdateEdgeParams as dE, type UpdateNodeParams as dF, type UpsertEmbeddingBatchParams as dG, type UpsertEmbeddingBatchRow as dH, type UpsertEmbeddingParams as dI, type UpsertFulltextParams as dJ, VECTOR_CONTRIBUTION_PREFIX as dK, type VectorIndexType as dL, type VectorSearchParams as dM, type VectorSearchResult as dN, assertFiniteEmbedding as dO, assertVectorMinScore as dP, assertVectorSearchLimit as dQ, buildFulltextCapabilities as dR, isLiveNodeRow as dS, isSqlPlaceholder as dT, isTombstonedNodeRow as dU, normalizeGraphAnalyticsCapabilities as dV, quoteIdentifier as dW, shortHash as dX, vectorMinScoreCondition as dY, vectorPhysicalName as dZ, vectorScoreExpression as d_, type HardDeleteNodeParams as da, type HybridSearchParams as db, type HybridSearchRow as dc, type InListParameterOptions as dd, type IndexDeclarationBase as de, type IndexMaterializationRow as df, type IndexWhereLiteral as dg, type IndexWhereOp as dh, type IndexWhereOperand as di, type InsertEdgeParams as dj, type InsertNodeParams as dk, type InsertSchemaParams as dl, type InsertUniqueParams as dm, type KindRemovalRow as dn, type LiveNodeRow as dp, MODERN_SQLITE_MAX_BIND_PARAMETERS as dq, type MetaEdgeName as dr, POSTGRES_CAPABILITIES as ds, POSTGRES_MAX_BIND_PARAMETERS as dt, type RecordContributionMaterializationParams as du, type RecordIndexMaterializationParams as dv, type RecordKindRemovalParams as dw, type RelationalIndexMethod as dx, type ReleaseIndexMaterializationClaimParams as dy, SQLITE_CAPABILITIES as dz, type EdgeIndexDeclaration as e, type GraphExtensionTopLevelKey as e0, type NodeIndexDeclaration as f, type EdgeIndexConfig as g, type EdgeIndexDirection as h, type EdgeIndexWhereBuilder as i, type IndexOrigin as j, type IndexScope as k, type IndexWhereExpression as l, type IndexWhereFieldBuilder as m, type IndexWhereInput as n, type NodeIndexConfig as o, type NodeIndexWhereBuilder as p, type SystemColumnName as q, type VectorIndexDeclaration as r, type VectorIndexImplementation as s, type VectorIndexMetric as t, type VectorIndexParams as u, type VectorSlot as v, type SchemaVersionRow as w, type GraphBackend as x, type SerializedSchema as y, type SerializedNodeDef as z };
|
|
5604
|
+
export { type EdgeId as $, type AdapterBackend as A, type BackendCapabilities as B, type ContributionDiagnostic as C, type SerializedNodeDef as D, type EdgeIndexDeclaration as E, type FulltextStrategy as F, type GraphIdentityConfig as G, type SerializedEdgeDef as H, type IndexDeclaration as I, type JsonPointer as J, type KindEntity as K, type IndexEntity as L, type SerializedMetaEdge as M, type NodeIndexDeclaration as N, type SerializedOntologyRelation as O, type SerializedClosures as P, type QueryAst as Q, type RelationalIndexDeclaration as R, type SqlDialect as S, type TemporalMode as T, type SchemaHash as U, type VectorStrategy as V, type NullCheckOp as W, type JsonSchema as X, type SerializedOntology as Y, type SerializedUniqueConstraint as Z, type NodeId as _, type ContributionDiagnosticState as a, type GetEdgeType as a$, type JsonValue as a0, type NodeKinds as a1, type GetNodeType as a2, type KindAnnotations as a3, type MetaEdge as a4, type EdgeType as a5, type DeleteBehavior as a6, type GraphExtensionVersion as a7, type ExtensionNodeDef as a8, type ExtensionEdgeDef as a9, type ContributionMaterializationBackend as aA, type ContributionProbeContribution as aB, type ContributionProbeEntry as aC, type ContributionProbeResult as aD, type ContributionProbeState as aE, type ContributionRebuildResult as aF, type ContributionRebuildScope as aG, type ContributionRepopulationStats as aH, DEFAULT_SQL_SCHEMA as aI, type DeleteFulltextBatchParams as aJ, type EdgeEntityReadBackend as aK, type EdgeEntityWriteBackend as aL, type EdgeKinds as aM, type EdgeProps as aN, type EdgeRegistration as aO, type EdgeTypeWithEndpoints as aP, type EndpointExistence as aQ, type ExternalRecordedReadSource as aR, type FilteredApproximateSearch as aS, type FilteredApproximateSearchMode as aT, type FindEdgesByHeterogeneousEndpointSetParams as aU, type FulltextBatchRow as aV, type FulltextCapabilities as aW, type FulltextOperationBackend as aX, type FulltextQueryMode as aY, type FulltextSearchParams as aZ, type FulltextSearchResult as a_, type ExtensionOntologyRelation as aa, type ExtensionIndex as ab, type AggregateExpr as ac, type FieldRef as ad, type ComparisonOp as ae, type AggregateComparisonPredicate as af, type TraversalDirection as ag, type OntologyRelation as ah, type InferenceType as ai, type AdapterBackendTransactions as aj, type AllEdgeTypes as ak, type AllNodeTypes as al, type BackendIdentity as am, type BackendLifecycle as an, type BackendMaintenance as ao, type BackendTransactions as ap, CURRENT_GRAPH_EXTENSION_VERSION as aq, type Cardinality as ar, type Collation as as, type CommitSchemaVersionExpected as at, type CommitSchemaVersionIfKindsEmptyResult as au, type CommitSchemaVersionParams as av, type CompiledRowsSql as aw, type CompiledSelectSql as ax, type CompiledStatementSql as ay, type ContributionCapabilities as az, type ContributionRepairEntry as b, type UpdateNodeSetParams as b$, type GraphAnalyticsCapabilities as b0, type GraphDefaults as b1, type GraphEntityReadBackend as b2, type GraphEntityWriteBackend as b3, type GraphExtension as b4, type GraphLifecycleBackend as b5, type HardDeleteUniquesByNodeIdsParams as b6, type HybridFusionOptions as b7, type IndexMaterializationBackend as b8, type IntentSql as b9, type RowProps as bA, type SchemaCommitBackend as bB, type SchemaKindEmptinessProbe as bC, type SchemaReadBackend as bD, type SchemaWriteFenceBackend as bE, type SetActiveVersionParams as bF, type SortDirection as bG, type SqlChunk as bH, type SqlFragment as bI, type SqlIdentifierChunk as bJ, type SqlIntent as bK, type SqlParameterChunk as bL, type SqlPlaceholderChunk as bM, type SqlTableNames as bN, type SqlTag as bO, type SqlTextChunk as bP, type StrategyTableContribution as bQ, type TableContribution as bR, type TransactionBackend as bS, type TransactionOptions as bT, type TransactionReadBackend as bU, type TraversalExpansion as bV, type TrustedImportOptions as bW, type TrustedImportSession as bX, type UniqueConstraint as bY, type UniqueConstraintBackend as bZ, type UniquenessScope as b_, type JsonPointerFor as ba, type JsonPointerInput as bb, type JsonPointerSegment as bc, type JsonPointerSegments as bd, type JsonPointerSegmentsFor as be, LEGACY_GRAPH_EXTENSION_VERSION as bf, type LockSchemaVersionForWriteParams as bg, MAX_JSON_POINTER_DEPTH as bh, type MetaEdgeProperties as bi, type NodeEntityReadBackend as bj, type NodeEntityWriteBackend as bk, type NodeProps as bl, type NodeRegistration as bm, type OrderSpec as bn, type ParameterRef as bo, Placeholder as bp, type PopulatedSchemaKind as bq, type QueryExecutionBackend as br, type RawQueryExecutionBackend as bs, type RawStatementExecutionBackend as bt, type RecordedRelationOptions as bu, type RemovalMaterializationBackend as bv, type RenderedSql as bw, type ResolveJsonPointer as bx, type ResolveJsonPointerSegments as by, type ResolvedSqlTableNames as bz, type ContributionRepairResult as c, D1_MAX_BIND_PARAMETERS as c$, type UpdateNodeSetResult as c0, type UpsertFulltextBatchParams as c1, type VectorCapabilities as c2, type VectorOperationBackend as c3, type VectorSearchFrontierTuning as c4, asEdgeId as c5, asNodeId as c6, buildVectorCapabilities as c7, createSqlSchema as c8, defineGraph as c9, type NodePredicate as cA, type ProjectedField as cB, type AggregateOrderSpec as cC, type GroupBySpec as cD, type RecursiveCyclePolicy as cE, type VectorSlotMap as cF, type RecordedReadBinding as cG, type SelectiveField as cH, type ComposableQuery as cI, type SetOperationType as cJ, type SetOperation as cK, type NodeRow as cL, type EdgeRow as cM, type VectorMetric as cN, ALL_FULLTEXT_MODES as cO, ALL_META_EDGE_NAMES as cP, BASE_CONTRIBUTION_OWNER as cQ, type CheckUniqueBatchParams as cR, type CheckUniqueParams as cS, type ClaimIndexMaterializationParams as cT, type CompiledTemporaryStatementSql as cU, type ContributionMaterializationIdentity as cV, type ContributionMaterializationRow as cW, type CountEdgesByKindParams as cX, type CountEdgesFromParams as cY, type CountNodesByKindParams as cZ, type CreateVectorIndexParams as c_, fts5Strategy as ca, getEdgeKinds as cb, getNodeKinds as cc, isEdgeType as cd, isEdgeTypeWithEndpoints as ce, isGraphDef as cf, isMetaEdge as cg, isNodeType as ch, isSqlFragment as ci, joinJsonPointers as cj, jsonPointer as ck, normalizeJsonPointer as cl, parseJsonPointer as cm, recordedRelation as cn, renderPostgres as co, renderSql as cp, renderSqlInline as cq, renderSqlite as cr, rowPropsToJsonText as cs, rowPropsToObject as ct, sql as cu, tsvectorStrategy as cv, type ValueType as cw, type PredicateExpression as cx, type VectorMetricType as cy, type Traversal as cz, type GraphDef as d, type ReleaseIndexMaterializationClaimParams as d$, DURABLE_OBJECT_MAX_BIND_PARAMETERS as d0, type DeleteEdgeParams as d1, type DeleteEdgesBatchParams as d2, type DeleteEmbeddingParams as d3, type DeleteFulltextParams as d4, type DeleteNodeParams as d5, type DeleteUniqueParams as d6, type DialectAdapter as d7, type DialectCapabilities as d8, type DialectRecursiveQueryStrategy as d9, type FindNodesByKindParams as dA, type GraphReadBackend as dB, type HardDeleteEdgeParams as dC, type HardDeleteNodeParams as dD, type HybridSearchParams as dE, type HybridSearchRow as dF, type IdentityTableNames as dG, type InListParameterOptions as dH, type IndexDeclarationBase as dI, type IndexMaterializationRow as dJ, type IndexWhereLiteral as dK, type IndexWhereOp as dL, type IndexWhereOperand as dM, type InsertEdgeParams as dN, type InsertNodeParams as dO, type InsertSchemaParams as dP, type InsertUniqueParams as dQ, type KindRemovalRow as dR, type LiveNodeRow as dS, MODERN_SQLITE_MAX_BIND_PARAMETERS as dT, type MetaEdgeName as dU, POSTGRES_CAPABILITIES as dV, POSTGRES_MAX_BIND_PARAMETERS as dW, type RecordContributionMaterializationParams as dX, type RecordIndexMaterializationParams as dY, type RecordKindRemovalParams as dZ, type RelationalIndexMethod as d_, type DialectStandardQueryStrategy as da, type DialectVectorPredicateStrategy as db, type DropVectorIndexParams as dc, type EdgeExistsBetweenParams as dd, type ExtensionArrayItemType as de, type ExtensionArrayProperty as df, type ExtensionBooleanProperty as dg, type ExtensionEdgeIndex as dh, type ExtensionEmbeddingModifier as di, type ExtensionEnumProperty as dj, type ExtensionIndexWhere as dk, type ExtensionNodeIndex as dl, type ExtensionNumberProperty as dm, type ExtensionObjectFieldProperty as dn, type ExtensionObjectProperty as dp, type ExtensionPropertyModifiers as dq, type ExtensionPropertyType as dr, type ExtensionSearchableModifier as ds, type ExtensionStringProperty as dt, type ExtensionUniqueConstraint as du, type ExtensionUniqueWhere as dv, FULLTEXT_CONTRIBUTION_NAME as dw, type FindEdgesByEndpointSetParams as dx, type FindEdgesByKindParams as dy, type FindEdgesConnectedToParams as dz, type EdgeIndexConfig as e, SQLITE_CAPABILITIES as e0, SQLITE_MAX_BIND_PARAMETERS as e1, type SchemaCommitPreflightBackend as e2, type SqlCompilationBackend as e3, type TombstonedNodeRow as e4, type UniqueRow as e5, type UpdateEdgeParams as e6, type UpdateNodeParams as e7, type UpsertEmbeddingBatchParams as e8, type UpsertEmbeddingBatchRow as e9, type UpsertEmbeddingParams as ea, type UpsertFulltextParams as eb, VECTOR_CONTRIBUTION_PREFIX as ec, type VectorIndexType as ed, type VectorSearchParams as ee, type VectorSearchResult as ef, assertFiniteEmbedding as eg, assertVectorMinScore as eh, assertVectorSearchLimit as ei, buildFulltextCapabilities as ej, isLiveNodeRow as ek, isSqlPlaceholder as el, isTombstonedNodeRow as em, normalizeGraphAnalyticsCapabilities as en, quoteIdentifier as eo, shortHash as ep, vectorMinScoreCondition as eq, vectorPhysicalName as er, vectorScoreExpression as es, GRAPH_EXTENSION_TOP_LEVEL_KEYS as et, type GraphExtensionTopLevelKey as eu, type EdgeIndexDirection as f, type EdgeIndexWhereBuilder as g, type IndexOrigin as h, type IndexScope as i, type IndexWhereExpression as j, type IndexWhereFieldBuilder as k, type IndexWhereInput as l, type NodeIndexConfig as m, type NodeIndexWhereBuilder as n, type SystemColumnName as o, type VectorIndexDeclaration as p, type VectorIndexImplementation as q, type VectorIndexMetric as r, type VectorIndexParams as s, type VectorSlot as t, type NodeType as u, type AnyEdgeType as v, SqlSchema as w, type SchemaVersionRow as x, type GraphBackend as y, type SerializedSchema as z };
|