mcard-js 2.1.12 → 2.1.13

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 (362) hide show
  1. package/README.md +14 -0
  2. package/dist/hash/HashValidator.d.ts +14 -0
  3. package/dist/hash/HashValidator.d.ts.map +1 -0
  4. package/dist/hash/HashValidator.js +57 -0
  5. package/dist/hash/HashValidator.js.map +1 -0
  6. package/dist/index.d.ts +29 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +38 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/model/CardCollection.d.ts +92 -0
  11. package/dist/model/CardCollection.d.ts.map +1 -0
  12. package/dist/model/CardCollection.js +217 -0
  13. package/dist/model/CardCollection.js.map +1 -0
  14. package/dist/model/ContentTypeInterpreter.d.ts +23 -0
  15. package/dist/model/ContentTypeInterpreter.d.ts.map +1 -0
  16. package/dist/model/ContentTypeInterpreter.js +140 -0
  17. package/dist/model/ContentTypeInterpreter.js.map +1 -0
  18. package/dist/model/EventProducer.d.ts +10 -0
  19. package/dist/model/EventProducer.d.ts.map +1 -0
  20. package/dist/model/EventProducer.js +46 -0
  21. package/dist/model/EventProducer.js.map +1 -0
  22. package/dist/model/GTime.d.ts +44 -0
  23. package/dist/model/GTime.d.ts.map +1 -0
  24. package/dist/model/GTime.js +91 -0
  25. package/dist/model/GTime.js.map +1 -0
  26. package/dist/model/Handle.d.ts +37 -0
  27. package/dist/model/Handle.d.ts.map +1 -0
  28. package/dist/model/Handle.js +90 -0
  29. package/dist/model/Handle.js.map +1 -0
  30. package/dist/model/MCard.d.ts +43 -0
  31. package/dist/model/MCard.d.ts.map +1 -0
  32. package/dist/model/MCard.js +76 -0
  33. package/dist/model/MCard.js.map +1 -0
  34. package/dist/model/constants.d.ts +45 -0
  35. package/dist/model/constants.d.ts.map +1 -0
  36. package/dist/model/constants.js +27 -0
  37. package/dist/model/constants.js.map +1 -0
  38. package/dist/model/detectors/BaseDetector.d.ts +26 -0
  39. package/dist/model/detectors/BaseDetector.d.ts.map +1 -0
  40. package/dist/model/detectors/BaseDetector.js +5 -0
  41. package/dist/model/detectors/BaseDetector.js.map +1 -0
  42. package/dist/model/detectors/BinaryDetector.d.ts +12 -0
  43. package/dist/model/detectors/BinaryDetector.d.ts.map +1 -0
  44. package/dist/model/detectors/BinaryDetector.js +82 -0
  45. package/dist/model/detectors/BinaryDetector.js.map +1 -0
  46. package/dist/model/detectors/ContentTypeInterpreter.d.ts +11 -0
  47. package/dist/model/detectors/ContentTypeInterpreter.d.ts.map +1 -0
  48. package/dist/model/detectors/ContentTypeInterpreter.js +51 -0
  49. package/dist/model/detectors/ContentTypeInterpreter.js.map +1 -0
  50. package/dist/model/detectors/DataFormatDetectors.d.ts +29 -0
  51. package/dist/model/detectors/DataFormatDetectors.d.ts.map +1 -0
  52. package/dist/model/detectors/DataFormatDetectors.js +223 -0
  53. package/dist/model/detectors/DataFormatDetectors.js.map +1 -0
  54. package/dist/model/detectors/LanguageDetector.d.ts +11 -0
  55. package/dist/model/detectors/LanguageDetector.d.ts.map +1 -0
  56. package/dist/model/detectors/LanguageDetector.js +148 -0
  57. package/dist/model/detectors/LanguageDetector.js.map +1 -0
  58. package/dist/model/detectors/MarkupDetectors.d.ts +22 -0
  59. package/dist/model/detectors/MarkupDetectors.d.ts.map +1 -0
  60. package/dist/model/detectors/MarkupDetectors.js +132 -0
  61. package/dist/model/detectors/MarkupDetectors.js.map +1 -0
  62. package/dist/model/detectors/OBJDetector.d.ts +8 -0
  63. package/dist/model/detectors/OBJDetector.d.ts.map +1 -0
  64. package/dist/model/detectors/OBJDetector.js +48 -0
  65. package/dist/model/detectors/OBJDetector.js.map +1 -0
  66. package/dist/model/detectors/registry.d.ts +13 -0
  67. package/dist/model/detectors/registry.d.ts.map +1 -0
  68. package/dist/model/detectors/registry.js +67 -0
  69. package/dist/model/detectors/registry.js.map +1 -0
  70. package/dist/monads/Either.d.ts +51 -0
  71. package/dist/monads/Either.d.ts.map +1 -0
  72. package/dist/monads/Either.js +82 -0
  73. package/dist/monads/Either.js.map +1 -0
  74. package/dist/monads/IO.d.ts +38 -0
  75. package/dist/monads/IO.d.ts.map +1 -0
  76. package/dist/monads/IO.js +66 -0
  77. package/dist/monads/IO.js.map +1 -0
  78. package/dist/monads/Maybe.d.ts +45 -0
  79. package/dist/monads/Maybe.d.ts.map +1 -0
  80. package/dist/monads/Maybe.js +73 -0
  81. package/dist/monads/Maybe.js.map +1 -0
  82. package/dist/monads/Reader.d.ts +29 -0
  83. package/dist/monads/Reader.d.ts.map +1 -0
  84. package/dist/monads/Reader.js +44 -0
  85. package/dist/monads/Reader.js.map +1 -0
  86. package/dist/monads/State.d.ts +33 -0
  87. package/dist/monads/State.d.ts.map +1 -0
  88. package/dist/monads/State.js +50 -0
  89. package/dist/monads/State.js.map +1 -0
  90. package/dist/monads/Writer.d.ts +29 -0
  91. package/dist/monads/Writer.d.ts.map +1 -0
  92. package/dist/monads/Writer.js +46 -0
  93. package/dist/monads/Writer.js.map +1 -0
  94. package/dist/ptr/FaroSidecar.d.ts +56 -0
  95. package/dist/ptr/FaroSidecar.d.ts.map +1 -0
  96. package/dist/ptr/FaroSidecar.js +102 -0
  97. package/dist/ptr/FaroSidecar.js.map +1 -0
  98. package/dist/ptr/LensProtocol.d.ts +84 -0
  99. package/dist/ptr/LensProtocol.d.ts.map +1 -0
  100. package/dist/ptr/LensProtocol.js +98 -0
  101. package/dist/ptr/LensProtocol.js.map +1 -0
  102. package/dist/ptr/SandboxWorker.d.ts +54 -0
  103. package/dist/ptr/SandboxWorker.d.ts.map +1 -0
  104. package/dist/ptr/SandboxWorker.js +172 -0
  105. package/dist/ptr/SandboxWorker.js.map +1 -0
  106. package/dist/ptr/common_types.d.ts +39 -0
  107. package/dist/ptr/common_types.d.ts.map +1 -0
  108. package/dist/ptr/common_types.js +12 -0
  109. package/dist/ptr/common_types.js.map +1 -0
  110. package/dist/ptr/lambda/AlphaConversion.d.ts +42 -0
  111. package/dist/ptr/lambda/AlphaConversion.d.ts.map +1 -0
  112. package/dist/ptr/lambda/AlphaConversion.js +244 -0
  113. package/dist/ptr/lambda/AlphaConversion.js.map +1 -0
  114. package/dist/ptr/lambda/BetaReduction.d.ts +73 -0
  115. package/dist/ptr/lambda/BetaReduction.d.ts.map +1 -0
  116. package/dist/ptr/lambda/BetaReduction.js +322 -0
  117. package/dist/ptr/lambda/BetaReduction.js.map +1 -0
  118. package/dist/ptr/lambda/EtaConversion.d.ts +65 -0
  119. package/dist/ptr/lambda/EtaConversion.d.ts.map +1 -0
  120. package/dist/ptr/lambda/EtaConversion.js +228 -0
  121. package/dist/ptr/lambda/EtaConversion.js.map +1 -0
  122. package/dist/ptr/lambda/FreeVariables.d.ts +44 -0
  123. package/dist/ptr/lambda/FreeVariables.d.ts.map +1 -0
  124. package/dist/ptr/lambda/FreeVariables.js +207 -0
  125. package/dist/ptr/lambda/FreeVariables.js.map +1 -0
  126. package/dist/ptr/lambda/LambdaRuntime.d.ts +80 -0
  127. package/dist/ptr/lambda/LambdaRuntime.d.ts.map +1 -0
  128. package/dist/ptr/lambda/LambdaRuntime.js +433 -0
  129. package/dist/ptr/lambda/LambdaRuntime.js.map +1 -0
  130. package/dist/ptr/lambda/LambdaTerm.d.ts +95 -0
  131. package/dist/ptr/lambda/LambdaTerm.d.ts.map +1 -0
  132. package/dist/ptr/lambda/LambdaTerm.js +159 -0
  133. package/dist/ptr/lambda/LambdaTerm.js.map +1 -0
  134. package/dist/ptr/lambda/index.d.ts +24 -0
  135. package/dist/ptr/lambda/index.d.ts.map +1 -0
  136. package/dist/ptr/lambda/index.js +34 -0
  137. package/dist/ptr/lambda/index.js.map +1 -0
  138. package/dist/ptr/llm/Config.d.ts +57 -0
  139. package/dist/ptr/llm/Config.d.ts.map +1 -0
  140. package/dist/ptr/llm/Config.js +183 -0
  141. package/dist/ptr/llm/Config.js.map +1 -0
  142. package/dist/ptr/llm/LLMRuntime.d.ts +35 -0
  143. package/dist/ptr/llm/LLMRuntime.d.ts.map +1 -0
  144. package/dist/ptr/llm/LLMRuntime.js +176 -0
  145. package/dist/ptr/llm/LLMRuntime.js.map +1 -0
  146. package/dist/ptr/llm/providers/LLMProvider.d.ts +43 -0
  147. package/dist/ptr/llm/providers/LLMProvider.d.ts.map +1 -0
  148. package/dist/ptr/llm/providers/LLMProvider.js +31 -0
  149. package/dist/ptr/llm/providers/LLMProvider.js.map +1 -0
  150. package/dist/ptr/llm/providers/MLCLLMProvider.d.ts +22 -0
  151. package/dist/ptr/llm/providers/MLCLLMProvider.d.ts.map +1 -0
  152. package/dist/ptr/llm/providers/MLCLLMProvider.js +155 -0
  153. package/dist/ptr/llm/providers/MLCLLMProvider.js.map +1 -0
  154. package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts +20 -0
  155. package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts.map +1 -0
  156. package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js +42 -0
  157. package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js.map +1 -0
  158. package/dist/ptr/llm/providers/OllamaProvider.d.ts +21 -0
  159. package/dist/ptr/llm/providers/OllamaProvider.d.ts.map +1 -0
  160. package/dist/ptr/llm/providers/OllamaProvider.js +158 -0
  161. package/dist/ptr/llm/providers/OllamaProvider.js.map +1 -0
  162. package/dist/ptr/llm/providers/WebLLMProvider.d.ts +22 -0
  163. package/dist/ptr/llm/providers/WebLLMProvider.d.ts.map +1 -0
  164. package/dist/ptr/llm/providers/WebLLMProvider.js +151 -0
  165. package/dist/ptr/llm/providers/WebLLMProvider.js.map +1 -0
  166. package/dist/ptr/node/Action.d.ts +426 -0
  167. package/dist/ptr/node/Action.d.ts.map +1 -0
  168. package/dist/ptr/node/Action.js +711 -0
  169. package/dist/ptr/node/Action.js.map +1 -0
  170. package/dist/ptr/node/CLMLoader.d.ts +18 -0
  171. package/dist/ptr/node/CLMLoader.d.ts.map +1 -0
  172. package/dist/ptr/node/CLMLoader.js +18 -0
  173. package/dist/ptr/node/CLMLoader.js.map +1 -0
  174. package/dist/ptr/node/CLMRunner.d.ts +34 -0
  175. package/dist/ptr/node/CLMRunner.d.ts.map +1 -0
  176. package/dist/ptr/node/CLMRunner.js +36 -0
  177. package/dist/ptr/node/CLMRunner.js.map +1 -0
  178. package/dist/ptr/node/FileSystemUtils.d.ts +40 -0
  179. package/dist/ptr/node/FileSystemUtils.d.ts.map +1 -0
  180. package/dist/ptr/node/FileSystemUtils.js +170 -0
  181. package/dist/ptr/node/FileSystemUtils.js.map +1 -0
  182. package/dist/ptr/node/NetworkConfig.d.ts +191 -0
  183. package/dist/ptr/node/NetworkConfig.d.ts.map +1 -0
  184. package/dist/ptr/node/NetworkConfig.js +8 -0
  185. package/dist/ptr/node/NetworkConfig.js.map +1 -0
  186. package/dist/ptr/node/NetworkRuntime.d.ts +38 -0
  187. package/dist/ptr/node/NetworkRuntime.d.ts.map +1 -0
  188. package/dist/ptr/node/NetworkRuntime.js +871 -0
  189. package/dist/ptr/node/NetworkRuntime.js.map +1 -0
  190. package/dist/ptr/node/P2PChatSession.d.ts +53 -0
  191. package/dist/ptr/node/P2PChatSession.d.ts.map +1 -0
  192. package/dist/ptr/node/P2PChatSession.js +154 -0
  193. package/dist/ptr/node/P2PChatSession.js.map +1 -0
  194. package/dist/ptr/node/RuntimeInterface.d.ts +4 -0
  195. package/dist/ptr/node/RuntimeInterface.d.ts.map +1 -0
  196. package/dist/ptr/node/RuntimeInterface.js +2 -0
  197. package/dist/ptr/node/RuntimeInterface.js.map +1 -0
  198. package/dist/ptr/node/Runtimes.d.ts +34 -0
  199. package/dist/ptr/node/Runtimes.d.ts.map +1 -0
  200. package/dist/ptr/node/Runtimes.js +38 -0
  201. package/dist/ptr/node/Runtimes.js.map +1 -0
  202. package/dist/ptr/node/SignalingServer.d.ts +37 -0
  203. package/dist/ptr/node/SignalingServer.d.ts.map +1 -0
  204. package/dist/ptr/node/SignalingServer.js +218 -0
  205. package/dist/ptr/node/SignalingServer.js.map +1 -0
  206. package/dist/ptr/node/cli.d.ts +3 -0
  207. package/dist/ptr/node/cli.d.ts.map +1 -0
  208. package/dist/ptr/node/cli.js +266 -0
  209. package/dist/ptr/node/cli.js.map +1 -0
  210. package/dist/ptr/node/clm/builtins/handle.d.ts +14 -0
  211. package/dist/ptr/node/clm/builtins/handle.d.ts.map +1 -0
  212. package/dist/ptr/node/clm/builtins/handle.js +177 -0
  213. package/dist/ptr/node/clm/builtins/handle.js.map +1 -0
  214. package/dist/ptr/node/clm/builtins/index.d.ts +20 -0
  215. package/dist/ptr/node/clm/builtins/index.d.ts.map +1 -0
  216. package/dist/ptr/node/clm/builtins/index.js +60 -0
  217. package/dist/ptr/node/clm/builtins/index.js.map +1 -0
  218. package/dist/ptr/node/clm/index.d.ts +25 -0
  219. package/dist/ptr/node/clm/index.d.ts.map +1 -0
  220. package/dist/ptr/node/clm/index.js +28 -0
  221. package/dist/ptr/node/clm/index.js.map +1 -0
  222. package/dist/ptr/node/clm/loader.d.ts +25 -0
  223. package/dist/ptr/node/clm/loader.d.ts.map +1 -0
  224. package/dist/ptr/node/clm/loader.js +146 -0
  225. package/dist/ptr/node/clm/loader.js.map +1 -0
  226. package/dist/ptr/node/clm/multiruntime.d.ts +9 -0
  227. package/dist/ptr/node/clm/multiruntime.d.ts.map +1 -0
  228. package/dist/ptr/node/clm/multiruntime.js +121 -0
  229. package/dist/ptr/node/clm/multiruntime.js.map +1 -0
  230. package/dist/ptr/node/clm/runner.d.ts +70 -0
  231. package/dist/ptr/node/clm/runner.d.ts.map +1 -0
  232. package/dist/ptr/node/clm/runner.js +324 -0
  233. package/dist/ptr/node/clm/runner.js.map +1 -0
  234. package/dist/ptr/node/clm/types.d.ts +166 -0
  235. package/dist/ptr/node/clm/types.d.ts.map +1 -0
  236. package/dist/ptr/node/clm/types.js +5 -0
  237. package/dist/ptr/node/clm/types.js.map +1 -0
  238. package/dist/ptr/node/clm/utils.d.ts +29 -0
  239. package/dist/ptr/node/clm/utils.d.ts.map +1 -0
  240. package/dist/ptr/node/clm/utils.js +88 -0
  241. package/dist/ptr/node/clm/utils.js.map +1 -0
  242. package/dist/ptr/node/network/HttpClient.d.ts +14 -0
  243. package/dist/ptr/node/network/HttpClient.d.ts.map +1 -0
  244. package/dist/ptr/node/network/HttpClient.js +139 -0
  245. package/dist/ptr/node/network/HttpClient.js.map +1 -0
  246. package/dist/ptr/node/network/MCardSerialization.d.ts +19 -0
  247. package/dist/ptr/node/network/MCardSerialization.d.ts.map +1 -0
  248. package/dist/ptr/node/network/MCardSerialization.js +41 -0
  249. package/dist/ptr/node/network/MCardSerialization.js.map +1 -0
  250. package/dist/ptr/node/network/NetworkInfrastructure.d.ts +37 -0
  251. package/dist/ptr/node/network/NetworkInfrastructure.d.ts.map +1 -0
  252. package/dist/ptr/node/network/NetworkInfrastructure.js +121 -0
  253. package/dist/ptr/node/network/NetworkInfrastructure.js.map +1 -0
  254. package/dist/ptr/node/network/NetworkSecurity.d.ts +24 -0
  255. package/dist/ptr/node/network/NetworkSecurity.d.ts.map +1 -0
  256. package/dist/ptr/node/network/NetworkSecurity.js +104 -0
  257. package/dist/ptr/node/network/NetworkSecurity.js.map +1 -0
  258. package/dist/ptr/node/runtimes/base.d.ts +31 -0
  259. package/dist/ptr/node/runtimes/base.d.ts.map +1 -0
  260. package/dist/ptr/node/runtimes/base.js +33 -0
  261. package/dist/ptr/node/runtimes/base.js.map +1 -0
  262. package/dist/ptr/node/runtimes/binary.d.ts +10 -0
  263. package/dist/ptr/node/runtimes/binary.d.ts.map +1 -0
  264. package/dist/ptr/node/runtimes/binary.js +16 -0
  265. package/dist/ptr/node/runtimes/binary.js.map +1 -0
  266. package/dist/ptr/node/runtimes/factory.d.ts +22 -0
  267. package/dist/ptr/node/runtimes/factory.d.ts.map +1 -0
  268. package/dist/ptr/node/runtimes/factory.js +152 -0
  269. package/dist/ptr/node/runtimes/factory.js.map +1 -0
  270. package/dist/ptr/node/runtimes/index.d.ts +28 -0
  271. package/dist/ptr/node/runtimes/index.d.ts.map +1 -0
  272. package/dist/ptr/node/runtimes/index.js +30 -0
  273. package/dist/ptr/node/runtimes/index.js.map +1 -0
  274. package/dist/ptr/node/runtimes/javascript.d.ts +22 -0
  275. package/dist/ptr/node/runtimes/javascript.d.ts.map +1 -0
  276. package/dist/ptr/node/runtimes/javascript.js +125 -0
  277. package/dist/ptr/node/runtimes/javascript.js.map +1 -0
  278. package/dist/ptr/node/runtimes/lean.d.ts +10 -0
  279. package/dist/ptr/node/runtimes/lean.d.ts.map +1 -0
  280. package/dist/ptr/node/runtimes/lean.js +60 -0
  281. package/dist/ptr/node/runtimes/lean.js.map +1 -0
  282. package/dist/ptr/node/runtimes/loader.d.ts +21 -0
  283. package/dist/ptr/node/runtimes/loader.d.ts.map +1 -0
  284. package/dist/ptr/node/runtimes/loader.js +126 -0
  285. package/dist/ptr/node/runtimes/loader.js.map +1 -0
  286. package/dist/ptr/node/runtimes/python.d.ts +14 -0
  287. package/dist/ptr/node/runtimes/python.d.ts.map +1 -0
  288. package/dist/ptr/node/runtimes/python.js +100 -0
  289. package/dist/ptr/node/runtimes/python.js.map +1 -0
  290. package/dist/ptr/node/runtimes/wasm.d.ts +10 -0
  291. package/dist/ptr/node/runtimes/wasm.d.ts.map +1 -0
  292. package/dist/ptr/node/runtimes/wasm.js +55 -0
  293. package/dist/ptr/node/runtimes/wasm.js.map +1 -0
  294. package/dist/rag/GraphRAGEngine.d.ts +26 -0
  295. package/dist/rag/GraphRAGEngine.d.ts.map +1 -0
  296. package/dist/rag/GraphRAGEngine.js +166 -0
  297. package/dist/rag/GraphRAGEngine.js.map +1 -0
  298. package/dist/rag/HandleVectorStore.d.ts +201 -0
  299. package/dist/rag/HandleVectorStore.d.ts.map +1 -0
  300. package/dist/rag/HandleVectorStore.js +527 -0
  301. package/dist/rag/HandleVectorStore.js.map +1 -0
  302. package/dist/rag/PersistentIndexer.d.ts +148 -0
  303. package/dist/rag/PersistentIndexer.d.ts.map +1 -0
  304. package/dist/rag/PersistentIndexer.js +302 -0
  305. package/dist/rag/PersistentIndexer.js.map +1 -0
  306. package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts +87 -0
  307. package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts.map +1 -0
  308. package/dist/rag/embeddings/VisionEmbeddingProvider.js +164 -0
  309. package/dist/rag/embeddings/VisionEmbeddingProvider.js.map +1 -0
  310. package/dist/rag/graph/community.d.ts +56 -0
  311. package/dist/rag/graph/community.d.ts.map +1 -0
  312. package/dist/rag/graph/community.js +247 -0
  313. package/dist/rag/graph/community.js.map +1 -0
  314. package/dist/rag/graph/extractor.d.ts +99 -0
  315. package/dist/rag/graph/extractor.d.ts.map +1 -0
  316. package/dist/rag/graph/extractor.js +210 -0
  317. package/dist/rag/graph/extractor.js.map +1 -0
  318. package/dist/rag/graph/store.d.ts +176 -0
  319. package/dist/rag/graph/store.d.ts.map +1 -0
  320. package/dist/rag/graph/store.js +504 -0
  321. package/dist/rag/graph/store.js.map +1 -0
  322. package/dist/rag/index.d.ts +20 -0
  323. package/dist/rag/index.d.ts.map +1 -0
  324. package/dist/rag/index.js +26 -0
  325. package/dist/rag/index.js.map +1 -0
  326. package/dist/rag/semanticVersioning.d.ts +187 -0
  327. package/dist/rag/semanticVersioning.d.ts.map +1 -0
  328. package/dist/rag/semanticVersioning.js +253 -0
  329. package/dist/rag/semanticVersioning.js.map +1 -0
  330. package/dist/storage/IndexedDBEngine.d.ts +33 -0
  331. package/dist/storage/IndexedDBEngine.d.ts.map +1 -0
  332. package/dist/storage/IndexedDBEngine.js +198 -0
  333. package/dist/storage/IndexedDBEngine.js.map +1 -0
  334. package/dist/storage/SqliteNodeEngine.d.ts +123 -0
  335. package/dist/storage/SqliteNodeEngine.d.ts.map +1 -0
  336. package/dist/storage/SqliteNodeEngine.js +385 -0
  337. package/dist/storage/SqliteNodeEngine.js.map +1 -0
  338. package/dist/storage/SqliteWasmEngine.d.ts +60 -0
  339. package/dist/storage/SqliteWasmEngine.d.ts.map +1 -0
  340. package/dist/storage/SqliteWasmEngine.js +193 -0
  341. package/dist/storage/SqliteWasmEngine.js.map +1 -0
  342. package/dist/storage/StorageAdapter.d.ts +42 -0
  343. package/dist/storage/StorageAdapter.d.ts.map +1 -0
  344. package/dist/storage/StorageAdapter.js +2 -0
  345. package/dist/storage/StorageAdapter.js.map +1 -0
  346. package/dist/storage/VectorStore.d.ts +202 -0
  347. package/dist/storage/VectorStore.d.ts.map +1 -0
  348. package/dist/storage/VectorStore.js +557 -0
  349. package/dist/storage/VectorStore.js.map +1 -0
  350. package/dist/storage/schema.d.ts +162 -0
  351. package/dist/storage/schema.d.ts.map +1 -0
  352. package/dist/storage/schema.js +373 -0
  353. package/dist/storage/schema.js.map +1 -0
  354. package/dist/util/FileIO.d.ts +44 -0
  355. package/dist/util/FileIO.d.ts.map +1 -0
  356. package/dist/util/FileIO.js +203 -0
  357. package/dist/util/FileIO.js.map +1 -0
  358. package/dist/util/Loader.d.ts +34 -0
  359. package/dist/util/Loader.d.ts.map +1 -0
  360. package/dist/util/Loader.js +168 -0
  361. package/dist/util/Loader.js.map +1 -0
  362. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.js","sourceRoot":"","sources":["../../../../src/ptr/node/runtimes/binary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAW,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,OAAO,aAAa;IACtB,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,OAAgB,EAAE,MAAW,EAAE,UAAkB;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACJ"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Runtime Factory for creating runtime executors.
