mcard-js 2.1.24 → 2.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/scripts/docker-startup.d.ts +2 -0
- package/dist/scripts/docker-startup.d.ts.map +1 -0
- package/dist/scripts/docker-startup.js +39 -0
- package/dist/scripts/docker-startup.js.map +1 -0
- package/dist/src/hash/HashValidator.d.ts +14 -0
- package/dist/src/hash/HashValidator.d.ts.map +1 -0
- package/dist/src/hash/HashValidator.js +57 -0
- package/dist/src/hash/HashValidator.js.map +1 -0
- package/dist/src/index.d.ts +29 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +38 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/model/CardCollection.d.ts +147 -0
- package/dist/src/model/CardCollection.d.ts.map +1 -0
- package/dist/src/model/CardCollection.js +272 -0
- package/dist/src/model/CardCollection.js.map +1 -0
- package/dist/src/model/ContentTypeInterpreter.d.ts +23 -0
- package/dist/src/model/ContentTypeInterpreter.d.ts.map +1 -0
- package/dist/src/model/ContentTypeInterpreter.js +140 -0
- package/dist/src/model/ContentTypeInterpreter.js.map +1 -0
- package/dist/src/model/EventProducer.d.ts +10 -0
- package/dist/src/model/EventProducer.d.ts.map +1 -0
- package/dist/src/model/EventProducer.js +46 -0
- package/dist/src/model/EventProducer.js.map +1 -0
- package/dist/src/model/GTime.d.ts +44 -0
- package/dist/src/model/GTime.d.ts.map +1 -0
- package/dist/src/model/GTime.js +91 -0
- package/dist/src/model/GTime.js.map +1 -0
- package/dist/src/model/Handle.d.ts +37 -0
- package/dist/src/model/Handle.d.ts.map +1 -0
- package/dist/src/model/Handle.js +90 -0
- package/dist/src/model/Handle.js.map +1 -0
- package/dist/src/model/MCard.d.ts +145 -0
- package/dist/src/model/MCard.d.ts.map +1 -0
- package/dist/src/model/MCard.js +180 -0
- package/dist/src/model/MCard.js.map +1 -0
- package/dist/src/model/PCard.d.ts +271 -0
- package/dist/src/model/PCard.d.ts.map +1 -0
- package/dist/src/model/PCard.js +558 -0
- package/dist/src/model/PCard.js.map +1 -0
- package/dist/src/model/VCard.d.ts +277 -0
- package/dist/src/model/VCard.d.ts.map +1 -0
- package/dist/src/model/VCard.js +573 -0
- package/dist/src/model/VCard.js.map +1 -0
- package/dist/src/model/constants.d.ts +45 -0
- package/dist/src/model/constants.d.ts.map +1 -0
- package/dist/src/model/constants.js +27 -0
- package/dist/src/model/constants.js.map +1 -0
- package/dist/src/model/detectors/BaseDetector.d.ts +26 -0
- package/dist/src/model/detectors/BaseDetector.d.ts.map +1 -0
- package/dist/src/model/detectors/BaseDetector.js +5 -0
- package/dist/src/model/detectors/BaseDetector.js.map +1 -0
- package/dist/src/model/detectors/BinaryDetector.d.ts +16 -0
- package/dist/src/model/detectors/BinaryDetector.d.ts.map +1 -0
- package/dist/src/model/detectors/BinaryDetector.js +93 -0
- package/dist/src/model/detectors/BinaryDetector.js.map +1 -0
- package/dist/src/model/detectors/ContentTypeInterpreter.d.ts +11 -0
- package/dist/src/model/detectors/ContentTypeInterpreter.d.ts.map +1 -0
- package/dist/src/model/detectors/ContentTypeInterpreter.js +51 -0
- package/dist/src/model/detectors/ContentTypeInterpreter.js.map +1 -0
- package/dist/src/model/detectors/DataFormatDetectors.d.ts +29 -0
- package/dist/src/model/detectors/DataFormatDetectors.d.ts.map +1 -0
- package/dist/src/model/detectors/DataFormatDetectors.js +223 -0
- package/dist/src/model/detectors/DataFormatDetectors.js.map +1 -0
- package/dist/src/model/detectors/LanguageDetector.d.ts +11 -0
- package/dist/src/model/detectors/LanguageDetector.d.ts.map +1 -0
- package/dist/src/model/detectors/LanguageDetector.js +148 -0
- package/dist/src/model/detectors/LanguageDetector.js.map +1 -0
- package/dist/src/model/detectors/MarkupDetectors.d.ts +22 -0
- package/dist/src/model/detectors/MarkupDetectors.d.ts.map +1 -0
- package/dist/src/model/detectors/MarkupDetectors.js +132 -0
- package/dist/src/model/detectors/MarkupDetectors.js.map +1 -0
- package/dist/src/model/detectors/OBJDetector.d.ts +8 -0
- package/dist/src/model/detectors/OBJDetector.d.ts.map +1 -0
- package/dist/src/model/detectors/OBJDetector.js +48 -0
- package/dist/src/model/detectors/OBJDetector.js.map +1 -0
- package/dist/src/model/detectors/registry.d.ts +13 -0
- package/dist/src/model/detectors/registry.d.ts.map +1 -0
- package/dist/src/model/detectors/registry.js +67 -0
- package/dist/src/model/detectors/registry.js.map +1 -0
- package/dist/src/model/vcard_ext/core.d.ts +22 -0
- package/dist/src/model/vcard_ext/core.d.ts.map +1 -0
- package/dist/src/model/vcard_ext/core.js +41 -0
- package/dist/src/model/vcard_ext/core.js.map +1 -0
- package/dist/src/model/vcard_ext/index.d.ts +14 -0
- package/dist/src/model/vcard_ext/index.d.ts.map +1 -0
- package/dist/src/model/vcard_ext/index.js +24 -0
- package/dist/src/model/vcard_ext/index.js.map +1 -0
- package/dist/src/model/vcard_ext/network.d.ts +6 -0
- package/dist/src/model/vcard_ext/network.d.ts.map +1 -0
- package/dist/src/model/vcard_ext/network.js +23 -0
- package/dist/src/model/vcard_ext/network.js.map +1 -0
- package/dist/src/model/vcard_ext/observability.d.ts +6 -0
- package/dist/src/model/vcard_ext/observability.d.ts.map +1 -0
- package/dist/src/model/vcard_ext/observability.js +62 -0
- package/dist/src/model/vcard_ext/observability.js.map +1 -0
- package/dist/src/model/vcard_ext/storage.d.ts +6 -0
- package/dist/src/model/vcard_ext/storage.d.ts.map +1 -0
- package/dist/src/model/vcard_ext/storage.js +47 -0
- package/dist/src/model/vcard_ext/storage.js.map +1 -0
- package/dist/src/model/vcard_ext/vendors.d.ts +12 -0
- package/dist/src/model/vcard_ext/vendors.d.ts.map +1 -0
- package/dist/src/model/vcard_ext/vendors.js +210 -0
- package/dist/src/model/vcard_ext/vendors.js.map +1 -0
- package/dist/src/model/vcard_vocabulary.d.ts +174 -0
- package/dist/src/model/vcard_vocabulary.d.ts.map +1 -0
- package/dist/src/model/vcard_vocabulary.js +187 -0
- package/dist/src/model/vcard_vocabulary.js.map +1 -0
- package/dist/src/monads/Either.d.ts +51 -0
- package/dist/src/monads/Either.d.ts.map +1 -0
- package/dist/src/monads/Either.js +82 -0
- package/dist/src/monads/Either.js.map +1 -0
- package/dist/src/monads/IO.d.ts +38 -0
- package/dist/src/monads/IO.d.ts.map +1 -0
- package/dist/src/monads/IO.js +66 -0
- package/dist/src/monads/IO.js.map +1 -0
- package/dist/src/monads/Maybe.d.ts +45 -0
- package/dist/src/monads/Maybe.d.ts.map +1 -0
- package/dist/src/monads/Maybe.js +73 -0
- package/dist/src/monads/Maybe.js.map +1 -0
- package/dist/src/monads/Reader.d.ts +29 -0
- package/dist/src/monads/Reader.d.ts.map +1 -0
- package/dist/src/monads/Reader.js +44 -0
- package/dist/src/monads/Reader.js.map +1 -0
- package/dist/src/monads/State.d.ts +33 -0
- package/dist/src/monads/State.d.ts.map +1 -0
- package/dist/src/monads/State.js +50 -0
- package/dist/src/monads/State.js.map +1 -0
- package/dist/src/monads/Writer.d.ts +29 -0
- package/dist/src/monads/Writer.d.ts.map +1 -0
- package/dist/src/monads/Writer.js +46 -0
- package/dist/src/monads/Writer.js.map +1 -0
- package/dist/src/ptr/Bridgelet.d.ts +180 -0
- package/dist/src/ptr/Bridgelet.d.ts.map +1 -0
- package/dist/src/ptr/Bridgelet.js +296 -0
- package/dist/src/ptr/Bridgelet.js.map +1 -0
- package/dist/src/ptr/CLMIntrospection.d.ts +169 -0
- package/dist/src/ptr/CLMIntrospection.d.ts.map +1 -0
- package/dist/src/ptr/CLMIntrospection.js +329 -0
- package/dist/src/ptr/CLMIntrospection.js.map +1 -0
- package/dist/src/ptr/FaroSidecar.d.ts +56 -0
- package/dist/src/ptr/FaroSidecar.d.ts.map +1 -0
- package/dist/src/ptr/FaroSidecar.js +102 -0
- package/dist/src/ptr/FaroSidecar.js.map +1 -0
- package/dist/src/ptr/LensProtocol.d.ts +84 -0
- package/dist/src/ptr/LensProtocol.d.ts.map +1 -0
- package/dist/src/ptr/LensProtocol.js +98 -0
- package/dist/src/ptr/LensProtocol.js.map +1 -0
- package/dist/src/ptr/OpenTelemetrySidecar.d.ts +144 -0
- package/dist/src/ptr/OpenTelemetrySidecar.d.ts.map +1 -0
- package/dist/src/ptr/OpenTelemetrySidecar.js +232 -0
- package/dist/src/ptr/OpenTelemetrySidecar.js.map +1 -0
- package/dist/src/ptr/SandboxWorker.d.ts +79 -0
- package/dist/src/ptr/SandboxWorker.d.ts.map +1 -0
- package/dist/src/ptr/SandboxWorker.js +298 -0
- package/dist/src/ptr/SandboxWorker.js.map +1 -0
- package/dist/src/ptr/common_types.d.ts +39 -0
- package/dist/src/ptr/common_types.d.ts.map +1 -0
- package/dist/src/ptr/common_types.js +12 -0
- package/dist/src/ptr/common_types.js.map +1 -0
- package/dist/src/ptr/lambda/AlphaConversion.d.ts +42 -0
- package/dist/src/ptr/lambda/AlphaConversion.d.ts.map +1 -0
- package/dist/src/ptr/lambda/AlphaConversion.js +244 -0
- package/dist/src/ptr/lambda/AlphaConversion.js.map +1 -0
- package/dist/src/ptr/lambda/BetaReduction.d.ts +73 -0
- package/dist/src/ptr/lambda/BetaReduction.d.ts.map +1 -0
- package/dist/src/ptr/lambda/BetaReduction.js +330 -0
- package/dist/src/ptr/lambda/BetaReduction.js.map +1 -0
- package/dist/src/ptr/lambda/EtaConversion.d.ts +65 -0
- package/dist/src/ptr/lambda/EtaConversion.d.ts.map +1 -0
- package/dist/src/ptr/lambda/EtaConversion.js +228 -0
- package/dist/src/ptr/lambda/EtaConversion.js.map +1 -0
- package/dist/src/ptr/lambda/FreeVariables.d.ts +49 -0
- package/dist/src/ptr/lambda/FreeVariables.d.ts.map +1 -0
- package/dist/src/ptr/lambda/FreeVariables.js +227 -0
- package/dist/src/ptr/lambda/FreeVariables.js.map +1 -0
- package/dist/src/ptr/lambda/IOEffects.d.ts +103 -0
- package/dist/src/ptr/lambda/IOEffects.d.ts.map +1 -0
- package/dist/src/ptr/lambda/IOEffects.js +236 -0
- package/dist/src/ptr/lambda/IOEffects.js.map +1 -0
- package/dist/src/ptr/lambda/LambdaRuntime.d.ts +104 -0
- package/dist/src/ptr/lambda/LambdaRuntime.d.ts.map +1 -0
- package/dist/src/ptr/lambda/LambdaRuntime.js +636 -0
- package/dist/src/ptr/lambda/LambdaRuntime.js.map +1 -0
- package/dist/src/ptr/lambda/LambdaTerm.d.ts +100 -0
- package/dist/src/ptr/lambda/LambdaTerm.d.ts.map +1 -0
- package/dist/src/ptr/lambda/LambdaTerm.js +183 -0
- package/dist/src/ptr/lambda/LambdaTerm.js.map +1 -0
- package/dist/src/ptr/lambda/index.d.ts +24 -0
- package/dist/src/ptr/lambda/index.d.ts.map +1 -0
- package/dist/src/ptr/lambda/index.js +34 -0
- package/dist/src/ptr/lambda/index.js.map +1 -0
- package/dist/src/ptr/llm/Config.d.ts +57 -0
- package/dist/src/ptr/llm/Config.d.ts.map +1 -0
- package/dist/src/ptr/llm/Config.js +183 -0
- package/dist/src/ptr/llm/Config.js.map +1 -0
- package/dist/src/ptr/llm/LLMRuntime.d.ts +35 -0
- package/dist/src/ptr/llm/LLMRuntime.d.ts.map +1 -0
- package/dist/src/ptr/llm/LLMRuntime.js +176 -0
- package/dist/src/ptr/llm/LLMRuntime.js.map +1 -0
- package/dist/src/ptr/llm/providers/LLMProvider.d.ts +43 -0
- package/dist/src/ptr/llm/providers/LLMProvider.d.ts.map +1 -0
- package/dist/src/ptr/llm/providers/LLMProvider.js +31 -0
- package/dist/src/ptr/llm/providers/LLMProvider.js.map +1 -0
- package/dist/src/ptr/llm/providers/MLCLLMProvider.d.ts +22 -0
- package/dist/src/ptr/llm/providers/MLCLLMProvider.d.ts.map +1 -0
- package/dist/src/ptr/llm/providers/MLCLLMProvider.js +155 -0
- package/dist/src/ptr/llm/providers/MLCLLMProvider.js.map +1 -0
- package/dist/src/ptr/llm/providers/OllamaEmbeddingProvider.d.ts +20 -0
- package/dist/src/ptr/llm/providers/OllamaEmbeddingProvider.d.ts.map +1 -0
- package/dist/src/ptr/llm/providers/OllamaEmbeddingProvider.js +42 -0
- package/dist/src/ptr/llm/providers/OllamaEmbeddingProvider.js.map +1 -0
- package/dist/src/ptr/llm/providers/OllamaProvider.d.ts +21 -0
- package/dist/src/ptr/llm/providers/OllamaProvider.d.ts.map +1 -0
- package/dist/src/ptr/llm/providers/OllamaProvider.js +158 -0
- package/dist/src/ptr/llm/providers/OllamaProvider.js.map +1 -0
- package/dist/src/ptr/llm/providers/WebLLMProvider.d.ts +22 -0
- package/dist/src/ptr/llm/providers/WebLLMProvider.d.ts.map +1 -0
- package/dist/src/ptr/llm/providers/WebLLMProvider.js +151 -0
- package/dist/src/ptr/llm/providers/WebLLMProvider.js.map +1 -0
- package/dist/src/ptr/node/Action.d.ts +445 -0
- package/dist/src/ptr/node/Action.d.ts.map +1 -0
- package/dist/src/ptr/node/Action.js +818 -0
- package/dist/src/ptr/node/Action.js.map +1 -0
- package/dist/src/ptr/node/CLMLoader.d.ts +18 -0
- package/dist/src/ptr/node/CLMLoader.d.ts.map +1 -0
- package/dist/src/ptr/node/CLMLoader.js +18 -0
- package/dist/src/ptr/node/CLMLoader.js.map +1 -0
- package/dist/src/ptr/node/CLMRunner.d.ts +34 -0
- package/dist/src/ptr/node/CLMRunner.d.ts.map +1 -0
- package/dist/src/ptr/node/CLMRunner.js +36 -0
- package/dist/src/ptr/node/CLMRunner.js.map +1 -0
- package/dist/src/ptr/node/FileSystemUtils.d.ts +41 -0
- package/dist/src/ptr/node/FileSystemUtils.d.ts.map +1 -0
- package/dist/src/ptr/node/FileSystemUtils.js +126 -0
- package/dist/src/ptr/node/FileSystemUtils.js.map +1 -0
- package/dist/src/ptr/node/NetworkConfig.d.ts +191 -0
- package/dist/src/ptr/node/NetworkConfig.d.ts.map +1 -0
- package/dist/src/ptr/node/NetworkConfig.js +8 -0
- package/dist/src/ptr/node/NetworkConfig.js.map +1 -0
- package/dist/src/ptr/node/NetworkRuntime.d.ts +38 -0
- package/dist/src/ptr/node/NetworkRuntime.d.ts.map +1 -0
- package/dist/src/ptr/node/NetworkRuntime.js +871 -0
- package/dist/src/ptr/node/NetworkRuntime.js.map +1 -0
- package/dist/src/ptr/node/P2PChatSession.d.ts +53 -0
- package/dist/src/ptr/node/P2PChatSession.d.ts.map +1 -0
- package/dist/src/ptr/node/P2PChatSession.js +154 -0
- package/dist/src/ptr/node/P2PChatSession.js.map +1 -0
- package/dist/src/ptr/node/RuntimeInterface.d.ts +4 -0
- package/dist/src/ptr/node/RuntimeInterface.d.ts.map +1 -0
- package/dist/src/ptr/node/RuntimeInterface.js +2 -0
- package/dist/src/ptr/node/RuntimeInterface.js.map +1 -0
- package/dist/src/ptr/node/Runtimes.d.ts +34 -0
- package/dist/src/ptr/node/Runtimes.d.ts.map +1 -0
- package/dist/src/ptr/node/Runtimes.js +38 -0
- package/dist/src/ptr/node/Runtimes.js.map +1 -0
- package/dist/src/ptr/node/SignalingServer.d.ts +37 -0
- package/dist/src/ptr/node/SignalingServer.d.ts.map +1 -0
- package/dist/src/ptr/node/SignalingServer.js +218 -0
- package/dist/src/ptr/node/SignalingServer.js.map +1 -0
- package/dist/src/ptr/node/cli.d.ts +3 -0
- package/dist/src/ptr/node/cli.d.ts.map +1 -0
- package/dist/src/ptr/node/cli.js +266 -0
- package/dist/src/ptr/node/cli.js.map +1 -0
- package/dist/src/ptr/node/clm/builtins/handle.d.ts +14 -0
- package/dist/src/ptr/node/clm/builtins/handle.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/builtins/handle.js +177 -0
- package/dist/src/ptr/node/clm/builtins/handle.js.map +1 -0
- package/dist/src/ptr/node/clm/builtins/index.d.ts +28 -0
- package/dist/src/ptr/node/clm/builtins/index.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/builtins/index.js +94 -0
- package/dist/src/ptr/node/clm/builtins/index.js.map +1 -0
- package/dist/src/ptr/node/clm/builtins/server-scripts/websocket-server-worker.d.ts +8 -0
- package/dist/src/ptr/node/clm/builtins/server-scripts/websocket-server-worker.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/builtins/server-scripts/websocket-server-worker.js +81 -0
- package/dist/src/ptr/node/clm/builtins/server-scripts/websocket-server-worker.js.map +1 -0
- package/dist/src/ptr/node/clm/builtins/static-server.d.ts +35 -0
- package/dist/src/ptr/node/clm/builtins/static-server.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/builtins/static-server.js +252 -0
- package/dist/src/ptr/node/clm/builtins/static-server.js.map +1 -0
- package/dist/src/ptr/node/clm/builtins/websocket-server.d.ts +35 -0
- package/dist/src/ptr/node/clm/builtins/websocket-server.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/builtins/websocket-server.js +265 -0
- package/dist/src/ptr/node/clm/builtins/websocket-server.js.map +1 -0
- package/dist/src/ptr/node/clm/index.d.ts +27 -0
- package/dist/src/ptr/node/clm/index.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/index.js +30 -0
- package/dist/src/ptr/node/clm/index.js.map +1 -0
- package/dist/src/ptr/node/clm/loader.d.ts +25 -0
- package/dist/src/ptr/node/clm/loader.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/loader.js +217 -0
- package/dist/src/ptr/node/clm/loader.js.map +1 -0
- package/dist/src/ptr/node/clm/multiruntime.d.ts +9 -0
- package/dist/src/ptr/node/clm/multiruntime.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/multiruntime.js +121 -0
- package/dist/src/ptr/node/clm/multiruntime.js.map +1 -0
- package/dist/src/ptr/node/clm/operations/handle.d.ts +14 -0
- package/dist/src/ptr/node/clm/operations/handle.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/operations/handle.js +177 -0
- package/dist/src/ptr/node/clm/operations/handle.js.map +1 -0
- package/dist/src/ptr/node/clm/operations/index.d.ts +28 -0
- package/dist/src/ptr/node/clm/operations/index.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/operations/index.js +94 -0
- package/dist/src/ptr/node/clm/operations/index.js.map +1 -0
- package/dist/src/ptr/node/clm/operations/server-scripts/websocket-server-worker.d.ts +8 -0
- package/dist/src/ptr/node/clm/operations/server-scripts/websocket-server-worker.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/operations/server-scripts/websocket-server-worker.js +81 -0
- package/dist/src/ptr/node/clm/operations/server-scripts/websocket-server-worker.js.map +1 -0
- package/dist/src/ptr/node/clm/operations/static-server.d.ts +35 -0
- package/dist/src/ptr/node/clm/operations/static-server.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/operations/static-server.js +252 -0
- package/dist/src/ptr/node/clm/operations/static-server.js.map +1 -0
- package/dist/src/ptr/node/clm/operations/websocket-server.d.ts +35 -0
- package/dist/src/ptr/node/clm/operations/websocket-server.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/operations/websocket-server.js +265 -0
- package/dist/src/ptr/node/clm/operations/websocket-server.js.map +1 -0
- package/dist/src/ptr/node/clm/runner.d.ts +77 -0
- package/dist/src/ptr/node/clm/runner.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/runner.js +431 -0
- package/dist/src/ptr/node/clm/runner.js.map +1 -0
- package/dist/src/ptr/node/clm/types.d.ts +213 -0
- package/dist/src/ptr/node/clm/types.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/types.js +5 -0
- package/dist/src/ptr/node/clm/types.js.map +1 -0
- package/dist/src/ptr/node/clm/utils.d.ts +29 -0
- package/dist/src/ptr/node/clm/utils.d.ts.map +1 -0
- package/dist/src/ptr/node/clm/utils.js +88 -0
- package/dist/src/ptr/node/clm/utils.js.map +1 -0
- package/dist/src/ptr/node/network/HttpClient.d.ts +14 -0
- package/dist/src/ptr/node/network/HttpClient.d.ts.map +1 -0
- package/dist/src/ptr/node/network/HttpClient.js +139 -0
- package/dist/src/ptr/node/network/HttpClient.js.map +1 -0
- package/dist/src/ptr/node/network/MCardSerialization.d.ts +19 -0
- package/dist/src/ptr/node/network/MCardSerialization.d.ts.map +1 -0
- package/dist/src/ptr/node/network/MCardSerialization.js +41 -0
- package/dist/src/ptr/node/network/MCardSerialization.js.map +1 -0
- package/dist/src/ptr/node/network/NetworkInfrastructure.d.ts +37 -0
- package/dist/src/ptr/node/network/NetworkInfrastructure.d.ts.map +1 -0
- package/dist/src/ptr/node/network/NetworkInfrastructure.js +121 -0
- package/dist/src/ptr/node/network/NetworkInfrastructure.js.map +1 -0
- package/dist/src/ptr/node/network/NetworkSecurity.d.ts +24 -0
- package/dist/src/ptr/node/network/NetworkSecurity.d.ts.map +1 -0
- package/dist/src/ptr/node/network/NetworkSecurity.js +104 -0
- package/dist/src/ptr/node/network/NetworkSecurity.js.map +1 -0
- package/dist/src/ptr/node/runtimes/base.d.ts +31 -0
- package/dist/src/ptr/node/runtimes/base.d.ts.map +1 -0
- package/dist/src/ptr/node/runtimes/base.js +33 -0
- package/dist/src/ptr/node/runtimes/base.js.map +1 -0
- package/dist/src/ptr/node/runtimes/binary.d.ts +10 -0
- package/dist/src/ptr/node/runtimes/binary.d.ts.map +1 -0
- package/dist/src/ptr/node/runtimes/binary.js +16 -0
- package/dist/src/ptr/node/runtimes/binary.js.map +1 -0
- package/dist/src/ptr/node/runtimes/factory.d.ts +22 -0
- package/dist/src/ptr/node/runtimes/factory.d.ts.map +1 -0
- package/dist/src/ptr/node/runtimes/factory.js +152 -0
- package/dist/src/ptr/node/runtimes/factory.js.map +1 -0
- package/dist/src/ptr/node/runtimes/index.d.ts +28 -0
- package/dist/src/ptr/node/runtimes/index.d.ts.map +1 -0
- package/dist/src/ptr/node/runtimes/index.js +30 -0
- package/dist/src/ptr/node/runtimes/index.js.map +1 -0
- package/dist/src/ptr/node/runtimes/javascript.d.ts +22 -0
- package/dist/src/ptr/node/runtimes/javascript.d.ts.map +1 -0
- package/dist/src/ptr/node/runtimes/javascript.js +125 -0
- package/dist/src/ptr/node/runtimes/javascript.js.map +1 -0
- package/dist/src/ptr/node/runtimes/lean.d.ts +10 -0
- package/dist/src/ptr/node/runtimes/lean.d.ts.map +1 -0
- package/dist/src/ptr/node/runtimes/lean.js +60 -0
- package/dist/src/ptr/node/runtimes/lean.js.map +1 -0
- package/dist/src/ptr/node/runtimes/loader.d.ts +21 -0
- package/dist/src/ptr/node/runtimes/loader.d.ts.map +1 -0
- package/dist/src/ptr/node/runtimes/loader.js +142 -0
- package/dist/src/ptr/node/runtimes/loader.js.map +1 -0
- package/dist/src/ptr/node/runtimes/python.d.ts +14 -0
- package/dist/src/ptr/node/runtimes/python.d.ts.map +1 -0
- package/dist/src/ptr/node/runtimes/python.js +100 -0
- package/dist/src/ptr/node/runtimes/python.js.map +1 -0
- package/dist/src/ptr/node/runtimes/wasm.d.ts +10 -0
- package/dist/src/ptr/node/runtimes/wasm.d.ts.map +1 -0
- package/dist/src/ptr/node/runtimes/wasm.js +55 -0
- package/dist/src/ptr/node/runtimes/wasm.js.map +1 -0
- package/dist/src/rag/GraphRAGEngine.d.ts +26 -0
- package/dist/src/rag/GraphRAGEngine.d.ts.map +1 -0
- package/dist/src/rag/GraphRAGEngine.js +166 -0
- package/dist/src/rag/GraphRAGEngine.js.map +1 -0
- package/dist/src/rag/HandleVectorStore.d.ts +201 -0
- package/dist/src/rag/HandleVectorStore.d.ts.map +1 -0
- package/dist/src/rag/HandleVectorStore.js +527 -0
- package/dist/src/rag/HandleVectorStore.js.map +1 -0
- package/dist/src/rag/PersistentIndexer.d.ts +148 -0
- package/dist/src/rag/PersistentIndexer.d.ts.map +1 -0
- package/dist/src/rag/PersistentIndexer.js +302 -0
- package/dist/src/rag/PersistentIndexer.js.map +1 -0
- package/dist/src/rag/embeddings/VisionEmbeddingProvider.d.ts +87 -0
- package/dist/src/rag/embeddings/VisionEmbeddingProvider.d.ts.map +1 -0
- package/dist/src/rag/embeddings/VisionEmbeddingProvider.js +164 -0
- package/dist/src/rag/embeddings/VisionEmbeddingProvider.js.map +1 -0
- package/dist/src/rag/graph/community.d.ts +56 -0
- package/dist/src/rag/graph/community.d.ts.map +1 -0
- package/dist/src/rag/graph/community.js +247 -0
- package/dist/src/rag/graph/community.js.map +1 -0
- package/dist/src/rag/graph/extractor.d.ts +99 -0
- package/dist/src/rag/graph/extractor.d.ts.map +1 -0
- package/dist/src/rag/graph/extractor.js +210 -0
- package/dist/src/rag/graph/extractor.js.map +1 -0
- package/dist/src/rag/graph/store.d.ts +176 -0
- package/dist/src/rag/graph/store.d.ts.map +1 -0
- package/dist/src/rag/graph/store.js +504 -0
- package/dist/src/rag/graph/store.js.map +1 -0
- package/dist/src/rag/index.d.ts +20 -0
- package/dist/src/rag/index.d.ts.map +1 -0
- package/dist/src/rag/index.js +26 -0
- package/dist/src/rag/index.js.map +1 -0
- package/dist/src/rag/semanticVersioning.d.ts +187 -0
- package/dist/src/rag/semanticVersioning.d.ts.map +1 -0
- package/dist/src/rag/semanticVersioning.js +253 -0
- package/dist/src/rag/semanticVersioning.js.map +1 -0
- package/dist/src/storage/IndexedDBEngine.d.ts +33 -0
- package/dist/src/storage/IndexedDBEngine.d.ts.map +1 -0
- package/dist/src/storage/IndexedDBEngine.js +198 -0
- package/dist/src/storage/IndexedDBEngine.js.map +1 -0
- package/dist/src/storage/SqliteNodeEngine.d.ts +123 -0
- package/dist/src/storage/SqliteNodeEngine.d.ts.map +1 -0
- package/dist/src/storage/SqliteNodeEngine.js +385 -0
- package/dist/src/storage/SqliteNodeEngine.js.map +1 -0
- package/dist/src/storage/SqliteWasmEngine.d.ts +60 -0
- package/dist/src/storage/SqliteWasmEngine.d.ts.map +1 -0
- package/dist/src/storage/SqliteWasmEngine.js +193 -0
- package/dist/src/storage/SqliteWasmEngine.js.map +1 -0
- package/dist/src/storage/StorageAdapter.d.ts +42 -0
- package/dist/src/storage/StorageAdapter.d.ts.map +1 -0
- package/dist/src/storage/StorageAdapter.js +2 -0
- package/dist/src/storage/StorageAdapter.js.map +1 -0
- package/dist/src/storage/VectorStore.d.ts +202 -0
- package/dist/src/storage/VectorStore.d.ts.map +1 -0
- package/dist/src/storage/VectorStore.js +557 -0
- package/dist/src/storage/VectorStore.js.map +1 -0
- package/dist/src/storage/schema.d.ts +162 -0
- package/dist/src/storage/schema.d.ts.map +1 -0
- package/dist/src/storage/schema.js +373 -0
- package/dist/src/storage/schema.js.map +1 -0
- package/dist/src/types/dots.d.ts +206 -0
- package/dist/src/types/dots.d.ts.map +1 -0
- package/dist/src/types/dots.js +201 -0
- package/dist/src/types/dots.js.map +1 -0
- package/dist/src/util/FileIO.d.ts +44 -0
- package/dist/src/util/FileIO.d.ts.map +1 -0
- package/dist/src/util/FileIO.js +203 -0
- package/dist/src/util/FileIO.js.map +1 -0
- package/dist/src/util/Loader.d.ts +34 -0
- package/dist/src/util/Loader.d.ts.map +1 -0
- package/dist/src/util/Loader.js +190 -0
- package/dist/src/util/Loader.js.map +1 -0
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -609,7 +609,7 @@ To run integration tests against a live Ollama instance:
|
|
|
609
609
|
npx vitest tests/rag/Integration.test.ts
|
|
610
610
|
```
|
|
611
611
|
|
|
612
|
-
## Version 0.1.
|
|
612
|
+
## Version 0.1.44 / 2.1.24 Release Notes (January 13, 2026)
|
|
613
613
|
> Single Source of Truth Schema Synchronization
|
|
614
614
|
|
|
615
615
|
### 🔄 Schema Synchronization
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-startup.d.ts","sourceRoot":"","sources":["../../scripts/docker-startup.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { executeStaticServer } from '../src/ptr/node/clm/operations/static-server.js';
|
|
2
|
+
import { executeWebSocketServer } from '../src/ptr/node/clm/operations/websocket-server.js';
|
|
3
|
+
async function main() {
|
|
4
|
+
console.log("🚀 Starting MCard Polyglot Services...");
|
|
5
|
+
// 1. Static Server
|
|
6
|
+
console.log("▶ Deploying Static Server on port 5320...");
|
|
7
|
+
const staticResult = await executeStaticServer({
|
|
8
|
+
action: 'deploy',
|
|
9
|
+
port: 5320,
|
|
10
|
+
host: '0.0.0.0',
|
|
11
|
+
root_dir: '/app/public'
|
|
12
|
+
}, {}, process.cwd());
|
|
13
|
+
if (staticResult.success) {
|
|
14
|
+
console.log(`✅ Static Server running: ${staticResult.url}`);
|
|
15
|
+
console.log(` Serving: ${staticResult.root_dir}`);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
console.error(`❌ Static Server failed: ${staticResult.error}`);
|
|
19
|
+
}
|
|
20
|
+
// 2. WebSocket Server
|
|
21
|
+
console.log("▶ Deploying WebSocket Server on port 5321...");
|
|
22
|
+
// Assuming similar signature for WebSocket server
|
|
23
|
+
const wsResult = await executeWebSocketServer({
|
|
24
|
+
action: 'deploy',
|
|
25
|
+
port: 5321,
|
|
26
|
+
host: '0.0.0.0'
|
|
27
|
+
}, {}, process.cwd());
|
|
28
|
+
if (wsResult.success) {
|
|
29
|
+
console.log(`✅ WebSocket Server running: ws://0.0.0.0:5321`);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.error(`❌ WebSocket Server failed: ${wsResult.error}`);
|
|
33
|
+
}
|
|
34
|
+
console.log("\nServices are active. Press Ctrl+C to stop.");
|
|
35
|
+
// Keep process alive
|
|
36
|
+
setInterval(() => { }, 1000 * 60 * 60);
|
|
37
|
+
}
|
|
38
|
+
main().catch(console.error);
|
|
39
|
+
//# sourceMappingURL=docker-startup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-startup.js","sourceRoot":"","sources":["../../scripts/docker-startup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAG5F,KAAK,UAAU,IAAI;IACf,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC;QAC3C,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,aAAa;KAC1B,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEtB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,4BAA4B,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,2BAA2B,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,kDAAkD;IAClD,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC;QAC1C,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;KAClB,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEtB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,8BAA8B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAE5D,qBAAqB;IACrB,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HashValidator - Computes SHA-256 hashes using Web Crypto API
|
|
3
|
+
*/
|
|
4
|
+
export declare class HashValidator {
|
|
5
|
+
/**
|
|
6
|
+
* Compute hash of content using specified algorithm
|
|
7
|
+
*/
|
|
8
|
+
static computeHash(content: Uint8Array | string, algorithm?: string): Promise<string>;
|
|
9
|
+
/**
|
|
10
|
+
* Validate that content matches expected hash
|
|
11
|
+
*/
|
|
12
|
+
static validate(content: Uint8Array | string, expectedHash: string): Promise<boolean>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=HashValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HashValidator.d.ts","sourceRoot":"","sources":["../../../src/hash/HashValidator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;IACtB;;OAEG;WACU,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,SAAS,GAAE,MAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BrG;;OAEG;WACU,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAI9F"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HashValidator - Computes SHA-256 hashes using Web Crypto API
|
|
3
|
+
*/
|
|
4
|
+
export class HashValidator {
|
|
5
|
+
/**
|
|
6
|
+
* Compute hash of content using specified algorithm
|
|
7
|
+
*/
|
|
8
|
+
static async computeHash(content, algorithm = 'sha256') {
|
|
9
|
+
const data = typeof content === 'string'
|
|
10
|
+
? new TextEncoder().encode(content)
|
|
11
|
+
: content;
|
|
12
|
+
let algoName = 'SHA-256';
|
|
13
|
+
switch (algorithm.toLowerCase()) {
|
|
14
|
+
case 'sha1':
|
|
15
|
+
algoName = 'SHA-1';
|
|
16
|
+
break;
|
|
17
|
+
case 'sha-1':
|
|
18
|
+
algoName = 'SHA-1';
|
|
19
|
+
break;
|
|
20
|
+
case 'sha256':
|
|
21
|
+
algoName = 'SHA-256';
|
|
22
|
+
break;
|
|
23
|
+
case 'sha-256':
|
|
24
|
+
algoName = 'SHA-256';
|
|
25
|
+
break;
|
|
26
|
+
case 'sha384':
|
|
27
|
+
algoName = 'SHA-384';
|
|
28
|
+
break;
|
|
29
|
+
case 'sha-384':
|
|
30
|
+
algoName = 'SHA-384';
|
|
31
|
+
break;
|
|
32
|
+
case 'sha512':
|
|
33
|
+
algoName = 'SHA-512';
|
|
34
|
+
break;
|
|
35
|
+
case 'sha-512':
|
|
36
|
+
algoName = 'SHA-512';
|
|
37
|
+
break;
|
|
38
|
+
default:
|
|
39
|
+
console.warn(`Algorithm ${algorithm} not natively supported or mapped, defaulting to SHA-256`);
|
|
40
|
+
algoName = 'SHA-256';
|
|
41
|
+
}
|
|
42
|
+
// Create a copy to ensure we have a standard ArrayBuffer (not SharedArrayBuffer)
|
|
43
|
+
const buffer = new Uint8Array(data).buffer;
|
|
44
|
+
const hashBuffer = await crypto.subtle.digest(algoName, buffer);
|
|
45
|
+
return Array.from(new Uint8Array(hashBuffer))
|
|
46
|
+
.map(b => b.toString(16).padStart(2, '0'))
|
|
47
|
+
.join('');
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Validate that content matches expected hash
|
|
51
|
+
*/
|
|
52
|
+
static async validate(content, expectedHash) {
|
|
53
|
+
const computedHash = await this.computeHash(content);
|
|
54
|
+
return computedHash === expectedHash;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=HashValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HashValidator.js","sourceRoot":"","sources":["../../../src/hash/HashValidator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,aAAa;IACtB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAA4B,EAAE,YAAoB,QAAQ;QAC/E,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ;YACpC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;YACnC,CAAC,CAAC,OAAO,CAAC;QAEd,IAAI,QAAQ,GAAG,SAAS,CAAC;QACzB,QAAQ,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9B,KAAK,MAAM;gBAAE,QAAQ,GAAG,OAAO,CAAC;gBAAC,MAAM;YACvC,KAAK,OAAO;gBAAE,QAAQ,GAAG,OAAO,CAAC;gBAAC,MAAM;YACxC,KAAK,QAAQ;gBAAE,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAC3C,KAAK,SAAS;gBAAE,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAC5C,KAAK,QAAQ;gBAAE,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAC3C,KAAK,SAAS;gBAAE,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAC5C,KAAK,QAAQ;gBAAE,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAC3C,KAAK,SAAS;gBAAE,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAC5C;gBACI,OAAO,CAAC,IAAI,CAAC,aAAa,SAAS,0DAA0D,CAAC,CAAC;gBAC/F,QAAQ,GAAG,SAAS,CAAC;QAC7B,CAAC;QAED,iFAAiF;QACjF,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAqB,CAAC;QAC1D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACzC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAA4B,EAAE,YAAoB;QACpE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,YAAY,KAAK,YAAY,CAAC;IACzC,CAAC;CACJ"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export { MCard } from './model/MCard';
|
|
2
|
+
export { GTime } from './model/GTime';
|
|
3
|
+
export { ContentHandle, validateHandle, HandleValidationError } from './model/Handle';
|
|
4
|
+
export { CardCollection } from './model/CardCollection';
|
|
5
|
+
export { ContentTypeInterpreter } from './model/detectors/ContentTypeInterpreter';
|
|
6
|
+
export { EVENT_CONSTANTS, ALGORITHM_HIERARCHY } from './model/constants';
|
|
7
|
+
export { StorageEngine, Page } from './storage/StorageAdapter';
|
|
8
|
+
export { IndexedDBEngine } from './storage/IndexedDBEngine';
|
|
9
|
+
export { SqliteWasmEngine } from './storage/SqliteWasmEngine';
|
|
10
|
+
export { SqliteNodeEngine } from './storage/SqliteNodeEngine';
|
|
11
|
+
export { HashValidator } from './hash/HashValidator';
|
|
12
|
+
export { Maybe } from './monads/Maybe';
|
|
13
|
+
export { Either } from './monads/Either';
|
|
14
|
+
export { IO } from './monads/IO';
|
|
15
|
+
export { Reader } from './monads/Reader';
|
|
16
|
+
export { Writer } from './monads/Writer';
|
|
17
|
+
export { State } from './monads/State';
|
|
18
|
+
export { LensProtocol, JsonRpcRequest, JsonRpcResponse, ErrorCodes } from './ptr/LensProtocol';
|
|
19
|
+
export { SandboxWorker } from './ptr/SandboxWorker';
|
|
20
|
+
export * from './ptr/common_types';
|
|
21
|
+
export { FaroSidecar, FaroSidecarConfig } from './ptr/FaroSidecar';
|
|
22
|
+
import * as FileIO from './util/FileIO';
|
|
23
|
+
import * as Loader from './util/Loader';
|
|
24
|
+
export { FileIO, Loader };
|
|
25
|
+
export { LLMRuntime, promptMonad, chatMonad } from './ptr/llm/LLMRuntime';
|
|
26
|
+
export { LLMConfig } from './ptr/llm/Config';
|
|
27
|
+
export * as Lambda from './ptr/lambda';
|
|
28
|
+
export { LambdaRuntime } from './ptr/lambda/LambdaRuntime';
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAInE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// MCard JavaScript Library
|
|
2
|
+
// Content-addressable storage for browsers
|
|
3
|
+
// Core model
|
|
4
|
+
export { MCard } from './model/MCard';
|
|
5
|
+
export { GTime } from './model/GTime';
|
|
6
|
+
export { ContentHandle, validateHandle, HandleValidationError } from './model/Handle';
|
|
7
|
+
export { CardCollection } from './model/CardCollection';
|
|
8
|
+
export { ContentTypeInterpreter } from './model/detectors/ContentTypeInterpreter';
|
|
9
|
+
export { EVENT_CONSTANTS, ALGORITHM_HIERARCHY } from './model/constants';
|
|
10
|
+
export { IndexedDBEngine } from './storage/IndexedDBEngine';
|
|
11
|
+
export { SqliteWasmEngine } from './storage/SqliteWasmEngine';
|
|
12
|
+
export { SqliteNodeEngine } from './storage/SqliteNodeEngine';
|
|
13
|
+
// Hash
|
|
14
|
+
export { HashValidator } from './hash/HashValidator';
|
|
15
|
+
// Monads
|
|
16
|
+
export { Maybe } from './monads/Maybe';
|
|
17
|
+
export { Either } from './monads/Either';
|
|
18
|
+
export { IO } from './monads/IO';
|
|
19
|
+
export { Reader } from './monads/Reader';
|
|
20
|
+
export { Writer } from './monads/Writer';
|
|
21
|
+
export { State } from './monads/State';
|
|
22
|
+
// PTR (Polynomial Type Runtime)
|
|
23
|
+
export { LensProtocol, ErrorCodes } from './ptr/LensProtocol';
|
|
24
|
+
export { SandboxWorker } from './ptr/SandboxWorker';
|
|
25
|
+
export * from './ptr/common_types';
|
|
26
|
+
export { FaroSidecar } from './ptr/FaroSidecar';
|
|
27
|
+
// Utils
|
|
28
|
+
// Note: Exporting as namespace to avoid naming collisions
|
|
29
|
+
import * as FileIO from './util/FileIO';
|
|
30
|
+
import * as Loader from './util/Loader';
|
|
31
|
+
export { FileIO, Loader };
|
|
32
|
+
// LLM
|
|
33
|
+
export { LLMRuntime, promptMonad, chatMonad } from './ptr/llm/LLMRuntime';
|
|
34
|
+
export { LLMConfig } from './ptr/llm/Config';
|
|
35
|
+
// Lambda Calculus Runtime (α-β-η conversions)
|
|
36
|
+
export * as Lambda from './ptr/lambda';
|
|
37
|
+
export { LambdaRuntime } from './ptr/lambda/LambdaRuntime';
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,2CAA2C;AAE3C,aAAa;AACb,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIzE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO;AACP,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,SAAS;AACT,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAmC,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,WAAW,EAAqB,MAAM,mBAAmB,CAAC;AAEnE,QAAQ;AACR,0DAA0D;AAC1D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAE1B,MAAM;AACN,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,8CAA8C;AAC9C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { MCard } from './MCard';
|
|
2
|
+
import { StorageEngine, Page } from '../storage/StorageAdapter';
|
|
3
|
+
import { Maybe } from '../monads/Maybe';
|
|
4
|
+
/**
|
|
5
|
+
* CardCollection - High-level interface for MCard operations with monadic API
|
|
6
|
+
*
|
|
7
|
+
* ## DOTS Vocabulary Role: CARRIER CATEGORY Car(S)
|
|
8
|
+
*
|
|
9
|
+
* CardCollection is the **Carrier Category** in the Double Operadic Theory of Systems.
|
|
10
|
+
* - **Objects**: Individual MCards (data artifacts)
|
|
11
|
+
* - **Morphisms**: Hash references between MCards (content-addressable links)
|
|
12
|
+
* - **Composition**: Morphisms compose via hash chains (Merkle-DAG structure)
|
|
13
|
+
*
|
|
14
|
+
* The Carrier is where **actual systems live**. While the Target (CLM design space)
|
|
15
|
+
* defines possible interfaces and interactions, the Carrier holds the real data.
|
|
16
|
+
*
|
|
17
|
+
* ## The Action: Loose(I) ⊛ Car(S) → Car(S)
|
|
18
|
+
*
|
|
19
|
+
* In DOTS, the **Action** is how interactions (from Target) act on systems (in Carrier)
|
|
20
|
+
* to produce new systems. For CardCollection:
|
|
21
|
+
* - PCard (Chart/Lens) defines the interaction pattern
|
|
22
|
+
* - CardCollection.add() produces new MCard in the Carrier
|
|
23
|
+
* - The result is a new Object in Car(S)
|
|
24
|
+
*
|
|
25
|
+
* ## Empty Schema Principle
|
|
26
|
+
*
|
|
27
|
+
* CardCollection embodies the Wordless Book principle:
|
|
28
|
+
* - At t₀: Empty collection = "Wordless Book"
|
|
29
|
+
* - At t_n: Billions of cards = "Infinite Library"
|
|
30
|
+
* - Schema (structure) never changes; only data (content) grows
|
|
31
|
+
*
|
|
32
|
+
* ## CRD-Only Operations (No UPDATE)
|
|
33
|
+
*
|
|
34
|
+
* Following MCard design principles, this collection supports only:
|
|
35
|
+
* - **C**reate: `add()`, `addWithHandle()`
|
|
36
|
+
* - **R**ead: `get()`, `getByHandle()`, `getPage()`, `search*()`
|
|
37
|
+
* - **D**elete: `delete()`, `clear()`
|
|
38
|
+
*
|
|
39
|
+
* There is NO `update()` method. Instead, to "update":
|
|
40
|
+
* 1. Create a new MCard with new content
|
|
41
|
+
* 2. Use `updateHandle()` to point the handle to the new hash
|
|
42
|
+
* 3. The old MCard remains in the collection (immutable history)
|
|
43
|
+
*
|
|
44
|
+
* ## CRDT Foundation (G-Set)
|
|
45
|
+
*
|
|
46
|
+
* CardCollection implements **Grow-Only Set (G-Set) CRDT** semantics:
|
|
47
|
+
* - **Commutative**: merge(A, B) = merge(B, A)
|
|
48
|
+
* - **Associative**: merge(A, merge(B, C)) = merge(merge(A, B), C)
|
|
49
|
+
* - **Idempotent**: merge(A, A) = A (same hash = same card)
|
|
50
|
+
*
|
|
51
|
+
* This enables **Strong Eventual Consistency** without coordination.
|
|
52
|
+
*
|
|
53
|
+
* ## Monadic API
|
|
54
|
+
*
|
|
55
|
+
* The `*M` methods (getM, getByHandleM, etc.) return Maybe<T> monads
|
|
56
|
+
* for composable, null-safe operations following functional programming patterns.
|
|
57
|
+
*
|
|
58
|
+
* @see {@link MCard} for the individual Carrier objects
|
|
59
|
+
* @see {@link DOTSRole.CARRIER} for DOTS vocabulary definition
|
|
60
|
+
* @see docs/WorkingNotes/Permanent/Projects/PKC Kernel/MCard.md for full specification
|
|
61
|
+
*/
|
|
62
|
+
export declare class CardCollection {
|
|
63
|
+
private engine;
|
|
64
|
+
constructor(engine: StorageEngine);
|
|
65
|
+
/**
|
|
66
|
+
* Add a card to the collection
|
|
67
|
+
* Handles duplicates (same content, same hash) and collisions (diff content, same hash)
|
|
68
|
+
*/
|
|
69
|
+
add(card: MCard): Promise<string>;
|
|
70
|
+
private areContentsEqual;
|
|
71
|
+
/**
|
|
72
|
+
* Get a card by hash
|
|
73
|
+
*/
|
|
74
|
+
get(hash: string): Promise<MCard | null>;
|
|
75
|
+
/**
|
|
76
|
+
* Delete a card by hash
|
|
77
|
+
*/
|
|
78
|
+
delete(hash: string): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Get a page of cards
|
|
81
|
+
*/
|
|
82
|
+
getPage(pageNumber?: number, pageSize?: number): Promise<Page<MCard>>;
|
|
83
|
+
/**
|
|
84
|
+
* Count total cards
|
|
85
|
+
*/
|
|
86
|
+
count(): Promise<number>;
|
|
87
|
+
/**
|
|
88
|
+
* Add a card and register a handle for it
|
|
89
|
+
*/
|
|
90
|
+
addWithHandle(card: MCard, handle: string): Promise<string>;
|
|
91
|
+
/**
|
|
92
|
+
* Get card by handle
|
|
93
|
+
*/
|
|
94
|
+
getByHandle(handle: string): Promise<MCard | null>;
|
|
95
|
+
/**
|
|
96
|
+
* Resolve handle to hash
|
|
97
|
+
*/
|
|
98
|
+
resolveHandle(handle: string): Promise<string | null>;
|
|
99
|
+
/**
|
|
100
|
+
* Update handle to point to new card
|
|
101
|
+
*/
|
|
102
|
+
updateHandle(handle: string, newCard: MCard): Promise<string>;
|
|
103
|
+
/**
|
|
104
|
+
* Get version history for a handle
|
|
105
|
+
*/
|
|
106
|
+
getHandleHistory(handle: string): Promise<{
|
|
107
|
+
previousHash: string;
|
|
108
|
+
changedAt: string;
|
|
109
|
+
}[]>;
|
|
110
|
+
/**
|
|
111
|
+
* Monadic get - returns Maybe<MCard>
|
|
112
|
+
*/
|
|
113
|
+
getM(hash: string): Promise<Maybe<MCard>>;
|
|
114
|
+
/**
|
|
115
|
+
* Monadic getByHandle - returns Maybe<MCard>
|
|
116
|
+
*/
|
|
117
|
+
getByHandleM(handle: string): Promise<Maybe<MCard>>;
|
|
118
|
+
/**
|
|
119
|
+
* Monadic resolveHandle - returns Maybe<string>
|
|
120
|
+
*/
|
|
121
|
+
resolveHandleM(handle: string): Promise<Maybe<string>>;
|
|
122
|
+
/**
|
|
123
|
+
* Resolve handle and get card in one monadic operation
|
|
124
|
+
*/
|
|
125
|
+
resolveAndGetM(handle: string): Promise<Maybe<MCard>>;
|
|
126
|
+
/**
|
|
127
|
+
* Prune version history for a handle.
|
|
128
|
+
* @param handle The handle string.
|
|
129
|
+
* @param options Options for pruning (olderThan date, or deleteAll).
|
|
130
|
+
* @returns Number of deleted entries.
|
|
131
|
+
*/
|
|
132
|
+
pruneHandleHistory(handle: string, options?: {
|
|
133
|
+
olderThan?: string;
|
|
134
|
+
deleteAll?: boolean;
|
|
135
|
+
}): Promise<number>;
|
|
136
|
+
clear(): Promise<void>;
|
|
137
|
+
searchByString(query: string, pageNumber?: number, pageSize?: number): Promise<Page<MCard>>;
|
|
138
|
+
searchByContent(query: string, pageNumber?: number, pageSize?: number): Promise<Page<MCard>>;
|
|
139
|
+
searchByHash(hashPrefix: string): Promise<MCard[]>;
|
|
140
|
+
getAllMCardsRaw(): Promise<MCard[]>;
|
|
141
|
+
getAllCards(pageSize?: number, processCallback?: (card: MCard) => any): Promise<{
|
|
142
|
+
cards: MCard[];
|
|
143
|
+
total: number;
|
|
144
|
+
}>;
|
|
145
|
+
printAllCards(): Promise<void>;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=CardCollection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardCollection.d.ts","sourceRoot":"","sources":["../../../src/model/CardCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { MCard } from './MCard';
|
|
2
|
+
import { Maybe } from '../monads/Maybe';
|
|
3
|
+
/**
|
|
4
|
+
* CardCollection - High-level interface for MCard operations with monadic API
|
|
5
|
+
*
|
|
6
|
+
* ## DOTS Vocabulary Role: CARRIER CATEGORY Car(S)
|
|
7
|
+
*
|
|
8
|
+
* CardCollection is the **Carrier Category** in the Double Operadic Theory of Systems.
|
|
9
|
+
* - **Objects**: Individual MCards (data artifacts)
|
|
10
|
+
* - **Morphisms**: Hash references between MCards (content-addressable links)
|
|
11
|
+
* - **Composition**: Morphisms compose via hash chains (Merkle-DAG structure)
|
|
12
|
+
*
|
|
13
|
+
* The Carrier is where **actual systems live**. While the Target (CLM design space)
|
|
14
|
+
* defines possible interfaces and interactions, the Carrier holds the real data.
|
|
15
|
+
*
|
|
16
|
+
* ## The Action: Loose(I) ⊛ Car(S) → Car(S)
|
|
17
|
+
*
|
|
18
|
+
* In DOTS, the **Action** is how interactions (from Target) act on systems (in Carrier)
|
|
19
|
+
* to produce new systems. For CardCollection:
|
|
20
|
+
* - PCard (Chart/Lens) defines the interaction pattern
|
|
21
|
+
* - CardCollection.add() produces new MCard in the Carrier
|
|
22
|
+
* - The result is a new Object in Car(S)
|
|
23
|
+
*
|
|
24
|
+
* ## Empty Schema Principle
|
|
25
|
+
*
|
|
26
|
+
* CardCollection embodies the Wordless Book principle:
|
|
27
|
+
* - At t₀: Empty collection = "Wordless Book"
|
|
28
|
+
* - At t_n: Billions of cards = "Infinite Library"
|
|
29
|
+
* - Schema (structure) never changes; only data (content) grows
|
|
30
|
+
*
|
|
31
|
+
* ## CRD-Only Operations (No UPDATE)
|
|
32
|
+
*
|
|
33
|
+
* Following MCard design principles, this collection supports only:
|
|
34
|
+
* - **C**reate: `add()`, `addWithHandle()`
|
|
35
|
+
* - **R**ead: `get()`, `getByHandle()`, `getPage()`, `search*()`
|
|
36
|
+
* - **D**elete: `delete()`, `clear()`
|
|
37
|
+
*
|
|
38
|
+
* There is NO `update()` method. Instead, to "update":
|
|
39
|
+
* 1. Create a new MCard with new content
|
|
40
|
+
* 2. Use `updateHandle()` to point the handle to the new hash
|
|
41
|
+
* 3. The old MCard remains in the collection (immutable history)
|
|
42
|
+
*
|
|
43
|
+
* ## CRDT Foundation (G-Set)
|
|
44
|
+
*
|
|
45
|
+
* CardCollection implements **Grow-Only Set (G-Set) CRDT** semantics:
|
|
46
|
+
* - **Commutative**: merge(A, B) = merge(B, A)
|
|
47
|
+
* - **Associative**: merge(A, merge(B, C)) = merge(merge(A, B), C)
|
|
48
|
+
* - **Idempotent**: merge(A, A) = A (same hash = same card)
|
|
49
|
+
*
|
|
50
|
+
* This enables **Strong Eventual Consistency** without coordination.
|
|
51
|
+
*
|
|
52
|
+
* ## Monadic API
|
|
53
|
+
*
|
|
54
|
+
* The `*M` methods (getM, getByHandleM, etc.) return Maybe<T> monads
|
|
55
|
+
* for composable, null-safe operations following functional programming patterns.
|
|
56
|
+
*
|
|
57
|
+
* @see {@link MCard} for the individual Carrier objects
|
|
58
|
+
* @see {@link DOTSRole.CARRIER} for DOTS vocabulary definition
|
|
59
|
+
* @see docs/WorkingNotes/Permanent/Projects/PKC Kernel/MCard.md for full specification
|
|
60
|
+
*/
|
|
61
|
+
export class CardCollection {
|
|
62
|
+
engine;
|
|
63
|
+
constructor(engine) {
|
|
64
|
+
this.engine = engine;
|
|
65
|
+
}
|
|
66
|
+
// =========== Standard Operations ===========
|
|
67
|
+
/**
|
|
68
|
+
* Add a card to the collection
|
|
69
|
+
* Handles duplicates (same content, same hash) and collisions (diff content, same hash)
|
|
70
|
+
*/
|
|
71
|
+
async add(card) {
|
|
72
|
+
// Check existing by hash
|
|
73
|
+
const existingCard = await this.engine.get(card.hash);
|
|
74
|
+
if (existingCard) {
|
|
75
|
+
// Compare content
|
|
76
|
+
const isDuplicate = this.areContentsEqual(existingCard.content, card.content);
|
|
77
|
+
if (isDuplicate) {
|
|
78
|
+
// Duplicate detected
|
|
79
|
+
// console.debug(`Duplicate detected for hash ${card.hash}`);
|
|
80
|
+
const { generateDuplicationEvent } = await import('./EventProducer');
|
|
81
|
+
const eventStr = generateDuplicationEvent(card);
|
|
82
|
+
const eventCard = await MCard.create(eventStr);
|
|
83
|
+
// Store duplicate event but do not overwrite original card
|
|
84
|
+
await this.engine.add(eventCard);
|
|
85
|
+
return card.hash;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
// Collision detected
|
|
89
|
+
// console.warn(`Collision detected for hash ${card.hash}`);
|
|
90
|
+
const { generateCollisionEvent } = await import('./EventProducer');
|
|
91
|
+
const eventStr = await generateCollisionEvent(card);
|
|
92
|
+
// Store collision event
|
|
93
|
+
const eventCard = await MCard.create(eventStr);
|
|
94
|
+
await this.engine.add(eventCard);
|
|
95
|
+
// Store colliding card with upgraded hash function
|
|
96
|
+
const eventObj = JSON.parse(eventStr);
|
|
97
|
+
const nextAlgo = eventObj.upgraded_function;
|
|
98
|
+
if (!nextAlgo) {
|
|
99
|
+
throw new Error("Failed to determine next hash algorithm for collision");
|
|
100
|
+
}
|
|
101
|
+
const upgradedCard = await MCard.create(card.content, nextAlgo);
|
|
102
|
+
return this.engine.add(upgradedCard);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return this.engine.add(card);
|
|
106
|
+
}
|
|
107
|
+
areContentsEqual(a, b) {
|
|
108
|
+
if (a.length !== b.length)
|
|
109
|
+
return false;
|
|
110
|
+
for (let i = 0; i < a.length; i++) {
|
|
111
|
+
if (a[i] !== b[i])
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get a card by hash
|
|
118
|
+
*/
|
|
119
|
+
async get(hash) {
|
|
120
|
+
return this.engine.get(hash);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Delete a card by hash
|
|
124
|
+
*/
|
|
125
|
+
async delete(hash) {
|
|
126
|
+
return this.engine.delete(hash);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get a page of cards
|
|
130
|
+
*/
|
|
131
|
+
async getPage(pageNumber = 1, pageSize = 10) {
|
|
132
|
+
return this.engine.getPage(pageNumber, pageSize);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Count total cards
|
|
136
|
+
*/
|
|
137
|
+
async count() {
|
|
138
|
+
return this.engine.count();
|
|
139
|
+
}
|
|
140
|
+
// =========== Handle Operations ===========
|
|
141
|
+
/**
|
|
142
|
+
* Add a card and register a handle for it
|
|
143
|
+
*/
|
|
144
|
+
async addWithHandle(card, handle) {
|
|
145
|
+
const hash = await this.add(card);
|
|
146
|
+
await this.engine.registerHandle(handle, hash);
|
|
147
|
+
return hash;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get card by handle
|
|
151
|
+
*/
|
|
152
|
+
async getByHandle(handle) {
|
|
153
|
+
return this.engine.getByHandle(handle);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Resolve handle to hash
|
|
157
|
+
*/
|
|
158
|
+
async resolveHandle(handle) {
|
|
159
|
+
return this.engine.resolveHandle(handle);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Update handle to point to new card
|
|
163
|
+
*/
|
|
164
|
+
async updateHandle(handle, newCard) {
|
|
165
|
+
const hash = await this.add(newCard);
|
|
166
|
+
await this.engine.updateHandle(handle, hash);
|
|
167
|
+
return hash;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get version history for a handle
|
|
171
|
+
*/
|
|
172
|
+
async getHandleHistory(handle) {
|
|
173
|
+
return this.engine.getHandleHistory(handle);
|
|
174
|
+
}
|
|
175
|
+
// =========== Monadic Operations ===========
|
|
176
|
+
/**
|
|
177
|
+
* Monadic get - returns Maybe<MCard>
|
|
178
|
+
*/
|
|
179
|
+
async getM(hash) {
|
|
180
|
+
const card = await this.get(hash);
|
|
181
|
+
return card ? Maybe.just(card) : Maybe.nothing();
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Monadic getByHandle - returns Maybe<MCard>
|
|
185
|
+
*/
|
|
186
|
+
async getByHandleM(handle) {
|
|
187
|
+
const card = await this.getByHandle(handle);
|
|
188
|
+
return card ? Maybe.just(card) : Maybe.nothing();
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Monadic resolveHandle - returns Maybe<string>
|
|
192
|
+
*/
|
|
193
|
+
async resolveHandleM(handle) {
|
|
194
|
+
const hash = await this.resolveHandle(handle);
|
|
195
|
+
return hash ? Maybe.just(hash) : Maybe.nothing();
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Resolve handle and get card in one monadic operation
|
|
199
|
+
*/
|
|
200
|
+
async resolveAndGetM(handle) {
|
|
201
|
+
const maybeHash = await this.resolveHandleM(handle);
|
|
202
|
+
if (maybeHash.isNothing)
|
|
203
|
+
return Maybe.nothing();
|
|
204
|
+
return this.getM(maybeHash.value);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Prune version history for a handle.
|
|
208
|
+
* @param handle The handle string.
|
|
209
|
+
* @param options Options for pruning (olderThan date, or deleteAll).
|
|
210
|
+
* @returns Number of deleted entries.
|
|
211
|
+
*/
|
|
212
|
+
async pruneHandleHistory(handle, options = {}) {
|
|
213
|
+
if (this.engine.pruneHandleHistory) {
|
|
214
|
+
return this.engine.pruneHandleHistory(handle, options);
|
|
215
|
+
}
|
|
216
|
+
return 0; // Or throw error if engine doesn't support it
|
|
217
|
+
}
|
|
218
|
+
// =========== Search & Bulk Operations ===========
|
|
219
|
+
async clear() {
|
|
220
|
+
return this.engine.clear();
|
|
221
|
+
}
|
|
222
|
+
async searchByString(query, pageNumber = 1, pageSize = 10) {
|
|
223
|
+
return this.engine.search(query, pageNumber, pageSize);
|
|
224
|
+
}
|
|
225
|
+
async searchByContent(query, pageNumber = 1, pageSize = 10) {
|
|
226
|
+
return this.engine.search(query, pageNumber, pageSize);
|
|
227
|
+
}
|
|
228
|
+
async searchByHash(hashPrefix) {
|
|
229
|
+
return this.engine.searchByHash(hashPrefix);
|
|
230
|
+
}
|
|
231
|
+
async getAllMCardsRaw() {
|
|
232
|
+
return this.engine.getAll();
|
|
233
|
+
}
|
|
234
|
+
async getAllCards(pageSize = 10, processCallback) {
|
|
235
|
+
const cards = [];
|
|
236
|
+
let pageNumber = 1;
|
|
237
|
+
let total = 0;
|
|
238
|
+
while (true) {
|
|
239
|
+
const page = await this.getPage(pageNumber, pageSize);
|
|
240
|
+
if (!page.items || page.items.length === 0)
|
|
241
|
+
break;
|
|
242
|
+
for (const card of page.items) {
|
|
243
|
+
if (processCallback) {
|
|
244
|
+
processCallback(card);
|
|
245
|
+
}
|
|
246
|
+
cards.push(card);
|
|
247
|
+
}
|
|
248
|
+
total = page.totalItems;
|
|
249
|
+
if (!page.hasNext)
|
|
250
|
+
break;
|
|
251
|
+
pageNumber++;
|
|
252
|
+
}
|
|
253
|
+
return { cards, total };
|
|
254
|
+
}
|
|
255
|
+
async printAllCards() {
|
|
256
|
+
const cards = await this.getAllMCardsRaw();
|
|
257
|
+
cards.forEach(card => {
|
|
258
|
+
console.log(`Hash: ${card.hash}`);
|
|
259
|
+
// Try to print as text if possible
|
|
260
|
+
try {
|
|
261
|
+
const text = new TextDecoder().decode(card.content);
|
|
262
|
+
const preview = text.slice(0, 100).replace(/\n/g, ' ');
|
|
263
|
+
console.log(`Content: ${preview}${text.length > 100 ? '...' : ''}`);
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
console.log(`Content (binary): ${card.content.length} bytes`);
|
|
267
|
+
}
|
|
268
|
+
console.log('---');
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=CardCollection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardCollection.js","sourceRoot":"","sources":["../../../src/model/CardCollection.ts"],"names":[],"mappings":"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"}
|