@qvac/sdk 0.18.2 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +12 -1
- package/README.md +46 -10
- package/bare-imports.json +2 -3
- package/dist/examples/abot-world.d.ts +2 -0
- package/dist/examples/abot-world.js +124 -0
- package/dist/examples/asr/parakeet-unified-filesystem.d.ts +2 -0
- package/dist/examples/asr/parakeet-unified-filesystem.js +50 -0
- package/dist/examples/assess-model-fit.d.ts +14 -0
- package/dist/examples/assess-model-fit.js +71 -0
- package/dist/examples/audiogen/generate-cover.js +2 -1
- package/dist/examples/audiogen/generate-music-minimax.d.ts +2 -0
- package/dist/examples/audiogen/generate-music-minimax.js +117 -0
- package/dist/examples/audiogen/generate-music.js +2 -1
- package/dist/examples/cache-management.js +1 -2
- package/dist/examples/classification/classify-image.js +1 -3
- package/dist/examples/config-reload.js +1 -1
- package/dist/examples/diffusion-ic-lora-ltx.d.ts +2 -0
- package/dist/examples/diffusion-ic-lora-ltx.js +76 -0
- package/dist/examples/mcp-websearch.js +1 -3
- package/dist/examples/model-fit-ui/server.d.ts +24 -0
- package/dist/examples/model-fit-ui/server.js +192 -0
- package/dist/examples/multi-job-completion.d.ts +2 -3
- package/dist/examples/multi-job-completion.js +2 -3
- package/dist/examples/parallel-download.js +4 -4
- package/dist/examples/plugins.js +1 -1
- package/dist/examples/profiling/basic.js +0 -1
- package/dist/examples/system-resources.js +2 -0
- package/dist/examples/translation/translation-bergamot-batch-stream.d.ts +2 -0
- package/dist/examples/translation/translation-bergamot-batch-stream.js +43 -0
- package/dist/examples/translation/translation-bergamot-batch.js +2 -5
- package/dist/examples/vla-groot.js +1 -1
- package/dist/scripts/check-resource-collectors-packaging.d.ts +2 -2
- package/dist/scripts/check-resource-collectors-packaging.js +3 -3
- package/dist/scripts/contract/build-contract.d.ts +1 -1
- package/dist/scripts/contract/build-contract.js +5 -5
- package/dist/scripts/contract/build-error-codes.js +3 -3
- package/dist/scripts/contract/build-model-type-maps.js +1 -2
- package/dist/scripts/contract/build-models-registry.d.ts +2 -2
- package/dist/scripts/contract/build-models-registry.js +2 -2
- package/dist/scripts/contract/constants-registry.d.ts +86 -0
- package/dist/scripts/contract/constants-registry.js +62 -0
- package/dist/scripts/contract/method-shapes.d.ts +53 -0
- package/dist/scripts/contract/method-shapes.js +50 -0
- package/dist/scripts/contract/plugin-contract.d.ts +1 -1
- package/dist/scripts/contract/plugin-contract.js +1 -1
- package/dist/scripts/enforce-inference-peer-dependencies.d.ts +2 -0
- package/dist/scripts/enforce-inference-peer-dependencies.js +39 -0
- package/dist/scripts/export-contract.js +1 -1
- package/dist/scripts/export-plugin-contract.js +1 -1
- package/dist/scripts/run-unit-tests.js +6 -1
- package/dist/src/client/api/assess-model-fit.d.ts +17 -0
- package/dist/src/client/api/assess-model-fit.js +38 -0
- package/dist/src/client/api/audio-gen-result.d.ts +4 -0
- package/dist/src/client/api/audio-gen-result.js +143 -0
- package/dist/src/client/api/audio-gen.d.ts +66 -0
- package/dist/src/client/api/audio-gen.js +68 -0
- package/dist/src/client/api/batch-completion.d.ts +28 -0
- package/dist/src/client/api/batch-completion.js +345 -0
- package/dist/src/client/api/bci-transcribe.d.ts +57 -0
- package/dist/src/client/api/bci-transcribe.js +173 -0
- package/dist/src/client/api/cancel.d.ts +35 -0
- package/dist/src/client/api/cancel.js +83 -0
- package/dist/src/client/api/classify.d.ts +25 -0
- package/dist/src/client/api/classify.js +48 -0
- package/dist/src/client/api/completion-stream.d.ts +107 -0
- package/dist/src/client/api/completion-stream.js +351 -0
- package/dist/src/client/api/delete-cache.js +49 -0
- package/dist/src/client/api/diffusion.d.ts +93 -0
- package/dist/src/client/api/diffusion.js +177 -0
- package/dist/src/client/api/download-asset.d.ts +52 -0
- package/dist/src/client/api/download-asset.js +89 -0
- package/dist/src/client/api/embed.d.ts +42 -0
- package/dist/src/client/api/embed.js +30 -0
- package/dist/src/client/api/finetune.d.ts +92 -0
- package/dist/src/client/api/finetune.js +144 -0
- package/dist/src/client/api/get-loaded-model-info.d.ts +26 -0
- package/dist/src/client/api/get-loaded-model-info.js +37 -0
- package/dist/src/client/api/get-model-info.d.ts +11 -0
- package/dist/src/client/api/get-model-info.js +22 -0
- package/dist/src/client/api/get-system-resources.d.ts +3 -0
- package/dist/src/client/api/get-system-resources.js +17 -0
- package/dist/src/client/api/heartbeat.d.ts +13 -0
- package/dist/src/client/api/heartbeat.js +21 -0
- package/dist/src/client/api/index.d.ts +37 -0
- package/dist/src/client/api/index.js +36 -0
- package/dist/src/client/api/invoke-plugin.d.ts +31 -0
- package/dist/src/client/api/invoke-plugin.js +54 -0
- package/dist/src/client/api/load-model.d.ts +184 -0
- package/dist/src/client/api/load-model.js +128 -0
- package/dist/src/client/api/logging-stream.d.ts +24 -0
- package/dist/src/client/api/logging-stream.js +36 -0
- package/dist/src/client/api/ocr.d.ts +40 -0
- package/dist/src/client/api/ocr.js +97 -0
- package/dist/src/client/api/rag.d.ts +257 -0
- package/dist/src/client/api/rag.js +490 -0
- package/dist/src/client/api/registry.d.ts +40 -0
- package/dist/src/client/api/registry.js +63 -0
- package/dist/src/client/api/resume.d.ts +27 -0
- package/dist/src/client/api/resume.js +33 -0
- package/dist/src/client/api/state.d.ts +23 -0
- package/dist/src/client/api/state.js +29 -0
- package/dist/src/client/api/subscribe-logs.d.ts +28 -0
- package/dist/src/client/api/suspend.d.ts +27 -0
- package/dist/src/client/api/suspend.js +33 -0
- package/dist/src/client/api/text-to-speech.d.ts +74 -0
- package/dist/src/client/api/text-to-speech.js +463 -0
- package/dist/src/client/api/transcribe.d.ts +93 -0
- package/dist/src/client/api/transcribe.js +295 -0
- package/dist/src/client/api/translate.d.ts +51 -0
- package/dist/src/client/api/translate.js +133 -0
- package/dist/src/client/api/unload-model.d.ts +18 -0
- package/dist/src/client/api/unload-model.js +42 -0
- package/dist/src/client/api/upscale.d.ts +45 -0
- package/dist/src/client/api/upscale.js +99 -0
- package/dist/src/client/api/video-request.d.ts +208 -0
- package/dist/src/client/api/video-request.js +18 -0
- package/dist/src/client/api/video.d.ts +107 -0
- package/dist/src/client/api/video.js +187 -0
- package/dist/src/client/api/vla-helpers.d.ts +59 -0
- package/dist/src/client/api/vla-helpers.js +139 -0
- package/dist/src/client/api/vla.d.ts +114 -0
- package/dist/src/client/api/vla.js +166 -0
- package/dist/src/client/api/world-result.d.ts +72 -0
- package/dist/src/client/api/world-result.js +296 -0
- package/dist/src/client/api/world.d.ts +144 -0
- package/dist/src/client/api/world.js +71 -0
- package/dist/src/client/config-loader/config-utils.d.ts +5 -0
- package/dist/src/client/config-loader/config-utils.js +18 -0
- package/dist/src/client/config-loader/resolve-config.expo.js +60 -0
- package/dist/src/client/config-loader/resolve-config.node.js +198 -0
- package/dist/src/client/init-hooks.d.ts +21 -0
- package/dist/src/client/init-hooks.js +62 -0
- package/dist/src/client/plugins-factory.d.ts +7 -0
- package/dist/src/client/plugins-factory.js +9 -0
- package/dist/src/client/rpc/bare-client.d.ts +6 -0
- package/dist/src/client/rpc/bare-client.js +21 -0
- package/dist/src/client/rpc/expo-rpc-client.js +195 -0
- package/dist/src/client/rpc/init-timeout.d.ts +26 -0
- package/dist/src/client/rpc/init-timeout.js +25 -0
- package/dist/src/client/rpc/node-rpc-client.js +525 -0
- package/dist/src/client/rpc/profiling/profiler.d.ts +27 -0
- package/dist/src/client/rpc/profiling/profiler.js +134 -0
- package/dist/src/client/rpc/rpc-client.d.ts +19 -0
- package/dist/src/client/rpc/rpc-client.js +550 -0
- package/dist/src/client/rpc/rpc-error.d.ts +28 -0
- package/dist/src/client/rpc/rpc-error.js +159 -0
- package/dist/src/client/rpc/worker-startup-error.d.ts +12 -0
- package/dist/src/client/rpc/worker-startup-error.js +13 -0
- package/dist/src/commands/bundle/entry-gen.js +54 -0
- package/dist/src/commands/bundle/index.js +148 -0
- package/dist/src/commands/bundle/plugins.d.ts +9 -0
- package/dist/src/commands/bundle/plugins.js +51 -0
- package/dist/src/commands/bundle/resolve-sdk-import.js +58 -0
- package/dist/src/commands/index.d.ts +5 -0
- package/dist/src/commands/index.js +2 -0
- package/dist/src/commands/verify/abi.d.ts +52 -0
- package/dist/src/commands/verify/abi.js +125 -0
- package/dist/src/commands/verify/bundle-source.d.ts +12 -0
- package/dist/src/commands/verify/bundle-source.js +53 -0
- package/dist/src/commands/verify/index.d.ts +59 -0
- package/dist/src/commands/verify/index.js +372 -0
- package/dist/src/commands/verify/node-modules-source.d.ts +11 -0
- package/dist/src/commands/verify/node-modules-source.js +76 -0
- package/dist/src/commands/verify/prebuilds.d.ts +16 -0
- package/dist/src/commands/verify/prebuilds.js +36 -0
- package/dist/src/commands/verify/resource-collectors.js +261 -0
- package/dist/src/deprecate.d.ts +2 -0
- package/dist/src/deprecate.js +9 -0
- package/dist/src/expo/plugins/withAndroidNdkVersion.js +31 -0
- package/dist/src/expo/plugins/withDeviceInfo.js +49 -0
- package/dist/src/expo/plugins/withMobileBundle.d.ts +24 -0
- package/dist/src/expo/plugins/withMobileBundle.js +152 -0
- package/dist/src/index.d.ts +20 -0
- package/dist/src/index.js +59 -0
- package/dist/src/logging/addon.d.ts +6 -0
- package/dist/src/logging/logging-stream-registry.js +137 -0
- package/dist/src/logging/namespaces.d.ts +7 -0
- package/dist/src/logging/namespaces.js +8 -0
- package/dist/src/logging/registry.d.ts +31 -0
- package/dist/src/logging/registry.js +62 -0
- package/dist/src/logging/stream-logger.js +12 -0
- package/dist/src/logging/utils.d.ts +6 -0
- package/dist/src/models/registry/index.d.ts +2 -0
- package/dist/src/models/registry/index.js +4 -0
- package/dist/src/pear/pre.js +446 -0
- package/dist/src/plugin-ids.d.ts +14 -0
- package/dist/src/plugin-ids.js +27 -0
- package/dist/src/plugin-utils.d.ts +2 -0
- package/dist/src/plugin-utils.js +4 -0
- package/dist/src/schemas/public.d.ts +3 -0
- package/dist/src/schemas/public.js +11 -0
- package/dist/src/schemas/sdk-errors-client.d.ts +41 -0
- package/dist/src/schemas/sdk-errors-client.js +192 -0
- package/dist/src/schemas/sdk-errors-server.d.ts +101 -0
- package/dist/src/schemas/sdk-errors-server.js +540 -0
- package/dist/src/server/error-handlers.js +32 -0
- package/dist/src/server/plugins/index.d.ts +2 -0
- package/dist/src/server/plugins/index.js +1 -0
- package/dist/src/server/rpc/profiling/context.d.ts +17 -0
- package/dist/src/server/rpc/profiling/context.js +31 -0
- package/dist/src/server/rpc/profiling/index.d.ts +2 -0
- package/dist/src/server/rpc/profiling/index.js +1 -0
- package/dist/src/server/rpc/profiling/profiler.d.ts +13 -0
- package/dist/src/server/rpc/profiling/profiler.js +78 -0
- package/dist/src/server/rpc/rpc-utils.d.ts +5 -0
- package/dist/src/server/utils/qvac-paths.js +5 -0
- package/dist/src/server/utils/worker-lock.js +67 -0
- package/dist/src/utils/aggregate-events.d.ts +26 -0
- package/dist/src/utils/aggregate-events.js +73 -0
- package/dist/src/utils/errors-client.d.ts +181 -0
- package/dist/src/utils/errors-client.js +305 -0
- package/dist/src/utils/errors-server.d.ts +380 -0
- package/dist/src/utils/errors-server.js +621 -0
- package/dist/src/utils/load-model-validation.js +17 -0
- package/dist/src/utils/mcp-adapter.d.ts +12 -0
- package/dist/src/utils/mcp-adapter.js +96 -0
- package/dist/src/utils/tool-helpers.d.ts +25 -0
- package/dist/src/utils/tool-helpers.js +111 -0
- package/dist/src/worker/create-server.js +46 -0
- package/dist/src/worker/handle-request.js +180 -0
- package/dist/src/worker/handler-utils.d.ts +16 -0
- package/dist/src/worker/handler-utils.js +41 -0
- package/dist/src/worker/index.d.ts +5 -0
- package/dist/src/worker/index.js +45 -0
- package/dist/src/worker/legacy-worker-entry.d.ts +2 -0
- package/dist/src/worker/legacy-worker-entry.js +3 -0
- package/dist/src/worker/lifecycle.d.ts +23 -0
- package/dist/src/worker/lifecycle.js +141 -0
- package/dist/src/worker/plugins/audiogen-ggml.d.ts +2 -0
- package/dist/src/worker/plugins/audiogen-ggml.js +1 -0
- package/dist/src/worker/plugins/bci-whispercpp-transcription.d.ts +2 -0
- package/dist/src/worker/plugins/bci-whispercpp-transcription.js +1 -0
- package/dist/src/worker/plugins/ggml-classification.d.ts +2 -0
- package/dist/src/worker/plugins/ggml-classification.js +1 -0
- package/dist/src/worker/plugins/ggml-ocr.d.ts +2 -0
- package/dist/src/worker/plugins/ggml-ocr.js +1 -0
- package/dist/src/worker/plugins/ggml-vla.d.ts +2 -0
- package/dist/src/worker/plugins/ggml-vla.js +1 -0
- package/dist/src/worker/plugins/llamacpp-completion.d.ts +2 -0
- package/dist/src/worker/plugins/llamacpp-completion.js +1 -0
- package/dist/src/worker/plugins/llamacpp-embedding.d.ts +2 -0
- package/dist/src/worker/plugins/llamacpp-embedding.js +1 -0
- package/dist/src/worker/plugins/nmtcpp-translation.d.ts +2 -0
- package/dist/src/worker/plugins/nmtcpp-translation.js +1 -0
- package/dist/src/worker/plugins/parakeet-transcription.d.ts +2 -0
- package/dist/src/worker/plugins/parakeet-transcription.js +1 -0
- package/dist/src/worker/plugins/sdcpp-generation.d.ts +2 -0
- package/dist/src/worker/plugins/sdcpp-generation.js +1 -0
- package/dist/src/worker/plugins/tts-ggml.d.ts +2 -0
- package/dist/src/worker/plugins/tts-ggml.js +1 -0
- package/dist/src/worker/plugins/whispercpp-transcription.d.ts +2 -0
- package/dist/src/worker/plugins/whispercpp-transcription.js +1 -0
- package/dist/src/worker/worker-core.d.ts +7 -0
- package/dist/src/worker/worker-core.js +8 -0
- package/docs/system-resources-support-matrix.md +46 -27
- package/package.json +82 -87
- package/dist/client/api/audio-gen-result.d.ts +0 -4
- package/dist/client/api/audio-gen-result.js +0 -132
- package/dist/client/api/audio-gen.d.ts +0 -46
- package/dist/client/api/audio-gen.js +0 -48
- package/dist/client/api/batch-completion.d.ts +0 -15
- package/dist/client/api/batch-completion.js +0 -332
- package/dist/client/api/bci-transcribe.d.ts +0 -57
- package/dist/client/api/bci-transcribe.js +0 -173
- package/dist/client/api/cancel.d.ts +0 -35
- package/dist/client/api/cancel.js +0 -83
- package/dist/client/api/classify.d.ts +0 -23
- package/dist/client/api/classify.js +0 -46
- package/dist/client/api/completion-stream.d.ts +0 -107
- package/dist/client/api/completion-stream.js +0 -351
- package/dist/client/api/delete-cache.js +0 -49
- package/dist/client/api/diffusion.d.ts +0 -93
- package/dist/client/api/diffusion.js +0 -175
- package/dist/client/api/download-asset.d.ts +0 -50
- package/dist/client/api/download-asset.js +0 -87
- package/dist/client/api/embed.d.ts +0 -42
- package/dist/client/api/embed.js +0 -30
- package/dist/client/api/finetune.d.ts +0 -92
- package/dist/client/api/finetune.js +0 -144
- package/dist/client/api/get-loaded-model-info.d.ts +0 -25
- package/dist/client/api/get-loaded-model-info.js +0 -36
- package/dist/client/api/get-model-info.d.ts +0 -44
- package/dist/client/api/get-model-info.js +0 -22
- package/dist/client/api/get-system-resources.d.ts +0 -3
- package/dist/client/api/get-system-resources.js +0 -16
- package/dist/client/api/heartbeat.d.ts +0 -30
- package/dist/client/api/heartbeat.js +0 -38
- package/dist/client/api/index.d.ts +0 -36
- package/dist/client/api/index.js +0 -35
- package/dist/client/api/invoke-plugin.d.ts +0 -31
- package/dist/client/api/invoke-plugin.js +0 -54
- package/dist/client/api/load-model.d.ts +0 -178
- package/dist/client/api/load-model.js +0 -130
- package/dist/client/api/logging-stream.d.ts +0 -24
- package/dist/client/api/logging-stream.js +0 -36
- package/dist/client/api/ocr.d.ts +0 -40
- package/dist/client/api/ocr.js +0 -97
- package/dist/client/api/provide.d.ts +0 -24
- package/dist/client/api/provide.js +0 -33
- package/dist/client/api/rag.d.ts +0 -252
- package/dist/client/api/rag.js +0 -485
- package/dist/client/api/registry.d.ts +0 -40
- package/dist/client/api/registry.js +0 -63
- package/dist/client/api/resume.d.ts +0 -30
- package/dist/client/api/resume.js +0 -36
- package/dist/client/api/state.d.ts +0 -23
- package/dist/client/api/state.js +0 -29
- package/dist/client/api/stop-provider.d.ts +0 -21
- package/dist/client/api/stop-provider.js +0 -31
- package/dist/client/api/subscribe-logs.d.ts +0 -28
- package/dist/client/api/suspend.d.ts +0 -31
- package/dist/client/api/suspend.js +0 -37
- package/dist/client/api/text-to-speech.d.ts +0 -66
- package/dist/client/api/text-to-speech.js +0 -455
- package/dist/client/api/transcribe.d.ts +0 -93
- package/dist/client/api/transcribe.js +0 -295
- package/dist/client/api/translate.d.ts +0 -49
- package/dist/client/api/translate.js +0 -125
- package/dist/client/api/unload-model.d.ts +0 -18
- package/dist/client/api/unload-model.js +0 -44
- package/dist/client/api/upscale.d.ts +0 -45
- package/dist/client/api/upscale.js +0 -99
- package/dist/client/api/video.d.ts +0 -87
- package/dist/client/api/video.js +0 -175
- package/dist/client/api/vla-helpers.d.ts +0 -45
- package/dist/client/api/vla-helpers.js +0 -125
- package/dist/client/api/vla.d.ts +0 -114
- package/dist/client/api/vla.js +0 -166
- package/dist/client/config-loader/config-utils.d.ts +0 -5
- package/dist/client/config-loader/config-utils.js +0 -18
- package/dist/client/config-loader/resolve-config.bare.d.ts +0 -9
- package/dist/client/config-loader/resolve-config.bare.js +0 -74
- package/dist/client/config-loader/resolve-config.expo.js +0 -62
- package/dist/client/config-loader/resolve-config.node.js +0 -199
- package/dist/client/init-hooks.d.ts +0 -21
- package/dist/client/init-hooks.js +0 -66
- package/dist/client/plugins-factory.d.ts +0 -8
- package/dist/client/plugins-factory.js +0 -10
- package/dist/client/rpc/bare-client.d.ts +0 -17
- package/dist/client/rpc/bare-client.js +0 -251
- package/dist/client/rpc/expo-rpc-client.js +0 -196
- package/dist/client/rpc/node-rpc-client.js +0 -505
- package/dist/client/rpc/profiling/profiler.d.ts +0 -27
- package/dist/client/rpc/profiling/profiler.js +0 -140
- package/dist/client/rpc/rpc-client.d.ts +0 -19
- package/dist/client/rpc/rpc-client.js +0 -551
- package/dist/client/rpc/rpc-error.d.ts +0 -28
- package/dist/client/rpc/rpc-error.js +0 -150
- package/dist/commands/bundle/entry-gen.js +0 -54
- package/dist/commands/bundle/index.js +0 -148
- package/dist/commands/bundle/plugins.d.ts +0 -9
- package/dist/commands/bundle/plugins.js +0 -51
- package/dist/commands/bundle/resolve-sdk-import.js +0 -53
- package/dist/commands/index.d.ts +0 -5
- package/dist/commands/index.js +0 -2
- package/dist/commands/verify/abi.d.ts +0 -52
- package/dist/commands/verify/abi.js +0 -125
- package/dist/commands/verify/bundle-source.d.ts +0 -12
- package/dist/commands/verify/bundle-source.js +0 -53
- package/dist/commands/verify/index.d.ts +0 -59
- package/dist/commands/verify/index.js +0 -372
- package/dist/commands/verify/node-modules-source.d.ts +0 -11
- package/dist/commands/verify/node-modules-source.js +0 -76
- package/dist/commands/verify/prebuilds.d.ts +0 -16
- package/dist/commands/verify/prebuilds.js +0 -36
- package/dist/commands/verify/resource-collectors.js +0 -261
- package/dist/constants/audio.d.ts +0 -2
- package/dist/constants/audio.js +0 -1
- package/dist/constants/index.d.ts +0 -3
- package/dist/constants/index.js +0 -2
- package/dist/constants/registry.d.ts +0 -2
- package/dist/constants/registry.js +0 -1
- package/dist/examples/delegated-inference/composite.d.ts +0 -2
- package/dist/examples/delegated-inference/composite.js +0 -96
- package/dist/examples/delegated-inference/consumer-profiled.d.ts +0 -2
- package/dist/examples/delegated-inference/consumer-profiled.js +0 -59
- package/dist/examples/delegated-inference/consumer.d.ts +0 -2
- package/dist/examples/delegated-inference/consumer.js +0 -55
- package/dist/examples/delegated-inference/provider.d.ts +0 -2
- package/dist/examples/delegated-inference/provider.js +0 -52
- package/dist/examples/quickstart.bare.d.ts +0 -2
- package/dist/examples/quickstart.bare.js +0 -16
- package/dist/expo/plugins/withAndroidNdkVersion.js +0 -31
- package/dist/expo/plugins/withDeviceInfo.js +0 -49
- package/dist/expo/plugins/withMobileBundle.d.ts +0 -12
- package/dist/expo/plugins/withMobileBundle.js +0 -117
- package/dist/index.d.ts +0 -17
- package/dist/index.js +0 -44
- package/dist/logging/addon.d.ts +0 -6
- package/dist/logging/namespaces.d.ts +0 -7
- package/dist/logging/namespaces.js +0 -8
- package/dist/logging/registry.d.ts +0 -31
- package/dist/logging/registry.js +0 -62
- package/dist/logging/stream-logger.js +0 -12
- package/dist/logging/utils.d.ts +0 -6
- package/dist/models/registry/index.d.ts +0 -19
- package/dist/models/registry/index.js +0 -21
- package/dist/models/registry/models.d.ts +0 -23457
- package/dist/models/registry/models.js +0 -24713
- package/dist/pear/pre.js +0 -446
- package/dist/profiling/aggregator.d.ts +0 -15
- package/dist/profiling/aggregator.js +0 -100
- package/dist/profiling/backend-diagnostics.d.ts +0 -8
- package/dist/profiling/backend-diagnostics.js +0 -21
- package/dist/profiling/clock.d.ts +0 -12
- package/dist/profiling/clock.js +0 -51
- package/dist/profiling/controller.d.ts +0 -35
- package/dist/profiling/controller.js +0 -130
- package/dist/profiling/envelope.d.ts +0 -11
- package/dist/profiling/envelope.js +0 -45
- package/dist/profiling/events.d.ts +0 -20
- package/dist/profiling/events.js +0 -35
- package/dist/profiling/exporters.d.ts +0 -10
- package/dist/profiling/exporters.js +0 -243
- package/dist/profiling/index.d.ts +0 -86
- package/dist/profiling/index.js +0 -81
- package/dist/profiling/model-execution.d.ts +0 -16
- package/dist/profiling/model-execution.js +0 -34
- package/dist/profiling/ring-buffer.d.ts +0 -19
- package/dist/profiling/ring-buffer.js +0 -83
- package/dist/profiling/types.d.ts +0 -53
- package/dist/profiling/types.js +0 -1
- package/dist/schemas/archive.d.ts +0 -9
- package/dist/schemas/archive.js +0 -11
- package/dist/schemas/audio-gen.d.ts +0 -356
- package/dist/schemas/audio-gen.js +0 -200
- package/dist/schemas/batch-completion-stream.d.ts +0 -468
- package/dist/schemas/batch-completion-stream.js +0 -124
- package/dist/schemas/bci-config.d.ts +0 -75
- package/dist/schemas/bci-config.js +0 -58
- package/dist/schemas/bci.d.ts +0 -179
- package/dist/schemas/bci.js +0 -89
- package/dist/schemas/cancel.d.ts +0 -209
- package/dist/schemas/cancel.js +0 -140
- package/dist/schemas/classification.d.ts +0 -53
- package/dist/schemas/classification.js +0 -33
- package/dist/schemas/common.d.ts +0 -6960
- package/dist/schemas/common.js +0 -138
- package/dist/schemas/completion-event.d.ts +0 -249
- package/dist/schemas/completion-event.js +0 -94
- package/dist/schemas/completion-stream.d.ts +0 -476
- package/dist/schemas/completion-stream.js +0 -236
- package/dist/schemas/constants-registry.d.ts +0 -83
- package/dist/schemas/constants-registry.js +0 -65
- package/dist/schemas/delegate.d.ts +0 -16
- package/dist/schemas/delegate.js +0 -32
- package/dist/schemas/delete-cache.d.ts +0 -17
- package/dist/schemas/delete-cache.js +0 -21
- package/dist/schemas/download-asset.d.ts +0 -225
- package/dist/schemas/download-asset.js +0 -71
- package/dist/schemas/embed.d.ts +0 -42
- package/dist/schemas/embed.js +0 -35
- package/dist/schemas/engine-addon-map.d.ts +0 -21
- package/dist/schemas/engine-addon-map.js +0 -78
- package/dist/schemas/error.d.ts +0 -44
- package/dist/schemas/error.js +0 -67
- package/dist/schemas/finetune.d.ts +0 -622
- package/dist/schemas/finetune.js +0 -163
- package/dist/schemas/get-loaded-model-info.d.ts +0 -70
- package/dist/schemas/get-loaded-model-info.js +0 -52
- package/dist/schemas/get-model-info.d.ts +0 -130
- package/dist/schemas/get-model-info.js +0 -91
- package/dist/schemas/heartbeat.d.ts +0 -16
- package/dist/schemas/heartbeat.js +0 -10
- package/dist/schemas/index.d.ts +0 -55
- package/dist/schemas/index.js +0 -55
- package/dist/schemas/json-schema.d.ts +0 -16
- package/dist/schemas/json-schema.js +0 -2
- package/dist/schemas/llamacpp-config.d.ts +0 -404
- package/dist/schemas/llamacpp-config.js +0 -219
- package/dist/schemas/load-model.d.ts +0 -28991
- package/dist/schemas/load-model.js +0 -647
- package/dist/schemas/logging-stream.d.ts +0 -34
- package/dist/schemas/logging-stream.js +0 -17
- package/dist/schemas/mcp-adapter.d.ts +0 -47
- package/dist/schemas/mcp-adapter.js +0 -1
- package/dist/schemas/model-src-utils.d.ts +0 -193
- package/dist/schemas/model-src-utils.js +0 -61
- package/dist/schemas/model-types.d.ts +0 -276
- package/dist/schemas/model-types.js +0 -223
- package/dist/schemas/ocr.d.ts +0 -138
- package/dist/schemas/ocr.js +0 -59
- package/dist/schemas/path-validation.d.ts +0 -10
- package/dist/schemas/path-validation.js +0 -22
- package/dist/schemas/plugin.d.ts +0 -342
- package/dist/schemas/plugin.js +0 -242
- package/dist/schemas/profiling.d.ts +0 -696
- package/dist/schemas/profiling.js +0 -100
- package/dist/schemas/provide.d.ts +0 -41
- package/dist/schemas/provide.js +0 -22
- package/dist/schemas/public.d.ts +0 -3
- package/dist/schemas/public.js +0 -6
- package/dist/schemas/rag.d.ts +0 -302
- package/dist/schemas/rag.js +0 -212
- package/dist/schemas/registry.d.ts +0 -454
- package/dist/schemas/registry.js +0 -104
- package/dist/schemas/reload-config.d.ts +0 -586
- package/dist/schemas/reload-config.js +0 -42
- package/dist/schemas/resume.d.ts +0 -10
- package/dist/schemas/resume.js +0 -7
- package/dist/schemas/runtime-context.d.ts +0 -19
- package/dist/schemas/runtime-context.js +0 -7
- package/dist/schemas/sdcpp-config.d.ts +0 -1127
- package/dist/schemas/sdcpp-config.js +0 -748
- package/dist/schemas/sdk-config.d.ts +0 -5059
- package/dist/schemas/sdk-config.js +0 -167
- package/dist/schemas/sdk-errors-client.d.ts +0 -44
- package/dist/schemas/sdk-errors-client.js +0 -208
- package/dist/schemas/sdk-errors-registry.d.ts +0 -6
- package/dist/schemas/sdk-errors-registry.js +0 -8
- package/dist/schemas/sdk-errors-server.d.ts +0 -102
- package/dist/schemas/sdk-errors-server.js +0 -534
- package/dist/schemas/shard.d.ts +0 -21
- package/dist/schemas/shard.js +0 -17
- package/dist/schemas/state.d.ts +0 -23
- package/dist/schemas/state.js +0 -9
- package/dist/schemas/stop-provide.d.ts +0 -12
- package/dist/schemas/stop-provide.js +0 -11
- package/dist/schemas/suspend.d.ts +0 -10
- package/dist/schemas/suspend.js +0 -7
- package/dist/schemas/system-resources.d.ts +0 -3967
- package/dist/schemas/system-resources.js +0 -149
- package/dist/schemas/text-to-speech.d.ts +0 -2329
- package/dist/schemas/text-to-speech.js +0 -554
- package/dist/schemas/tools.d.ts +0 -65
- package/dist/schemas/tools.js +0 -37
- package/dist/schemas/transcription-config.d.ts +0 -164
- package/dist/schemas/transcription-config.js +0 -162
- package/dist/schemas/transcription.d.ts +0 -264
- package/dist/schemas/transcription.js +0 -145
- package/dist/schemas/translate.d.ts +0 -139
- package/dist/schemas/translate.js +0 -103
- package/dist/schemas/translation-config.d.ts +0 -1032
- package/dist/schemas/translation-config.js +0 -170
- package/dist/schemas/unload-model.d.ts +0 -22
- package/dist/schemas/unload-model.js +0 -18
- package/dist/schemas/vla.d.ts +0 -194
- package/dist/schemas/vla.js +0 -254
- package/dist/scripts/run-security-tests.d.ts +0 -2
- package/dist/scripts/run-security-tests.js +0 -21
- package/dist/server/bare/delegate-connect-diagnostics.d.ts +0 -9
- package/dist/server/bare/delegate-connect-diagnostics.js +0 -38
- package/dist/server/bare/delegate-rpc-client.d.ts +0 -10
- package/dist/server/bare/delegate-rpc-client.js +0 -219
- package/dist/server/bare/hyperswarm.d.ts +0 -10
- package/dist/server/bare/hyperswarm.js +0 -103
- package/dist/server/bare/ops/bci-transcribe.d.ts +0 -13
- package/dist/server/bare/ops/bci-transcribe.js +0 -248
- package/dist/server/bare/ops/cancel.d.ts +0 -29
- package/dist/server/bare/ops/cancel.js +0 -46
- package/dist/server/bare/ops/embed.d.ts +0 -16
- package/dist/server/bare/ops/embed.js +0 -193
- package/dist/server/bare/ops/kv-cache-retention.d.ts +0 -12
- package/dist/server/bare/ops/kv-cache-retention.js +0 -132
- package/dist/server/bare/ops/kv-cache-utils.d.ts +0 -22
- package/dist/server/bare/ops/kv-cache-utils.js +0 -148
- package/dist/server/bare/ops/load-model.d.ts +0 -9
- package/dist/server/bare/ops/load-model.js +0 -82
- package/dist/server/bare/ops/transcribe.d.ts +0 -20
- package/dist/server/bare/ops/transcribe.js +0 -349
- package/dist/server/bare/ops/translate-stats.d.ts +0 -5
- package/dist/server/bare/ops/translate-stats.js +0 -11
- package/dist/server/bare/ops/translate.d.ts +0 -8
- package/dist/server/bare/ops/translate.js +0 -284
- package/dist/server/bare/ops/unload-model.d.ts +0 -3
- package/dist/server/bare/ops/unload-model.js +0 -51
- package/dist/server/bare/plugins/asr-ggml/config.d.ts +0 -32
- package/dist/server/bare/plugins/asr-ggml/config.js +0 -46
- package/dist/server/bare/plugins/asr-ggml/logging.d.ts +0 -11
- package/dist/server/bare/plugins/asr-ggml/logging.js +0 -12
- package/dist/server/bare/plugins/audiogen-ggml/config.d.ts +0 -18
- package/dist/server/bare/plugins/audiogen-ggml/config.js +0 -23
- package/dist/server/bare/plugins/audiogen-ggml/ops/audio-gen-input.d.ts +0 -20
- package/dist/server/bare/plugins/audiogen-ggml/ops/audio-gen-input.js +0 -153
- package/dist/server/bare/plugins/audiogen-ggml/ops/audio-gen-stream.d.ts +0 -3
- package/dist/server/bare/plugins/audiogen-ggml/ops/audio-gen-stream.js +0 -213
- package/dist/server/bare/plugins/audiogen-ggml/plugin.d.ts +0 -241
- package/dist/server/bare/plugins/audiogen-ggml/plugin.js +0 -58
- package/dist/server/bare/plugins/bci-whispercpp-transcription/args.d.ts +0 -3
- package/dist/server/bare/plugins/bci-whispercpp-transcription/args.js +0 -13
- package/dist/server/bare/plugins/bci-whispercpp-transcription/plugin.d.ts +0 -174
- package/dist/server/bare/plugins/bci-whispercpp-transcription/plugin.js +0 -111
- package/dist/server/bare/plugins/bci-whispercpp-transcription/resolve-config.d.ts +0 -75
- package/dist/server/bare/plugins/bci-whispercpp-transcription/resolve-config.js +0 -11
- package/dist/server/bare/plugins/ggml-classification/ops/classify.d.ts +0 -6
- package/dist/server/bare/plugins/ggml-classification/ops/classify.js +0 -30
- package/dist/server/bare/plugins/ggml-classification/plugin.d.ts +0 -32
- package/dist/server/bare/plugins/ggml-classification/plugin.js +0 -55
- package/dist/server/bare/plugins/ggml-ocr/ops/ocr-stream.d.ts +0 -8
- package/dist/server/bare/plugins/ggml-ocr/ops/ocr-stream.js +0 -119
- package/dist/server/bare/plugins/ggml-ocr/plugin.d.ts +0 -103
- package/dist/server/bare/plugins/ggml-ocr/plugin.js +0 -112
- package/dist/server/bare/plugins/ggml-ocr/resolve-config.d.ts +0 -6
- package/dist/server/bare/plugins/ggml-ocr/resolve-config.js +0 -73
- package/dist/server/bare/plugins/ggml-vla/ops/vla-hparams.d.ts +0 -3
- package/dist/server/bare/plugins/ggml-vla/ops/vla-hparams.js +0 -12
- package/dist/server/bare/plugins/ggml-vla/ops/vla-run.d.ts +0 -3
- package/dist/server/bare/plugins/ggml-vla/ops/vla-run.js +0 -79
- package/dist/server/bare/plugins/ggml-vla/ops/vla-set-embodiment.d.ts +0 -3
- package/dist/server/bare/plugins/ggml-vla/ops/vla-set-embodiment.js +0 -9
- package/dist/server/bare/plugins/ggml-vla/plugin.d.ts +0 -103
- package/dist/server/bare/plugins/ggml-vla/plugin.js +0 -74
- package/dist/server/bare/plugins/index.d.ts +0 -13
- package/dist/server/bare/plugins/index.js +0 -12
- package/dist/server/bare/plugins/llamacpp-completion/ops/batch-completion-stream.d.ts +0 -32
- package/dist/server/bare/plugins/llamacpp-completion/ops/batch-completion-stream.js +0 -100
- package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +0 -7
- package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +0 -36
- package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stats.d.ts +0 -27
- package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stats.js +0 -58
- package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.d.ts +0 -47
- package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.js +0 -382
- package/dist/server/bare/plugins/llamacpp-completion/ops/context-overflow.d.ts +0 -29
- package/dist/server/bare/plugins/llamacpp-completion/ops/context-overflow.js +0 -65
- package/dist/server/bare/plugins/llamacpp-completion/ops/finetune.d.ts +0 -11
- package/dist/server/bare/plugins/llamacpp-completion/ops/finetune.js +0 -299
- package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-session.d.ts +0 -190
- package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-session.js +0 -746
- package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-state.d.ts +0 -58
- package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-state.js +0 -58
- package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +0 -672
- package/dist/server/bare/plugins/llamacpp-completion/plugin.js +0 -503
- package/dist/server/bare/plugins/llamacpp-completion/transform.d.ts +0 -10
- package/dist/server/bare/plugins/llamacpp-completion/transform.js +0 -28
- package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +0 -77
- package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +0 -100
- package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +0 -458
- package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +0 -144
- package/dist/server/bare/plugins/nmtcpp-translation/resolve-vocab.d.ts +0 -32
- package/dist/server/bare/plugins/nmtcpp-translation/resolve-vocab.js +0 -114
- package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +0 -134
- package/dist/server/bare/plugins/parakeet-transcription/plugin.js +0 -141
- package/dist/server/bare/plugins/sdcpp-generation/ops/diffusion.d.ts +0 -3
- package/dist/server/bare/plugins/sdcpp-generation/ops/diffusion.js +0 -63
- package/dist/server/bare/plugins/sdcpp-generation/ops/upscale.d.ts +0 -3
- package/dist/server/bare/plugins/sdcpp-generation/ops/upscale.js +0 -40
- package/dist/server/bare/plugins/sdcpp-generation/ops/video.d.ts +0 -6
- package/dist/server/bare/plugins/sdcpp-generation/ops/video.js +0 -238
- package/dist/server/bare/plugins/sdcpp-generation/plugin.d.ts +0 -758
- package/dist/server/bare/plugins/sdcpp-generation/plugin.js +0 -310
- package/dist/server/bare/plugins/tts-ggml/ops/parler-options.d.ts +0 -7
- package/dist/server/bare/plugins/tts-ggml/ops/parler-options.js +0 -50
- package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech-stream.d.ts +0 -7
- package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech-stream.js +0 -104
- package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech.d.ts +0 -7
- package/dist/server/bare/plugins/tts-ggml/ops/text-to-speech.js +0 -89
- package/dist/server/bare/plugins/tts-ggml/plugin.d.ts +0 -495
- package/dist/server/bare/plugins/tts-ggml/plugin.js +0 -436
- package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +0 -347
- package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +0 -178
- package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/chunk.js +0 -7
- package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +0 -9
- package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +0 -11
- package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +0 -14
- package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +0 -9
- package/dist/server/bare/rag-hyperdb/handlers/ingest.js +0 -19
- package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +0 -4
- package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +0 -9
- package/dist/server/bare/rag-hyperdb/handlers/reindex.js +0 -16
- package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +0 -9
- package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +0 -15
- package/dist/server/bare/rag-hyperdb/handlers/search.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/search.js +0 -16
- package/dist/server/bare/rag-hyperdb/index.d.ts +0 -12
- package/dist/server/bare/rag-hyperdb/index.js +0 -11
- package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +0 -29
- package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +0 -76
- package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +0 -15
- package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +0 -143
- package/dist/server/bare/registry/config-registry.d.ts +0 -14
- package/dist/server/bare/registry/config-registry.js +0 -90
- package/dist/server/bare/registry/logging-stream-registry.js +0 -137
- package/dist/server/bare/registry/model-config-registry.d.ts +0 -4
- package/dist/server/bare/registry/model-config-registry.js +0 -15
- package/dist/server/bare/registry/model-config-utils.d.ts +0 -15
- package/dist/server/bare/registry/model-config-utils.js +0 -128
- package/dist/server/bare/registry/model-registry.d.ts +0 -76
- package/dist/server/bare/registry/model-registry.js +0 -130
- package/dist/server/bare/registry/registry-client.d.ts +0 -5
- package/dist/server/bare/registry/registry-client.js +0 -118
- package/dist/server/bare/registry/runtime-context-registry.d.ts +0 -7
- package/dist/server/bare/registry/runtime-context-registry.js +0 -26
- package/dist/server/bare/resources/collector.d.ts +0 -644
- package/dist/server/bare/resources/collector.js +0 -226
- package/dist/server/bare/resources/native.d.ts +0 -3
- package/dist/server/bare/resources/native.js +0 -35
- package/dist/server/bare/resources/normalize.d.ts +0 -13
- package/dist/server/bare/resources/normalize.js +0 -73
- package/dist/server/bare/resources/types.d.ts +0 -66
- package/dist/server/bare/resources/types.js +0 -1
- package/dist/server/bare/resources/worker-collector.d.ts +0 -5
- package/dist/server/bare/resources/worker-collector.js +0 -15
- package/dist/server/bare/runtime/disposable-scope.d.ts +0 -36
- package/dist/server/bare/runtime/disposable-scope.js +0 -69
- package/dist/server/bare/runtime/index.d.ts +0 -8
- package/dist/server/bare/runtime/index.js +0 -3
- package/dist/server/bare/runtime/request-context.d.ts +0 -49
- package/dist/server/bare/runtime/request-context.js +0 -1
- package/dist/server/bare/runtime/request-id.d.ts +0 -12
- package/dist/server/bare/runtime/request-id.js +0 -14
- package/dist/server/bare/runtime/request-registry-singleton.d.ts +0 -4
- package/dist/server/bare/runtime/request-registry-singleton.js +0 -77
- package/dist/server/bare/runtime/request-registry.d.ts +0 -222
- package/dist/server/bare/runtime/request-registry.js +0 -715
- package/dist/server/bare/runtime/with-request-context.d.ts +0 -22
- package/dist/server/bare/runtime/with-request-context.js +0 -53
- package/dist/server/bare/runtime-lifecycle.d.ts +0 -38
- package/dist/server/bare/runtime-lifecycle.js +0 -163
- package/dist/server/bare/types/addon-responses.d.ts +0 -51
- package/dist/server/bare/types/addon-responses.js +0 -1
- package/dist/server/bare/utils/asr-events.d.ts +0 -15
- package/dist/server/bare/utils/asr-events.js +0 -30
- package/dist/server/bare/utils/audio-input.d.ts +0 -10
- package/dist/server/bare/utils/audio-input.js +0 -33
- package/dist/server/bare/utils/transcribe-metadata.d.ts +0 -21
- package/dist/server/bare/utils/transcribe-metadata.js +0 -28
- package/dist/server/bare/utils/tts-stats.d.ts +0 -26
- package/dist/server/bare/utils/tts-stats.js +0 -16
- package/dist/server/error-handlers.js +0 -32
- package/dist/server/plugins/index.d.ts +0 -2
- package/dist/server/plugins/index.js +0 -1
- package/dist/server/plugins/registry.d.ts +0 -10
- package/dist/server/plugins/registry.js +0 -107
- package/dist/server/rpc/create-server.js +0 -46
- package/dist/server/rpc/delegate-transport.d.ts +0 -19
- package/dist/server/rpc/delegate-transport.js +0 -237
- package/dist/server/rpc/handle-request.js +0 -172
- package/dist/server/rpc/handler-registry.d.ts +0 -3
- package/dist/server/rpc/handler-registry.js +0 -179
- package/dist/server/rpc/handler-selection.d.ts +0 -9
- package/dist/server/rpc/handler-selection.js +0 -14
- package/dist/server/rpc/handler-utils.d.ts +0 -30
- package/dist/server/rpc/handler-utils.js +0 -183
- package/dist/server/rpc/handlers/audio-gen-stream.d.ts +0 -3
- package/dist/server/rpc/handlers/audio-gen-stream.js +0 -4
- package/dist/server/rpc/handlers/batch-completion-stream.d.ts +0 -80
- package/dist/server/rpc/handlers/batch-completion-stream.js +0 -4
- package/dist/server/rpc/handlers/bci-transcribe-stream.d.ts +0 -3
- package/dist/server/rpc/handlers/bci-transcribe-stream.js +0 -4
- package/dist/server/rpc/handlers/bci-transcribe.d.ts +0 -3
- package/dist/server/rpc/handlers/bci-transcribe.js +0 -4
- package/dist/server/rpc/handlers/cancel-delegated.d.ts +0 -4
- package/dist/server/rpc/handlers/cancel-delegated.js +0 -66
- package/dist/server/rpc/handlers/cancelHandler.d.ts +0 -32
- package/dist/server/rpc/handlers/cancelHandler.js +0 -69
- package/dist/server/rpc/handlers/classify.d.ts +0 -3
- package/dist/server/rpc/handlers/classify.js +0 -4
- package/dist/server/rpc/handlers/completion-orchestrate.d.ts +0 -42
- package/dist/server/rpc/handlers/completion-orchestrate.js +0 -190
- package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +0 -5
- package/dist/server/rpc/handlers/completion-stream-delegated.js +0 -51
- package/dist/server/rpc/handlers/completion-stream.d.ts +0 -3
- package/dist/server/rpc/handlers/completion-stream.js +0 -4
- package/dist/server/rpc/handlers/delete-cache.d.ts +0 -12
- package/dist/server/rpc/handlers/delete-cache.js +0 -37
- package/dist/server/rpc/handlers/diffusion-stream.d.ts +0 -3
- package/dist/server/rpc/handlers/diffusion-stream.js +0 -4
- package/dist/server/rpc/handlers/download-asset.d.ts +0 -3
- package/dist/server/rpc/handlers/download-asset.js +0 -146
- package/dist/server/rpc/handlers/embed.d.ts +0 -3
- package/dist/server/rpc/handlers/embed.js +0 -4
- package/dist/server/rpc/handlers/finetune.d.ts +0 -3
- package/dist/server/rpc/handlers/finetune.js +0 -18
- package/dist/server/rpc/handlers/get-loaded-model-info.d.ts +0 -3
- package/dist/server/rpc/handlers/get-loaded-model-info.js +0 -45
- package/dist/server/rpc/handlers/get-model-info.d.ts +0 -3
- package/dist/server/rpc/handlers/get-model-info.js +0 -173
- package/dist/server/rpc/handlers/get-system-resources.d.ts +0 -3
- package/dist/server/rpc/handlers/get-system-resources.js +0 -53
- package/dist/server/rpc/handlers/heartbeat-delegated.d.ts +0 -4
- package/dist/server/rpc/handlers/heartbeat-delegated.js +0 -32
- package/dist/server/rpc/handlers/heartbeat.d.ts +0 -3
- package/dist/server/rpc/handlers/heartbeat.js +0 -3
- package/dist/server/rpc/handlers/index.d.ts +0 -76
- package/dist/server/rpc/handlers/index.js +0 -75
- package/dist/server/rpc/handlers/load-model/download-manager.d.ts +0 -98
- package/dist/server/rpc/handlers/load-model/download-manager.js +0 -308
- package/dist/server/rpc/handlers/load-model/download-stats.d.ts +0 -8
- package/dist/server/rpc/handlers/load-model/download-stats.js +0 -126
- package/dist/server/rpc/handlers/load-model/handler.d.ts +0 -3
- package/dist/server/rpc/handlers/load-model/handler.js +0 -287
- package/dist/server/rpc/handlers/load-model/http.d.ts +0 -4
- package/dist/server/rpc/handlers/load-model/http.js +0 -856
- package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +0 -5
- package/dist/server/rpc/handlers/load-model/hyperdrive.js +0 -561
- package/dist/server/rpc/handlers/load-model/index.d.ts +0 -3
- package/dist/server/rpc/handlers/load-model/index.js +0 -2
- package/dist/server/rpc/handlers/load-model/registry-client-options.d.ts +0 -27
- package/dist/server/rpc/handlers/load-model/registry-client-options.js +0 -18
- package/dist/server/rpc/handlers/load-model/registry-companion-set.d.ts +0 -23
- package/dist/server/rpc/handlers/load-model/registry-companion-set.js +0 -206
- package/dist/server/rpc/handlers/load-model/registry-download-utils.d.ts +0 -24
- package/dist/server/rpc/handlers/load-model/registry-download-utils.js +0 -112
- package/dist/server/rpc/handlers/load-model/registry-metadata.d.ts +0 -11
- package/dist/server/rpc/handlers/load-model/registry-metadata.js +0 -23
- package/dist/server/rpc/handlers/load-model/registry.d.ts +0 -5
- package/dist/server/rpc/handlers/load-model/registry.js +0 -298
- package/dist/server/rpc/handlers/load-model/resolve-session.d.ts +0 -34
- package/dist/server/rpc/handlers/load-model/resolve-session.js +0 -62
- package/dist/server/rpc/handlers/load-model/resolve.d.ts +0 -16
- package/dist/server/rpc/handlers/load-model/resolve.js +0 -237
- package/dist/server/rpc/handlers/load-model/types.d.ts +0 -60
- package/dist/server/rpc/handlers/load-model/types.js +0 -28
- package/dist/server/rpc/handlers/load-model-delegated.d.ts +0 -7
- package/dist/server/rpc/handlers/load-model-delegated.js +0 -132
- package/dist/server/rpc/handlers/logging-stream.d.ts +0 -3
- package/dist/server/rpc/handlers/logging-stream.js +0 -39
- package/dist/server/rpc/handlers/ocr-stream.d.ts +0 -3
- package/dist/server/rpc/handlers/ocr-stream.js +0 -4
- package/dist/server/rpc/handlers/plugin-dispatch.d.ts +0 -3
- package/dist/server/rpc/handlers/plugin-dispatch.js +0 -63
- package/dist/server/rpc/handlers/plugin-invoke.d.ts +0 -4
- package/dist/server/rpc/handlers/plugin-invoke.js +0 -81
- package/dist/server/rpc/handlers/provideHandler/connection.d.ts +0 -3
- package/dist/server/rpc/handlers/provideHandler/connection.js +0 -38
- package/dist/server/rpc/handlers/provideHandler/handler.d.ts +0 -3
- package/dist/server/rpc/handlers/provideHandler/handler.js +0 -66
- package/dist/server/rpc/handlers/provideHandler/proxy.d.ts +0 -3
- package/dist/server/rpc/handlers/provideHandler/proxy.js +0 -24
- package/dist/server/rpc/handlers/provideHandler.d.ts +0 -2
- package/dist/server/rpc/handlers/provideHandler.js +0 -2
- package/dist/server/rpc/handlers/rag.d.ts +0 -3
- package/dist/server/rpc/handlers/rag.js +0 -272
- package/dist/server/rpc/handlers/registry.d.ts +0 -5
- package/dist/server/rpc/handlers/registry.js +0 -155
- package/dist/server/rpc/handlers/resume.d.ts +0 -3
- package/dist/server/rpc/handlers/resume.js +0 -11
- package/dist/server/rpc/handlers/state.d.ts +0 -3
- package/dist/server/rpc/handlers/state.js +0 -7
- package/dist/server/rpc/handlers/stopProvideHandler.d.ts +0 -3
- package/dist/server/rpc/handlers/stopProvideHandler.js +0 -29
- package/dist/server/rpc/handlers/suspend.d.ts +0 -3
- package/dist/server/rpc/handlers/suspend.js +0 -11
- package/dist/server/rpc/handlers/text-to-speech-stream.d.ts +0 -3
- package/dist/server/rpc/handlers/text-to-speech-stream.js +0 -4
- package/dist/server/rpc/handlers/text-to-speech.d.ts +0 -3
- package/dist/server/rpc/handlers/text-to-speech.js +0 -4
- package/dist/server/rpc/handlers/transcribe-stream.d.ts +0 -3
- package/dist/server/rpc/handlers/transcribe-stream.js +0 -4
- package/dist/server/rpc/handlers/transcribe.d.ts +0 -3
- package/dist/server/rpc/handlers/transcribe.js +0 -4
- package/dist/server/rpc/handlers/translate.d.ts +0 -3
- package/dist/server/rpc/handlers/translate.js +0 -4
- package/dist/server/rpc/handlers/unload-model-delegated.d.ts +0 -3
- package/dist/server/rpc/handlers/unload-model-delegated.js +0 -32
- package/dist/server/rpc/handlers/unload-model.d.ts +0 -3
- package/dist/server/rpc/handlers/unload-model.js +0 -29
- package/dist/server/rpc/handlers/upscale-stream.d.ts +0 -3
- package/dist/server/rpc/handlers/upscale-stream.js +0 -4
- package/dist/server/rpc/handlers/video-stream.d.ts +0 -3
- package/dist/server/rpc/handlers/video-stream.js +0 -4
- package/dist/server/rpc/index.d.ts +0 -3
- package/dist/server/rpc/index.js +0 -2
- package/dist/server/rpc/method-shapes.d.ts +0 -53
- package/dist/server/rpc/method-shapes.js +0 -50
- package/dist/server/rpc/profiling/backend-diagnostics.d.ts +0 -3
- package/dist/server/rpc/profiling/backend-diagnostics.js +0 -16
- package/dist/server/rpc/profiling/context.d.ts +0 -18
- package/dist/server/rpc/profiling/context.js +0 -37
- package/dist/server/rpc/profiling/delegation-profiler.d.ts +0 -32
- package/dist/server/rpc/profiling/delegation-profiler.js +0 -153
- package/dist/server/rpc/profiling/index.d.ts +0 -5
- package/dist/server/rpc/profiling/index.js +0 -4
- package/dist/server/rpc/profiling/operation-metrics.d.ts +0 -25
- package/dist/server/rpc/profiling/operation-metrics.js +0 -361
- package/dist/server/rpc/profiling/operation-wrappers.d.ts +0 -18
- package/dist/server/rpc/profiling/operation-wrappers.js +0 -196
- package/dist/server/rpc/profiling/profiler.d.ts +0 -13
- package/dist/server/rpc/profiling/profiler.js +0 -93
- package/dist/server/rpc/rpc-utils.d.ts +0 -5
- package/dist/server/rpc/transport-selector.d.ts +0 -3
- package/dist/server/rpc/transport-selector.js +0 -18
- package/dist/server/utils/archive.d.ts +0 -4
- package/dist/server/utils/archive.js +0 -177
- package/dist/server/utils/audio/decoder.d.ts +0 -41
- package/dist/server/utils/audio/decoder.js +0 -108
- package/dist/server/utils/cache/auto-history.d.ts +0 -4
- package/dist/server/utils/cache/auto-history.js +0 -26
- package/dist/server/utils/cache/paths.d.ts +0 -43
- package/dist/server/utils/cache/paths.js +0 -133
- package/dist/server/utils/cache/types.d.ts +0 -8
- package/dist/server/utils/cache/types.js +0 -1
- package/dist/server/utils/checksum.d.ts +0 -4
- package/dist/server/utils/checksum.js +0 -30
- package/dist/server/utils/clear-storage.d.ts +0 -5
- package/dist/server/utils/clear-storage.js +0 -14
- package/dist/server/utils/completion-normalizer.d.ts +0 -18
- package/dist/server/utils/completion-normalizer.js +0 -453
- package/dist/server/utils/config-transform.d.ts +0 -6
- package/dist/server/utils/config-transform.js +0 -27
- package/dist/server/utils/formatting.d.ts +0 -19
- package/dist/server/utils/formatting.js +0 -56
- package/dist/server/utils/gguf-tensor-extractor.d.ts +0 -15
- package/dist/server/utils/gguf-tensor-extractor.js +0 -310
- package/dist/server/utils/index.d.ts +0 -11
- package/dist/server/utils/index.js +0 -10
- package/dist/server/utils/multi-gpu-mobile.d.ts +0 -5
- package/dist/server/utils/multi-gpu-mobile.js +0 -10
- package/dist/server/utils/path-security.d.ts +0 -12
- package/dist/server/utils/path-security.js +0 -25
- package/dist/server/utils/qvac-paths.js +0 -5
- package/dist/server/utils/response-format.d.ts +0 -3
- package/dist/server/utils/response-format.js +0 -20
- package/dist/server/utils/shard-utils.d.ts +0 -49
- package/dist/server/utils/shard-utils.js +0 -137
- package/dist/server/utils/tool-integration.d.ts +0 -17
- package/dist/server/utils/tool-integration.js +0 -20
- package/dist/server/utils/tools/dialect.d.ts +0 -8
- package/dist/server/utils/tools/dialect.js +0 -20
- package/dist/server/utils/tools/index.d.ts +0 -3
- package/dist/server/utils/tools/index.js +0 -2
- package/dist/server/utils/tools/parser.d.ts +0 -6
- package/dist/server/utils/tools/parser.js +0 -69
- package/dist/server/utils/tools/parsers/dsml.d.ts +0 -4
- package/dist/server/utils/tools/parsers/dsml.js +0 -176
- package/dist/server/utils/tools/parsers/gemma4native.d.ts +0 -4
- package/dist/server/utils/tools/parsers/gemma4native.js +0 -65
- package/dist/server/utils/tools/parsers/harmony.d.ts +0 -4
- package/dist/server/utils/tools/parsers/harmony.js +0 -57
- package/dist/server/utils/tools/parsers/hermes.d.ts +0 -4
- package/dist/server/utils/tools/parsers/hermes.js +0 -122
- package/dist/server/utils/tools/parsers/json.d.ts +0 -6
- package/dist/server/utils/tools/parsers/json.js +0 -115
- package/dist/server/utils/tools/parsers/pythonic.d.ts +0 -4
- package/dist/server/utils/tools/parsers/pythonic.js +0 -267
- package/dist/server/utils/tools/parsers/qwen35.d.ts +0 -4
- package/dist/server/utils/tools/parsers/qwen35.js +0 -124
- package/dist/server/utils/tools/shared.d.ts +0 -18
- package/dist/server/utils/tools/shared.js +0 -52
- package/dist/server/utils/worker-lock.js +0 -67
- package/dist/server/worker-core.d.ts +0 -23
- package/dist/server/worker-core.js +0 -206
- package/dist/server/worker.d.ts +0 -5
- package/dist/server/worker.js +0 -34
- package/dist/utils/aggregate-events.d.ts +0 -26
- package/dist/utils/aggregate-events.js +0 -73
- package/dist/utils/errors-client.d.ts +0 -178
- package/dist/utils/errors-client.js +0 -310
- package/dist/utils/errors-server.d.ts +0 -376
- package/dist/utils/errors-server.js +0 -610
- package/dist/utils/load-model-validation.js +0 -18
- package/dist/utils/mcp-adapter.d.ts +0 -12
- package/dist/utils/mcp-adapter.js +0 -96
- package/dist/utils/tool-helpers.d.ts +0 -25
- package/dist/utils/tool-helpers.js +0 -111
- /package/dist/{client → src/client}/api/client-request-id.d.ts +0 -0
- /package/dist/{client → src/client}/api/client-request-id.js +0 -0
- /package/dist/{client → src/client}/api/delete-cache.d.ts +0 -0
- /package/dist/{client → src/client}/api/subscribe-logs.js +0 -0
- /package/dist/{client → src/client}/config-loader/resolve-config.expo.d.ts +0 -0
- /package/dist/{client → src/client}/config-loader/resolve-config.node.d.ts +0 -0
- /package/dist/{client → src/client}/index.d.ts +0 -0
- /package/dist/{client → src/client}/index.js +0 -0
- /package/dist/{client → src/client}/logging-stream-registry.d.ts +0 -0
- /package/dist/{client → src/client}/logging-stream-registry.js +0 -0
- /package/dist/{client → src/client}/parse-input.d.ts +0 -0
- /package/dist/{client → src/client}/parse-input.js +0 -0
- /package/dist/{client → src/client}/rpc/ensure-worker-ready.d.ts +0 -0
- /package/dist/{client → src/client}/rpc/ensure-worker-ready.js +0 -0
- /package/dist/{client → src/client}/rpc/expo-device-info.d.ts +0 -0
- /package/dist/{client → src/client}/rpc/expo-device-info.js +0 -0
- /package/dist/{client → src/client}/rpc/expo-rpc-client.d.ts +0 -0
- /package/dist/{client → src/client}/rpc/node-rpc-client.d.ts +0 -0
- /package/dist/{client → src/client}/rpc/profiling/index.d.ts +0 -0
- /package/dist/{client → src/client}/rpc/profiling/index.js +0 -0
- /package/dist/{commands → src/commands}/bundle/bare-pack.d.ts +0 -0
- /package/dist/{commands → src/commands}/bundle/bare-pack.js +0 -0
- /package/dist/{commands → src/commands}/bundle/constants.d.ts +0 -0
- /package/dist/{commands → src/commands}/bundle/constants.js +0 -0
- /package/dist/{commands → src/commands}/bundle/entry-gen.d.ts +0 -0
- /package/dist/{commands → src/commands}/bundle/index.d.ts +0 -0
- /package/dist/{commands → src/commands}/bundle/manifest.d.ts +0 -0
- /package/dist/{commands → src/commands}/bundle/manifest.js +0 -0
- /package/dist/{commands → src/commands}/bundle/resolve-sdk-import.d.ts +0 -0
- /package/dist/{commands → src/commands}/verify/addon-source.d.ts +0 -0
- /package/dist/{commands → src/commands}/verify/addon-source.js +0 -0
- /package/dist/{commands → src/commands}/verify/resource-collectors.d.ts +0 -0
- /package/dist/{expo → src/expo}/plugins/find-in-ancestor-node-modules.d.ts +0 -0
- /package/dist/{expo → src/expo}/plugins/find-in-ancestor-node-modules.js +0 -0
- /package/dist/{expo → src/expo}/plugins/get-project-root.d.ts +0 -0
- /package/dist/{expo → src/expo}/plugins/get-project-root.js +0 -0
- /package/dist/{expo → src/expo}/plugins/index.d.ts +0 -0
- /package/dist/{expo → src/expo}/plugins/index.js +0 -0
- /package/dist/{expo → src/expo}/plugins/resolve-sdk-package-dir.d.ts +0 -0
- /package/dist/{expo → src/expo}/plugins/resolve-sdk-package-dir.js +0 -0
- /package/dist/{expo → src/expo}/plugins/withAndroidArchitecture.d.ts +0 -0
- /package/dist/{expo → src/expo}/plugins/withAndroidArchitecture.js +0 -0
- /package/dist/{expo → src/expo}/plugins/withAndroidNdkVersion.d.ts +0 -0
- /package/dist/{expo → src/expo}/plugins/withDeviceInfo.d.ts +0 -0
- /package/dist/{expo → src/expo}/plugins/withOpenCL.d.ts +0 -0
- /package/dist/{expo → src/expo}/plugins/withOpenCL.js +0 -0
- /package/dist/{expo → src/expo}/plugins/withQvacSDK.d.ts +0 -0
- /package/dist/{expo → src/expo}/plugins/withQvacSDK.js +0 -0
- /package/dist/{logging → src/logging}/addon.js +0 -0
- /package/dist/{logging → src/logging}/base-logger.d.ts +0 -0
- /package/dist/{logging → src/logging}/base-logger.js +0 -0
- /package/dist/{logging → src/logging}/client-logger.d.ts +0 -0
- /package/dist/{logging → src/logging}/client-logger.js +0 -0
- /package/dist/{logging → src/logging}/index.d.ts +0 -0
- /package/dist/{logging → src/logging}/index.js +0 -0
- /package/dist/{logging → src/logging}/logger.d.ts +0 -0
- /package/dist/{logging → src/logging}/logger.js +0 -0
- /package/dist/{server/bare/registry → src/logging}/logging-stream-registry.d.ts +0 -0
- /package/dist/{logging → src/logging}/server-logger.d.ts +0 -0
- /package/dist/{logging → src/logging}/server-logger.js +0 -0
- /package/dist/{logging → src/logging}/stream-logger.d.ts +0 -0
- /package/dist/{logging → src/logging}/transport.d.ts +0 -0
- /package/dist/{logging → src/logging}/transport.js +0 -0
- /package/dist/{logging → src/logging}/types.d.ts +0 -0
- /package/dist/{logging → src/logging}/types.js +0 -0
- /package/dist/{logging → src/logging}/utils.js +0 -0
- /package/dist/{pear → src/pear}/pre.d.ts +0 -0
- /package/dist/{server → src/server}/env.d.ts +0 -0
- /package/dist/{server → src/server}/env.js +0 -0
- /package/dist/{server → src/server}/error-handlers.d.ts +0 -0
- /package/dist/{server → src/server}/rpc/progress-throttle.d.ts +0 -0
- /package/dist/{server → src/server}/rpc/progress-throttle.js +0 -0
- /package/dist/{server → src/server}/rpc/rpc-utils.js +0 -0
- /package/dist/{server → src/server}/utils/qvac-paths.d.ts +0 -0
- /package/dist/{server → src/server}/utils/worker-lock.d.ts +0 -0
- /package/dist/{utils → src/utils}/cache-normalize.d.ts +0 -0
- /package/dist/{utils → src/utils}/cache-normalize.js +0 -0
- /package/dist/{utils → src/utils}/decorate-promise.d.ts +0 -0
- /package/dist/{utils → src/utils}/decorate-promise.js +0 -0
- /package/dist/{utils → src/utils}/encoding.d.ts +0 -0
- /package/dist/{utils → src/utils}/encoding.js +0 -0
- /package/dist/{utils → src/utils}/errors-base.d.ts +0 -0
- /package/dist/{utils → src/utils}/errors-base.js +0 -0
- /package/dist/{utils → src/utils}/global-singleton.d.ts +0 -0
- /package/dist/{utils → src/utils}/global-singleton.js +0 -0
- /package/dist/{utils → src/utils}/load-model-validation.d.ts +0 -0
- /package/dist/{utils → src/utils}/object.d.ts +0 -0
- /package/dist/{utils → src/utils}/object.js +0 -0
- /package/dist/{utils → src/utils}/path-sanitize.d.ts +0 -0
- /package/dist/{utils → src/utils}/path-sanitize.js +0 -0
- /package/dist/{utils → src/utils}/withTimeout.d.ts +0 -0
- /package/dist/{utils → src/utils}/withTimeout.js +0 -0
- /package/dist/{utils → src/utils}/zod-error.d.ts +0 -0
- /package/dist/{utils → src/utils}/zod-error.js +0 -0
- /package/dist/{server/rpc → src/worker}/create-server.d.ts +0 -0
- /package/dist/{server/rpc → src/worker}/handle-request.d.ts +0 -0
- /package/{electron-forge → src/electron-forge}/index.cjs +0 -0
- /package/{expo → src/expo}/plugins/patches/android-link.mjs +0 -0
- /package/{expo → src/expo}/plugins/patches/ios-link.mjs +0 -0
|
@@ -1,746 +0,0 @@
|
|
|
1
|
-
import { promises as fsPromises } from 'bare-fs';
|
|
2
|
-
import path from 'bare-path';
|
|
3
|
-
import { findMatchingCache, generateConfigHash, getCacheFilePath, getCurrentCacheInfo, pruneEmptyCacheDirectories, renameCacheFile, deleteCache as deleteCacheUtil } from '../../../../../server/bare/ops/kv-cache-utils.js';
|
|
4
|
-
import { isCachePathWithinDirectory, markAutoCacheKey, planAutoCacheEvictions, removeAutoCacheMarker, removeAutoCacheMarkerIfMissing } from '../../../../../server/bare/ops/kv-cache-retention.js';
|
|
5
|
-
import { isMobile } from '../../../../../server/bare/registry/runtime-context-registry.js';
|
|
6
|
-
import { getKVCacheDir } from '../../../../../server/utils/index.js';
|
|
7
|
-
import { logCacheSaveError, logCacheStatus } from '../../../../../server/bare/plugins/llamacpp-completion/ops/cache-logger.js';
|
|
8
|
-
import { getServerLogger } from '../../../../../logging/index.js';
|
|
9
|
-
// Used by cross-model paths that have no `RequestContext` (e.g.
|
|
10
|
-
// `deleteKvCacheState`). Per-session call sites receive a logger from
|
|
11
|
-
// the caller — typically `withRequestContext(...)`.
|
|
12
|
-
const moduleLogger = getServerLogger();
|
|
13
|
-
/**
|
|
14
|
-
* What the kv-cache file on disk is known to cover, keyed by cache path.
|
|
15
|
-
* Written by `commitTurn`, read by `getSavedCount`, deleted by `rollback` /
|
|
16
|
-
* `delete` / `dropStaleSavedCount`. The same INVARIANT that existed in
|
|
17
|
-
* `kv-cache-state.ts` still holds: an entry is present only when the
|
|
18
|
-
* corresponding `.bin` file is considered trustworthy. Cancelled or
|
|
19
|
-
* zero-token turns must remove the entry so the next-turn slice doesn't read
|
|
20
|
-
* a stale boundary.
|
|
21
|
-
*/
|
|
22
|
-
const cachedPrefixes = new Map();
|
|
23
|
-
/**
|
|
24
|
-
* In-memory registry of caches initialized this session. The addon
|
|
25
|
-
* defers disk writes, so the absence of a `.bin` file on disk isn't
|
|
26
|
-
* proof that the cache hasn't been primed in this worker process. Keyed
|
|
27
|
-
* by the resolved cache path, so aliased keys that name one file share an
|
|
28
|
-
* entry and on-disk caches from older worker runs still hit the lazy-load
|
|
29
|
-
* path in `beginTurn`.
|
|
30
|
-
*/
|
|
31
|
-
const initializedCaches = new Set();
|
|
32
|
-
const activeCachePaths = new Map();
|
|
33
|
-
const DESKTOP_AUTO_CACHE_MAX_BYTES = 4 * 1024 * 1024 * 1024;
|
|
34
|
-
const MOBILE_AUTO_CACHE_MAX_BYTES = 512 * 1024 * 1024;
|
|
35
|
-
const AUTO_CACHE_MAX_IDLE_MS = 24 * 60 * 60 * 1000;
|
|
36
|
-
const AUTO_CACHE_SWEEP_INTERVAL_MS = 5 * 60 * 1000;
|
|
37
|
-
let lastAutoCacheSweepMs = 0;
|
|
38
|
-
let autoCacheSweepInFlight = null;
|
|
39
|
-
let cacheStateLockTail = Promise.resolve();
|
|
40
|
-
const cachePathLocks = new Map();
|
|
41
|
-
// Internal sentinel so acquisition paths prune directories/markers only when a
|
|
42
|
-
// queued lock wait was aborted, not when lock acquisition failed for another
|
|
43
|
-
// reason.
|
|
44
|
-
class CacheLockAbortError extends Error {
|
|
45
|
-
constructor(cause) {
|
|
46
|
-
super('cache lock wait aborted', cause !== undefined ? { cause } : undefined);
|
|
47
|
-
this.name = 'CacheLockAbortError';
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// Case-fold the lock-map key so case-only path variants (e.g. "Session" vs
|
|
51
|
-
// "session"), which name the SAME file on case-insensitive filesystems (default
|
|
52
|
-
// macOS/Windows), serialise on one lock and can't interleave writes. Over-locks
|
|
53
|
-
// case-only variants on case-sensitive filesystems, which is safe. NOTE: the
|
|
54
|
-
// other per-path bookkeeping (activeCachePaths, cachedPrefixes, retention)
|
|
55
|
-
// stays case-sensitive, so case-only key variants are otherwise unsupported —
|
|
56
|
-
// see the KV-cache system doc.
|
|
57
|
-
function lockKeyFor(cachePath) {
|
|
58
|
-
return cachePath.toLowerCase();
|
|
59
|
-
}
|
|
60
|
-
function releaseCachePathWriteLock(lockKey) {
|
|
61
|
-
const lock = cachePathLocks.get(lockKey);
|
|
62
|
-
if (!lock)
|
|
63
|
-
return;
|
|
64
|
-
const next = lock.waiters.shift();
|
|
65
|
-
if (next) {
|
|
66
|
-
next.grant();
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
lock.held = false;
|
|
70
|
-
cachePathLocks.delete(lockKey);
|
|
71
|
-
}
|
|
72
|
-
// Returns the release fn. Aborting while queued rejects and removes the waiter.
|
|
73
|
-
async function acquireCachePathWriteLock(cachePath, signal) {
|
|
74
|
-
const lockKey = lockKeyFor(cachePath);
|
|
75
|
-
let lock = cachePathLocks.get(lockKey);
|
|
76
|
-
if (!lock) {
|
|
77
|
-
lock = { held: false, waiters: [] };
|
|
78
|
-
cachePathLocks.set(lockKey, lock);
|
|
79
|
-
}
|
|
80
|
-
if (!lock.held) {
|
|
81
|
-
lock.held = true;
|
|
82
|
-
return () => releaseCachePathWriteLock(lockKey);
|
|
83
|
-
}
|
|
84
|
-
await new Promise((resolve, reject) => {
|
|
85
|
-
const waiter = {
|
|
86
|
-
grant: () => {
|
|
87
|
-
signal?.removeEventListener('abort', onAbort);
|
|
88
|
-
resolve();
|
|
89
|
-
},
|
|
90
|
-
drop: (reason) => reject(reason)
|
|
91
|
-
};
|
|
92
|
-
const onAbort = () => {
|
|
93
|
-
const index = lock.waiters.indexOf(waiter);
|
|
94
|
-
if (index !== -1)
|
|
95
|
-
lock.waiters.splice(index, 1);
|
|
96
|
-
waiter.drop(new CacheLockAbortError(signal?.reason));
|
|
97
|
-
};
|
|
98
|
-
if (signal?.aborted) {
|
|
99
|
-
onAbort();
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
lock.waiters.push(waiter);
|
|
103
|
-
signal?.addEventListener('abort', onAbort, { once: true });
|
|
104
|
-
});
|
|
105
|
-
return () => releaseCachePathWriteLock(lockKey);
|
|
106
|
-
}
|
|
107
|
-
function markCachePathActive(cachePath) {
|
|
108
|
-
activeCachePaths.set(cachePath, (activeCachePaths.get(cachePath) ?? 0) + 1);
|
|
109
|
-
}
|
|
110
|
-
function releaseCachePath(cachePath) {
|
|
111
|
-
const count = activeCachePaths.get(cachePath);
|
|
112
|
-
if (count === undefined)
|
|
113
|
-
return;
|
|
114
|
-
if (count === 1) {
|
|
115
|
-
activeCachePaths.delete(cachePath);
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
activeCachePaths.set(cachePath, count - 1);
|
|
119
|
-
}
|
|
120
|
-
// Paths in-flight turns hold, so pruning skips a directory still in use.
|
|
121
|
-
function snapshotActivePaths() {
|
|
122
|
-
return Array.from(activeCachePaths.keys());
|
|
123
|
-
}
|
|
124
|
-
function isCacheKeyActive(cacheKey) {
|
|
125
|
-
const cacheDirectory = path.join(getKVCacheDir(), cacheKey);
|
|
126
|
-
return Array.from(activeCachePaths.keys()).some((cachePath) => isCachePathWithinDirectory(cacheDirectory, cachePath));
|
|
127
|
-
}
|
|
128
|
-
function getAutoCacheMaxBytes() {
|
|
129
|
-
return isMobile() ? MOBILE_AUTO_CACHE_MAX_BYTES : DESKTOP_AUTO_CACHE_MAX_BYTES;
|
|
130
|
-
}
|
|
131
|
-
async function withCacheStateLock(operation) {
|
|
132
|
-
const previous = cacheStateLockTail;
|
|
133
|
-
let releaseLock = () => { };
|
|
134
|
-
cacheStateLockTail = new Promise((resolve) => {
|
|
135
|
-
releaseLock = resolve;
|
|
136
|
-
});
|
|
137
|
-
await previous;
|
|
138
|
-
try {
|
|
139
|
-
return await operation();
|
|
140
|
-
}
|
|
141
|
-
finally {
|
|
142
|
-
releaseLock();
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
async function maybeSweepAutoCaches(logger, overrides) {
|
|
146
|
-
const nowMs = overrides?.nowMs ?? Date.now();
|
|
147
|
-
if (autoCacheSweepInFlight !== null) {
|
|
148
|
-
await autoCacheSweepInFlight;
|
|
149
|
-
if (!overrides?.force)
|
|
150
|
-
return;
|
|
151
|
-
return maybeSweepAutoCaches(logger, overrides);
|
|
152
|
-
}
|
|
153
|
-
if (!overrides?.force && nowMs - lastAutoCacheSweepMs < AUTO_CACHE_SWEEP_INTERVAL_MS)
|
|
154
|
-
return;
|
|
155
|
-
lastAutoCacheSweepMs = nowMs;
|
|
156
|
-
const sweep = async () => {
|
|
157
|
-
try {
|
|
158
|
-
const cacheKeys = await planAutoCacheEvictions({
|
|
159
|
-
activeCachePaths: Array.from(activeCachePaths.keys()),
|
|
160
|
-
maxBytes: overrides?.maxBytes ?? getAutoCacheMaxBytes(),
|
|
161
|
-
maxIdleMs: overrides?.maxIdleMs ?? AUTO_CACHE_MAX_IDLE_MS,
|
|
162
|
-
nowMs
|
|
163
|
-
});
|
|
164
|
-
let evictionCount = 0;
|
|
165
|
-
await withCacheStateLock(async () => {
|
|
166
|
-
for (const cacheKey of cacheKeys) {
|
|
167
|
-
if (isCacheKeyActive(cacheKey))
|
|
168
|
-
continue;
|
|
169
|
-
await deleteKvCacheState({ kvCacheKey: cacheKey });
|
|
170
|
-
evictionCount++;
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
if (evictionCount > 0) {
|
|
174
|
-
logger.debug(`[kv-cache] Evicted ${evictionCount} inactive auto-cache entries`);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
catch (error) {
|
|
178
|
-
logger.warn(`[kv-cache] Auto-cache retention sweep failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
|
-
const sweepPromise = sweep();
|
|
182
|
-
autoCacheSweepInFlight = sweepPromise;
|
|
183
|
-
try {
|
|
184
|
-
await sweepPromise;
|
|
185
|
-
}
|
|
186
|
-
finally {
|
|
187
|
-
autoCacheSweepInFlight = null;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
function scheduleAutoCacheSweep(logger) {
|
|
191
|
-
void maybeSweepAutoCaches(logger).catch((error) => {
|
|
192
|
-
logger.warn(`[kv-cache] Failed to schedule auto-cache retention sweep: ${error instanceof Error ? error.message : String(error)}`);
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
// ----- factory -----
|
|
196
|
-
/**
|
|
197
|
-
* Construct a session bound to one `(modelId, turn-owning request)`
|
|
198
|
-
* scope. `options.logger` is the per-instance logger the session emits
|
|
199
|
-
* through (typically `withRequestContext(getServerLogger(), ctx)`);
|
|
200
|
-
* falls back to the module-scoped logger when omitted.
|
|
201
|
-
*/
|
|
202
|
-
export function createKvCacheSession(modelId, options) {
|
|
203
|
-
const logger = options?.logger ?? moduleLogger;
|
|
204
|
-
// Per-session map: each `TurnHandle` carries an opaque entry here. A
|
|
205
|
-
// WeakMap so handles drop their state once the handler scope releases
|
|
206
|
-
// the reference; the module-scoped maps above survive.
|
|
207
|
-
const turnState = new WeakMap();
|
|
208
|
-
function makeHandle(cachePath, autoCacheKey, releaseWriteLock = () => { }, signal) {
|
|
209
|
-
const cached = cachedPrefixes.get(cachePath);
|
|
210
|
-
const handle = {
|
|
211
|
-
cachePath,
|
|
212
|
-
savedCount: cached?.messages ?? 0,
|
|
213
|
-
toolBlockCached: cached?.toolBlock ?? false
|
|
214
|
-
};
|
|
215
|
-
turnState.set(handle, {
|
|
216
|
-
cachePath,
|
|
217
|
-
...(autoCacheKey !== undefined && { autoCacheKey }),
|
|
218
|
-
...(signal !== undefined && { signal }),
|
|
219
|
-
releaseWriteLock,
|
|
220
|
-
committed: false,
|
|
221
|
-
rolledBack: false
|
|
222
|
-
});
|
|
223
|
-
markCachePathActive(cachePath);
|
|
224
|
-
return handle;
|
|
225
|
-
}
|
|
226
|
-
async function beginCustom(input) {
|
|
227
|
-
const cachePath = await getCacheFilePath(modelId, input.configHash, input.customKey);
|
|
228
|
-
// Held for the whole turn so a same-file peer can't interleave writes.
|
|
229
|
-
// Released on commit/rollback/error; throws if aborted while queued.
|
|
230
|
-
let releaseWriteLock;
|
|
231
|
-
try {
|
|
232
|
-
releaseWriteLock = await acquireCachePathWriteLock(cachePath, input.signal);
|
|
233
|
-
}
|
|
234
|
-
catch (error) {
|
|
235
|
-
// Aborted while queued: no lock is held to release, and getCacheFilePath
|
|
236
|
-
// already mkdir'd this key's parent (a distinct dir under a case variant),
|
|
237
|
-
// so prune it before the cancellation propagates.
|
|
238
|
-
if (error instanceof CacheLockAbortError) {
|
|
239
|
-
await pruneEmptyCacheDirectories(cachePath, snapshotActivePaths());
|
|
240
|
-
}
|
|
241
|
-
throw error;
|
|
242
|
-
}
|
|
243
|
-
// A turn cancelled by the time it holds the lock must not prime (native work).
|
|
244
|
-
// getCacheFilePath already mkdir'd the parent, so prune it before surfacing
|
|
245
|
-
// the cancellation the plugin rides.
|
|
246
|
-
if (input.signal?.aborted) {
|
|
247
|
-
await pruneEmptyCacheDirectories(cachePath, snapshotActivePaths());
|
|
248
|
-
releaseWriteLock();
|
|
249
|
-
throw new CacheLockAbortError(input.signal.reason);
|
|
250
|
-
}
|
|
251
|
-
const handle = makeHandle(cachePath, undefined, releaseWriteLock, input.signal);
|
|
252
|
-
try {
|
|
253
|
-
// In-memory registry check first — the addon defers disk writes, so
|
|
254
|
-
// a freshly-primed cache may not yet exist on disk. If the
|
|
255
|
-
// in-memory flag isn't set, fall back to a filesystem probe so
|
|
256
|
-
// caches surviving across worker restarts still hit the reuse path.
|
|
257
|
-
let exists = initializedCaches.has(cachePath);
|
|
258
|
-
if (!exists) {
|
|
259
|
-
try {
|
|
260
|
-
await fsPromises.access(cachePath);
|
|
261
|
-
exists = true;
|
|
262
|
-
initializedCaches.add(cachePath);
|
|
263
|
-
}
|
|
264
|
-
catch {
|
|
265
|
-
exists = false;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
logCacheStatus(input.customKey, exists);
|
|
269
|
-
if (!exists) {
|
|
270
|
-
// Recreate the parent dir if a same-key peer's rollback pruned it after our lock wait.
|
|
271
|
-
await fsPromises.mkdir(path.dirname(cachePath), { recursive: true });
|
|
272
|
-
// The access probe / mkdir above yielded, so a cancel may have landed
|
|
273
|
-
// since the acquire-time check — re-check right before native priming.
|
|
274
|
-
// The catch below prunes the directory just created.
|
|
275
|
-
if (input.signal?.aborted)
|
|
276
|
-
throw new CacheLockAbortError(input.signal.reason);
|
|
277
|
-
await input.primeIfMissing(cachePath);
|
|
278
|
-
await verifyPrimedFile(cachePath, logger);
|
|
279
|
-
initializedCaches.add(cachePath);
|
|
280
|
-
}
|
|
281
|
-
return handle;
|
|
282
|
-
}
|
|
283
|
-
catch (error) {
|
|
284
|
-
releaseCachePath(cachePath);
|
|
285
|
-
await pruneEmptyCacheDirectories(cachePath, snapshotActivePaths());
|
|
286
|
-
releaseWriteLock();
|
|
287
|
-
throw error;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
async function beginAuto(input) {
|
|
291
|
-
// The path comes from a history lookup, so: discover it, lock it (outside
|
|
292
|
-
// the state lock, or commitTurn's rename could deadlock a waiter), then
|
|
293
|
-
// re-check existence under the lock in case a same-file peer just renamed it.
|
|
294
|
-
const discovered = await withCacheStateLock(async () => {
|
|
295
|
-
const existingCache = await findMatchingCache(modelId, input.configHash, input.history);
|
|
296
|
-
const cacheInfo = existingCache ?? (await getCurrentCacheInfo(modelId, input.configHash, input.history));
|
|
297
|
-
return {
|
|
298
|
-
cachePath: cacheInfo.cachePath,
|
|
299
|
-
cacheKey: cacheInfo.cacheKey
|
|
300
|
-
};
|
|
301
|
-
});
|
|
302
|
-
const { cachePath, cacheKey } = discovered;
|
|
303
|
-
let releaseWriteLock;
|
|
304
|
-
try {
|
|
305
|
-
releaseWriteLock = await acquireCachePathWriteLock(cachePath, input.signal);
|
|
306
|
-
}
|
|
307
|
-
catch (error) {
|
|
308
|
-
// Aborted while queued: no lock is held to release. Discovery already
|
|
309
|
-
// mkdir'd the parent and wrote the auto marker; clean both before the
|
|
310
|
-
// cancellation propagates.
|
|
311
|
-
if (error instanceof CacheLockAbortError) {
|
|
312
|
-
await pruneEmptyCacheDirectories(cachePath, snapshotActivePaths());
|
|
313
|
-
await removeAutoCacheMarkerIfMissing(cacheKey);
|
|
314
|
-
}
|
|
315
|
-
throw error;
|
|
316
|
-
}
|
|
317
|
-
// A turn cancelled by the time it holds the lock must not prime (native work).
|
|
318
|
-
// Discovery already mkdir'd the parent and wrote the auto marker; clean both
|
|
319
|
-
// before surfacing the cancellation.
|
|
320
|
-
if (input.signal?.aborted) {
|
|
321
|
-
await pruneEmptyCacheDirectories(cachePath, snapshotActivePaths());
|
|
322
|
-
await removeAutoCacheMarkerIfMissing(cacheKey);
|
|
323
|
-
releaseWriteLock();
|
|
324
|
-
throw new CacheLockAbortError(input.signal.reason);
|
|
325
|
-
}
|
|
326
|
-
let handle;
|
|
327
|
-
let cacheExists;
|
|
328
|
-
try {
|
|
329
|
-
const resolved = await withCacheStateLock(async () => {
|
|
330
|
-
// Mark the path active under the state lock so retention can't evict it.
|
|
331
|
-
const h = makeHandle(cachePath, cacheKey, releaseWriteLock, input.signal);
|
|
332
|
-
let exists = initializedCaches.has(cachePath);
|
|
333
|
-
if (!exists) {
|
|
334
|
-
try {
|
|
335
|
-
await fsPromises.access(cachePath);
|
|
336
|
-
exists = true;
|
|
337
|
-
initializedCaches.add(cachePath);
|
|
338
|
-
}
|
|
339
|
-
catch {
|
|
340
|
-
exists = false;
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
return { h, exists };
|
|
344
|
-
});
|
|
345
|
-
handle = resolved.h;
|
|
346
|
-
cacheExists = resolved.exists;
|
|
347
|
-
}
|
|
348
|
-
catch (error) {
|
|
349
|
-
releaseWriteLock();
|
|
350
|
-
throw error;
|
|
351
|
-
}
|
|
352
|
-
logCacheStatus('auto', cacheExists);
|
|
353
|
-
try {
|
|
354
|
-
if (!cacheExists) {
|
|
355
|
-
// Recreate the parent dir if a same-file peer's rename pruned it.
|
|
356
|
-
await fsPromises.mkdir(path.dirname(cachePath), { recursive: true });
|
|
357
|
-
// The discovery / mkdir above yielded, so a cancel may have landed since
|
|
358
|
-
// the acquire-time check — re-check right before native priming. The
|
|
359
|
-
// catch below prunes the directory and auto marker.
|
|
360
|
-
if (input.signal?.aborted)
|
|
361
|
-
throw new CacheLockAbortError(input.signal.reason);
|
|
362
|
-
await input.primeIfMissing(cachePath);
|
|
363
|
-
await verifyPrimedFile(cachePath, logger);
|
|
364
|
-
initializedCaches.add(cachePath);
|
|
365
|
-
}
|
|
366
|
-
return handle;
|
|
367
|
-
}
|
|
368
|
-
catch (error) {
|
|
369
|
-
releaseCachePath(cachePath);
|
|
370
|
-
await pruneEmptyCacheDirectories(cachePath, snapshotActivePaths());
|
|
371
|
-
await removeAutoCacheMarkerIfMissing(cacheKey);
|
|
372
|
-
releaseWriteLock();
|
|
373
|
-
throw error;
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
async function beginTurn(input) {
|
|
377
|
-
if (input.kind === 'custom')
|
|
378
|
-
return beginCustom(input);
|
|
379
|
-
return beginAuto(input);
|
|
380
|
-
}
|
|
381
|
-
async function commitTurn(turn, result) {
|
|
382
|
-
const state = turnState.get(turn);
|
|
383
|
-
if (!state) {
|
|
384
|
-
// Handle from a different session or already torn down. Treat as
|
|
385
|
-
// no-op — caller shouldn't be reaching into another session's
|
|
386
|
-
// state, but failing loudly here punishes the rollback-after-end
|
|
387
|
-
// path more than it helps.
|
|
388
|
-
return;
|
|
389
|
-
}
|
|
390
|
-
if (state.committed || state.rolledBack)
|
|
391
|
-
return;
|
|
392
|
-
if (result.kind === 'static') {
|
|
393
|
-
// Custom-key path: the addon wrote the new cache state inline
|
|
394
|
-
// at the same path. Verify the file persisted (the addon
|
|
395
|
-
// currently swallows save errors — see TODO in
|
|
396
|
-
// `verifySaveAndRecord`) and record the new boundary.
|
|
397
|
-
const ok = await verifySaveAndRecord(state.cachePath, result.messageCount, result.toolBlockCached);
|
|
398
|
-
if (!ok) {
|
|
399
|
-
// The expected save didn't land — treat the turn as a rollback
|
|
400
|
-
// so the next turn re-primes cleanly.
|
|
401
|
-
await runRollback(state);
|
|
402
|
-
return;
|
|
403
|
-
}
|
|
404
|
-
state.committed = true;
|
|
405
|
-
releaseCachePath(state.cachePath);
|
|
406
|
-
state.releaseWriteLock();
|
|
407
|
-
return;
|
|
408
|
-
}
|
|
409
|
-
const sourceCachePath = state.cachePath;
|
|
410
|
-
const sourceCacheKey = state.autoCacheKey;
|
|
411
|
-
const targetCacheKey = path.basename(path.dirname(path.dirname(result.targetCachePath)));
|
|
412
|
-
// Hold the target's lock across the rename AND commit verification, so a peer
|
|
413
|
-
// resolving to the same file can't observe it before its saved count is
|
|
414
|
-
// published. Abortable: a cancel while waiting for the lock rejects here.
|
|
415
|
-
const releaseTargetLock = await acquireCachePathWriteLock(result.targetCachePath, state.signal);
|
|
416
|
-
try {
|
|
417
|
-
// A cancel that landed while we waited for the target lock must not commit.
|
|
418
|
-
if (state.signal?.aborted) {
|
|
419
|
-
await runRollback(state);
|
|
420
|
-
return;
|
|
421
|
-
}
|
|
422
|
-
const renamed = await withCacheStateLock(async () => {
|
|
423
|
-
markCachePathActive(result.targetCachePath);
|
|
424
|
-
try {
|
|
425
|
-
await fsPromises.mkdir(path.dirname(result.targetCachePath), { recursive: true });
|
|
426
|
-
await markAutoCacheKey(targetCacheKey);
|
|
427
|
-
if (!(await renameCacheFile(sourceCachePath, result.targetCachePath))) {
|
|
428
|
-
releaseCachePath(result.targetCachePath);
|
|
429
|
-
await pruneEmptyCacheDirectories(result.targetCachePath, snapshotActivePaths());
|
|
430
|
-
await removeAutoCacheMarkerIfMissing(targetCacheKey);
|
|
431
|
-
return false;
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
catch (setupError) {
|
|
435
|
-
// mkdir/markAutoCacheKey/rename threw after the target active-ref was
|
|
436
|
-
// taken: release it (first, so it can't leak) and prune any directory
|
|
437
|
-
// or marker created above, then propagate.
|
|
438
|
-
releaseCachePath(result.targetCachePath);
|
|
439
|
-
await pruneEmptyCacheDirectories(result.targetCachePath, snapshotActivePaths());
|
|
440
|
-
await removeAutoCacheMarkerIfMissing(targetCacheKey);
|
|
441
|
-
throw setupError;
|
|
442
|
-
}
|
|
443
|
-
releaseCachePath(sourceCachePath);
|
|
444
|
-
state.cachePath = result.targetCachePath;
|
|
445
|
-
state.autoCacheKey = targetCacheKey;
|
|
446
|
-
await pruneEmptyCacheDirectories(sourceCachePath, snapshotActivePaths());
|
|
447
|
-
if (sourceCacheKey !== undefined) {
|
|
448
|
-
await removeAutoCacheMarkerIfMissing(sourceCacheKey);
|
|
449
|
-
}
|
|
450
|
-
cachedPrefixes.delete(sourceCachePath);
|
|
451
|
-
// state.cachePath was just reassigned to the target; clear the SOURCE
|
|
452
|
-
// entry, not the freshly-valid target.
|
|
453
|
-
initializedCaches.delete(sourceCachePath);
|
|
454
|
-
return true;
|
|
455
|
-
});
|
|
456
|
-
if (!renamed) {
|
|
457
|
-
logger.warn(`[kv-cache] Auto cache rename failed; rolling back. from=${sourceCachePath} to=${result.targetCachePath}`);
|
|
458
|
-
await runRollback(state);
|
|
459
|
-
return;
|
|
460
|
-
}
|
|
461
|
-
const ok = await verifySaveAndRecord(result.targetCachePath, result.messageCount, result.toolBlockCached);
|
|
462
|
-
if (!ok) {
|
|
463
|
-
// Rename succeeded but the file isn't where we expected. Roll back via
|
|
464
|
-
// the target path instead of the (now-empty) source.
|
|
465
|
-
await runRollback(state);
|
|
466
|
-
return;
|
|
467
|
-
}
|
|
468
|
-
// Successful auto-rename. The handle's `cachePath` field still points at
|
|
469
|
-
// the (now-gone) source path — fine, the handle is committed and won't
|
|
470
|
-
// roll back. Future turns compute fresh paths.
|
|
471
|
-
state.committed = true;
|
|
472
|
-
releaseCachePath(state.cachePath);
|
|
473
|
-
state.releaseWriteLock();
|
|
474
|
-
scheduleAutoCacheSweep(logger);
|
|
475
|
-
}
|
|
476
|
-
finally {
|
|
477
|
-
releaseTargetLock();
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
async function rollback(turn) {
|
|
481
|
-
const state = turnState.get(turn);
|
|
482
|
-
if (!state)
|
|
483
|
-
return;
|
|
484
|
-
if (state.committed || state.rolledBack)
|
|
485
|
-
return;
|
|
486
|
-
await runRollback(state);
|
|
487
|
-
}
|
|
488
|
-
async function runRollback(state) {
|
|
489
|
-
// Order matters only weakly: unlink first so a partial disk-state
|
|
490
|
-
// can't be re-loaded by a sibling turn between the file delete and
|
|
491
|
-
// the in-memory clear. In practice handlers serialise per model;
|
|
492
|
-
// the order is belt-and-suspenders.
|
|
493
|
-
try {
|
|
494
|
-
await fsPromises.unlink(state.cachePath);
|
|
495
|
-
}
|
|
496
|
-
catch (unlinkError) {
|
|
497
|
-
logger.warn(`[kv-cache] Failed to remove cache file during rollback; next turn may load stale KV state. path=${state.cachePath} error=${unlinkError instanceof Error ? unlinkError.message : String(unlinkError)}`);
|
|
498
|
-
}
|
|
499
|
-
// Release before pruning so an empty parent can go; a sibling still holding
|
|
500
|
-
// the path keeps it in the active snapshot and protects the directory.
|
|
501
|
-
releaseCachePath(state.cachePath);
|
|
502
|
-
await pruneEmptyCacheDirectories(state.cachePath, snapshotActivePaths());
|
|
503
|
-
if (state.autoCacheKey !== undefined) {
|
|
504
|
-
await removeAutoCacheMarkerIfMissing(state.autoCacheKey);
|
|
505
|
-
}
|
|
506
|
-
initializedCaches.delete(state.cachePath);
|
|
507
|
-
cachedPrefixes.delete(state.cachePath);
|
|
508
|
-
state.rolledBack = true;
|
|
509
|
-
state.releaseWriteLock();
|
|
510
|
-
if (state.autoCacheKey !== undefined)
|
|
511
|
-
scheduleAutoCacheSweep(logger);
|
|
512
|
-
}
|
|
513
|
-
function dropStaleSavedCount(turn) {
|
|
514
|
-
const state = turnState.get(turn);
|
|
515
|
-
if (!state)
|
|
516
|
-
return;
|
|
517
|
-
cachedPrefixes.delete(state.cachePath);
|
|
518
|
-
}
|
|
519
|
-
return {
|
|
520
|
-
beginTurn,
|
|
521
|
-
commitTurn,
|
|
522
|
-
rollback,
|
|
523
|
-
dropStaleSavedCount
|
|
524
|
-
};
|
|
525
|
-
}
|
|
526
|
-
// ----- module-level administrative API -----
|
|
527
|
-
/**
|
|
528
|
-
* Atomically delete every layer of KV-cache state for a
|
|
529
|
-
* `(kvCacheKey, modelId)` pair, or wipe everything. Single entry point
|
|
530
|
-
* — the only mutation point for cross-model state outside of
|
|
531
|
-
* turn-scoped `commitTurn`/`rollback`.
|
|
532
|
-
*
|
|
533
|
-
* Why this isn't a method on `KvCacheSession`: deletes are
|
|
534
|
-
* cross-model (`all: true` has no model; the keyed form has
|
|
535
|
-
* `modelId` optional on the wire). A session, by contrast, is
|
|
536
|
-
* created with a *fixed* `modelId` for the duration of a turn. Making
|
|
537
|
-
* delete a method would force callers to materialise an irrelevant
|
|
538
|
-
* session for cross-model administrative cleanups.
|
|
539
|
-
*
|
|
540
|
-
* Layers cleared, in order:
|
|
541
|
-
* 1. On-disk: `deleteCache(...)` removes the matching directory
|
|
542
|
-
* tree (or wipes and recreates the root for `all: true`).
|
|
543
|
-
* 2. `cachedPrefixes`: prefix-cleanup by the removed directory
|
|
544
|
-
* so any per-cache count under the deleted tree is forgotten.
|
|
545
|
-
* 3. `initializedCaches`: prefix-cleanup by the same removed
|
|
546
|
-
* directory, since it is keyed by the resolved cache path.
|
|
547
|
-
*
|
|
548
|
-
* Concurrency with in-flight turns: this delete does not take the
|
|
549
|
-
* per-cache-path write locks, so it races any turn holding a `TurnHandle`
|
|
550
|
-
* for the same key. Deleting a key that is in active use is unsupported.
|
|
551
|
-
* Each individual mutation is idempotent (`unlink` no-ops if missing,
|
|
552
|
-
* `Map.delete` / `Set.delete` no-op on absent keys), but the layers are
|
|
553
|
-
* cleared without a lock, so an interleaving that lands the delete's
|
|
554
|
-
* in-memory cleanup after a concurrent turn has already renamed/committed
|
|
555
|
-
* its file splits state: the file stays on disk while its saved-count and
|
|
556
|
-
* init flag are cleared, so the next turn sees the file, skips priming, and
|
|
557
|
-
* reports `savedCount=0`. Callers must not delete a key that is in active use.
|
|
558
|
-
*/
|
|
559
|
-
export async function deleteKvCacheState(target) {
|
|
560
|
-
if ('all' in target) {
|
|
561
|
-
const removed = await deleteCacheUtil({ all: true });
|
|
562
|
-
cachedPrefixes.clear();
|
|
563
|
-
initializedCaches.clear();
|
|
564
|
-
// `removed` is the kv-cache root dir; surfaces it for ops
|
|
565
|
-
// visibility but isn't part of the contract.
|
|
566
|
-
moduleLogger.debug(`[kv-cache] Cleared all caches under ${removed}`);
|
|
567
|
-
return;
|
|
568
|
-
}
|
|
569
|
-
const removedPath = await deleteCacheUtil({
|
|
570
|
-
kvCacheKey: target.kvCacheKey,
|
|
571
|
-
...(target.modelId !== undefined && { modelId: target.modelId })
|
|
572
|
-
});
|
|
573
|
-
if (target.modelId === undefined) {
|
|
574
|
-
// Remove the marker by the root-relative key: an alias like "./<16hex>"
|
|
575
|
-
// still resolves to the canonical auto key, while a nested key such as
|
|
576
|
-
// "tenant/<16hex>" stays distinct — path.basename would wrongly collapse it
|
|
577
|
-
// onto the unrelated top-level auto marker.
|
|
578
|
-
await removeAutoCacheMarker(path.relative(getKVCacheDir(), removedPath));
|
|
579
|
-
}
|
|
580
|
-
// Prefix-cleanup the in-memory counts. The on-disk directory tree
|
|
581
|
-
// is `{kvCacheRoot}/{kvCacheKey}[/{modelId}]/`, so every entry in
|
|
582
|
-
// `cachedPrefixes` whose key is the removed directory itself
|
|
583
|
-
// or sits beneath it must go.
|
|
584
|
-
clearCachedMessageCountsByPrefix(removedPath, path.sep);
|
|
585
|
-
// initializedCaches is keyed by the resolved cachePath too, so clear it by
|
|
586
|
-
// the same removed-directory prefix as cachedPrefixes above.
|
|
587
|
-
clearInitializedCachesByPrefix(removedPath, path.sep);
|
|
588
|
-
}
|
|
589
|
-
// ----- private helpers -----
|
|
590
|
-
/**
|
|
591
|
-
* Verify that the addon actually persisted a usable cache file after a
|
|
592
|
-
* prime. Mirrors the `verifySaveAndRecord` access-probe used at commit
|
|
593
|
-
* time, applied at prime time so the session doesn't mark a cache
|
|
594
|
-
* `initializedCaches.add(...)` against a path that's missing or empty
|
|
595
|
-
* on disk.
|
|
596
|
-
*
|
|
597
|
-
* Failure modes this catches:
|
|
598
|
-
*
|
|
599
|
-
* - The addon's `model.run({ saveSessionPath })` was interrupted
|
|
600
|
-
* before the save call ran (e.g. signal abort during prefill); the
|
|
601
|
-
* prime closure resolves cleanly because addon save errors are not
|
|
602
|
-
* propagated, but no file is on disk.
|
|
603
|
-
* - The addon's `llama_state_save_file` was called but produced an
|
|
604
|
-
* empty file (out-of-space / fs error swallowed by the addon).
|
|
605
|
-
*
|
|
606
|
-
* Failure modes this does **NOT** catch:
|
|
607
|
-
*
|
|
608
|
-
* - A partial-but-nonzero file written by the addon (e.g. header +
|
|
609
|
-
* truncated KV state). Catching this requires either an
|
|
610
|
-
* addon-side change (have `CacheManager::writeCacheFile` check the
|
|
611
|
-
* return value of `llama_state_save_file` and throw on failure) or
|
|
612
|
-
* a structural hash check we can't currently compute from the
|
|
613
|
-
* SDK. Filed as a follow-up — see `cache-api.md` in the addon
|
|
614
|
-
* repo / tracking ticket.
|
|
615
|
-
*
|
|
616
|
-
* On failure we best-effort `unlink` an empty leftover file (so the
|
|
617
|
-
* next existence probe doesn't trust it) and throw — the handler in
|
|
618
|
-
* `completion-stream.ts` lets the error propagate up and no
|
|
619
|
-
* `initializedCaches` entry is recorded.
|
|
620
|
-
*/
|
|
621
|
-
async function verifyPrimedFile(cachePath, logger) {
|
|
622
|
-
let stats;
|
|
623
|
-
try {
|
|
624
|
-
stats = await fsPromises.stat(cachePath);
|
|
625
|
-
}
|
|
626
|
-
catch (statError) {
|
|
627
|
-
// ENOENT is the common case here — addon prime returned without
|
|
628
|
-
// calling save (most often: signal abort during prefill).
|
|
629
|
-
await pruneEmptyCacheDirectories(cachePath, snapshotActivePaths());
|
|
630
|
-
throw new Error(`[kv-cache] prime closure resolved but no cache file was written. path=${cachePath} cause=${statError instanceof Error ? statError.message : String(statError)}`);
|
|
631
|
-
}
|
|
632
|
-
if (stats.size === 0) {
|
|
633
|
-
// Best-effort cleanup so a future probe doesn't trust the empty
|
|
634
|
-
// file. Unlink failure is non-fatal — we still throw on the
|
|
635
|
-
// primary "prime didn't persist" condition.
|
|
636
|
-
try {
|
|
637
|
-
await fsPromises.unlink(cachePath);
|
|
638
|
-
await pruneEmptyCacheDirectories(cachePath, snapshotActivePaths());
|
|
639
|
-
}
|
|
640
|
-
catch (unlinkError) {
|
|
641
|
-
logger.warn(`[kv-cache] Failed to remove empty primed cache file. path=${cachePath} error=${unlinkError instanceof Error ? unlinkError.message : String(unlinkError)}`);
|
|
642
|
-
}
|
|
643
|
-
throw new Error(`[kv-cache] prime closure resolved but cache file is empty. path=${cachePath}`);
|
|
644
|
-
}
|
|
645
|
-
}
|
|
646
|
-
/**
|
|
647
|
-
* Verify the addon actually persisted the cache file before recording
|
|
648
|
-
* its message count. The addon currently swallows write errors
|
|
649
|
-
* silently, so a missing file means the next turn must resend the full
|
|
650
|
-
* history rather than slicing against a stale `savedCount`.
|
|
651
|
-
*
|
|
652
|
-
* TODO: once the addon surfaces save failures (e.g. throws
|
|
653
|
-
* `UnableToSaveSessionFile` when `llama_state_save_file` returns
|
|
654
|
-
* false), drop the `access()` probe and wrap the `model.run()` call in
|
|
655
|
-
* a real try/catch that forwards the error.
|
|
656
|
-
*/
|
|
657
|
-
async function verifySaveAndRecord(cachePath, messageCount, toolBlockCached) {
|
|
658
|
-
try {
|
|
659
|
-
await fsPromises.access(cachePath);
|
|
660
|
-
cachedPrefixes.set(cachePath, { messages: messageCount, toolBlock: toolBlockCached });
|
|
661
|
-
return true;
|
|
662
|
-
}
|
|
663
|
-
catch (err) {
|
|
664
|
-
cachedPrefixes.delete(cachePath);
|
|
665
|
-
logCacheSaveError(cachePath, err);
|
|
666
|
-
return false;
|
|
667
|
-
}
|
|
668
|
-
}
|
|
669
|
-
function clearCachedMessageCountsByPrefix(prefix, sep) {
|
|
670
|
-
if (!prefix) {
|
|
671
|
-
cachedPrefixes.clear();
|
|
672
|
-
return;
|
|
673
|
-
}
|
|
674
|
-
for (const key of cachedPrefixes.keys()) {
|
|
675
|
-
if (key === prefix) {
|
|
676
|
-
cachedPrefixes.delete(key);
|
|
677
|
-
continue;
|
|
678
|
-
}
|
|
679
|
-
if (!key.startsWith(prefix + sep))
|
|
680
|
-
continue;
|
|
681
|
-
cachedPrefixes.delete(key);
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
function clearInitializedCachesByPrefix(prefix, sep) {
|
|
685
|
-
if (!prefix) {
|
|
686
|
-
initializedCaches.clear();
|
|
687
|
-
return;
|
|
688
|
-
}
|
|
689
|
-
for (const key of initializedCaches) {
|
|
690
|
-
if (key === prefix || key.startsWith(prefix + sep))
|
|
691
|
-
initializedCaches.delete(key);
|
|
692
|
-
}
|
|
693
|
-
}
|
|
694
|
-
// ----- test-only escape hatches -----
|
|
695
|
-
/**
|
|
696
|
-
* Test-only access to the module-scoped state. Production code reaches
|
|
697
|
-
* for cache state exclusively through the session API; the unit suite
|
|
698
|
-
* for `kv-cache-session.test.ts` needs to seed and inspect raw state
|
|
699
|
-
* to assert the rollback / commit invariants. Not part of the public
|
|
700
|
-
* SDK surface.
|
|
701
|
-
*
|
|
702
|
-
* @internal
|
|
703
|
-
*/
|
|
704
|
-
export const __kvCacheSessionTestHooks = {
|
|
705
|
-
getSavedCount(cachePath) {
|
|
706
|
-
return cachedPrefixes.get(cachePath)?.messages;
|
|
707
|
-
},
|
|
708
|
-
setSavedCountForTest(cachePath, count) {
|
|
709
|
-
cachedPrefixes.set(cachePath, { messages: count, toolBlock: false });
|
|
710
|
-
},
|
|
711
|
-
getToolBlockCachedForTest(cachePath) {
|
|
712
|
-
return cachedPrefixes.get(cachePath)?.toolBlock ?? false;
|
|
713
|
-
},
|
|
714
|
-
hasInitializedPath(cachePath) {
|
|
715
|
-
return initializedCaches.has(cachePath);
|
|
716
|
-
},
|
|
717
|
-
getActivePathCountForTest(cachePath) {
|
|
718
|
-
return activeCachePaths.get(cachePath) ?? 0;
|
|
719
|
-
},
|
|
720
|
-
getLastAutoCacheSweepMsForTest() {
|
|
721
|
-
return lastAutoCacheSweepMs;
|
|
722
|
-
},
|
|
723
|
-
setLastAutoCacheSweepMsForTest(value) {
|
|
724
|
-
lastAutoCacheSweepMs = value;
|
|
725
|
-
},
|
|
726
|
-
resetForTest() {
|
|
727
|
-
cachedPrefixes.clear();
|
|
728
|
-
initializedCaches.clear();
|
|
729
|
-
activeCachePaths.clear();
|
|
730
|
-
lastAutoCacheSweepMs = 0;
|
|
731
|
-
autoCacheSweepInFlight = null;
|
|
732
|
-
cacheStateLockTail = Promise.resolve();
|
|
733
|
-
cachePathLocks.clear();
|
|
734
|
-
},
|
|
735
|
-
waitForAutoCacheSweepForTest() {
|
|
736
|
-
return autoCacheSweepInFlight ?? Promise.resolve();
|
|
737
|
-
},
|
|
738
|
-
sweepAutoCachesForTest(options) {
|
|
739
|
-
return maybeSweepAutoCaches(moduleLogger, { ...options, force: true });
|
|
740
|
-
}
|
|
741
|
-
};
|
|
742
|
-
// Re-export `generateConfigHash` from the path utilities so callers of
|
|
743
|
-
// the session can compute the hash without separately importing
|
|
744
|
-
// `kv-cache-utils`. The function itself stays in `kv-cache-utils.ts`
|
|
745
|
-
// (pure, no state) — only the re-export lives here.
|
|
746
|
-
export { generateConfigHash };
|