3
+ */
4
+ import { Runtime, RuntimeOptions, RuntimeType } from './base.js';
5
+ export declare class RuntimeFactory {
6
+ /**
7
+ * Get availability status of all runtimes.
8
+ */
9
+ static getAvailableRuntimes(): Promise<Record<string, boolean>>;
10
+ /**
11
+ * Get a runtime instance by name (synchronous for most runtimes).
12
+ *
13
+ * Note: For llm/lambda/network runtimes, this returns a wrapper that
14
+ * lazily initializes. Use getRuntimeAsync() for guaranteed initialization.
15
+ */
16
+ static getRuntime(runtimeName: RuntimeType | string, options?: RuntimeOptions): Runtime;
17
+ /**
18
+ * Get a runtime instance asynchronously (for runtimes that need dynamic imports).
19
+ */
20
+ static getRuntimeAsync(runtimeName: RuntimeType | string, options?: RuntimeOptions): Promise<Runtime>;
21
+ }
22
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/ptr/node/runtimes/factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAgB,MAAM,WAAW,CAAC;AAa/E,qBAAa,cAAc;IACvB;;OAEG;WACU,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAiCrE;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO;IA+DvF;;OAEG;WACU,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;CAsB9G"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Runtime Factory for creating runtime executors.
3
+ */
4
+ import { checkCommand } from './base.js';
5
+ import { JavaScriptRuntime } from './javascript.js';
6
+ import { PythonRuntime } from './python.js';
7
+ import { BinaryRuntime } from './binary.js';
8
+ import { WasmRuntime } from './wasm.js';
9
+ import { LeanRuntime } from './lean.js';
10
+ import { LoaderRuntime, CollectionLoaderRuntime } from './loader.js';
11
+ // Cached runtime instances for LLM/Lambda/Network (lazy loaded)
12
+ let _LLMRuntime = null;
13
+ let _LambdaRuntime = null;
14
+ let _NetworkRuntime = null;
15
+ export class RuntimeFactory {
16
+ /**
17
+ * Get availability status of all runtimes.
18
+ */
19
+ static async getAvailableRuntimes() {
20
+ const runtimes = ['javascript', 'python', 'rust', 'c', 'wasm', 'lean', 'llm'];
21
+ const status = {};
22
+ for (const r of runtimes) {
23
+ try {
24
+ if (r === 'javascript') {
25
+ status[r] = true;
26
+ }
27
+ else if (r === 'python') {
28
+ status[r] = await checkCommand('python3');
29
+ }
30
+ else if (r === 'rust') {
31
+ status[r] = await checkCommand('cargo');
32
+ }
33
+ else if (r === 'c') {
34
+ const gccOk = await checkCommand('gcc');
35
+ status[r] = gccOk || await checkCommand('clang');
36
+ }
37
+ else if (r === 'lean') {
38
+ status[r] = await checkCommand('lean');
39
+ }
40
+ else if (r === 'wasm') {
41
+ status[r] = typeof WebAssembly !== 'undefined';
42
+ }
43
+ else if (r === 'llm') {
44
+ const { OllamaProvider } = await import('../../llm/providers/OllamaProvider.js');
45
+ const provider = new OllamaProvider(null, 5);
46
+ status[r] = await provider.validate_connection();
47
+ }
48
+ else {
49
+ status[r] = false;
50
+ }
51
+ }
52
+ catch (e) {
53
+ status[r] = false;
54
+ }
55
+ }
56
+ return status;
57
+ }
58
+ /**
59
+ * Get a runtime instance by name (synchronous for most runtimes).
60
+ *
61
+ * Note: For llm/lambda/network runtimes, this returns a wrapper that
62
+ * lazily initializes. Use getRuntimeAsync() for guaranteed initialization.
63
+ */
64
+ static getRuntime(runtimeName, options) {
65
+ switch (runtimeName) {
66
+ case 'javascript':
67
+ return new JavaScriptRuntime();
68
+ case 'python':
69
+ return new PythonRuntime();
70
+ case 'rust':
71
+ case 'c':
72
+ return new BinaryRuntime();
73
+ case 'wasm':
74
+ return new WasmRuntime();
75
+ case 'lean':
76
+ return new LeanRuntime();
77
+ case 'loader':
78
+ return new LoaderRuntime();
79
+ case 'collection_loader':
80
+ return new CollectionLoaderRuntime();
81
+ case 'llm':
82
+ // Return a wrapper that lazily loads LLMRuntime
83
+ return {
84
+ async execute(code, context, config) {
85
+ if (!_LLMRuntime) {
86
+ const mod = await import('../../llm/LLMRuntime.js');
87
+ _LLMRuntime = mod.LLMRuntime;
88
+ }
89
+ const runtime = new _LLMRuntime();
90
+ return runtime.execute(code, context, config);
91
+ }
92
+ };
93
+ case 'lambda':
94
+ if (!options?.collection) {
95
+ throw new Error('Lambda runtime requires a CardCollection in options');
96
+ }
97
+ // Return a wrapper that lazily loads LambdaRuntime
98
+ const collection = options.collection;
99
+ return {
100
+ async execute(code, context, config) {
101
+ if (!_LambdaRuntime) {
102
+ const mod = await import('../../lambda/LambdaRuntime.js');
103
+ _LambdaRuntime = mod.LambdaRuntime;
104
+ }
105
+ const runtime = new _LambdaRuntime(collection);
106
+ return runtime.execute(code, context, config);
107
+ }
108
+ };
109
+ case 'network':
110
+ // Return a wrapper that lazily loads NetworkRuntime
111
+ const netCollection = options?.collection;
112
+ return {
113
+ async execute(code, context, config, chapterDir) {
114
+ if (!_NetworkRuntime) {
115
+ const mod = await import('../NetworkRuntime.js');
116
+ _NetworkRuntime = mod.NetworkRuntime;
117
+ }
118
+ const runtime = new _NetworkRuntime(netCollection);
119
+ return runtime.execute(code, context, config, chapterDir || '');
120
+ }
121
+ };
122
+ default:
123
+ throw new Error(`Unknown runtime: ${runtimeName}`);
124
+ }
125
+ }
126
+ /**
127
+ * Get a runtime instance asynchronously (for runtimes that need dynamic imports).
128
+ */
129
+ static async getRuntimeAsync(runtimeName, options) {
130
+ switch (runtimeName) {
131
+ case 'llm': {
132
+ const { LLMRuntime } = await import('../../llm/LLMRuntime.js');
133
+ return new LLMRuntime();
134
+ }
135
+ case 'lambda': {
136
+ if (!options?.collection) {
137
+ throw new Error('Lambda runtime requires a CardCollection in options');
138
+ }
139
+ const { LambdaRuntime } = await import('../../lambda/LambdaRuntime.js');
140
+ return new LambdaRuntime(options.collection);
141
+ }
142
+ case 'network': {
143
+ const { NetworkRuntime } = await import('../NetworkRuntime.js');
144
+ return new NetworkRuntime(options?.collection);
145
+ }
146
+ default:
147
+ // Fallback to sync version
148
+ return this.getRuntime(runtimeName, options);
149
+ }
150
+ }
151
+ }
152
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../src/ptr/node/runtimes/factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAwC,YAAY,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAErE,gEAAgE;AAChE,IAAI,WAAW,GAAQ,IAAI,CAAC;AAC5B,IAAI,cAAc,GAAQ,IAAI,CAAC;AAC/B,IAAI,eAAe,GAAQ,IAAI,CAAC;AAEhC,MAAM,OAAO,cAAc;IACvB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,oBAAoB;QAC7B,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9E,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACvB,IAAI,CAAC;gBACD,IAAI,CAAC,KAAK,YAAY,EAAE,CAAC;oBACrB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACrB,CAAC;qBAAM,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACxB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC9C,CAAC;qBAAM,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;oBACtB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC5C,CAAC;qBAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBACnB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;oBACxC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;gBACrD,CAAC;qBAAM,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;oBACtB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC3C,CAAC;qBAAM,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;oBACtB,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,WAAW,KAAK,WAAW,CAAC;gBACnD,CAAC;qBAAM,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;oBACrB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;oBACjF,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC7C,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,WAAiC,EAAE,OAAwB;QACzE,QAAQ,WAAW,EAAE,CAAC;YAClB,KAAK,YAAY;gBACb,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACnC,KAAK,QAAQ;gBACT,OAAO,IAAI,aAAa,EAAE,CAAC;YAC/B,KAAK,MAAM,CAAC;YACZ,KAAK,GAAG;gBACJ,OAAO,IAAI,aAAa,EAAE,CAAC;YAC/B,KAAK,MAAM;gBACP,OAAO,IAAI,WAAW,EAAE,CAAC;YAC7B,KAAK,MAAM;gBACP,OAAO,IAAI,WAAW,EAAE,CAAC;YAC7B,KAAK,QAAQ;gBACT,OAAO,IAAI,aAAa,EAAE,CAAC;YAC/B,KAAK,mBAAmB;gBACpB,OAAO,IAAI,uBAAuB,EAAE,CAAC;YACzC,KAAK,KAAK;gBACN,gDAAgD;gBAChD,OAAO;oBACH,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAgB,EAAE,MAAW;wBACrD,IAAI,CAAC,WAAW,EAAE,CAAC;4BACf,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;4BACpD,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC;wBACjC,CAAC;wBACD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;wBAClC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;oBAClD,CAAC;iBACJ,CAAC;YACN,KAAK,QAAQ;gBACT,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBAC3E,CAAC;gBACD,mDAAmD;gBACnD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBACtC,OAAO;oBACH,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAgB,EAAE,MAAW;wBACrD,IAAI,CAAC,cAAc,EAAE,CAAC;4BAClB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;4BAC1D,cAAc,GAAG,GAAG,CAAC,aAAa,CAAC;wBACvC,CAAC;wBACD,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;wBAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;oBAClD,CAAC;iBACJ,CAAC;YACN,KAAK,SAAS;gBACV,oDAAoD;gBACpD,MAAM,aAAa,GAAG,OAAO,EAAE,UAAU,CAAC;gBAC1C,OAAO;oBACH,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAgB,EAAE,MAAW,EAAE,UAAmB;wBAC1E,IAAI,CAAC,eAAe,EAAE,CAAC;4BACnB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;4BACjD,eAAe,GAAG,GAAG,CAAC,cAAc,CAAC;wBACzC,CAAC;wBACD,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;wBACnD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;oBACpE,CAAC;iBACJ,CAAC;YACN;gBACI,MAAM,IAAI,KAAK,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,WAAiC,EAAE,OAAwB;QACpF,QAAQ,WAAW,EAAE,CAAC;YAClB,KAAK,KAAK,CAAC,CAAC,CAAC;gBACT,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBAC/D,OAAO,IAAI,UAAU,EAAE,CAAC;YAC5B,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBAC3E,CAAC;gBACD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;gBACxE,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACb,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBAChE,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACnD,CAAC;YACD;gBACI,2BAA2B;gBAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Runtimes Module for PTR (JavaScript)
3
+ * =====================================
4
+ *
5
+ * This module provides modular runtime executor implementations.
6
+ *
7
+ * Organization:
8
+ * - base.ts: Runtime interface, types, utility functions
9
+ * - javascript.ts: JavaScriptRuntime (VM or subprocess)
10
+ * - python.ts: PythonRuntime
11
+ * - binary.ts: BinaryRuntime (Rust, C)
12
+ * - wasm.ts: WasmRuntime
13
+ * - lean.ts: LeanRuntime
14
+ * - loader.ts: LoaderRuntime, CollectionLoaderRuntime
15
+ * - factory.ts: RuntimeFactory
16
+ *
17
+ * For backward compatibility, the main Runtimes.ts re-exports all classes.
18
+ */
19
+ export type { Runtime, RuntimeOptions, RuntimeType, } from './base.js';
20
+ export { checkCommand, execFile, parseOutput, } from './base.js';
21
+ export { JavaScriptRuntime } from './javascript.js';
22
+ export { PythonRuntime } from './python.js';
23
+ export { BinaryRuntime } from './binary.js';
24
+ export { WasmRuntime } from './wasm.js';
25
+ export { LeanRuntime } from './lean.js';
26
+ export { LoaderRuntime, CollectionLoaderRuntime } from './loader.js';
27
+ export { RuntimeFactory } from './factory.js';
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ptr/node/runtimes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,YAAY,EACR,OAAO,EACP,cAAc,EACd,WAAW,GACd,MAAM,WAAW,CAAC;AAGnB,OAAO,EACH,YAAY,EACZ,QAAQ,EACR,WAAW,GACd,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGrE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Runtimes Module for PTR (JavaScript)
3
+ * =====================================
4
+ *
5
+ * This module provides modular runtime executor implementations.
6
+ *
7
+ * Organization:
8
+ * - base.ts: Runtime interface, types, utility functions
9
+ * - javascript.ts: JavaScriptRuntime (VM or subprocess)
10
+ * - python.ts: PythonRuntime
11
+ * - binary.ts: BinaryRuntime (Rust, C)
12
+ * - wasm.ts: WasmRuntime
13
+ * - lean.ts: LeanRuntime
14
+ * - loader.ts: LoaderRuntime, CollectionLoaderRuntime
15
+ * - factory.ts: RuntimeFactory
16
+ *
17
+ * For backward compatibility, the main Runtimes.ts re-exports all classes.
18
+ */
19
+ // Base utilities (value exports)
20
+ export { checkCommand, execFile, parseOutput, } from './base.js';
21
+ // Runtime implementations
22
+ export { JavaScriptRuntime } from './javascript.js';
23
+ export { PythonRuntime } from './python.js';
24
+ export { BinaryRuntime } from './binary.js';
25
+ export { WasmRuntime } from './wasm.js';
26
+ export { LeanRuntime } from './lean.js';
27
+ export { LoaderRuntime, CollectionLoaderRuntime } from './loader.js';
28
+ // Factory
29
+ export { RuntimeFactory } from './factory.js';
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ptr/node/runtimes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AASH,iCAAiC;AACjC,OAAO,EACH,YAAY,EACZ,QAAQ,EACR,WAAW,GACd,MAAM,WAAW,CAAC;AAEnB,0BAA0B;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAErE,UAAU;AACV,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * JavaScript runtime executor.
3
+ *
4
+ * Executes JavaScript code in VM sandbox or subprocess for module/import support.
5
+ */
6
+ import { Runtime } from './base.js';
7
+ export declare class JavaScriptRuntime implements Runtime {
8
+ execute(code: string, context: unknown, config: any): Promise<unknown>;
9
+ /**
10
+ * Check if code requires subprocess execution (has imports/exports).
11
+ */
12
+ private requiresSubprocess;
13
+ /**
14
+ * Execute code in VM sandbox (fast, for simple scripts).
15
+ */
16
+ private executeInVM;
17
+ /**
18
+ * Execute code in subprocess (for modules/imports).
19
+ */
20
+ executeSubprocess(code: string, context: unknown): Promise<unknown>;
21
+ }
22
+ //# sourceMappingURL=javascript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../../src/ptr/node/runtimes/javascript.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,OAAO,EAAyB,MAAM,WAAW,CAAC;AAM3D,qBAAa,iBAAkB,YAAW,OAAO;IACvC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ5E;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;YACW,WAAW;IAqCzB;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAmD5E"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * JavaScript runtime executor.
3
+ *
4
+ * Executes JavaScript code in VM sandbox or subprocess for module/import support.
5
+ */
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ import * as vm from 'vm';
9
+ import * as child_process from 'child_process';
10
+ import * as util from 'util';
11
+ import { execFile, parseOutput } from './base.js';
12
+ import { findProjectRoot } from '../FileSystemUtils.js';
13
+ const writeFile = util.promisify(fs.writeFile);
14
+ const unlink = util.promisify(fs.unlink);
15
+ export class JavaScriptRuntime {
16
+ async execute(code, context, config) {
17
+ // Detect if code needs Node.js features not available in VM sandbox
18
+ if (this.requiresSubprocess(code)) {
19
+ return this.executeSubprocess(code, context);
20
+ }
21
+ return this.executeInVM(code, context);
22
+ }
23
+ /**
24
+ * Check if code requires subprocess execution (has imports/exports).
25
+ */
26
+ requiresSubprocess(code) {
27
+ return (code.includes('require(') ||
28
+ code.includes('import(') ||
29
+ code.includes('import ') ||
30
+ code.includes('export '));
31
+ }
32
+ /**
33
+ * Execute code in VM sandbox (fast, for simple scripts).
34
+ */
35
+ async executeInVM(code, context) {
36
+ const sandbox = {
37
+ context,
38
+ target: context,
39
+ result: undefined,
40
+ console: {
41
+ log: (...args) => console.log('[JS]', ...args),
42
+ error: (...args) => console.error('[JS]', ...args),
43
+ warn: (...args) => console.warn('[JS]', ...args),
44
+ },
45
+ Math,
46
+ JSON,
47
+ Date,
48
+ setTimeout,
49
+ clearTimeout,
50
+ setInterval,
51
+ clearInterval,
52
+ process: process,
53
+ spawn: child_process.spawn,
54
+ exec: child_process.exec,
55
+ // Network capabilities
56
+ fetch: global.fetch ? global.fetch.bind(global) : undefined,
57
+ Headers: global.Headers,
58
+ Request: global.Request,
59
+ Response: global.Response,
60
+ URL: global.URL,
61
+ URLSearchParams: global.URLSearchParams,
62
+ };
63
+ const codeRunnable = code + '\nresult;';
64
+ const script = new vm.Script(codeRunnable);
65
+ const vmContext = vm.createContext(sandbox);
66
+ const executionResult = script.runInContext(vmContext, { timeout: 5000 });
67
+ return sandbox.result !== undefined ? sandbox.result : executionResult;
68
+ }
69
+ /**
70
+ * Execute code in subprocess (for modules/imports).
71
+ */
72
+ async executeSubprocess(code, context) {
73
+ const contextStr = JSON.stringify(context);
74
+ const projectRoot = findProjectRoot();
75
+ const wrapper = `
76
+ const process = require('process');
77
+ const context = JSON.parse(process.argv[2]);
78
+ global.context = context;
79
+ let result;
80
+
81
+ (async () => {
82
+ try {
83
+ ${code}
84
+ console.log(JSON.stringify(result));
85
+ } catch (e) {
86
+ console.error(JSON.stringify({ error: e.message, stack: e.stack }));
87
+ process.exit(1);
88
+ }
89
+ })();
90
+ `;
91
+ const tmpFile = path.resolve(projectRoot, `tmp_js_${Date.now()}.js`);
92
+ await writeFile(tmpFile, wrapper);
93
+ try {
94
+ const { stdout, stderr } = await execFile('node', [tmpFile, contextStr], {
95
+ cwd: projectRoot,
96
+ env: { ...process.env }
97
+ });
98
+ if (stderr && stderr.trim()) {
99
+ try {
100
+ const errObj = JSON.parse(stderr.trim());
101
+ if (errObj.error)
102
+ throw new Error(errObj.error);
103
+ }
104
+ catch (e) {
105
+ // Not JSON, ignore warnings
106
+ }
107
+ }
108
+ return parseOutput(stdout);
109
+ }
110
+ catch (error) {
111
+ const stderr = error.stderr ? `\nStderr: ${error.stderr.toString()}` : '';
112
+ try {
113
+ const errObj = JSON.parse(error.stderr?.toString().trim() || '');
114
+ if (errObj.error)
115
+ throw new Error(errObj.error);
116
+ }
117
+ catch { }
118
+ throw new Error(`JavaScript execution failed: ${error.message}${stderr}`);
119
+ }
120
+ finally {
121
+ await unlink(tmpFile);
122
+ }
123
+ }
124
+ }
125
+ //# sourceMappingURL=javascript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../../src/ptr/node/runtimes/javascript.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Lean runtime executor.
3
+ *
4
+ * Executes Lean 4 code via the lean CLI with source caching.
5
+ */
6
+ import { Runtime } from './base.js';
7
+ export declare class LeanRuntime implements Runtime {
8
+ execute(code: string, context: unknown, config: any): Promise<unknown>;
9
+ }
10
+ //# sourceMappingURL=lean.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lean.d.ts","sourceRoot":"","sources":["../../../../src/ptr/node/runtimes/lean.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAyB,MAAM,WAAW,CAAC;AAqC3D,qBAAa,WAAY,YAAW,OAAO;IACjC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;CAuB/E"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Lean runtime executor.
3
+ *
4
+ * Executes Lean 4 code via the lean CLI with source caching.
5
+ */
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ import * as util from 'util';
9
+ import { execFile, parseOutput } from './base.js';
10
+ const writeFile = util.promisify(fs.writeFile);
11
+ // Lean source caching for performance
12
+ let leanCacheDir = null;
13
+ const leanSourceCache = new Map();
14
+ function ensureLeanCacheDir() {
15
+ if (!leanCacheDir) {
16
+ leanCacheDir = path.resolve(process.cwd(), '.lean_cache');
17
+ if (!fs.existsSync(leanCacheDir)) {
18
+ fs.mkdirSync(leanCacheDir, { recursive: true });
19
+ }
20
+ }
21
+ return leanCacheDir;
22
+ }
23
+ async function getCachedLeanSource(code) {
24
+ const crypto = await import('crypto');
25
+ const hash = crypto.createHash('sha256').update(code).digest('hex');
26
+ if (leanSourceCache.has(hash)) {
27
+ return leanSourceCache.get(hash);
28
+ }
29
+ const cacheDir = ensureLeanCacheDir();
30
+ const filePath = path.join(cacheDir, `${hash}.lean`);
31
+ if (!fs.existsSync(filePath)) {
32
+ await writeFile(filePath, code);
33
+ }
34
+ leanSourceCache.set(hash, filePath);
35
+ return filePath;
36
+ }
37
+ export class LeanRuntime {
38
+ async execute(code, context, config) {
39
+ const contextStr = typeof context === 'string' ? context : JSON.stringify(context);
40
+ const sourcePath = await getCachedLeanSource(code);
41
+ // Use elan to run the stable Lean toolchain if elan is available
42
+ const os = await import('os');
43
+ const elanPath = path.join(os.homedir(), '.elan', 'bin', 'elan');
44
+ let stdout;
45
+ if (fs.existsSync(elanPath)) {
46
+ // Use 'elan run' to ensure correct toolchain is used
47
+ const result = await execFile(elanPath, [
48
+ 'run', 'leanprover/lean4:v4.25.2', 'lean', '--run', sourcePath, contextStr
49
+ ]);
50
+ stdout = result.stdout;
51
+ }
52
+ else {
53
+ // Fallback to system lean
54
+ const result = await execFile('lean', ['--run', sourcePath, contextStr]);
55
+ stdout = result.stdout;
56
+ }
57
+ return parseOutput(stdout);
58
+ }
59
+ }
60
+ //# sourceMappingURL=lean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lean.js","sourceRoot":"","sources":["../../../../src/ptr/node/runtimes/lean.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Loader runtimes for file ingestion.
3
+ *
4
+ * - LoaderRuntime: Uses loadFileToCollection utility
5
+ * - CollectionLoaderRuntime: Direct file ingestion into CardCollection
6
+ */
7
+ import { Runtime } from './base.js';
8
+ export declare class LoaderRuntime implements Runtime {
9
+ /**
10
+ * Loader runtime: load files using the standardized loadFileToCollection utility.
11
+ * Returns unified metrics and results matching Python's loader builtin.
12
+ */
13
+ execute(_code: string, context: unknown, config: any): Promise<unknown>;
14
+ }
15
+ export declare class CollectionLoaderRuntime implements Runtime {
16
+ /**
17
+ * Collection loader runtime: ingest files into a CardCollection and return a normalized ingest report.
18
+ */
19
+ execute(_code: string, context: unknown, config: any): Promise<unknown>;
20
+ }
21
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/ptr/node/runtimes/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,qBAAa,aAAc,YAAW,OAAO;IACzC;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;CAuDhF;AAED,qBAAa,uBAAwB,YAAW,OAAO;IACnD;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;CA2DhF"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Loader runtimes for file ingestion.
3
+ *
4
+ * - LoaderRuntime: Uses loadFileToCollection utility
5
+ * - CollectionLoaderRuntime: Direct file ingestion into CardCollection
6
+ */
7
+ import * as fs from 'fs';
8
+ import * as path from 'path';
9
+ import { MCard } from '../../../model/MCard.js';
10
+ import { SqliteNodeEngine } from '../../../storage/SqliteNodeEngine.js';
11
+ import { CardCollection } from '../../../model/CardCollection.js';
12
+ import { computeTimingMetrics, extractLoaderParams, findProjectRoot, listFiles } from '../FileSystemUtils.js';
13
+ export class LoaderRuntime {
14
+ /**
15
+ * Loader runtime: load files using the standardized loadFileToCollection utility.
16
+ * Returns unified metrics and results matching Python's loader builtin.
17
+ */
18
+ async execute(_code, context, config) {
19
+ const { loadFileToCollection } = await import('../../../util/Loader.js');
20
+ const ctx = context;
21
+ const loaderParams = extractLoaderParams(ctx, { sourceDir: 'test_data', dbPath: ':memory:' });
22
+ const { sourceDir, recursive, dbPath } = loaderParams;
23
+ const projectRoot = findProjectRoot();
24
+ const sourcePath = path.isAbsolute(sourceDir) ? sourceDir : path.join(projectRoot, sourceDir);
25
+ if (!fs.existsSync(sourcePath)) {
26
+ return { success: false, error: `Source directory not found: ${sourceDir}` };
27
+ }
28
+ try {
29
+ let resolvedDbPath = dbPath;
30
+ if (dbPath && dbPath !== ':memory:' && !path.isAbsolute(dbPath)) {
31
+ resolvedDbPath = path.join(projectRoot, dbPath);
32
+ const dbDir = path.dirname(resolvedDbPath);
33
+ if (!fs.existsSync(dbDir)) {
34
+ fs.mkdirSync(dbDir, { recursive: true });
35
+ }
36
+ }
37
+ const engine = new SqliteNodeEngine(resolvedDbPath);
38
+ const collection = new CardCollection(engine);
39
+ const loaderResult = await loadFileToCollection(sourcePath, collection, {
40
+ recursive,
41
+ includeProblematic: false
42
+ });
43
+ const response = {
44
+ success: true,
45
+ metrics: {
46
+ total_files: loaderResult.metrics.filesCount,
47
+ total_directories: loaderResult.metrics.directoriesCount,
48
+ directory_levels: loaderResult.metrics.directoryLevels,
49
+ total_size_bytes: loaderResult.results.reduce((acc, r) => acc + (r.size || 0), 0),
50
+ duration_ms: 0
51
+ },
52
+ files: loaderResult.results.map(r => ({
53
+ hash: r.hash,
54
+ filename: r.filename,
55
+ content_type: r.contentType,
56
+ size_bytes: r.size,
57
+ path: r.filePath
58
+ }))
59
+ };
60
+ await engine.close();
61
+ return response;
62
+ }
63
+ catch (err) {
64
+ return { success: false, error: err instanceof Error ? err.message : String(err) };
65
+ }
66
+ }
67
+ }
68
+ export class CollectionLoaderRuntime {
69
+ /**
70
+ * Collection loader runtime: ingest files into a CardCollection and return a normalized ingest report.
71
+ */
72
+ async execute(_code, context, config) {
73
+ const ctx = context;
74
+ const loaderParams = extractLoaderParams(ctx, {
75
+ sourceDir: 'chapters/chapter_04_load_dir/test_data',
76
+ dbPath: 'data/loader_clm.db',
77
+ });
78
+ const { sourceDir, recursive, dbPath = 'data/loader_clm.db' } = loaderParams;
79
+ const projectRoot = findProjectRoot();
80
+ const sourcePath = path.isAbsolute(sourceDir) ? sourceDir : path.join(projectRoot, sourceDir);
81
+ if (!fs.existsSync(sourcePath)) {
82
+ return { success: false, error: `Source directory not found: ${sourceDir}` };
83
+ }
84
+ const resolvedDbPath = path.isAbsolute(dbPath) ? dbPath : path.join(projectRoot, dbPath);
85
+ try {
86
+ const engine = new SqliteNodeEngine(resolvedDbPath);
87
+ const collection = new CardCollection(engine);
88
+ const files = listFiles(sourcePath, recursive);
89
+ let ingested = 0;
90
+ let skipped = 0;
91
+ const errors = [];
92
+ const startTime = Date.now();
93
+ for (const filePath of files) {
94
+ try {
95
+ const content = fs.readFileSync(filePath);
96
+ const card = await MCard.create(new Uint8Array(content));
97
+ await collection.add(card);
98
+ ingested += 1;
99
+ }
100
+ catch (err) {
101
+ skipped += 1;
102
+ errors.push(`${filePath}: ${err instanceof Error ? err.message : String(err)}`);
103
+ }
104
+ }
105
+ const metrics = computeTimingMetrics(startTime, ingested);
106
+ return {
107
+ success: true,
108
+ report: {
109
+ total_files: files.length,
110
+ ingested,
111
+ skipped,
112
+ errors,
113
+ },
114
+ ingest_metrics: {
115
+ db_path: resolvedDbPath,
116
+ time_s: metrics.time_s,
117
+ files_per_sec: metrics.files_per_sec,
118
+ },
119
+ };
120
+ }
121
+ catch (err) {
122
+ return { success: false, error: err instanceof Error ? err.message : String(err) };
123
+ }
124
+ }
125
+ }
126
+ //# sourceMappingURL=loader.js.map