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.
Files changed (388) hide show
  1. package/dist/{CardCollection-MXTUJV4J.js → CardCollection-7DKJWKAG.js} +3 -2
  2. package/dist/CardCollection-S4RE3RXP.js +10 -0
  3. package/dist/CardCollection-VPN7AAAX.js +10 -0
  4. package/dist/{IndexedDBEngine-2G5KCISA.js → IndexedDBEngine-7JOGM2MM.js} +3 -2
  5. package/dist/IndexedDBEngine-BGZHJK5L.js +12 -0
  6. package/dist/IndexedDBEngine-ZJ442GI7.js +12 -0
  7. package/dist/{LLMRuntime-GIGDMDEZ.js → LLMRuntime-OZNVAPXJ.js} +4 -3
  8. package/dist/{LLMRuntime-LBWUJ7ON.js → LLMRuntime-UPSEDSIK.js} +2 -2
  9. package/dist/{LambdaRuntime-B6D6IQKZ.js → LambdaRuntime-JZ4Q56TI.js} +6 -5
  10. package/dist/LambdaRuntime-PM3OUFHU.js +19 -0
  11. package/dist/LambdaRuntime-WBEK37AF.js +19 -0
  12. package/dist/LambdaRuntime-YKSBAT65.js +19 -0
  13. package/dist/{Loader-3LSJXJQG.js → Loader-7HQVYDPA.js} +2 -2
  14. package/dist/{Loader-BM56B2TX.js → Loader-NYWTV7CQ.js} +4 -3
  15. package/dist/{Loader-CYLAA4XU.js → Loader-OLKPY6HT.js} +3 -3
  16. package/dist/{MCard-H56VOJLR.js → MCard-OYI73CUI.js} +1 -1
  17. package/dist/{MCard-5LIREV2B.js → MCard-XHG3BZC7.js} +2 -2
  18. package/dist/{NetworkRuntime-IAFHPQSX.js → NetworkRuntime-VYCC5HSY.js} +16 -11
  19. package/dist/{NetworkRuntime-JNGKW3DY.js → NetworkRuntime-XQX3LDDI.js} +61 -33
  20. package/dist/{NetworkRuntime-CXPKIAOQ.js → NetworkRuntime-XZR733M5.js} +17 -12
  21. package/dist/{OllamaProvider-QPX2JXL2.js → OllamaProvider-FBZ5WW72.js} +1 -1
  22. package/dist/OllamaProvider-W6TPZNHD.js +9 -0
  23. package/dist/chunk-2NFGZ6PA.js +170 -0
  24. package/dist/{chunk-VXV35I5J.js → chunk-4TYRTQ4V.js} +48 -17
  25. package/dist/chunk-4VWWTGRW.js +497 -0
  26. package/dist/{chunk-4PDYHPR6.js → chunk-5GHZP7E5.js} +4 -2
  27. package/dist/{chunk-42VF42KH.js → chunk-5HZNWJFT.js} +4 -2
  28. package/dist/{chunk-DEYMHG5A.js → chunk-6MG5ZHAP.js} +58 -22
  29. package/dist/{chunk-7V37AAPK.js → chunk-7B4PABOL.js} +16 -7
  30. package/dist/chunk-A5S2PI37.js +47 -0
  31. package/dist/chunk-BFD4WSWU.js +497 -0
  32. package/dist/chunk-BSEFN25Q.js +32 -0
  33. package/dist/{chunk-3LPY36OG.js → chunk-CBEVE7RG.js} +20 -15
  34. package/dist/{chunk-A5AB4WQN.js → chunk-DPA3ZK4Q.js} +30 -21
  35. package/dist/{chunk-5FA54AMM.js → chunk-EJHX3VZL.js} +54 -21
  36. package/dist/{chunk-QXPHMSPA.js → chunk-GNF4WAPV.js} +22 -9
  37. package/dist/{chunk-XPG6B5IW.js → chunk-JHIA2BQK.js} +26 -13
  38. package/dist/{chunk-4I5IZILN.js → chunk-KGPICAQW.js} +10 -7
  39. package/dist/{chunk-4WBJPHZP.js → chunk-MST5AZXJ.js} +17 -8
  40. package/dist/{chunk-K35KFTEA.js → chunk-N6KDHCBC.js} +58 -33
  41. package/dist/{chunk-2R4ESMZB.js → chunk-NFO5NU6B.js} +5 -3
  42. package/dist/chunk-OKWBHCKC.js +170 -0
  43. package/dist/{chunk-FIE4LAJG.js → chunk-OX3K6UZJ.js} +5 -3
  44. package/dist/{chunk-6SEX42H2.js → chunk-R3K7DG7O.js} +21 -16
  45. package/dist/chunk-RB35Z35T.js +44 -0
  46. package/dist/{chunk-AWGFLRLI.js → chunk-SP4YPKPR.js} +51 -318
  47. package/dist/chunk-U7TSFDKX.js +217 -0
  48. package/dist/chunk-UP3SQX56.js +112 -0
  49. package/dist/{chunk-4EUEU4SM.js → chunk-VGIRC3HX.js} +13 -110
  50. package/dist/chunk-WGG7526Z.js +112 -0
  51. package/dist/{chunk-3JBSRALP.js → chunk-WNKP66IR.js} +10 -7
  52. package/dist/{chunk-DOC55MPG.js → chunk-WR6ISHCS.js} +11 -3
  53. package/dist/{chunk-52UNWVOD.js → chunk-ZVOPQ5BM.js} +54 -21
  54. package/dist/chunk-ZZMOPQER.js +217 -0
  55. package/dist/index.browser.cjs +79 -1454
  56. package/dist/index.browser.d.cts +2 -17
  57. package/dist/index.browser.d.ts +2 -17
  58. package/dist/index.browser.js +7 -6
  59. package/dist/index.cjs +306 -1631
  60. package/dist/index.d.cts +3 -1
  61. package/dist/index.d.ts +3 -1
  62. package/dist/index.js +49 -35
  63. package/dist/storage/SqliteNodeEngine.cjs +59 -1335
  64. package/dist/storage/SqliteNodeEngine.js +4 -3
  65. package/dist/storage/SqliteWasmEngine.cjs +57 -1335
  66. package/dist/storage/SqliteWasmEngine.js +4 -3
  67. package/package.json +12 -8
  68. package/dist/CardCollection-4OFJ6XQJ.js +0 -9
  69. package/dist/CardCollection-7PDWM24F.js +0 -9
  70. package/dist/CardCollection-CEFQ5PA6.js +0 -9
  71. package/dist/CardCollection-GUEYGN2Y.js +0 -9
  72. package/dist/CardCollection-KDO4CQ4B.js +0 -9
  73. package/dist/CardCollection-PB7ZY73E.js +0 -9
  74. package/dist/CardCollection-RK4DVH63.js +0 -9
  75. package/dist/CardCollection-T376E3TS.js +0 -9
  76. package/dist/CardCollection-WGCKKUOD.js +0 -9
  77. package/dist/CardCollection-XON2IWDU.js +0 -9
  78. package/dist/CardCollection-ZEI6FMP3.js +0 -9
  79. package/dist/EventProducer-MW6QF4IO.js +0 -47
  80. package/dist/EventProducer-V7RY2KKR.js +0 -47
  81. package/dist/FileIO.d.ts +0 -44
  82. package/dist/FileIO.d.ts.map +0 -1
  83. package/dist/FileIO.js +0 -203
  84. package/dist/FileIO.js.map +0 -1
  85. package/dist/IndexedDBEngine-7JI2CL32.js +0 -10
  86. package/dist/IndexedDBEngine-7OHQIRTI.js +0 -10
  87. package/dist/IndexedDBEngine-E5YJQG4U.js +0 -10
  88. package/dist/IndexedDBEngine-NV625E7L.js +0 -10
  89. package/dist/IndexedDBEngine-RPQS7ILF.js +0 -10
  90. package/dist/IndexedDBEngine-S3ZWCSI7.js +0 -10
  91. package/dist/IndexedDBEngine-T7OC5GRR.js +0 -10
  92. package/dist/LLMRuntime-BKB3CLXM.js +0 -16
  93. package/dist/LLMRuntime-BQUUFLAB.js +0 -16
  94. package/dist/LLMRuntime-TNBC4JCB.js +0 -16
  95. package/dist/LambdaRuntime-4YILF3G7.js +0 -15
  96. package/dist/LambdaRuntime-53TPVENI.js +0 -16
  97. package/dist/LambdaRuntime-73BSWP2G.js +0 -16
  98. package/dist/LambdaRuntime-AL5SBDCA.js +0 -17
  99. package/dist/LambdaRuntime-BYBUI7H5.js +0 -17
  100. package/dist/LambdaRuntime-JDZP3HIQ.js +0 -17
  101. package/dist/LambdaRuntime-JEI7RVWG.js +0 -16
  102. package/dist/LambdaRuntime-LCTHBYMV.js +0 -17
  103. package/dist/LambdaRuntime-LDA3G7IR.js +0 -16
  104. package/dist/LambdaRuntime-LF4FR6YA.js +0 -16
  105. package/dist/LambdaRuntime-O7JBVHO2.js +0 -16
  106. package/dist/LambdaRuntime-OFOTT464.js +0 -17
  107. package/dist/LambdaRuntime-Q6ISCHAD.js +0 -16
  108. package/dist/LambdaRuntime-TCZ42XCB.js +0 -16
  109. package/dist/LambdaRuntime-UKUOKJIW.js +0 -17
  110. package/dist/LambdaRuntime-VKLON4IB.js +0 -17
  111. package/dist/LambdaRuntime-WNYDBTS6.js +0 -16
  112. package/dist/LambdaRuntime-WPTX76CX.js +0 -17
  113. package/dist/Loader-4P7PEBCL.js +0 -11
  114. package/dist/Loader-HQ3QKMYM.js +0 -11
  115. package/dist/Loader-NCATGB67.js +0 -11
  116. package/dist/Loader-NRHGDQBD.js +0 -11
  117. package/dist/Loader-RT4NI6AT.js +0 -11
  118. package/dist/Loader-SSRY57SS.js +0 -11
  119. package/dist/Loader-W72QZ3T7.js +0 -11
  120. package/dist/Loader-WECRIXQW.js +0 -11
  121. package/dist/Loader-XFBIHCQF.js +0 -11
  122. package/dist/Loader.d.ts +0 -34
  123. package/dist/Loader.d.ts.map +0 -1
  124. package/dist/Loader.js +0 -190
  125. package/dist/Loader.js.map +0 -1
  126. package/dist/MCard-4J6WSBRF.js +0 -8
  127. package/dist/MCard-E3MRPTJF.js +0 -8
  128. package/dist/MCard-FCOIB6BP.js +0 -8
  129. package/dist/MCard-G4HUWHY5.js +0 -8
  130. package/dist/MCard-HFL7AFIH.js +0 -8
  131. package/dist/MCard-JOW6RBSO.js +0 -8
  132. package/dist/MCard-M4LKN4U2.js +0 -8
  133. package/dist/MCard-VB7UDUTN.js +0 -8
  134. package/dist/MCard-WOHE6SX6.js +0 -8
  135. package/dist/NetworkRuntime-2H7AQITA.js +0 -1571
  136. package/dist/NetworkRuntime-3MIUBNOF.js +0 -1571
  137. package/dist/NetworkRuntime-AOE2EJIM.js +0 -1571
  138. package/dist/NetworkRuntime-BQMDBUDO.js +0 -1570
  139. package/dist/NetworkRuntime-GMANLCAB.js +0 -1542
  140. package/dist/NetworkRuntime-L7P4VCGK.js +0 -1542
  141. package/dist/NetworkRuntime-LC7SUAOF.js +0 -1542
  142. package/dist/NetworkRuntime-OJWCWPBI.js +0 -1570
  143. package/dist/NetworkRuntime-ZJ3B4T3A.js +0 -1542
  144. package/dist/OllamaProvider-32RC36HD.js +0 -8
  145. package/dist/OllamaProvider-MQXSXLCA.js +0 -8
  146. package/dist/OllamaProvider-Q45BMOVN.js +0 -8
  147. package/dist/SqliteNodeEngine-WKVFWBNH.js +0 -9
  148. package/dist/StorageAdapter-DdDUiIvH.d.cts +0 -391
  149. package/dist/StorageAdapter-DdDUiIvH.d.ts +0 -391
  150. package/dist/StorageAdapter-Dw1BeOam.d.cts +0 -380
  151. package/dist/StorageAdapter-Dw1BeOam.d.ts +0 -380
  152. package/dist/chunk-23GCCCXB.js +0 -402
  153. package/dist/chunk-2ECISK2I.js +0 -354
  154. package/dist/chunk-2MRBTM72.js +0 -354
  155. package/dist/chunk-2THXO6FH.js +0 -2313
  156. package/dist/chunk-2VNRWIBZ.js +0 -389
  157. package/dist/chunk-2VOQRXWH.js +0 -296
  158. package/dist/chunk-34AYBZRO.js +0 -920
  159. package/dist/chunk-37EEYISR.js +0 -372
  160. package/dist/chunk-3E2TKOCZ.js +0 -354
  161. package/dist/chunk-3MMMJ7NH.js +0 -1068
  162. package/dist/chunk-437JTYVP.js +0 -292
  163. package/dist/chunk-4MQINOOG.js +0 -1218
  164. package/dist/chunk-4UIWXZHY.js +0 -1049
  165. package/dist/chunk-53S2EZCY.js +0 -290
  166. package/dist/chunk-5BIDGXA6.js +0 -987
  167. package/dist/chunk-5HXLTWYN.js +0 -296
  168. package/dist/chunk-5W2FDGUF.js +0 -371
  169. package/dist/chunk-6R4ERZMG.js +0 -1136
  170. package/dist/chunk-74YSNHEM.js +0 -2309
  171. package/dist/chunk-7H2BQZDK.js +0 -270
  172. package/dist/chunk-7KEWCCES.js +0 -1136
  173. package/dist/chunk-7PN2BUYF.js +0 -371
  174. package/dist/chunk-A2ZJA2EV.js +0 -389
  175. package/dist/chunk-ARPIBGRP.js +0 -1236
  176. package/dist/chunk-ATHNEEAG.js +0 -2309
  177. package/dist/chunk-AVXJOPUE.js +0 -354
  178. package/dist/chunk-B7VEU4S2.js +0 -204
  179. package/dist/chunk-C2TKISBR.js +0 -1213
  180. package/dist/chunk-CBH4YKB4.js +0 -2309
  181. package/dist/chunk-DP7HBRDL.js +0 -2309
  182. package/dist/chunk-DV7ZSH4W.js +0 -2309
  183. package/dist/chunk-DWXNZ5AJ.js +0 -642
  184. package/dist/chunk-EFKMZTT2.js +0 -270
  185. package/dist/chunk-FXJYXHG6.js +0 -266
  186. package/dist/chunk-G466I6RT.js +0 -229
  187. package/dist/chunk-GATPBTHL.js +0 -1142
  188. package/dist/chunk-GMQAHPBC.js +0 -292
  189. package/dist/chunk-GMWA2IJJ.js +0 -1105
  190. package/dist/chunk-GVX5LDLH.js +0 -371
  191. package/dist/chunk-HGENNKOJ.js +0 -355
  192. package/dist/chunk-HM2NBYHU.js +0 -292
  193. package/dist/chunk-IZWB5GCG.js +0 -389
  194. package/dist/chunk-J4HOFUKM.js +0 -2309
  195. package/dist/chunk-JIK2G3EH.js +0 -2313
  196. package/dist/chunk-JRXNWGSW.js +0 -1136
  197. package/dist/chunk-KRKK3KP6.js +0 -1081
  198. package/dist/chunk-KYXZHRUG.js +0 -389
  199. package/dist/chunk-L36L2VDL.js +0 -371
  200. package/dist/chunk-L5PZCES6.js +0 -204
  201. package/dist/chunk-L5U77ZEM.js +0 -1142
  202. package/dist/chunk-LQEKGX2T.js +0 -204
  203. package/dist/chunk-LWMUDMMQ.js +0 -1144
  204. package/dist/chunk-MLKGABMK.js +0 -9
  205. package/dist/chunk-NZ6OQ7UT.js +0 -92
  206. package/dist/chunk-O2UMNZGF.js +0 -903
  207. package/dist/chunk-OFHDMLNM.js +0 -355
  208. package/dist/chunk-PDBMNUMB.js +0 -316
  209. package/dist/chunk-PW4XS7M3.js +0 -850
  210. package/dist/chunk-QA2XQMMJ.js +0 -2313
  211. package/dist/chunk-QL2JFNA7.js +0 -389
  212. package/dist/chunk-QPZ2HNSU.js +0 -912
  213. package/dist/chunk-QVGVU6OS.js +0 -296
  214. package/dist/chunk-RCEU7PFH.js +0 -270
  215. package/dist/chunk-RSTKX7WM.js +0 -907
  216. package/dist/chunk-RXL2CW64.js +0 -266
  217. package/dist/chunk-RXUF6Y43.js +0 -2309
  218. package/dist/chunk-SIAA4J6H.js +0 -21
  219. package/dist/chunk-SOJ2UMO2.js +0 -986
  220. package/dist/chunk-T3AG6DXY.js +0 -296
  221. package/dist/chunk-TPCNKMGZ.js +0 -355
  222. package/dist/chunk-TPT3S5AX.js +0 -204
  223. package/dist/chunk-TXWGIEVH.js +0 -2313
  224. package/dist/chunk-TZFI54AU.js +0 -2313
  225. package/dist/chunk-U3FWUPD3.js +0 -717
  226. package/dist/chunk-UFW2VW2D.js +0 -266
  227. package/dist/chunk-UTAOS5Y7.js +0 -2313
  228. package/dist/chunk-V7VX5OJ6.js +0 -389
  229. package/dist/chunk-W2XGNMYB.js +0 -355
  230. package/dist/chunk-W3M4HJ4U.js +0 -2309
  231. package/dist/chunk-WMJGGREP.js +0 -296
  232. package/dist/chunk-WTNVQ5WS.js +0 -732
  233. package/dist/chunk-WVFWNVT2.js +0 -1050
  234. package/dist/chunk-WY7EYSYC.js +0 -1236
  235. package/dist/chunk-X42F7DE3.js +0 -373
  236. package/dist/chunk-XC7Y4I7L.js +0 -290
  237. package/dist/chunk-YFULZTKP.js +0 -270
  238. package/dist/chunk-YSVHXKSZ.js +0 -373
  239. package/dist/chunk-YWGVK5OS.js +0 -292
  240. package/dist/chunk-Z4BRNTO5.js +0 -2313
  241. package/dist/chunk-ZDUXDKPD.js +0 -292
  242. package/dist/chunk-ZXQ2W7LO.js +0 -355
  243. package/dist/chunk-ZXQELXXO.js +0 -378
  244. package/dist/index.browser.d.ts.map +0 -1
  245. package/dist/index.browser.js.map +0 -1
  246. package/dist/index.d.ts.map +0 -1
  247. package/dist/index.js.map +0 -1
  248. package/dist/lib-4XS34IPZ.js +0 -778
  249. package/dist/model/CardCollection.d.ts +0 -147
  250. package/dist/model/CardCollection.d.ts.map +0 -1
  251. package/dist/model/CardCollection.js +0 -272
  252. package/dist/model/CardCollection.js.map +0 -1
  253. package/dist/model/ContentTypeInterpreter.d.ts +0 -28
  254. package/dist/model/ContentTypeInterpreter.d.ts.map +0 -1
  255. package/dist/model/ContentTypeInterpreter.js +0 -147
  256. package/dist/model/ContentTypeInterpreter.js.map +0 -1
  257. package/dist/model/EventProducer.d.ts +0 -10
  258. package/dist/model/EventProducer.d.ts.map +0 -1
  259. package/dist/model/EventProducer.js +0 -46
  260. package/dist/model/EventProducer.js.map +0 -1
  261. package/dist/model/GTime.d.ts +0 -44
  262. package/dist/model/GTime.d.ts.map +0 -1
  263. package/dist/model/GTime.js +0 -91
  264. package/dist/model/GTime.js.map +0 -1
  265. package/dist/model/Handle.d.ts +0 -37
  266. package/dist/model/Handle.d.ts.map +0 -1
  267. package/dist/model/Handle.js +0 -90
  268. package/dist/model/Handle.js.map +0 -1
  269. package/dist/model/MCard.d.ts +0 -145
  270. package/dist/model/MCard.d.ts.map +0 -1
  271. package/dist/model/MCard.js +0 -180
  272. package/dist/model/MCard.js.map +0 -1
  273. package/dist/model/PCard.d.ts +0 -271
  274. package/dist/model/PCard.d.ts.map +0 -1
  275. package/dist/model/PCard.js +0 -558
  276. package/dist/model/PCard.js.map +0 -1
  277. package/dist/model/VCard.d.ts +0 -277
  278. package/dist/model/VCard.d.ts.map +0 -1
  279. package/dist/model/VCard.js +0 -573
  280. package/dist/model/VCard.js.map +0 -1
  281. package/dist/model/constants.d.ts +0 -45
  282. package/dist/model/constants.d.ts.map +0 -1
  283. package/dist/model/constants.js +0 -27
  284. package/dist/model/constants.js.map +0 -1
  285. package/dist/model/vcard_vocabulary.d.ts +0 -174
  286. package/dist/model/vcard_vocabulary.d.ts.map +0 -1
  287. package/dist/model/vcard_vocabulary.js +0 -187
  288. package/dist/model/vcard_vocabulary.js.map +0 -1
  289. package/dist/monads/Either.d.ts +0 -51
  290. package/dist/monads/Either.d.ts.map +0 -1
  291. package/dist/monads/Either.js +0 -82
  292. package/dist/monads/Either.js.map +0 -1
  293. package/dist/monads/IO.d.ts +0 -38
  294. package/dist/monads/IO.d.ts.map +0 -1
  295. package/dist/monads/IO.js +0 -66
  296. package/dist/monads/IO.js.map +0 -1
  297. package/dist/monads/Maybe.d.ts +0 -45
  298. package/dist/monads/Maybe.d.ts.map +0 -1
  299. package/dist/monads/Maybe.js +0 -73
  300. package/dist/monads/Maybe.js.map +0 -1
  301. package/dist/monads/Reader.d.ts +0 -29
  302. package/dist/monads/Reader.d.ts.map +0 -1
  303. package/dist/monads/Reader.js +0 -44
  304. package/dist/monads/Reader.js.map +0 -1
  305. package/dist/monads/State.d.ts +0 -33
  306. package/dist/monads/State.d.ts.map +0 -1
  307. package/dist/monads/State.js +0 -50
  308. package/dist/monads/State.js.map +0 -1
  309. package/dist/monads/Writer.d.ts +0 -29
  310. package/dist/monads/Writer.d.ts.map +0 -1
  311. package/dist/monads/Writer.js +0 -46
  312. package/dist/monads/Writer.js.map +0 -1
  313. package/dist/ptr/Bridgelet.d.ts +0 -180
  314. package/dist/ptr/Bridgelet.d.ts.map +0 -1
  315. package/dist/ptr/Bridgelet.js +0 -296
  316. package/dist/ptr/Bridgelet.js.map +0 -1
  317. package/dist/ptr/CLMIntrospection.d.ts +0 -169
  318. package/dist/ptr/CLMIntrospection.d.ts.map +0 -1
  319. package/dist/ptr/CLMIntrospection.js +0 -329
  320. package/dist/ptr/CLMIntrospection.js.map +0 -1
  321. package/dist/ptr/FaroSidecar.d.ts +0 -56
  322. package/dist/ptr/FaroSidecar.d.ts.map +0 -1
  323. package/dist/ptr/FaroSidecar.js +0 -102
  324. package/dist/ptr/FaroSidecar.js.map +0 -1
  325. package/dist/ptr/LensProtocol.d.ts +0 -84
  326. package/dist/ptr/LensProtocol.d.ts.map +0 -1
  327. package/dist/ptr/LensProtocol.js +0 -98
  328. package/dist/ptr/LensProtocol.js.map +0 -1
  329. package/dist/ptr/OpenTelemetrySidecar.d.ts +0 -144
  330. package/dist/ptr/OpenTelemetrySidecar.d.ts.map +0 -1
  331. package/dist/ptr/OpenTelemetrySidecar.js +0 -232
  332. package/dist/ptr/OpenTelemetrySidecar.js.map +0 -1
  333. package/dist/ptr/SandboxWorker.d.ts +0 -79
  334. package/dist/ptr/SandboxWorker.d.ts.map +0 -1
  335. package/dist/ptr/SandboxWorker.js +0 -298
  336. package/dist/ptr/SandboxWorker.js.map +0 -1
  337. package/dist/ptr/common_types.d.ts +0 -39
  338. package/dist/ptr/common_types.d.ts.map +0 -1
  339. package/dist/ptr/common_types.js +0 -12
  340. package/dist/ptr/common_types.js.map +0 -1
  341. package/dist/rag/GraphRAGEngine.d.ts +0 -26
  342. package/dist/rag/GraphRAGEngine.d.ts.map +0 -1
  343. package/dist/rag/GraphRAGEngine.js +0 -166
  344. package/dist/rag/GraphRAGEngine.js.map +0 -1
  345. package/dist/rag/HandleVectorStore.d.ts +0 -201
  346. package/dist/rag/HandleVectorStore.d.ts.map +0 -1
  347. package/dist/rag/HandleVectorStore.js +0 -527
  348. package/dist/rag/HandleVectorStore.js.map +0 -1
  349. package/dist/rag/PersistentIndexer.d.ts +0 -148
  350. package/dist/rag/PersistentIndexer.d.ts.map +0 -1
  351. package/dist/rag/PersistentIndexer.js +0 -302
  352. package/dist/rag/PersistentIndexer.js.map +0 -1
  353. package/dist/rag/index.d.ts +0 -20
  354. package/dist/rag/index.d.ts.map +0 -1
  355. package/dist/rag/index.js +0 -26
  356. package/dist/rag/index.js.map +0 -1
  357. package/dist/rag/semanticVersioning.d.ts +0 -187
  358. package/dist/rag/semanticVersioning.d.ts.map +0 -1
  359. package/dist/rag/semanticVersioning.js +0 -253
  360. package/dist/rag/semanticVersioning.js.map +0 -1
  361. package/dist/storage/IndexedDBEngine.d.ts +0 -33
  362. package/dist/storage/IndexedDBEngine.d.ts.map +0 -1
  363. package/dist/storage/IndexedDBEngine.js +0 -198
  364. package/dist/storage/IndexedDBEngine.js.map +0 -1
  365. package/dist/storage/SqliteNodeEngine.d.ts.map +0 -1
  366. package/dist/storage/SqliteNodeEngine.js.map +0 -1
  367. package/dist/storage/SqliteWasmEngine.d.ts.map +0 -1
  368. package/dist/storage/SqliteWasmEngine.js.map +0 -1
  369. package/dist/storage/StorageAdapter.d.ts +0 -42
  370. package/dist/storage/StorageAdapter.d.ts.map +0 -1
  371. package/dist/storage/StorageAdapter.js +0 -2
  372. package/dist/storage/StorageAdapter.js.map +0 -1
  373. package/dist/storage/VectorStore.d.ts +0 -202
  374. package/dist/storage/VectorStore.d.ts.map +0 -1
  375. package/dist/storage/VectorStore.js +0 -557
  376. package/dist/storage/VectorStore.js.map +0 -1
  377. package/dist/storage/schema.d.ts +0 -162
  378. package/dist/storage/schema.d.ts.map +0 -1
  379. package/dist/storage/schema.js +0 -335
  380. package/dist/storage/schema.js.map +0 -1
  381. package/dist/storage/schema_constants.d.ts +0 -7
  382. package/dist/storage/schema_constants.d.ts.map +0 -1
  383. package/dist/storage/schema_constants.js +0 -415
  384. package/dist/storage/schema_constants.js.map +0 -1
  385. package/dist/types/dots.d.ts +0 -206
  386. package/dist/types/dots.d.ts.map +0 -1
  387. package/dist/types/dots.js +0 -201
  388. 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":"AAAA;;;;;;;;;GASG;AAIH;;;GAGG;AACH,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmInB,CAAC;AAKF;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,GAAkB,IAAI,CAAC;IAC7B,YAAY,GAAG,KAAK,CAAC;IACrB,eAAe,GAAG,IAAI,GAAG,EAI7B,CAAC;IACG,cAAc,GAAG,IAAI,CAAC,CAAC,YAAY;IAE3C;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,oBAAoB;QACpB,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAEO,cAAc,GAAG,CAAC,CAAC;IAE3B;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CACX,IAAY,EACZ,KAAc,EACd,OAAiC,EACjC,UAAuB,YAAY;QAEnC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,OAAO,GAAmB;YAC9B,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc;YACzB,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE;SACrD,CAAC;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,UAAuB,QAAQ;QAClD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,OAAO,GAAmB;YAC9B,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc;YACzB,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,EAAE,OAAO,EAAE;SACpB,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAyC,CAAC;QACvF,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,cAAuB,EAAE,YAAqB;QACvE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,OAAO,GAAmB;YAC9B,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc;YACzB,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE;SAC/C,CAAC;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAmC,CAAC;IACrE,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,OAAuB;QACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;YACvD,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAExB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,MAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,KAAoC;QACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEtD,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAEzC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,KAAiB;QACnC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9C,8BAA8B;QAC9B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACjD,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,0BAA0B;YAC1B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACjD,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAE7B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,EAAU;QACnB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -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"}
