mcard-js 2.1.41 → 2.1.43
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/{CardCollection-MXTUJV4J.js → CardCollection-7DKJWKAG.js} +3 -2
- package/dist/CardCollection-S4RE3RXP.js +10 -0
- package/dist/CardCollection-VPN7AAAX.js +10 -0
- package/dist/{IndexedDBEngine-2G5KCISA.js → IndexedDBEngine-7JOGM2MM.js} +3 -2
- package/dist/IndexedDBEngine-BGZHJK5L.js +12 -0
- package/dist/IndexedDBEngine-ZJ442GI7.js +12 -0
- package/dist/{LLMRuntime-GIGDMDEZ.js → LLMRuntime-OZNVAPXJ.js} +4 -3
- package/dist/{LLMRuntime-LBWUJ7ON.js → LLMRuntime-UPSEDSIK.js} +2 -2
- package/dist/{LambdaRuntime-B6D6IQKZ.js → LambdaRuntime-JZ4Q56TI.js} +6 -5
- package/dist/LambdaRuntime-PM3OUFHU.js +19 -0
- package/dist/LambdaRuntime-WBEK37AF.js +19 -0
- package/dist/LambdaRuntime-YKSBAT65.js +19 -0
- package/dist/{Loader-3LSJXJQG.js → Loader-7HQVYDPA.js} +2 -2
- package/dist/{Loader-BM56B2TX.js → Loader-NYWTV7CQ.js} +4 -3
- package/dist/{Loader-CYLAA4XU.js → Loader-OLKPY6HT.js} +3 -3
- package/dist/{MCard-H56VOJLR.js → MCard-OYI73CUI.js} +1 -1
- package/dist/{MCard-5LIREV2B.js → MCard-XHG3BZC7.js} +2 -2
- package/dist/{NetworkRuntime-IAFHPQSX.js → NetworkRuntime-VYCC5HSY.js} +16 -11
- package/dist/{NetworkRuntime-JNGKW3DY.js → NetworkRuntime-XQX3LDDI.js} +61 -33
- package/dist/{NetworkRuntime-CXPKIAOQ.js → NetworkRuntime-XZR733M5.js} +17 -12
- package/dist/{OllamaProvider-QPX2JXL2.js → OllamaProvider-FBZ5WW72.js} +1 -1
- package/dist/OllamaProvider-W6TPZNHD.js +9 -0
- package/dist/chunk-2NFGZ6PA.js +170 -0
- package/dist/{chunk-VXV35I5J.js → chunk-4TYRTQ4V.js} +48 -17
- package/dist/chunk-4VWWTGRW.js +497 -0
- package/dist/{chunk-4PDYHPR6.js → chunk-5GHZP7E5.js} +4 -2
- package/dist/{chunk-42VF42KH.js → chunk-5HZNWJFT.js} +4 -2
- package/dist/{chunk-DEYMHG5A.js → chunk-6MG5ZHAP.js} +58 -22
- package/dist/{chunk-7V37AAPK.js → chunk-7B4PABOL.js} +16 -7
- package/dist/chunk-A5S2PI37.js +47 -0
- package/dist/chunk-BFD4WSWU.js +497 -0
- package/dist/chunk-BSEFN25Q.js +32 -0
- package/dist/{chunk-3LPY36OG.js → chunk-CBEVE7RG.js} +20 -15
- package/dist/{chunk-A5AB4WQN.js → chunk-DPA3ZK4Q.js} +30 -21
- package/dist/{chunk-5FA54AMM.js → chunk-EJHX3VZL.js} +54 -21
- package/dist/{chunk-QXPHMSPA.js → chunk-GNF4WAPV.js} +22 -9
- package/dist/{chunk-XPG6B5IW.js → chunk-JHIA2BQK.js} +26 -13
- package/dist/{chunk-4I5IZILN.js → chunk-KGPICAQW.js} +10 -7
- package/dist/{chunk-4WBJPHZP.js → chunk-MST5AZXJ.js} +17 -8
- package/dist/{chunk-K35KFTEA.js → chunk-N6KDHCBC.js} +58 -33
- package/dist/{chunk-2R4ESMZB.js → chunk-NFO5NU6B.js} +5 -3
- package/dist/chunk-OKWBHCKC.js +170 -0
- package/dist/{chunk-FIE4LAJG.js → chunk-OX3K6UZJ.js} +5 -3
- package/dist/{chunk-6SEX42H2.js → chunk-R3K7DG7O.js} +21 -16
- package/dist/chunk-RB35Z35T.js +44 -0
- package/dist/{chunk-AWGFLRLI.js → chunk-SP4YPKPR.js} +51 -318
- package/dist/chunk-U7TSFDKX.js +217 -0
- package/dist/chunk-UP3SQX56.js +112 -0
- package/dist/{chunk-4EUEU4SM.js → chunk-VGIRC3HX.js} +13 -110
- package/dist/chunk-WGG7526Z.js +112 -0
- package/dist/{chunk-3JBSRALP.js → chunk-WNKP66IR.js} +10 -7
- package/dist/{chunk-DOC55MPG.js → chunk-WR6ISHCS.js} +11 -3
- package/dist/{chunk-52UNWVOD.js → chunk-ZVOPQ5BM.js} +54 -21
- package/dist/chunk-ZZMOPQER.js +217 -0
- package/dist/index.browser.cjs +79 -1454
- package/dist/index.browser.d.cts +2 -17
- package/dist/index.browser.d.ts +2 -17
- package/dist/index.browser.js +7 -6
- package/dist/index.cjs +306 -1631
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +49 -35
- package/dist/storage/SqliteNodeEngine.cjs +59 -1335
- package/dist/storage/SqliteNodeEngine.js +4 -3
- package/dist/storage/SqliteWasmEngine.cjs +57 -1335
- package/dist/storage/SqliteWasmEngine.js +4 -3
- package/package.json +12 -8
- package/dist/CardCollection-4OFJ6XQJ.js +0 -9
- package/dist/CardCollection-7PDWM24F.js +0 -9
- package/dist/CardCollection-CEFQ5PA6.js +0 -9
- package/dist/CardCollection-GUEYGN2Y.js +0 -9
- package/dist/CardCollection-KDO4CQ4B.js +0 -9
- package/dist/CardCollection-PB7ZY73E.js +0 -9
- package/dist/CardCollection-RK4DVH63.js +0 -9
- package/dist/CardCollection-T376E3TS.js +0 -9
- package/dist/CardCollection-WGCKKUOD.js +0 -9
- package/dist/CardCollection-XON2IWDU.js +0 -9
- package/dist/CardCollection-ZEI6FMP3.js +0 -9
- package/dist/EventProducer-MW6QF4IO.js +0 -47
- package/dist/EventProducer-V7RY2KKR.js +0 -47
- package/dist/FileIO.d.ts +0 -44
- package/dist/FileIO.d.ts.map +0 -1
- package/dist/FileIO.js +0 -203
- package/dist/FileIO.js.map +0 -1
- package/dist/IndexedDBEngine-7JI2CL32.js +0 -10
- package/dist/IndexedDBEngine-7OHQIRTI.js +0 -10
- package/dist/IndexedDBEngine-E5YJQG4U.js +0 -10
- package/dist/IndexedDBEngine-NV625E7L.js +0 -10
- package/dist/IndexedDBEngine-RPQS7ILF.js +0 -10
- package/dist/IndexedDBEngine-S3ZWCSI7.js +0 -10
- package/dist/IndexedDBEngine-T7OC5GRR.js +0 -10
- package/dist/LLMRuntime-BKB3CLXM.js +0 -16
- package/dist/LLMRuntime-BQUUFLAB.js +0 -16
- package/dist/LLMRuntime-TNBC4JCB.js +0 -16
- package/dist/LambdaRuntime-4YILF3G7.js +0 -15
- package/dist/LambdaRuntime-53TPVENI.js +0 -16
- package/dist/LambdaRuntime-73BSWP2G.js +0 -16
- package/dist/LambdaRuntime-AL5SBDCA.js +0 -17
- package/dist/LambdaRuntime-BYBUI7H5.js +0 -17
- package/dist/LambdaRuntime-JDZP3HIQ.js +0 -17
- package/dist/LambdaRuntime-JEI7RVWG.js +0 -16
- package/dist/LambdaRuntime-LCTHBYMV.js +0 -17
- package/dist/LambdaRuntime-LDA3G7IR.js +0 -16
- package/dist/LambdaRuntime-LF4FR6YA.js +0 -16
- package/dist/LambdaRuntime-O7JBVHO2.js +0 -16
- package/dist/LambdaRuntime-OFOTT464.js +0 -17
- package/dist/LambdaRuntime-Q6ISCHAD.js +0 -16
- package/dist/LambdaRuntime-TCZ42XCB.js +0 -16
- package/dist/LambdaRuntime-UKUOKJIW.js +0 -17
- package/dist/LambdaRuntime-VKLON4IB.js +0 -17
- package/dist/LambdaRuntime-WNYDBTS6.js +0 -16
- package/dist/LambdaRuntime-WPTX76CX.js +0 -17
- package/dist/Loader-4P7PEBCL.js +0 -11
- package/dist/Loader-HQ3QKMYM.js +0 -11
- package/dist/Loader-NCATGB67.js +0 -11
- package/dist/Loader-NRHGDQBD.js +0 -11
- package/dist/Loader-RT4NI6AT.js +0 -11
- package/dist/Loader-SSRY57SS.js +0 -11
- package/dist/Loader-W72QZ3T7.js +0 -11
- package/dist/Loader-WECRIXQW.js +0 -11
- package/dist/Loader-XFBIHCQF.js +0 -11
- package/dist/Loader.d.ts +0 -34
- package/dist/Loader.d.ts.map +0 -1
- package/dist/Loader.js +0 -190
- package/dist/Loader.js.map +0 -1
- package/dist/MCard-4J6WSBRF.js +0 -8
- package/dist/MCard-E3MRPTJF.js +0 -8
- package/dist/MCard-FCOIB6BP.js +0 -8
- package/dist/MCard-G4HUWHY5.js +0 -8
- package/dist/MCard-HFL7AFIH.js +0 -8
- package/dist/MCard-JOW6RBSO.js +0 -8
- package/dist/MCard-M4LKN4U2.js +0 -8
- package/dist/MCard-VB7UDUTN.js +0 -8
- package/dist/MCard-WOHE6SX6.js +0 -8
- package/dist/NetworkRuntime-2H7AQITA.js +0 -1571
- package/dist/NetworkRuntime-3MIUBNOF.js +0 -1571
- package/dist/NetworkRuntime-AOE2EJIM.js +0 -1571
- package/dist/NetworkRuntime-BQMDBUDO.js +0 -1570
- package/dist/NetworkRuntime-GMANLCAB.js +0 -1542
- package/dist/NetworkRuntime-L7P4VCGK.js +0 -1542
- package/dist/NetworkRuntime-LC7SUAOF.js +0 -1542
- package/dist/NetworkRuntime-OJWCWPBI.js +0 -1570
- package/dist/NetworkRuntime-ZJ3B4T3A.js +0 -1542
- package/dist/OllamaProvider-32RC36HD.js +0 -8
- package/dist/OllamaProvider-MQXSXLCA.js +0 -8
- package/dist/OllamaProvider-Q45BMOVN.js +0 -8
- package/dist/SqliteNodeEngine-WKVFWBNH.js +0 -9
- package/dist/StorageAdapter-DdDUiIvH.d.cts +0 -391
- package/dist/StorageAdapter-DdDUiIvH.d.ts +0 -391
- package/dist/StorageAdapter-Dw1BeOam.d.cts +0 -380
- package/dist/StorageAdapter-Dw1BeOam.d.ts +0 -380
- package/dist/chunk-23GCCCXB.js +0 -402
- package/dist/chunk-2ECISK2I.js +0 -354
- package/dist/chunk-2MRBTM72.js +0 -354
- package/dist/chunk-2THXO6FH.js +0 -2313
- package/dist/chunk-2VNRWIBZ.js +0 -389
- package/dist/chunk-2VOQRXWH.js +0 -296
- package/dist/chunk-34AYBZRO.js +0 -920
- package/dist/chunk-37EEYISR.js +0 -372
- package/dist/chunk-3E2TKOCZ.js +0 -354
- package/dist/chunk-3MMMJ7NH.js +0 -1068
- package/dist/chunk-437JTYVP.js +0 -292
- package/dist/chunk-4MQINOOG.js +0 -1218
- package/dist/chunk-4UIWXZHY.js +0 -1049
- package/dist/chunk-53S2EZCY.js +0 -290
- package/dist/chunk-5BIDGXA6.js +0 -987
- package/dist/chunk-5HXLTWYN.js +0 -296
- package/dist/chunk-5W2FDGUF.js +0 -371
- package/dist/chunk-6R4ERZMG.js +0 -1136
- package/dist/chunk-74YSNHEM.js +0 -2309
- package/dist/chunk-7H2BQZDK.js +0 -270
- package/dist/chunk-7KEWCCES.js +0 -1136
- package/dist/chunk-7PN2BUYF.js +0 -371
- package/dist/chunk-A2ZJA2EV.js +0 -389
- package/dist/chunk-ARPIBGRP.js +0 -1236
- package/dist/chunk-ATHNEEAG.js +0 -2309
- package/dist/chunk-AVXJOPUE.js +0 -354
- package/dist/chunk-B7VEU4S2.js +0 -204
- package/dist/chunk-C2TKISBR.js +0 -1213
- package/dist/chunk-CBH4YKB4.js +0 -2309
- package/dist/chunk-DP7HBRDL.js +0 -2309
- package/dist/chunk-DV7ZSH4W.js +0 -2309
- package/dist/chunk-DWXNZ5AJ.js +0 -642
- package/dist/chunk-EFKMZTT2.js +0 -270
- package/dist/chunk-FXJYXHG6.js +0 -266
- package/dist/chunk-G466I6RT.js +0 -229
- package/dist/chunk-GATPBTHL.js +0 -1142
- package/dist/chunk-GMQAHPBC.js +0 -292
- package/dist/chunk-GMWA2IJJ.js +0 -1105
- package/dist/chunk-GVX5LDLH.js +0 -371
- package/dist/chunk-HGENNKOJ.js +0 -355
- package/dist/chunk-HM2NBYHU.js +0 -292
- package/dist/chunk-IZWB5GCG.js +0 -389
- package/dist/chunk-J4HOFUKM.js +0 -2309
- package/dist/chunk-JIK2G3EH.js +0 -2313
- package/dist/chunk-JRXNWGSW.js +0 -1136
- package/dist/chunk-KRKK3KP6.js +0 -1081
- package/dist/chunk-KYXZHRUG.js +0 -389
- package/dist/chunk-L36L2VDL.js +0 -371
- package/dist/chunk-L5PZCES6.js +0 -204
- package/dist/chunk-L5U77ZEM.js +0 -1142
- package/dist/chunk-LQEKGX2T.js +0 -204
- package/dist/chunk-LWMUDMMQ.js +0 -1144
- package/dist/chunk-MLKGABMK.js +0 -9
- package/dist/chunk-NZ6OQ7UT.js +0 -92
- package/dist/chunk-O2UMNZGF.js +0 -903
- package/dist/chunk-OFHDMLNM.js +0 -355
- package/dist/chunk-PDBMNUMB.js +0 -316
- package/dist/chunk-PW4XS7M3.js +0 -850
- package/dist/chunk-QA2XQMMJ.js +0 -2313
- package/dist/chunk-QL2JFNA7.js +0 -389
- package/dist/chunk-QPZ2HNSU.js +0 -912
- package/dist/chunk-QVGVU6OS.js +0 -296
- package/dist/chunk-RCEU7PFH.js +0 -270
- package/dist/chunk-RSTKX7WM.js +0 -907
- package/dist/chunk-RXL2CW64.js +0 -266
- package/dist/chunk-RXUF6Y43.js +0 -2309
- package/dist/chunk-SIAA4J6H.js +0 -21
- package/dist/chunk-SOJ2UMO2.js +0 -986
- package/dist/chunk-T3AG6DXY.js +0 -296
- package/dist/chunk-TPCNKMGZ.js +0 -355
- package/dist/chunk-TPT3S5AX.js +0 -204
- package/dist/chunk-TXWGIEVH.js +0 -2313
- package/dist/chunk-TZFI54AU.js +0 -2313
- package/dist/chunk-U3FWUPD3.js +0 -717
- package/dist/chunk-UFW2VW2D.js +0 -266
- package/dist/chunk-UTAOS5Y7.js +0 -2313
- package/dist/chunk-V7VX5OJ6.js +0 -389
- package/dist/chunk-W2XGNMYB.js +0 -355
- package/dist/chunk-W3M4HJ4U.js +0 -2309
- package/dist/chunk-WMJGGREP.js +0 -296
- package/dist/chunk-WTNVQ5WS.js +0 -732
- package/dist/chunk-WVFWNVT2.js +0 -1050
- package/dist/chunk-WY7EYSYC.js +0 -1236
- package/dist/chunk-X42F7DE3.js +0 -373
- package/dist/chunk-XC7Y4I7L.js +0 -290
- package/dist/chunk-YFULZTKP.js +0 -270
- package/dist/chunk-YSVHXKSZ.js +0 -373
- package/dist/chunk-YWGVK5OS.js +0 -292
- package/dist/chunk-Z4BRNTO5.js +0 -2313
- package/dist/chunk-ZDUXDKPD.js +0 -292
- package/dist/chunk-ZXQ2W7LO.js +0 -355
- package/dist/chunk-ZXQELXXO.js +0 -378
- package/dist/index.browser.d.ts.map +0 -1
- package/dist/index.browser.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib-4XS34IPZ.js +0 -778
- package/dist/model/CardCollection.d.ts +0 -147
- package/dist/model/CardCollection.d.ts.map +0 -1
- package/dist/model/CardCollection.js +0 -272
- package/dist/model/CardCollection.js.map +0 -1
- package/dist/model/ContentTypeInterpreter.d.ts +0 -28
- package/dist/model/ContentTypeInterpreter.d.ts.map +0 -1
- package/dist/model/ContentTypeInterpreter.js +0 -147
- package/dist/model/ContentTypeInterpreter.js.map +0 -1
- package/dist/model/EventProducer.d.ts +0 -10
- package/dist/model/EventProducer.d.ts.map +0 -1
- package/dist/model/EventProducer.js +0 -46
- package/dist/model/EventProducer.js.map +0 -1
- package/dist/model/GTime.d.ts +0 -44
- package/dist/model/GTime.d.ts.map +0 -1
- package/dist/model/GTime.js +0 -91
- package/dist/model/GTime.js.map +0 -1
- package/dist/model/Handle.d.ts +0 -37
- package/dist/model/Handle.d.ts.map +0 -1
- package/dist/model/Handle.js +0 -90
- package/dist/model/Handle.js.map +0 -1
- package/dist/model/MCard.d.ts +0 -145
- package/dist/model/MCard.d.ts.map +0 -1
- package/dist/model/MCard.js +0 -180
- package/dist/model/MCard.js.map +0 -1
- package/dist/model/PCard.d.ts +0 -271
- package/dist/model/PCard.d.ts.map +0 -1
- package/dist/model/PCard.js +0 -558
- package/dist/model/PCard.js.map +0 -1
- package/dist/model/VCard.d.ts +0 -277
- package/dist/model/VCard.d.ts.map +0 -1
- package/dist/model/VCard.js +0 -573
- package/dist/model/VCard.js.map +0 -1
- package/dist/model/constants.d.ts +0 -45
- package/dist/model/constants.d.ts.map +0 -1
- package/dist/model/constants.js +0 -27
- package/dist/model/constants.js.map +0 -1
- package/dist/model/vcard_vocabulary.d.ts +0 -174
- package/dist/model/vcard_vocabulary.d.ts.map +0 -1
- package/dist/model/vcard_vocabulary.js +0 -187
- package/dist/model/vcard_vocabulary.js.map +0 -1
- package/dist/monads/Either.d.ts +0 -51
- package/dist/monads/Either.d.ts.map +0 -1
- package/dist/monads/Either.js +0 -82
- package/dist/monads/Either.js.map +0 -1
- package/dist/monads/IO.d.ts +0 -38
- package/dist/monads/IO.d.ts.map +0 -1
- package/dist/monads/IO.js +0 -66
- package/dist/monads/IO.js.map +0 -1
- package/dist/monads/Maybe.d.ts +0 -45
- package/dist/monads/Maybe.d.ts.map +0 -1
- package/dist/monads/Maybe.js +0 -73
- package/dist/monads/Maybe.js.map +0 -1
- package/dist/monads/Reader.d.ts +0 -29
- package/dist/monads/Reader.d.ts.map +0 -1
- package/dist/monads/Reader.js +0 -44
- package/dist/monads/Reader.js.map +0 -1
- package/dist/monads/State.d.ts +0 -33
- package/dist/monads/State.d.ts.map +0 -1
- package/dist/monads/State.js +0 -50
- package/dist/monads/State.js.map +0 -1
- package/dist/monads/Writer.d.ts +0 -29
- package/dist/monads/Writer.d.ts.map +0 -1
- package/dist/monads/Writer.js +0 -46
- package/dist/monads/Writer.js.map +0 -1
- package/dist/ptr/Bridgelet.d.ts +0 -180
- package/dist/ptr/Bridgelet.d.ts.map +0 -1
- package/dist/ptr/Bridgelet.js +0 -296
- package/dist/ptr/Bridgelet.js.map +0 -1
- package/dist/ptr/CLMIntrospection.d.ts +0 -169
- package/dist/ptr/CLMIntrospection.d.ts.map +0 -1
- package/dist/ptr/CLMIntrospection.js +0 -329
- package/dist/ptr/CLMIntrospection.js.map +0 -1
- package/dist/ptr/FaroSidecar.d.ts +0 -56
- package/dist/ptr/FaroSidecar.d.ts.map +0 -1
- package/dist/ptr/FaroSidecar.js +0 -102
- package/dist/ptr/FaroSidecar.js.map +0 -1
- package/dist/ptr/LensProtocol.d.ts +0 -84
- package/dist/ptr/LensProtocol.d.ts.map +0 -1
- package/dist/ptr/LensProtocol.js +0 -98
- package/dist/ptr/LensProtocol.js.map +0 -1
- package/dist/ptr/OpenTelemetrySidecar.d.ts +0 -144
- package/dist/ptr/OpenTelemetrySidecar.d.ts.map +0 -1
- package/dist/ptr/OpenTelemetrySidecar.js +0 -232
- package/dist/ptr/OpenTelemetrySidecar.js.map +0 -1
- package/dist/ptr/SandboxWorker.d.ts +0 -79
- package/dist/ptr/SandboxWorker.d.ts.map +0 -1
- package/dist/ptr/SandboxWorker.js +0 -298
- package/dist/ptr/SandboxWorker.js.map +0 -1
- package/dist/ptr/common_types.d.ts +0 -39
- package/dist/ptr/common_types.d.ts.map +0 -1
- package/dist/ptr/common_types.js +0 -12
- package/dist/ptr/common_types.js.map +0 -1
- package/dist/rag/GraphRAGEngine.d.ts +0 -26
- package/dist/rag/GraphRAGEngine.d.ts.map +0 -1
- package/dist/rag/GraphRAGEngine.js +0 -166
- package/dist/rag/GraphRAGEngine.js.map +0 -1
- package/dist/rag/HandleVectorStore.d.ts +0 -201
- package/dist/rag/HandleVectorStore.d.ts.map +0 -1
- package/dist/rag/HandleVectorStore.js +0 -527
- package/dist/rag/HandleVectorStore.js.map +0 -1
- package/dist/rag/PersistentIndexer.d.ts +0 -148
- package/dist/rag/PersistentIndexer.d.ts.map +0 -1
- package/dist/rag/PersistentIndexer.js +0 -302
- package/dist/rag/PersistentIndexer.js.map +0 -1
- package/dist/rag/index.d.ts +0 -20
- package/dist/rag/index.d.ts.map +0 -1
- package/dist/rag/index.js +0 -26
- package/dist/rag/index.js.map +0 -1
- package/dist/rag/semanticVersioning.d.ts +0 -187
- package/dist/rag/semanticVersioning.d.ts.map +0 -1
- package/dist/rag/semanticVersioning.js +0 -253
- package/dist/rag/semanticVersioning.js.map +0 -1
- package/dist/storage/IndexedDBEngine.d.ts +0 -33
- package/dist/storage/IndexedDBEngine.d.ts.map +0 -1
- package/dist/storage/IndexedDBEngine.js +0 -198
- package/dist/storage/IndexedDBEngine.js.map +0 -1
- package/dist/storage/SqliteNodeEngine.d.ts.map +0 -1
- package/dist/storage/SqliteNodeEngine.js.map +0 -1
- package/dist/storage/SqliteWasmEngine.d.ts.map +0 -1
- package/dist/storage/SqliteWasmEngine.js.map +0 -1
- package/dist/storage/StorageAdapter.d.ts +0 -42
- package/dist/storage/StorageAdapter.d.ts.map +0 -1
- package/dist/storage/StorageAdapter.js +0 -2
- package/dist/storage/StorageAdapter.js.map +0 -1
- package/dist/storage/VectorStore.d.ts +0 -202
- package/dist/storage/VectorStore.d.ts.map +0 -1
- package/dist/storage/VectorStore.js +0 -557
- package/dist/storage/VectorStore.js.map +0 -1
- package/dist/storage/schema.d.ts +0 -162
- package/dist/storage/schema.d.ts.map +0 -1
- package/dist/storage/schema.js +0 -335
- package/dist/storage/schema.js.map +0 -1
- package/dist/storage/schema_constants.d.ts +0 -7
- package/dist/storage/schema_constants.d.ts.map +0 -1
- package/dist/storage/schema_constants.js +0 -415
- package/dist/storage/schema_constants.js.map +0 -1
- package/dist/types/dots.d.ts +0 -206
- package/dist/types/dots.d.ts.map +0 -1
- package/dist/types/dots.js +0 -201
- package/dist/types/dots.js.map +0 -1
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SandboxWorker - Execute code in isolated Web Worker
|
|
3
|
-
*
|
|
4
|
-
* Provides safe execution environment for PCard logic.
|
|
5
|
-
* Supports multiple runtimes:
|
|
6
|
-
* - JavaScript: Native execution via Function()
|
|
7
|
-
* - Python: Execution via Pyodide (WebAssembly Python)
|
|
8
|
-
*
|
|
9
|
-
* @see https://pyodide.org/en/stable/
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* Worker code as inline string (will be converted to Blob URL)
|
|
13
|
-
* Supports both JavaScript and Python (via Pyodide) execution
|
|
14
|
-
*/
|
|
15
|
-
const WORKER_CODE = `
|
|
16
|
-
// Multi-runtime sandboxed execution environment
|
|
17
|
-
let pyodide = null;
|
|
18
|
-
let pyodideLoading = null;
|
|
19
|
-
|
|
20
|
-
// Pyodide CDN URL - can be overridden via message
|
|
21
|
-
const PYODIDE_CDN = 'https://cdn.jsdelivr.net/pyodide/v0.24.1/full/';
|
|
22
|
-
|
|
23
|
-
// Load Pyodide on demand (lazy loading)
|
|
24
|
-
async function loadPyodide() {
|
|
25
|
-
if (pyodide) return pyodide;
|
|
26
|
-
if (pyodideLoading) return pyodideLoading;
|
|
27
|
-
|
|
28
|
-
pyodideLoading = (async () => {
|
|
29
|
-
// Import Pyodide from CDN
|
|
30
|
-
importScripts(PYODIDE_CDN + 'pyodide.js');
|
|
31
|
-
pyodide = await self.loadPyodide({
|
|
32
|
-
indexURL: PYODIDE_CDN,
|
|
33
|
-
});
|
|
34
|
-
console.log('[SandboxWorker] Pyodide loaded successfully');
|
|
35
|
-
return pyodide;
|
|
36
|
-
})();
|
|
37
|
-
|
|
38
|
-
return pyodideLoading;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
self.onmessage = async function(e) {
|
|
42
|
-
const request = e.data;
|
|
43
|
-
|
|
44
|
-
try {
|
|
45
|
-
if (request.method === 'pcard.execute') {
|
|
46
|
-
const { pcard, context } = request.params;
|
|
47
|
-
const runtime = pcard.runtime || 'javascript';
|
|
48
|
-
|
|
49
|
-
let result;
|
|
50
|
-
if (runtime === 'python' || runtime === 'py') {
|
|
51
|
-
result = await executePython(pcard.code, pcard.input, context);
|
|
52
|
-
} else {
|
|
53
|
-
result = await executeJavaScript(pcard.code, pcard.input, context);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
self.postMessage({
|
|
57
|
-
jsonrpc: '2.0',
|
|
58
|
-
id: request.id,
|
|
59
|
-
result
|
|
60
|
-
});
|
|
61
|
-
} else if (request.method === 'pcard.verify') {
|
|
62
|
-
const { expectedOutput, actualOutput } = request.params;
|
|
63
|
-
const matches = JSON.stringify(expectedOutput) === JSON.stringify(actualOutput);
|
|
64
|
-
self.postMessage({
|
|
65
|
-
jsonrpc: '2.0',
|
|
66
|
-
id: request.id,
|
|
67
|
-
result: { verified: matches }
|
|
68
|
-
});
|
|
69
|
-
} else if (request.method === 'runtime.preload') {
|
|
70
|
-
// Preload Pyodide for faster first execution
|
|
71
|
-
const runtime = request.params?.runtime || 'python';
|
|
72
|
-
if (runtime === 'python' || runtime === 'py') {
|
|
73
|
-
await loadPyodide();
|
|
74
|
-
self.postMessage({
|
|
75
|
-
jsonrpc: '2.0',
|
|
76
|
-
id: request.id,
|
|
77
|
-
result: { loaded: true, runtime: 'python' }
|
|
78
|
-
});
|
|
79
|
-
} else {
|
|
80
|
-
self.postMessage({
|
|
81
|
-
jsonrpc: '2.0',
|
|
82
|
-
id: request.id,
|
|
83
|
-
result: { loaded: true, runtime: 'javascript' }
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
} else {
|
|
87
|
-
throw new Error('Method not found: ' + request.method);
|
|
88
|
-
}
|
|
89
|
-
} catch (error) {
|
|
90
|
-
self.postMessage({
|
|
91
|
-
jsonrpc: '2.0',
|
|
92
|
-
id: request.id,
|
|
93
|
-
error: {
|
|
94
|
-
code: -32000,
|
|
95
|
-
message: error.message || 'Execution error'
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
// Execute JavaScript code in sandbox
|
|
102
|
-
async function executeJavaScript(code, input, context) {
|
|
103
|
-
const fn = new Function('input', 'context', code);
|
|
104
|
-
return fn(input, context || {});
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// Execute Python code via Pyodide
|
|
108
|
-
async function executePython(code, input, context) {
|
|
109
|
-
const py = await loadPyodide();
|
|
110
|
-
|
|
111
|
-
// Convert input to Python dict
|
|
112
|
-
py.globals.set('input', py.toPy(input || {}));
|
|
113
|
-
py.globals.set('context', py.toPy(context || {}));
|
|
114
|
-
|
|
115
|
-
// Wrap code to capture result
|
|
116
|
-
const wrappedCode = \`
|
|
117
|
-
import json
|
|
118
|
-
|
|
119
|
-
# Make input accessible as variables
|
|
120
|
-
_input = input.to_py() if hasattr(input, 'to_py') else input
|
|
121
|
-
_context = context.to_py() if hasattr(context, 'to_py') else context
|
|
122
|
-
|
|
123
|
-
# Standard variable names for CLM
|
|
124
|
-
a = _input.get('a') if isinstance(_input, dict) else None
|
|
125
|
-
b = _input.get('b') if isinstance(_input, dict) else None
|
|
126
|
-
values = _input.get('values') if isinstance(_input, dict) else None
|
|
127
|
-
|
|
128
|
-
result = None
|
|
129
|
-
|
|
130
|
-
\${code}
|
|
131
|
-
|
|
132
|
-
# Return result
|
|
133
|
-
result
|
|
134
|
-
\`;
|
|
135
|
-
|
|
136
|
-
try {
|
|
137
|
-
const pyResult = await py.runPythonAsync(wrappedCode);
|
|
138
|
-
// Convert Python result to JavaScript
|
|
139
|
-
return pyResult?.toJs ? pyResult.toJs({ dict_converter: Object.fromEntries }) : pyResult;
|
|
140
|
-
} finally {
|
|
141
|
-
// Clean up globals
|
|
142
|
-
py.globals.delete('input');
|
|
143
|
-
py.globals.delete('context');
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
`;
|
|
147
|
-
/**
|
|
148
|
-
* SandboxWorker - Manages Web Worker for isolated execution
|
|
149
|
-
*
|
|
150
|
-
* Supports multiple runtimes:
|
|
151
|
-
* - javascript/js: Native JS execution
|
|
152
|
-
* - python/py: Python via Pyodide (WebAssembly)
|
|
153
|
-
*/
|
|
154
|
-
export class SandboxWorker {
|
|
155
|
-
worker = null;
|
|
156
|
-
pythonLoaded = false;
|
|
157
|
-
pendingRequests = new Map();
|
|
158
|
-
defaultTimeout = 5000; // 5 seconds
|
|
159
|
-
/**
|
|
160
|
-
* Initialize the sandbox worker
|
|
161
|
-
*/
|
|
162
|
-
async init() {
|
|
163
|
-
const blob = new Blob([WORKER_CODE], { type: 'application/javascript' });
|
|
164
|
-
const workerUrl = URL.createObjectURL(blob);
|
|
165
|
-
this.worker = new Worker(workerUrl);
|
|
166
|
-
this.worker.onmessage = this.handleMessage.bind(this);
|
|
167
|
-
this.worker.onerror = this.handleError.bind(this);
|
|
168
|
-
// Clean up blob URL
|
|
169
|
-
URL.revokeObjectURL(workerUrl);
|
|
170
|
-
}
|
|
171
|
-
requestCounter = 0;
|
|
172
|
-
/**
|
|
173
|
-
* Execute code in sandbox
|
|
174
|
-
* @param code - Code to execute
|
|
175
|
-
* @param input - Input data for the code
|
|
176
|
-
* @param context - Optional execution context
|
|
177
|
-
* @param runtime - Runtime to use: 'javascript' (default) or 'python'
|
|
178
|
-
*/
|
|
179
|
-
async execute(code, input, context, runtime = 'javascript') {
|
|
180
|
-
if (!this.worker) {
|
|
181
|
-
throw new Error('Worker not initialized. Call init() first.');
|
|
182
|
-
}
|
|
183
|
-
const request = {
|
|
184
|
-
jsonrpc: '2.0',
|
|
185
|
-
id: ++this.requestCounter,
|
|
186
|
-
method: 'pcard.execute',
|
|
187
|
-
params: { pcard: { code, input, runtime }, context }
|
|
188
|
-
};
|
|
189
|
-
return this.sendRequest(request);
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Preload a runtime for faster first execution
|
|
193
|
-
* Useful for Python which requires loading Pyodide (~10MB)
|
|
194
|
-
* @param runtime - Runtime to preload: 'python' or 'javascript'
|
|
195
|
-
*/
|
|
196
|
-
async preloadRuntime(runtime = 'python') {
|
|
197
|
-
if (!this.worker) {
|
|
198
|
-
throw new Error('Worker not initialized. Call init() first.');
|
|
199
|
-
}
|
|
200
|
-
const request = {
|
|
201
|
-
jsonrpc: '2.0',
|
|
202
|
-
id: ++this.requestCounter,
|
|
203
|
-
method: 'runtime.preload',
|
|
204
|
-
params: { runtime }
|
|
205
|
-
};
|
|
206
|
-
const result = await this.sendRequest(request);
|
|
207
|
-
if (runtime === 'python' || runtime === 'py') {
|
|
208
|
-
this.pythonLoaded = true;
|
|
209
|
-
}
|
|
210
|
-
return result;
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Check if Python runtime is loaded
|
|
214
|
-
*/
|
|
215
|
-
isPythonLoaded() {
|
|
216
|
-
return this.pythonLoaded;
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Verify output matches expected
|
|
220
|
-
* Note: Uses internal JSON-RPC format with direct values
|
|
221
|
-
*/
|
|
222
|
-
async verify(hash, expectedOutput, actualOutput) {
|
|
223
|
-
if (!this.worker) {
|
|
224
|
-
throw new Error('Worker not initialized. Call init() first.');
|
|
225
|
-
}
|
|
226
|
-
const request = {
|
|
227
|
-
jsonrpc: '2.0',
|
|
228
|
-
id: ++this.requestCounter,
|
|
229
|
-
method: 'pcard.verify',
|
|
230
|
-
params: { hash, expectedOutput, actualOutput }
|
|
231
|
-
};
|
|
232
|
-
return this.sendRequest(request);
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Send request and wait for response
|
|
236
|
-
*/
|
|
237
|
-
sendRequest(request) {
|
|
238
|
-
return new Promise((resolve, reject) => {
|
|
239
|
-
const timeout = setTimeout(() => {
|
|
240
|
-
this.pendingRequests.delete(request.id);
|
|
241
|
-
reject(new Error(`Request ${request.id} timed out`));
|
|
242
|
-
}, this.defaultTimeout);
|
|
243
|
-
this.pendingRequests.set(request.id, { resolve, reject, timeout });
|
|
244
|
-
this.worker.postMessage(request);
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Handle worker message
|
|
249
|
-
*/
|
|
250
|
-
handleMessage(event) {
|
|
251
|
-
const response = event.data;
|
|
252
|
-
const pending = this.pendingRequests.get(response.id);
|
|
253
|
-
if (pending) {
|
|
254
|
-
clearTimeout(pending.timeout);
|
|
255
|
-
this.pendingRequests.delete(response.id);
|
|
256
|
-
if (response.error) {
|
|
257
|
-
pending.reject(new Error(`Error ${response.error.code}: ${response.error.message}`));
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
pending.resolve(response.result);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Handle worker error
|
|
266
|
-
*/
|
|
267
|
-
handleError(event) {
|
|
268
|
-
console.error('Worker error:', event.message);
|
|
269
|
-
// Reject all pending requests
|
|
270
|
-
for (const [id, pending] of this.pendingRequests) {
|
|
271
|
-
clearTimeout(pending.timeout);
|
|
272
|
-
pending.reject(new Error(`Worker error: ${event.message}`));
|
|
273
|
-
}
|
|
274
|
-
this.pendingRequests.clear();
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* Terminate the worker
|
|
278
|
-
*/
|
|
279
|
-
terminate() {
|
|
280
|
-
if (this.worker) {
|
|
281
|
-
// Reject pending requests
|
|
282
|
-
for (const [id, pending] of this.pendingRequests) {
|
|
283
|
-
clearTimeout(pending.timeout);
|
|
284
|
-
pending.reject(new Error('Worker terminated'));
|
|
285
|
-
}
|
|
286
|
-
this.pendingRequests.clear();
|
|
287
|
-
this.worker.terminate();
|
|
288
|
-
this.worker = null;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Set timeout for requests
|
|
293
|
-
*/
|
|
294
|
-
setTimeout(ms) {
|
|
295
|
-
this.defaultTimeout = ms;
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
//# sourceMappingURL=SandboxWorker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxWorker.js","sourceRoot":"","sources":["../../src/ptr/SandboxWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Common types for PTR system
|
|
3
|
-
* Matches python mcard.ptr.core.common_types
|
|
4
|
-
*/
|
|
5
|
-
export type PrimeHash = string;
|
|
6
|
-
export interface PolynomialTerm {
|
|
7
|
-
coefficient: PrimeHash;
|
|
8
|
-
exponent: PrimeHash;
|
|
9
|
-
weight: number;
|
|
10
|
-
}
|
|
11
|
-
export interface SafetyViolation {
|
|
12
|
-
property: string;
|
|
13
|
-
violation_type: string;
|
|
14
|
-
details: string;
|
|
15
|
-
timestamp: string;
|
|
16
|
-
}
|
|
17
|
-
export interface LivenessMetric {
|
|
18
|
-
goal: string;
|
|
19
|
-
progress: number;
|
|
20
|
-
timestamp: string;
|
|
21
|
-
}
|
|
22
|
-
export declare enum VerificationStatus {
|
|
23
|
-
PENDING = "pending",
|
|
24
|
-
VERIFIED = "verified",
|
|
25
|
-
FAILED = "failed",
|
|
26
|
-
SKIPPED = "skipped"
|
|
27
|
-
}
|
|
28
|
-
export interface ExecutionResult {
|
|
29
|
-
success: boolean;
|
|
30
|
-
output: unknown;
|
|
31
|
-
verification_vcard: string | null;
|
|
32
|
-
execution_time_ms: number;
|
|
33
|
-
alignment_score?: number;
|
|
34
|
-
invariants_preserved: boolean;
|
|
35
|
-
safety_violations: SafetyViolation[];
|
|
36
|
-
liveness_metrics: LivenessMetric[];
|
|
37
|
-
error_message?: string;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=common_types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common_types.d.ts","sourceRoot":"","sources":["../../src/ptr/common_types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,MAAM,WAAW,cAAc;IAC3B,WAAW,EAAE,SAAS,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,oBAAY,kBAAkB;IAC1B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;CACtB;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAG1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,OAAO,CAAC;IAG9B,iBAAiB,EAAE,eAAe,EAAE,CAAC;IACrC,gBAAgB,EAAE,cAAc,EAAE,CAAC;IAEnC,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B"}
|
package/dist/ptr/common_types.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Common types for PTR system
|
|
3
|
-
* Matches python mcard.ptr.core.common_types
|
|
4
|
-
*/
|
|
5
|
-
export var VerificationStatus;
|
|
6
|
-
(function (VerificationStatus) {
|
|
7
|
-
VerificationStatus["PENDING"] = "pending";
|
|
8
|
-
VerificationStatus["VERIFIED"] = "verified";
|
|
9
|
-
VerificationStatus["FAILED"] = "failed";
|
|
10
|
-
VerificationStatus["SKIPPED"] = "skipped";
|
|
11
|
-
})(VerificationStatus || (VerificationStatus = {}));
|
|
12
|
-
//# sourceMappingURL=common_types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common_types.js","sourceRoot":"","sources":["../../src/ptr/common_types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwBH,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,yCAAmB,CAAA;IACnB,2CAAqB,CAAA;IACrB,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;AACvB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { GraphStore } from './graph/store';
|
|
2
|
-
import { GraphExtractor } from './graph/extractor';
|
|
3
|
-
import { MCardVectorStore } from '../storage/VectorStore';
|
|
4
|
-
import { MCard } from '../model/MCard';
|
|
5
|
-
export interface GraphRAGResponse {
|
|
6
|
-
answer: string;
|
|
7
|
-
sources: string[];
|
|
8
|
-
entities: any[];
|
|
9
|
-
relationships: any[];
|
|
10
|
-
graphContext: string;
|
|
11
|
-
vectorContext: string;
|
|
12
|
-
confidence: number;
|
|
13
|
-
metadata?: any;
|
|
14
|
-
}
|
|
15
|
-
export declare class GraphRAGEngine {
|
|
16
|
-
vectorStore: MCardVectorStore;
|
|
17
|
-
graphStore: GraphStore;
|
|
18
|
-
extractor: GraphExtractor;
|
|
19
|
-
llmModel: string;
|
|
20
|
-
config: any;
|
|
21
|
-
constructor(vectorDbPath: string, graphDbPath?: string | null, llmModel?: string, config?: any);
|
|
22
|
-
index(mcard: MCard, extractGraph?: boolean, force?: boolean): Promise<any>;
|
|
23
|
-
query(question: string, k?: number, useGraph?: boolean): Promise<GraphRAGResponse>;
|
|
24
|
-
private _getGraphContext;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=GraphRAGEngine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRAGEngine.d.ts","sourceRoot":"","sources":["../../src/rag/GraphRAGEngine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAA2D,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAsB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AA6BvC,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,qBAAa,cAAc;IACvB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC;gBAGR,YAAY,EAAE,MAAM,EACpB,WAAW,GAAE,MAAM,GAAG,IAAW,EACjC,QAAQ,GAAE,MAAwB,EAClC,MAAM,GAAE,GAAQ;IAoBd,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,GAAE,OAAc,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAqBvF,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;YA0EnF,gBAAgB;CAiDjC"}
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { GraphStore, storeExtractionResult } from './graph/store';
|
|
2
|
-
import { GraphExtractor } from './graph/extractor';
|
|
3
|
-
import { MCardVectorStore } from '../storage/VectorStore';
|
|
4
|
-
import { chatMonad } from '../ptr/llm/LLMRuntime';
|
|
5
|
-
const GRAPHRAG_SYSTEM_PROMPT = `You are a helpful assistant that answers questions using both document context and a knowledge graph.
|
|
6
|
-
|
|
7
|
-
You have access to:
|
|
8
|
-
1. DOCUMENT CONTEXT: Relevant text passages from the knowledge base
|
|
9
|
-
2. GRAPH CONTEXT: Entities and their relationships from the knowledge graph
|
|
10
|
-
|
|
11
|
-
Use both sources to provide comprehensive, accurate answers.
|
|
12
|
-
- Cite sources [1], [2], etc. for document context
|
|
13
|
-
- Reference entities by name when using graph information
|
|
14
|
-
- If the graph shows relationships that help answer the question, describe them
|
|
15
|
-
|
|
16
|
-
Be thorough but concise. Acknowledge if information is incomplete.`;
|
|
17
|
-
const GRAPH_QUERY_PROMPT = `Question: {question}
|
|
18
|
-
|
|
19
|
-
=== DOCUMENT CONTEXT ===
|
|
20
|
-
{vector_context}
|
|
21
|
-
|
|
22
|
-
=== KNOWLEDGE GRAPH ===
|
|
23
|
-
Entities: {entities}
|
|
24
|
-
Relationships: {relationships}
|
|
25
|
-
|
|
26
|
-
Please provide a comprehensive answer using both the document context and knowledge graph information.`;
|
|
27
|
-
export class GraphRAGEngine {
|
|
28
|
-
vectorStore;
|
|
29
|
-
graphStore;
|
|
30
|
-
extractor;
|
|
31
|
-
llmModel;
|
|
32
|
-
config;
|
|
33
|
-
constructor(vectorDbPath, graphDbPath = null, llmModel = 'gemma3:latest', config = {}) {
|
|
34
|
-
this.config = config;
|
|
35
|
-
this.llmModel = llmModel;
|
|
36
|
-
// Init vector store
|
|
37
|
-
this.vectorStore = new MCardVectorStore(vectorDbPath, config);
|
|
38
|
-
// Init graph store
|
|
39
|
-
const gPath = graphDbPath || vectorDbPath;
|
|
40
|
-
this.graphStore = new GraphStore(gPath);
|
|
41
|
-
// Init extractor
|
|
42
|
-
// GraphExtractor constructor expects config object
|
|
43
|
-
this.extractor = new GraphExtractor({ model: llmModel, ...config });
|
|
44
|
-
}
|
|
45
|
-
async index(mcard, extractGraph = true, force = false) {
|
|
46
|
-
const stats = { vectors: 0, entities: 0, relationships: 0 };
|
|
47
|
-
let content = mcard.getContentAsText();
|
|
48
|
-
// Vector index
|
|
49
|
-
// We always index (INSERT OR REPLACE)
|
|
50
|
-
stats.vectors = await this.vectorStore.index(mcard.hash, content);
|
|
51
|
-
// Graph extract
|
|
52
|
-
if (extractGraph && (force || !(await this.graphStore.isExtracted(mcard.hash)))) {
|
|
53
|
-
const result = await this.extractor.extract(content);
|
|
54
|
-
if (result.success) {
|
|
55
|
-
const [entCount, relCount] = storeExtractionResult(this.graphStore, result, mcard.hash);
|
|
56
|
-
stats.entities = entCount;
|
|
57
|
-
stats.relationships = relCount;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return stats;
|
|
61
|
-
}
|
|
62
|
-
async query(question, k = 5, useGraph = true) {
|
|
63
|
-
// Vector Search
|
|
64
|
-
const results = await this.vectorStore.search(question, k);
|
|
65
|
-
const contextParts = [];
|
|
66
|
-
const sources = [];
|
|
67
|
-
results.forEach((r, i) => {
|
|
68
|
-
const chunk = r.content || `[Content from ${r.hash.substring(0, 8)}]`;
|
|
69
|
-
contextParts.push(`[${i + 1}] ${chunk}`);
|
|
70
|
-
sources.push(r.hash);
|
|
71
|
-
});
|
|
72
|
-
const vectorContext = contextParts.join('\n\n');
|
|
73
|
-
// Graph Search
|
|
74
|
-
let entities = [];
|
|
75
|
-
let relationships = [];
|
|
76
|
-
let graphContext = "";
|
|
77
|
-
if (useGraph) {
|
|
78
|
-
const graphData = await this._getGraphContext(question, sources);
|
|
79
|
-
entities = graphData.entities;
|
|
80
|
-
relationships = graphData.relationships;
|
|
81
|
-
if (entities.length > 0) {
|
|
82
|
-
const entStr = entities.slice(0, 10).map(e => `${e.name} (${e.type})`).join(', ');
|
|
83
|
-
const relStr = relationships.slice(0, 15).map(r => `${r.source} --${r.relationship}-> ${r.target}`).join('\n');
|
|
84
|
-
graphContext = `Entities: ${entStr}\nRelationships:\n${relStr}`;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
// LLM Generation
|
|
88
|
-
let answer = "";
|
|
89
|
-
if (!vectorContext && entities.length === 0) {
|
|
90
|
-
answer = "I couldn't find relevant information.";
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
const entStr = entities.length ? entities.map(e => `${e.name} (${e.type})`).join(', ') : "None found";
|
|
94
|
-
const relStr = relationships.length ? relationships.map(r => ` - ${r.source} --${r.relationship}-> ${r.target}`).join('\n') : "None found";
|
|
95
|
-
const prompt = GRAPH_QUERY_PROMPT
|
|
96
|
-
.replace('{question}', question)
|
|
97
|
-
.replace('{vector_context}', vectorContext || "No document context available.")
|
|
98
|
-
.replace('{entities}', entStr)
|
|
99
|
-
.replace('{relationships}', relStr);
|
|
100
|
-
const monad = chatMonad(null, // messages null
|
|
101
|
-
prompt, GRAPHRAG_SYSTEM_PROMPT, { model: this.llmModel, temperature: 0.3 });
|
|
102
|
-
const result = await monad.run();
|
|
103
|
-
if (result.isRight) {
|
|
104
|
-
const val = result.right;
|
|
105
|
-
answer = typeof val === 'object' ? val.content : val;
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
answer = `Error: ${result.left}`;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
return {
|
|
112
|
-
answer,
|
|
113
|
-
sources,
|
|
114
|
-
entities,
|
|
115
|
-
relationships,
|
|
116
|
-
graphContext,
|
|
117
|
-
vectorContext,
|
|
118
|
-
confidence: 0.8 // placeholder
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
async _getGraphContext(query, sourceHashes) {
|
|
122
|
-
const entities = [];
|
|
123
|
-
const seenIds = new Set();
|
|
124
|
-
// Word search
|
|
125
|
-
const words = query.split(/\s+/).filter(w => w.length > 3);
|
|
126
|
-
const uniqueWords = [...new Set(words)]; // dedupe words
|
|
127
|
-
for (const word of uniqueWords) {
|
|
128
|
-
// Check if searchEntities exists on GraphStore
|
|
129
|
-
const found = await this.graphStore.searchEntities(word, undefined, 5);
|
|
130
|
-
for (const ent of found) {
|
|
131
|
-
if (!seenIds.has(ent.id)) {
|
|
132
|
-
seenIds.add(ent.id);
|
|
133
|
-
entities.push(ent);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
// Source search
|
|
138
|
-
const uniquesources = [...new Set(sourceHashes)].slice(0, 3);
|
|
139
|
-
for (const hash of uniquesources) {
|
|
140
|
-
const found = await this.graphStore.getEntitiesBySource(hash);
|
|
141
|
-
for (const ent of found) {
|
|
142
|
-
if (!seenIds.has(ent.id)) {
|
|
143
|
-
seenIds.add(ent.id);
|
|
144
|
-
entities.push(ent);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// Get Relationships
|
|
149
|
-
const relationships = [];
|
|
150
|
-
for (const ent of entities) {
|
|
151
|
-
const outRels = await this.graphStore.getRelationshipsFrom(ent.id);
|
|
152
|
-
for (const r of outRels) {
|
|
153
|
-
relationships.push({
|
|
154
|
-
source: ent.name,
|
|
155
|
-
relationship: r.relationship,
|
|
156
|
-
target: r.targetName
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
// Limit per entity to avoid explosion
|
|
160
|
-
if (relationships.length > 50)
|
|
161
|
-
break;
|
|
162
|
-
}
|
|
163
|
-
return { entities, relationships };
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
//# sourceMappingURL=GraphRAGEngine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRAGEngine.js","sourceRoot":"","sources":["../../src/rag/GraphRAGEngine.ts"],"names":[],"mappings":"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"}
|