@@ -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":"AACA,OAAO,EAAE,UAAU,EAAoC,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAsB,MAAM,wBAAwB,CAAC;AAE9E,OAAO,EAAc,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAI9D,MAAM,sBAAsB,GAAG;;;;;;;;;;;mEAWoC,CAAC;AAEpE,MAAM,kBAAkB,GAAG;;;;;;;;;uGAS4E,CAAC;AAaxG,MAAM,OAAO,cAAc;IACvB,WAAW,CAAmB;IAC9B,UAAU,CAAa;IACvB,SAAS,CAAiB;IAC1B,QAAQ,CAAS;IACjB,MAAM,CAAM;IAEZ,YACI,YAAoB,EACpB,cAA6B,IAAI,EACjC,WAAmB,eAAe,EAClC,SAAc,EAAE;QAEhB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,oBAAoB;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAgB,CACnC,YAAY,EACZ,MAAM,CACT,CAAC;QAEF,mBAAmB;QACnB,MAAM,KAAK,GAAG,WAAW,IAAI,YAAY,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QAExC,iBAAiB;QACjB,mDAAmD;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAY,EAAE,eAAwB,IAAI,EAAE,QAAiB,KAAK;QAC1E,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAE5D,IAAI,OAAO,GAAW,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAE/C,eAAe;QACf,sCAAsC;QACtC,KAAK,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAElE,gBAAgB;QAChB,IAAI,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxF,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC1B,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;YACnC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,IAAY,CAAC,EAAE,WAAoB,IAAI;QACjE,gBAAgB;QAChB,MAAM,OAAO,GAAyB,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEjF,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;YACtE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhD,eAAe;QACf,IAAI,QAAQ,GAAU,EAAE,CAAC;QACzB,IAAI,aAAa,GAAU,EAAE,CAAC;QAC9B,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjE,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YAC9B,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;YAExC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClF,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,YAAY,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/G,YAAY,GAAG,aAAa,MAAM,qBAAqB,MAAM,EAAE,CAAC;YACpE,CAAC;QACL,CAAC;QAED,iBAAiB;QACjB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,GAAG,uCAAuC,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACtG,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,YAAY,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAE5I,MAAM,MAAM,GAAG,kBAAkB;iBAC5B,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC;iBAC/B,OAAO,CAAC,kBAAkB,EAAE,aAAa,IAAI,gCAAgC,CAAC;iBAC9E,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;iBAC7B,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YAExC,MAAM,KAAK,GAAG,SAAS,CACnB,IAAI,EAAE,gBAAgB;YACtB,MAAM,EACN,sBAAsB,EACtB,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,CAC7C,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;gBACzB,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,UAAU,MAAM,CAAC,IAAI,EAAE,CAAC;YACrC,CAAC;QACL,CAAC;QAED,OAAO;YACH,MAAM;YACN,OAAO;YACP,QAAQ;YACR,aAAa;YACb,YAAY;YACZ,aAAa;YACb,UAAU,EAAE,GAAG,CAAC,cAAc;SACjC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,YAAsB;QAChE,MAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,cAAc;QACd,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe;QAExD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC7B,+CAA+C;YAC/C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YACvE,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACpB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC9D,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACpB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,MAAM,aAAa,GAAU,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACtB,aAAa,CAAC,IAAI,CAAC;oBACf,MAAM,EAAE,GAAG,CAAC,IAAI;oBAChB,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,MAAM,EAAE,CAAC,CAAC,UAAU;iBACvB,CAAC,CAAC;YACP,CAAC;YAED,sCAAsC;YACtC,IAAI,aAAa,CAAC,MAAM,GAAG,EAAE;gBAAE,MAAM;QACzC,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IACvC,CAAC;CACJ"}