@qvac/sdk 0.8.0 → 1.0.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/LICENSE +24 -1
- package/README.md +191 -373
- package/dist/client/api/cancel.d.ts +4 -13
- package/dist/client/api/cancel.js +6 -16
- package/dist/client/api/completion-stream.d.ts +30 -24
- package/dist/client/api/completion-stream.js +70 -121
- package/dist/client/api/delete-cache.js +2 -3
- package/dist/client/api/download-asset.d.ts +5 -6
- package/dist/client/api/download-asset.js +20 -16
- package/dist/client/api/embed.d.ts +4 -21
- package/dist/client/api/embed.js +14 -4
- package/dist/client/api/index.d.ts +1 -5
- package/dist/client/api/index.js +1 -5
- package/dist/client/api/load-model.d.ts +21 -49
- package/dist/client/api/load-model.js +134 -40
- package/dist/client/api/logging-stream.d.ts +4 -7
- package/dist/client/api/logging-stream.js +5 -9
- package/dist/client/api/ping.d.ts +1 -1
- package/dist/client/api/ping.js +2 -3
- package/dist/client/api/provide.d.ts +1 -1
- package/dist/client/api/provide.js +3 -4
- package/dist/client/api/rag.d.ts +21 -216
- package/dist/client/api/rag.js +36 -396
- package/dist/client/api/stop-provider.d.ts +1 -1
- package/dist/client/api/stop-provider.js +3 -4
- package/dist/client/api/text-to-speech.d.ts +2 -2
- package/dist/client/api/text-to-speech.js +3 -3
- package/dist/client/api/transcribe.d.ts +5 -9
- package/dist/client/api/transcribe.js +9 -11
- package/dist/client/api/translate.d.ts +3 -3
- package/dist/client/api/translate.js +15 -15
- package/dist/client/api/unload-model.d.ts +1 -5
- package/dist/client/api/unload-model.js +4 -17
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/logging-stream-registry.d.ts +1 -1
- package/dist/client/logging-stream-registry.js +13 -14
- package/dist/client/rpc/bare-client.d.ts +139 -3
- package/dist/client/rpc/bare-client.js +16 -117
- package/dist/client/rpc/bare-rpc-client.d.ts +4 -0
- package/dist/client/rpc/bare-rpc-client.js +87 -0
- package/dist/client/rpc/expo-rpc-client.d.ts +1 -2
- package/dist/client/rpc/expo-rpc-client.js +14 -57
- package/dist/client/rpc/node-rpc-client.d.ts +8 -3
- package/dist/client/rpc/node-rpc-client.js +62 -218
- package/dist/client/rpc/rpc-client.d.ts +2 -3
- package/dist/client/rpc/rpc-client.js +49 -184
- package/dist/constants/audio.d.ts +2 -1
- package/dist/constants/audio.js +17 -1
- package/dist/constants/index.d.ts +0 -1
- package/dist/constants/index.js +0 -1
- package/dist/examples/delegated-inference/consumer.js +2 -3
- package/dist/examples/download-with-cancel.js +4 -3
- package/dist/examples/embed-hyperdrive.js +4 -39
- package/dist/examples/kv-cache-cleanup.js +2 -1
- package/dist/examples/kv-cache-custom-key.js +2 -16
- package/dist/examples/kv-cache-example.js +2 -1
- package/dist/examples/llamacpp-file-logging.d.ts +2 -0
- package/dist/examples/{logging-file-transport.js → llamacpp-file-logging.js} +8 -3
- package/dist/examples/llamacpp-filesystem.js +2 -2
- package/dist/examples/llamacpp-http.js +1 -0
- package/dist/examples/llamacpp-hyperdrive.js +2 -1
- package/dist/examples/llamacpp-multimodal.js +4 -3
- package/dist/examples/llamacpp-native-tools.js +30 -72
- package/dist/examples/multi-model-demo.js +3 -2
- package/dist/examples/parallel-download.js +14 -46
- package/dist/examples/rag/rag-chromadb.js +1 -0
- package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +2 -0
- package/dist/examples/rag/rag-hyperdb-workspaces.js +107 -0
- package/dist/examples/rag/rag-hyperdb.d.ts +2 -0
- package/dist/examples/rag/{rag-hyperdb/ingest.js → rag-hyperdb.js} +5 -10
- package/dist/examples/rag/rag-lancedb.js +1 -0
- package/dist/examples/rag/rag-sqlite.js +1 -0
- package/dist/examples/text-to-speech.d.ts +3 -0
- package/dist/examples/{tts/utils.js → text-to-speech.js} +63 -18
- package/dist/examples/translation/translation-indic.js +1 -4
- package/dist/examples/translation/translation-llm-context.js +1 -0
- package/dist/examples/translation/translation-llm.js +2 -2
- package/dist/examples/translation/translation-opus.js +3 -6
- package/dist/examples/translation/translation-stream.js +3 -3
- package/dist/examples/whispercpp-filesystem.js +43 -0
- package/dist/examples/{transcription/whispercpp-microphone-record.js → whispercpp-microphone-record.js} +9 -8
- package/dist/expo/plugins/index.d.ts +0 -3
- package/dist/expo/plugins/index.js +0 -3
- package/dist/expo/plugins/withMobileBundle.d.ts +2 -5
- package/dist/expo/plugins/withMobileBundle.js +40 -121
- package/dist/expo/plugins/withQvacSDK.d.ts +0 -4
- package/dist/expo/plugins/withQvacSDK.js +1 -26
- package/dist/index.d.ts +4 -9
- package/dist/index.js +5 -11
- package/dist/logging/base-logger.js +16 -26
- package/dist/logging/index.d.ts +1 -7
- package/dist/logging/index.js +1 -7
- package/dist/logging/logger.d.ts +2 -0
- package/dist/logging/logger.js +6 -11
- package/dist/logging/stream-logger.d.ts +1 -1
- package/dist/logging/stream-logger.js +3 -6
- package/dist/logging/transport.js +2 -2
- package/dist/logging/types.d.ts +0 -2
- package/dist/logging/utils.d.ts +0 -2
- package/dist/logging/utils.js +0 -62
- package/dist/models/{registry → hyperdrive}/index.js +1 -1
- package/dist/models/hyperdrive/models.d.ts +619 -0
- package/dist/models/hyperdrive/models.js +693 -0
- package/dist/schemas/cancel.d.ts +0 -6
- package/dist/schemas/cancel.js +0 -5
- package/dist/schemas/common.d.ts +164 -2973
- package/dist/schemas/common.js +1 -23
- package/dist/schemas/completion-stream.d.ts +60 -31
- package/dist/schemas/completion-stream.js +44 -20
- package/dist/schemas/delegate.d.ts +0 -1
- package/dist/schemas/delegate.js +0 -1
- package/dist/schemas/download-asset.d.ts +3 -125
- package/dist/schemas/download-asset.js +5 -22
- package/dist/schemas/embed.d.ts +3 -3
- package/dist/schemas/embed.js +2 -9
- package/dist/schemas/index.d.ts +1 -19
- package/dist/schemas/index.js +1 -19
- package/dist/schemas/llamacpp-config.d.ts +12 -243
- package/dist/schemas/llamacpp-config.js +14 -50
- package/dist/schemas/load-model.d.ts +893 -14358
- package/dist/schemas/load-model.js +72 -325
- package/dist/schemas/logging-stream.d.ts +4 -11
- package/dist/schemas/logging-stream.js +3 -4
- package/dist/schemas/rag.d.ts +52 -183
- package/dist/schemas/rag.js +23 -152
- package/dist/schemas/text-to-speech.d.ts +1 -692
- package/dist/schemas/text-to-speech.js +3 -35
- package/dist/schemas/transcription.d.ts +0 -3
- package/dist/schemas/transcription.js +0 -1
- package/dist/schemas/translate.d.ts +23 -68
- package/dist/schemas/translate.js +11 -37
- package/dist/schemas/translation-config.d.ts +7 -810
- package/dist/schemas/translation-config.js +7 -113
- package/dist/schemas/unload-model.d.ts +0 -2
- package/dist/schemas/unload-model.js +0 -2
- package/dist/schemas/whispercpp-config.d.ts +25 -0
- package/dist/schemas/whispercpp-config.js +18 -0
- package/dist/server/bare/{ops → addons}/cancel.js +1 -2
- package/dist/server/bare/addons/index.d.ts +4 -0
- package/dist/server/bare/addons/index.js +3 -0
- package/dist/server/bare/addons/llamacpp/create-model.d.ts +5 -0
- package/dist/server/bare/addons/llamacpp/create-model.js +67 -0
- package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.d.ts +1 -2
- package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.js +87 -54
- package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +4 -0
- package/dist/server/bare/{ops → addons/llamacpp/handlers}/embed.js +7 -22
- package/dist/server/bare/addons/llamacpp/index.d.ts +4 -0
- package/dist/server/bare/addons/llamacpp/index.js +3 -0
- package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.d.ts +1 -4
- package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.js +19 -54
- package/dist/server/bare/addons/load-model.d.ts +3 -0
- package/dist/server/bare/addons/load-model.js +62 -0
- package/dist/server/bare/addons/translation/create-model.d.ts +4 -0
- package/dist/server/bare/addons/translation/create-model.js +45 -0
- package/dist/server/bare/addons/translation/handlers/translate.d.ts +3 -0
- package/dist/server/bare/{ops → addons/translation/handlers}/translate.js +14 -47
- package/dist/server/bare/addons/translation/index.d.ts +3 -0
- package/dist/server/bare/addons/translation/index.js +2 -0
- package/dist/server/bare/addons/tts/create-model.d.ts +6 -0
- package/dist/server/bare/addons/tts/create-model.js +40 -0
- package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.js +3 -25
- package/dist/server/bare/addons/tts/index.d.ts +3 -0
- package/dist/server/bare/addons/tts/index.js +2 -0
- package/dist/server/bare/addons/unload-model.js +20 -0
- package/dist/server/bare/addons/whispercpp/create-model.d.ts +6 -0
- package/dist/server/bare/addons/whispercpp/create-model.js +55 -0
- package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.d.ts +3 -0
- package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +48 -0
- package/dist/server/bare/addons/whispercpp/index.d.ts +3 -0
- package/dist/server/bare/addons/whispercpp/index.js +2 -0
- package/dist/server/bare/delegate-rpc-client.d.ts +0 -6
- package/dist/server/bare/delegate-rpc-client.js +46 -157
- package/dist/server/bare/hyperswarm.d.ts +0 -3
- package/dist/server/bare/hyperswarm.js +6 -29
- package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
- package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +10 -9
- package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +4 -7
- package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +14 -13
- package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
- package/dist/server/bare/rag-hyperdb/index.d.ts +1 -8
- package/dist/server/bare/rag-hyperdb/index.js +1 -8
- package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +5 -0
- package/dist/server/bare/rag-hyperdb/rag-manager.js +65 -0
- package/dist/server/bare/registry/logging-stream-registry.d.ts +7 -24
- package/dist/server/bare/registry/logging-stream-registry.js +20 -99
- package/dist/server/bare/registry/model-registry.d.ts +26 -14
- package/dist/server/bare/registry/model-registry.js +12 -32
- package/dist/server/error-handlers.d.ts +2 -3
- package/dist/server/error-handlers.js +10 -15
- package/dist/server/http-server.d.ts +2 -0
- package/dist/server/http-server.js +189 -0
- package/dist/server/rpc/create-server.js +3 -5
- package/dist/server/rpc/handle-request.d.ts +9 -0
- package/dist/server/rpc/handle-request.js +242 -92
- package/dist/server/rpc/handlers/cancelHandler.js +3 -14
- package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +1 -3
- package/dist/server/rpc/handlers/completion-stream-delegated.js +6 -18
- package/dist/server/rpc/handlers/completion-stream.js +41 -2
- package/dist/server/rpc/handlers/delete-cache.js +2 -4
- package/dist/server/rpc/handlers/download-asset.js +6 -59
- package/dist/server/rpc/handlers/embed.js +19 -2
- package/dist/server/rpc/handlers/index.d.ts +0 -13
- package/dist/server/rpc/handlers/index.js +0 -13
- package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -12
- package/dist/server/rpc/handlers/load-model/download-manager.js +28 -43
- package/dist/server/rpc/handlers/load-model/http.d.ts +1 -2
- package/dist/server/rpc/handlers/load-model/http.js +55 -424
- package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +1 -2
- package/dist/server/rpc/handlers/load-model/hyperdrive.js +171 -364
- package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
- package/dist/server/rpc/handlers/load-model/index.js +2 -2
- package/dist/server/rpc/handlers/load-model/resolve.d.ts +1 -3
- package/dist/server/rpc/handlers/load-model/resolve.js +29 -110
- package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -6
- package/dist/server/rpc/handlers/load-model-delegated.js +21 -59
- package/dist/server/rpc/handlers/{load-model/handler.d.ts → load-model.d.ts} +2 -2
- package/dist/server/rpc/handlers/load-model.js +57 -0
- package/dist/server/rpc/handlers/logging-stream.js +4 -4
- package/dist/server/rpc/handlers/provideHandler/connection.js +10 -12
- package/dist/server/rpc/handlers/provideHandler/handler.js +17 -20
- package/dist/server/rpc/handlers/provideHandler/proxy.js +6 -8
- package/dist/server/rpc/handlers/rag.d.ts +2 -2
- package/dist/server/rpc/handlers/rag.js +43 -130
- package/dist/server/rpc/handlers/stopProvideHandler.js +2 -6
- package/dist/server/rpc/handlers/text-to-speech.js +5 -2
- package/dist/server/rpc/handlers/transcribe-stream.js +24 -2
- package/dist/server/rpc/handlers/translate.js +49 -2
- package/dist/server/rpc/handlers/unload-model.js +3 -12
- package/dist/server/rpc/index.d.ts +1 -1
- package/dist/server/utils/audio/decoder.d.ts +1 -2
- package/dist/server/utils/audio/decoder.js +12 -49
- package/dist/server/utils/cache.d.ts +8 -19
- package/dist/server/utils/cache.js +15 -100
- package/dist/server/utils/hash.d.ts +5 -0
- package/dist/server/utils/hash.js +11 -0
- package/dist/server/utils/index.d.ts +2 -7
- package/dist/server/utils/index.js +2 -7
- package/dist/server/utils/tool-parser.js +14 -28
- package/dist/server/worker.d.ts +5 -4
- package/dist/server/worker.js +89 -22
- package/package.json +41 -141
- package/NOTICE +0 -358
- package/bare-imports.json +0 -44
- package/dist/client/api/get-model-info.d.ts +0 -36
- package/dist/client/api/get-model-info.js +0 -14
- package/dist/client/api/invoke-plugin.d.ts +0 -15
- package/dist/client/api/invoke-plugin.js +0 -38
- package/dist/client/api/ocr.d.ts +0 -31
- package/dist/client/api/ocr.js +0 -88
- package/dist/client/api/registry.d.ts +0 -14
- package/dist/client/api/registry.js +0 -37
- package/dist/client/config-loader/config-utils.d.ts +0 -5
- package/dist/client/config-loader/config-utils.js +0 -20
- package/dist/client/config-loader/resolve-config.bare.d.ts +0 -9
- package/dist/client/config-loader/resolve-config.bare.js +0 -87
- package/dist/client/config-loader/resolve-config.expo.d.ts +0 -11
- package/dist/client/config-loader/resolve-config.expo.js +0 -62
- package/dist/client/config-loader/resolve-config.node.d.ts +0 -10
- package/dist/client/config-loader/resolve-config.node.js +0 -145
- package/dist/client/init-hooks.d.ts +0 -21
- package/dist/client/init-hooks.js +0 -66
- package/dist/client/rpc/expo-device-info.d.ts +0 -6
- package/dist/client/rpc/expo-device-info.js +0 -32
- package/dist/client/rpc/profiling/index.d.ts +0 -2
- package/dist/client/rpc/profiling/index.js +0 -1
- package/dist/client/rpc/profiling/profiler.d.ts +0 -27
- package/dist/client/rpc/profiling/profiler.js +0 -139
- package/dist/constants/registry.d.ts +0 -2
- package/dist/constants/registry.js +0 -1
- package/dist/examples/cache-management.d.ts +0 -2
- package/dist/examples/cache-management.js +0 -97
- package/dist/examples/config/blind-relay/blind-relay.config.d.ts +0 -5
- package/dist/examples/config/blind-relay/blind-relay.config.js +0 -7
- package/dist/examples/config/default/default.config.d.ts +0 -8
- package/dist/examples/config/default/default.config.js +0 -6
- package/dist/examples/config/plugins/plugins.config.d.ts +0 -5
- package/dist/examples/config/plugins/plugins.config.js +0 -4
- package/dist/examples/config-reload.d.ts +0 -2
- package/dist/examples/config-reload.js +0 -49
- package/dist/examples/default-config-usage.d.ts +0 -17
- package/dist/examples/default-config-usage.js +0 -47
- package/dist/examples/delegated-inference/consumer-profiled.d.ts +0 -2
- package/dist/examples/delegated-inference/consumer-profiled.js +0 -67
- package/dist/examples/download-with-blind-relays.d.ts +0 -2
- package/dist/examples/download-with-blind-relays.js +0 -49
- package/dist/examples/llamacpp-sharded.d.ts +0 -2
- package/dist/examples/llamacpp-sharded.js +0 -53
- package/dist/examples/logging-file-transport.d.ts +0 -2
- package/dist/examples/logging-streaming.d.ts +0 -2
- package/dist/examples/logging-streaming.js +0 -75
- package/dist/examples/mcp-websearch.d.ts +0 -13
- package/dist/examples/mcp-websearch.js +0 -176
- package/dist/examples/ocr-fasttext.d.ts +0 -2
- package/dist/examples/ocr-fasttext.js +0 -52
- package/dist/examples/plugins.d.ts +0 -14
- package/dist/examples/plugins.js +0 -129
- package/dist/examples/profiling/basic.d.ts +0 -2
- package/dist/examples/profiling/basic.js +0 -71
- package/dist/examples/profiling/per-call.d.ts +0 -2
- package/dist/examples/profiling/per-call.js +0 -30
- package/dist/examples/quickstart.d.ts +0 -2
- package/dist/examples/quickstart.js +0 -28
- package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb/cancellation.js +0 -75
- package/dist/examples/rag/rag-hyperdb/ingest.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb/pipeline.js +0 -74
- package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb/workspaces.js +0 -178
- package/dist/examples/registry-query.d.ts +0 -2
- package/dist/examples/registry-query.js +0 -87
- package/dist/examples/transcription/parakeet-ctc-filesystem.d.ts +0 -2
- package/dist/examples/transcription/parakeet-ctc-filesystem.js +0 -40
- package/dist/examples/transcription/parakeet-microphone-record.d.ts +0 -2
- package/dist/examples/transcription/parakeet-microphone-record.js +0 -95
- package/dist/examples/transcription/parakeet-sortformer.d.ts +0 -2
- package/dist/examples/transcription/parakeet-sortformer.js +0 -115
- package/dist/examples/transcription/parakeet-tdt-filesystem.d.ts +0 -2
- package/dist/examples/transcription/parakeet-tdt-filesystem.js +0 -44
- package/dist/examples/transcription/whispercpp-filesystem.js +0 -69
- package/dist/examples/transcription/whispercpp-prompt.d.ts +0 -2
- package/dist/examples/transcription/whispercpp-prompt.js +0 -67
- package/dist/examples/translation/translation-bergamot-batch.d.ts +0 -2
- package/dist/examples/translation/translation-bergamot-batch.js +0 -49
- package/dist/examples/translation/translation-bergamot-pivot.d.ts +0 -2
- package/dist/examples/translation/translation-bergamot-pivot.js +0 -73
- package/dist/examples/translation/translation-bergamot.d.ts +0 -2
- package/dist/examples/translation/translation-bergamot.js +0 -39
- package/dist/examples/translation/translation-llm-afriquegemma.d.ts +0 -2
- package/dist/examples/translation/translation-llm-afriquegemma.js +0 -39
- package/dist/examples/tts/chatterbox.d.ts +0 -2
- package/dist/examples/tts/chatterbox.js +0 -59
- package/dist/examples/tts/supertonic.d.ts +0 -2
- package/dist/examples/tts/supertonic.js +0 -51
- package/dist/examples/tts/utils.d.ts +0 -17
- package/dist/expo/plugins/resolve-sdk-package-dir.d.ts +0 -15
- package/dist/expo/plugins/resolve-sdk-package-dir.js +0 -31
- package/dist/expo/plugins/withAndroidArchitecture.d.ts +0 -8
- package/dist/expo/plugins/withAndroidArchitecture.js +0 -52
- package/dist/expo/plugins/withAndroidNdkVersion.d.ts +0 -8
- package/dist/expo/plugins/withAndroidNdkVersion.js +0 -31
- package/dist/expo/plugins/withDeviceInfo.d.ts +0 -10
- package/dist/expo/plugins/withDeviceInfo.js +0 -48
- package/dist/logging/addon.d.ts +0 -6
- package/dist/logging/addon.js +0 -75
- package/dist/logging/client-logger.d.ts +0 -3
- package/dist/logging/client-logger.js +0 -24
- package/dist/logging/namespaces.d.ts +0 -6
- package/dist/logging/namespaces.js +0 -6
- package/dist/logging/registry.d.ts +0 -31
- package/dist/logging/registry.js +0 -62
- package/dist/logging/server-logger.d.ts +0 -3
- package/dist/logging/server-logger.js +0 -16
- package/dist/models/registry/models.d.ts +0 -10417
- package/dist/models/registry/models.js +0 -10757
- package/dist/models/update-models/codegen.d.ts +0 -3
- package/dist/models/update-models/codegen.js +0 -135
- package/dist/models/update-models/history.d.ts +0 -24
- package/dist/models/update-models/history.js +0 -107
- package/dist/models/update-models/index.d.ts +0 -2
- package/dist/models/update-models/index.js +0 -125
- package/dist/models/update-models/naming.d.ts +0 -4
- package/dist/models/update-models/naming.js +0 -370
- package/dist/models/update-models/processing.d.ts +0 -8
- package/dist/models/update-models/processing.js +0 -67
- package/dist/models/update-models/registry.d.ts +0 -4
- package/dist/models/update-models/registry.js +0 -67
- package/dist/models/update-models/shards.d.ts +0 -4
- package/dist/models/update-models/shards.js +0 -57
- package/dist/models/update-models/types.d.ts +0 -60
- package/dist/models/update-models/types.js +0 -1
- package/dist/models/update-models/utils.d.ts +0 -3
- package/dist/models/update-models/utils.js +0 -21
- package/dist/pear/pre.d.ts +0 -18
- package/dist/pear/pre.js +0 -433
- package/dist/profiling/aggregator.d.ts +0 -15
- package/dist/profiling/aggregator.js +0 -100
- package/dist/profiling/clock.d.ts +0 -12
- package/dist/profiling/clock.js +0 -51
- package/dist/profiling/controller.d.ts +0 -33
- package/dist/profiling/controller.js +0 -123
- package/dist/profiling/envelope.d.ts +0 -10
- package/dist/profiling/envelope.js +0 -36
- package/dist/profiling/events.d.ts +0 -20
- package/dist/profiling/events.js +0 -37
- package/dist/profiling/exporters.d.ts +0 -10
- package/dist/profiling/exporters.js +0 -236
- package/dist/profiling/index.d.ts +0 -36
- package/dist/profiling/index.js +0 -31
- package/dist/profiling/ring-buffer.d.ts +0 -19
- package/dist/profiling/ring-buffer.js +0 -83
- package/dist/profiling/types.d.ts +0 -47
- package/dist/profiling/types.js +0 -1
- package/dist/schemas/archive.d.ts +0 -9
- package/dist/schemas/archive.js +0 -17
- package/dist/schemas/engine-addon-map.d.ts +0 -5
- package/dist/schemas/engine-addon-map.js +0 -52
- package/dist/schemas/get-model-info.d.ts +0 -120
- package/dist/schemas/get-model-info.js +0 -58
- package/dist/schemas/json-schema.d.ts +0 -16
- package/dist/schemas/json-schema.js +0 -2
- 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 -148
- package/dist/schemas/model-src-utils.js +0 -35
- package/dist/schemas/model-types.d.ts +0 -183
- package/dist/schemas/model-types.js +0 -168
- package/dist/schemas/ocr.d.ts +0 -125
- package/dist/schemas/ocr.js +0 -57
- package/dist/schemas/path-validation.d.ts +0 -10
- package/dist/schemas/path-validation.js +0 -22
- package/dist/schemas/plugin.d.ts +0 -226
- package/dist/schemas/plugin.js +0 -158
- package/dist/schemas/profiling.d.ts +0 -105
- package/dist/schemas/profiling.js +0 -66
- package/dist/schemas/registry.d.ts +0 -356
- package/dist/schemas/registry.js +0 -93
- package/dist/schemas/reload-config.d.ts +0 -476
- package/dist/schemas/reload-config.js +0 -44
- package/dist/schemas/runtime-context.d.ts +0 -19
- package/dist/schemas/runtime-context.js +0 -7
- package/dist/schemas/sdk-config.d.ts +0 -2973
- package/dist/schemas/sdk-config.js +0 -136
- package/dist/schemas/sdk-errors-client.d.ts +0 -31
- package/dist/schemas/sdk-errors-client.js +0 -143
- 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 -89
- package/dist/schemas/sdk-errors-server.js +0 -451
- package/dist/schemas/shard.d.ts +0 -21
- package/dist/schemas/shard.js +0 -17
- package/dist/schemas/tools.d.ts +0 -65
- package/dist/schemas/tools.js +0 -43
- package/dist/schemas/transcription-config.d.ts +0 -383
- package/dist/schemas/transcription-config.js +0 -95
- package/dist/scripts/run-security-tests-bare.d.ts +0 -2
- package/dist/scripts/run-security-tests-bare.js +0 -78
- package/dist/scripts/run-security-tests.d.ts +0 -2
- package/dist/scripts/run-security-tests.js +0 -22
- package/dist/scripts/run-unit-tests.d.ts +0 -2
- package/dist/scripts/run-unit-tests.js +0 -17
- package/dist/server/bare/ops/embed.d.ts +0 -12
- package/dist/server/bare/ops/load-model.d.ts +0 -9
- package/dist/server/bare/ops/load-model.js +0 -85
- package/dist/server/bare/ops/transcribe.d.ts +0 -3
- package/dist/server/bare/ops/transcribe.js +0 -75
- package/dist/server/bare/ops/translate.d.ts +0 -5
- package/dist/server/bare/ops/unload-model.js +0 -41
- package/dist/server/bare/plugins/index.d.ts +0 -8
- package/dist/server/bare/plugins/index.js +0 -7
- package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +0 -6
- package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +0 -34
- package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +0 -220
- package/dist/server/bare/plugins/llamacpp-completion/plugin.js +0 -155
- package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +0 -54
- package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +0 -87
- package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +0 -367
- package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +0 -204
- package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.d.ts +0 -10
- package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.js +0 -110
- package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +0 -86
- package/dist/server/bare/plugins/onnx-ocr/plugin.js +0 -117
- package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +0 -373
- package/dist/server/bare/plugins/onnx-tts/plugin.js +0 -182
- package/dist/server/bare/plugins/onnx-tts/wav-helper.d.ts +0 -14
- package/dist/server/bare/plugins/onnx-tts/wav-helper.js +0 -107
- package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +0 -317
- package/dist/server/bare/plugins/parakeet-transcription/plugin.js +0 -154
- package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +0 -237
- package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +0 -86
- 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-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 -18
- 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/rag-operation-manager.d.ts +0 -7
- package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +0 -39
- package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +0 -15
- package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +0 -136
- package/dist/server/bare/registry/config-registry.d.ts +0 -14
- package/dist/server/bare/registry/config-registry.js +0 -82
- 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 -112
- package/dist/server/bare/registry/registry-client.d.ts +0 -5
- package/dist/server/bare/registry/registry-client.js +0 -37
- 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/utils/audio-input.d.ts +0 -10
- package/dist/server/bare/utils/audio-input.js +0 -33
- package/dist/server/bare/utils/loader-adapter.d.ts +0 -7
- package/dist/server/bare/utils/loader-adapter.js +0 -9
- package/dist/server/env.d.ts +0 -22
- package/dist/server/env.js +0 -57
- 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 -9
- package/dist/server/plugins/registry.js +0 -79
- package/dist/server/rpc/delegate-transport.d.ts +0 -19
- package/dist/server/rpc/delegate-transport.js +0 -215
- package/dist/server/rpc/handler-registry.d.ts +0 -3
- package/dist/server/rpc/handler-registry.js +0 -90
- package/dist/server/rpc/handler-utils.d.ts +0 -23
- package/dist/server/rpc/handler-utils.js +0 -128
- package/dist/server/rpc/handlers/get-model-info.d.ts +0 -3
- package/dist/server/rpc/handlers/get-model-info.js +0 -164
- package/dist/server/rpc/handlers/load-model/download-stats.d.ts +0 -6
- package/dist/server/rpc/handlers/load-model/download-stats.js +0 -87
- package/dist/server/rpc/handlers/load-model/handler.js +0 -187
- package/dist/server/rpc/handlers/load-model/registry.d.ts +0 -11
- package/dist/server/rpc/handlers/load-model/registry.js +0 -564
- package/dist/server/rpc/handlers/load-model/types.d.ts +0 -29
- package/dist/server/rpc/handlers/load-model/types.js +0 -1
- 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/ping.d.ts +0 -3
- package/dist/server/rpc/handlers/ping.js +0 -3
- package/dist/server/rpc/handlers/plugin-dispatch.d.ts +0 -15
- package/dist/server/rpc/handlers/plugin-dispatch.js +0 -59
- package/dist/server/rpc/handlers/plugin-invoke.d.ts +0 -4
- package/dist/server/rpc/handlers/plugin-invoke.js +0 -92
- package/dist/server/rpc/handlers/registry.d.ts +0 -5
- package/dist/server/rpc/handlers/registry.js +0 -157
- 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/profiling/context.d.ts +0 -18
- package/dist/server/rpc/profiling/context.js +0 -38
- package/dist/server/rpc/profiling/delegation-profiler.d.ts +0 -32
- package/dist/server/rpc/profiling/delegation-profiler.js +0 -154
- 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 -199
- package/dist/server/rpc/profiling/operation-wrappers.d.ts +0 -18
- package/dist/server/rpc/profiling/operation-wrappers.js +0 -124
- package/dist/server/rpc/profiling/profiler.d.ts +0 -13
- package/dist/server/rpc/profiling/profiler.js +0 -97
- package/dist/server/utils/archive.d.ts +0 -4
- package/dist/server/utils/archive.js +0 -179
- package/dist/server/utils/checksum.d.ts +0 -4
- package/dist/server/utils/checksum.js +0 -31
- package/dist/server/utils/config-transform.d.ts +0 -3
- package/dist/server/utils/config-transform.js +0 -23
- package/dist/server/utils/formatting.d.ts +0 -19
- package/dist/server/utils/formatting.js +0 -61
- package/dist/server/utils/gguf-tensor-extractor.d.ts +0 -15
- package/dist/server/utils/gguf-tensor-extractor.js +0 -314
- package/dist/server/utils/path-security.d.ts +0 -12
- package/dist/server/utils/path-security.js +0 -25
- package/dist/server/utils/shard-utils.d.ts +0 -48
- package/dist/server/utils/shard-utils.js +0 -125
- package/dist/server/utils/tool-integration.d.ts +0 -13
- package/dist/server/utils/tool-integration.js +0 -43
- package/dist/server/worker-core.d.ts +0 -6
- package/dist/server/worker-core.js +0 -88
- package/dist/utils/errors-base.d.ts +0 -3
- package/dist/utils/errors-base.js +0 -13
- package/dist/utils/errors-client.d.ts +0 -137
- package/dist/utils/errors-client.js +0 -240
- package/dist/utils/errors-server.d.ts +0 -236
- package/dist/utils/errors-server.js +0 -412
- package/dist/utils/global-singleton.d.ts +0 -2
- package/dist/utils/global-singleton.js +0 -10
- package/dist/utils/mcp-adapter.d.ts +0 -12
- package/dist/utils/mcp-adapter.js +0 -103
- package/dist/utils/object.d.ts +0 -2
- package/dist/utils/object.js +0 -3
- package/dist/utils/path-sanitize.d.ts +0 -17
- package/dist/utils/path-sanitize.js +0 -54
- package/dist/utils/tool-helpers.d.ts +0 -25
- package/dist/utils/tool-helpers.js +0 -112
- package/expo/plugins/patches/android-link.mjs +0 -63
- package/expo/plugins/patches/ios-link.mjs +0 -63
- /package/dist/examples/{transcription/whispercpp-filesystem.d.ts → whispercpp-filesystem.d.ts} +0 -0
- /package/dist/examples/{transcription/whispercpp-microphone-record.d.ts → whispercpp-microphone-record.d.ts} +0 -0
- /package/dist/models/{registry → hyperdrive}/index.d.ts +0 -0
- /package/dist/server/bare/{ops → addons}/cancel.d.ts +0 -0
- /package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.d.ts +0 -0
- /package/dist/server/bare/{ops → addons}/unload-model.d.ts +0 -0
|
@@ -1,132 +1,53 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Logging Stream Registry
|
|
3
|
-
*
|
|
4
|
-
* Manages RPC subscriptions for streaming logs from server to connected clients.
|
|
5
|
-
*
|
|
6
|
-
* Purpose:
|
|
7
|
-
* - Registers client subscriptions to model/SDK log streams
|
|
8
|
-
* - Routes log messages to subscribed clients via RPC
|
|
9
|
-
* - Buffers logs during model loading (before client subscribes)
|
|
10
|
-
* - Manages stream lifecycle (subscribe/unsubscribe)
|
|
11
|
-
*
|
|
12
|
-
*/
|
|
13
1
|
const loggingStreams = new Map();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const BUFFERING_TIMEOUT_MS = 5_000;
|
|
18
|
-
const logBuffer = new Map();
|
|
19
|
-
const modelsWithBuffering = new Set();
|
|
20
|
-
const bufferingTimeouts = new Map();
|
|
21
|
-
function clearBufferingTimeout(id) {
|
|
22
|
-
const timeout = bufferingTimeouts.get(id);
|
|
23
|
-
if (timeout) {
|
|
24
|
-
clearTimeout(timeout);
|
|
25
|
-
bufferingTimeouts.delete(id);
|
|
2
|
+
export function registerLoggingStream(modelId, streamHandler) {
|
|
3
|
+
if (!loggingStreams.has(modelId)) {
|
|
4
|
+
loggingStreams.set(modelId, new Set());
|
|
26
5
|
}
|
|
6
|
+
loggingStreams.get(modelId).add(streamHandler);
|
|
27
7
|
}
|
|
28
|
-
export function
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
export function stopLogBufferingWithTimeout(id) {
|
|
32
|
-
clearBufferingTimeout(id);
|
|
33
|
-
const timeout = setTimeout(() => {
|
|
34
|
-
if (modelsWithBuffering.has(id)) {
|
|
35
|
-
modelsWithBuffering.delete(id);
|
|
36
|
-
logBuffer.delete(id);
|
|
37
|
-
}
|
|
38
|
-
bufferingTimeouts.delete(id);
|
|
39
|
-
}, BUFFERING_TIMEOUT_MS);
|
|
40
|
-
bufferingTimeouts.set(id, timeout);
|
|
41
|
-
}
|
|
42
|
-
export function registerLoggingStream(id, streamHandler) {
|
|
43
|
-
if (!loggingStreams.has(id)) {
|
|
44
|
-
loggingStreams.set(id, new Set());
|
|
45
|
-
}
|
|
46
|
-
loggingStreams.get(id).add(streamHandler);
|
|
47
|
-
const buffered = logBuffer.get(id);
|
|
48
|
-
if (buffered && buffered.length > 0) {
|
|
49
|
-
for (const log of buffered) {
|
|
50
|
-
try {
|
|
51
|
-
streamHandler(log.level, log.namespace, log.message);
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
console.error(`Error flushing buffered log for ID ${id}:`, error); // fallback (avoid recursion)
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
logBuffer.delete(id);
|
|
58
|
-
}
|
|
59
|
-
modelsWithBuffering.delete(id);
|
|
60
|
-
clearBufferingTimeout(id);
|
|
61
|
-
}
|
|
62
|
-
export function unregisterLoggingStream(id, streamHandler) {
|
|
63
|
-
const streams = loggingStreams.get(id);
|
|
8
|
+
export function unregisterLoggingStream(modelId, streamHandler) {
|
|
9
|
+
const streams = loggingStreams.get(modelId);
|
|
64
10
|
if (streams) {
|
|
65
11
|
streams.delete(streamHandler);
|
|
66
12
|
if (streams.size === 0) {
|
|
67
|
-
loggingStreams.delete(
|
|
13
|
+
loggingStreams.delete(modelId);
|
|
68
14
|
}
|
|
69
15
|
}
|
|
70
16
|
}
|
|
71
|
-
export function unregisterAllLoggingStreams(
|
|
72
|
-
// Simply remove all logging handlers
|
|
17
|
+
export function unregisterAllLoggingStreams(modelId) {
|
|
18
|
+
// Simply remove all logging handlers for this model
|
|
73
19
|
// Active streams will naturally terminate when no more logs flow
|
|
74
|
-
loggingStreams.delete(
|
|
75
|
-
|
|
76
|
-
modelsWithBuffering.delete(id);
|
|
77
|
-
clearBufferingTimeout(id);
|
|
20
|
+
loggingStreams.delete(modelId);
|
|
21
|
+
console.debug(`Unregistered all logging streams for model ${modelId}`);
|
|
78
22
|
}
|
|
79
|
-
export function sendLogToStreams(
|
|
80
|
-
const streams = loggingStreams.get(
|
|
81
|
-
|
|
82
|
-
if (streams && streams.size > 0) {
|
|
23
|
+
export function sendLogToStreams(modelId, level, namespace, message) {
|
|
24
|
+
const streams = loggingStreams.get(modelId);
|
|
25
|
+
if (streams) {
|
|
83
26
|
for (const streamHandler of streams) {
|
|
84
27
|
try {
|
|
85
28
|
streamHandler(level, namespace, message);
|
|
86
29
|
}
|
|
87
30
|
catch (error) {
|
|
88
|
-
console.error(`Error sending log to stream for
|
|
31
|
+
console.error(`Error sending log to stream for model ${modelId}:`, error);
|
|
89
32
|
}
|
|
90
33
|
}
|
|
91
34
|
}
|
|
92
|
-
else if (isBuffering) {
|
|
93
|
-
if (!logBuffer.has(id)) {
|
|
94
|
-
logBuffer.set(id, []);
|
|
95
|
-
}
|
|
96
|
-
const buffer = logBuffer.get(id);
|
|
97
|
-
const now = Date.now();
|
|
98
|
-
const validLogs = buffer.filter((log) => now - log.timestamp < BUFFER_EXPIRY_MS);
|
|
99
|
-
if (validLogs.length >= MAX_BUFFERED_LOGS_PER_MODEL) {
|
|
100
|
-
validLogs.shift();
|
|
101
|
-
}
|
|
102
|
-
validLogs.push({ level, namespace, message, timestamp: now });
|
|
103
|
-
logBuffer.set(id, validLogs);
|
|
104
|
-
}
|
|
105
35
|
}
|
|
106
|
-
export function hasLoggingStreams(
|
|
107
|
-
const streams = loggingStreams.get(
|
|
36
|
+
export function hasLoggingStreams(modelId) {
|
|
37
|
+
const streams = loggingStreams.get(modelId);
|
|
108
38
|
return streams && streams.size > 0;
|
|
109
39
|
}
|
|
110
40
|
export function getLoggingStreamStats() {
|
|
111
41
|
return {
|
|
112
|
-
|
|
113
|
-
|
|
42
|
+
totalModels: loggingStreams.size,
|
|
43
|
+
modelIds: Array.from(loggingStreams.keys()),
|
|
114
44
|
totalStreams: Array.from(loggingStreams.values()).reduce((sum, streams) => sum + streams.size, 0),
|
|
115
|
-
bufferedIds: logBuffer.size,
|
|
116
|
-
idsWithBuffering: modelsWithBuffering.size,
|
|
117
|
-
activeTimeouts: bufferingTimeouts.size,
|
|
118
45
|
};
|
|
119
46
|
}
|
|
120
47
|
export function clearAllLoggingStreams() {
|
|
121
48
|
const count = loggingStreams.size;
|
|
122
|
-
for (const timeout of bufferingTimeouts.values()) {
|
|
123
|
-
clearTimeout(timeout);
|
|
124
|
-
}
|
|
125
49
|
loggingStreams.clear();
|
|
126
|
-
logBuffer.clear();
|
|
127
|
-
modelsWithBuffering.clear();
|
|
128
|
-
bufferingTimeouts.clear();
|
|
129
50
|
if (count > 0) {
|
|
130
|
-
console.log(`🧹 Cleared logging streams for ${count}
|
|
51
|
+
console.log(`🧹 Cleared logging streams for ${count} model(s)`);
|
|
131
52
|
}
|
|
132
53
|
}
|
|
@@ -1,13 +1,33 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { CanonicalModelType } from "../../../schemas/index";
|
|
3
|
-
import type BaseInference from "@qvac/infer-base";
|
|
1
|
+
import type EventEmitter from "events";
|
|
4
2
|
interface AddonInterface {
|
|
5
3
|
cancel(jobId?: string): Promise<void>;
|
|
6
4
|
}
|
|
7
|
-
export
|
|
8
|
-
|
|
5
|
+
export interface AnyModel {
|
|
6
|
+
load(...args: unknown[]): Promise<void>;
|
|
7
|
+
run(input: unknown): Promise<EventEmitter & {
|
|
8
|
+
onUpdate(callback: (data: string) => void): {
|
|
9
|
+
await: () => Promise<void>;
|
|
10
|
+
};
|
|
11
|
+
onUpdate(callback: (data: {
|
|
12
|
+
outputArray: Int16Array;
|
|
13
|
+
}) => void): {
|
|
14
|
+
await: () => Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
onError(callback: (error: Error) => void): void;
|
|
17
|
+
onUpdate(callback: (data: Array<{
|
|
18
|
+
text: string;
|
|
19
|
+
}>) => void): {
|
|
20
|
+
await: () => Promise<void>;
|
|
21
|
+
};
|
|
22
|
+
cancel(): Promise<void>;
|
|
23
|
+
iterate(): AsyncIterableIterator<string | Array<{
|
|
24
|
+
text: string;
|
|
25
|
+
}>>;
|
|
26
|
+
await(): Promise<void>;
|
|
27
|
+
}>;
|
|
28
|
+
unload?(): Promise<void>;
|
|
9
29
|
addon?: AddonInterface;
|
|
10
|
-
}
|
|
30
|
+
}
|
|
11
31
|
interface DelegateOptions {
|
|
12
32
|
topic: string;
|
|
13
33
|
providerPublicKey: string;
|
|
@@ -18,9 +38,6 @@ interface LocalOptions {
|
|
|
18
38
|
path: string;
|
|
19
39
|
loadedAt: Date;
|
|
20
40
|
config: unknown;
|
|
21
|
-
modelType: CanonicalModelType;
|
|
22
|
-
name?: string | undefined;
|
|
23
|
-
loader: FilesystemDL;
|
|
24
41
|
}
|
|
25
42
|
export interface ModelEntry {
|
|
26
43
|
id: string;
|
|
@@ -32,9 +49,6 @@ export declare function registerModel(id: string, options: {
|
|
|
32
49
|
model: AnyModel;
|
|
33
50
|
path: string;
|
|
34
51
|
config: unknown;
|
|
35
|
-
modelType: CanonicalModelType;
|
|
36
|
-
loader: FilesystemDL;
|
|
37
|
-
name?: string | undefined;
|
|
38
52
|
} | {
|
|
39
53
|
topic: string;
|
|
40
54
|
providerPublicKey: string;
|
|
@@ -50,10 +64,8 @@ export declare function getModelInfo(id: string): {
|
|
|
50
64
|
path: string;
|
|
51
65
|
loadedAt: Date;
|
|
52
66
|
config: unknown;
|
|
53
|
-
name?: string;
|
|
54
67
|
} | null;
|
|
55
68
|
export declare function getModelConfig(id: string): unknown;
|
|
56
|
-
export declare function updateModelConfig(id: string, config: unknown): void;
|
|
57
69
|
export declare function clearRegistry(): void;
|
|
58
70
|
export declare function getRegistryStats(): {
|
|
59
71
|
totalModels: number;
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { ModelAlreadyRegisteredError, ModelNotFoundError, ModelIsDelegatedError, } from "../../../utils/errors-server.js";
|
|
2
|
-
import { getServerLogger } from "../../../logging/index.js";
|
|
3
|
-
const logger = getServerLogger();
|
|
4
1
|
// Global registry state - using stateless functions to manage it
|
|
5
2
|
const modelRegistry = new Map();
|
|
6
3
|
export function registerModel(id, options) {
|
|
7
4
|
if (modelRegistry.has(id)) {
|
|
8
|
-
throw new
|
|
5
|
+
throw new Error(`Model with ID "${id}" is already registered`);
|
|
9
6
|
}
|
|
10
7
|
const isDelegated = "topic" in options && "providerPublicKey" in options;
|
|
11
8
|
if (isDelegated) {
|
|
@@ -19,7 +16,7 @@ export function registerModel(id, options) {
|
|
|
19
16
|
timeout,
|
|
20
17
|
},
|
|
21
18
|
});
|
|
22
|
-
|
|
19
|
+
console.log(`Delegated model registered: ${id} -> topic: ${topic}, provider: ${providerPublicKey}, timeout: ${timeout}ms`);
|
|
23
20
|
}
|
|
24
21
|
else {
|
|
25
22
|
modelRegistry.set(id, {
|
|
@@ -30,13 +27,9 @@ export function registerModel(id, options) {
|
|
|
30
27
|
path: options.path,
|
|
31
28
|
loadedAt: new Date(),
|
|
32
29
|
config: options.config,
|
|
33
|
-
modelType: options.modelType,
|
|
34
|
-
loader: options.loader,
|
|
35
|
-
name: options.name,
|
|
36
30
|
},
|
|
37
31
|
});
|
|
38
|
-
|
|
39
|
-
logger.info(`Local model registered: ${id}${nameStr} -> ${options.path}`);
|
|
32
|
+
console.log(`Local model registered: ${id} -> ${options.path}`);
|
|
40
33
|
}
|
|
41
34
|
}
|
|
42
35
|
export function getModelEntry(id) {
|
|
@@ -45,10 +38,11 @@ export function getModelEntry(id) {
|
|
|
45
38
|
export function getModel(id) {
|
|
46
39
|
const entry = modelRegistry.get(id);
|
|
47
40
|
if (!entry) {
|
|
48
|
-
|
|
41
|
+
const availableIds = Array.from(modelRegistry.keys());
|
|
42
|
+
throw new Error(`Model with ID "${id}" not found in registry. Available models: ${availableIds.join(", ")}`);
|
|
49
43
|
}
|
|
50
44
|
if (!entry.local) {
|
|
51
|
-
throw new
|
|
45
|
+
throw new Error(`Model with ID "${id}" is delegated and cannot be accessed as a local model`);
|
|
52
46
|
}
|
|
53
47
|
return entry.local.model;
|
|
54
48
|
}
|
|
@@ -59,7 +53,7 @@ export function unregisterModel(id) {
|
|
|
59
53
|
const entry = modelRegistry.get(id);
|
|
60
54
|
if (entry) {
|
|
61
55
|
modelRegistry.delete(id);
|
|
62
|
-
|
|
56
|
+
console.log(`Model unregistered: ${id}`);
|
|
63
57
|
return entry;
|
|
64
58
|
}
|
|
65
59
|
return null;
|
|
@@ -72,37 +66,23 @@ export function getModelInfo(id) {
|
|
|
72
66
|
if (!entry || !entry.local) {
|
|
73
67
|
return null;
|
|
74
68
|
}
|
|
75
|
-
|
|
69
|
+
return {
|
|
76
70
|
id: entry.id,
|
|
77
71
|
path: entry.local.path,
|
|
78
72
|
loadedAt: entry.local.loadedAt,
|
|
79
73
|
config: entry.local.config,
|
|
80
74
|
};
|
|
81
|
-
if (entry.local.name) {
|
|
82
|
-
result.name = entry.local.name;
|
|
83
|
-
}
|
|
84
|
-
return result;
|
|
85
75
|
}
|
|
86
76
|
export function getModelConfig(id) {
|
|
87
77
|
const entry = modelRegistry.get(id);
|
|
88
78
|
if (!entry || !entry.local) {
|
|
89
|
-
throw new
|
|
79
|
+
throw new Error(`Model with ID "${id}" not found or is delegated`);
|
|
90
80
|
}
|
|
91
81
|
return entry.local.config;
|
|
92
82
|
}
|
|
93
|
-
export function updateModelConfig(id, config) {
|
|
94
|
-
const entry = modelRegistry.get(id);
|
|
95
|
-
if (!entry) {
|
|
96
|
-
throw new ModelNotFoundError(id);
|
|
97
|
-
}
|
|
98
|
-
if (!entry.local) {
|
|
99
|
-
throw new ModelIsDelegatedError(id);
|
|
100
|
-
}
|
|
101
|
-
entry.local.config = config;
|
|
102
|
-
}
|
|
103
83
|
export function clearRegistry() {
|
|
104
84
|
modelRegistry.clear();
|
|
105
|
-
|
|
85
|
+
console.log("Model registry cleared");
|
|
106
86
|
}
|
|
107
87
|
export function getRegistryStats() {
|
|
108
88
|
return {
|
|
@@ -116,9 +96,9 @@ export async function unloadAllModels() {
|
|
|
116
96
|
const entry = modelRegistry.get(modelId);
|
|
117
97
|
if (entry?.local?.model && entry.local.model.unload) {
|
|
118
98
|
await entry.local.model.unload();
|
|
119
|
-
|
|
99
|
+
console.log(`Model unloaded: ${modelId}`);
|
|
120
100
|
}
|
|
121
101
|
modelRegistry.delete(modelId);
|
|
122
102
|
}
|
|
123
|
-
|
|
103
|
+
console.log(`Unloaded ${modelIds.length} models`);
|
|
124
104
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type RPC from "bare-rpc";
|
|
2
|
-
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function sendStreamErrorResponse(stream: ReturnType<RPC.IncomingRequest["createResponseStream"]>, error: unknown, profiler?: ServerProfiler): void;
|
|
2
|
+
export declare function sendErrorResponse(req: RPC.IncomingRequest, error: unknown): void;
|
|
3
|
+
export declare function sendStreamErrorResponse(stream: ReturnType<RPC.IncomingRequest["createResponseStream"]>, error: unknown): void;
|
|
5
4
|
//# sourceMappingURL=error-handlers.d.ts.map
|
|
@@ -1,30 +1,25 @@
|
|
|
1
1
|
import { createErrorResponse, responseSchema } from "../schemas/index.js";
|
|
2
|
-
|
|
3
|
-
import {} from "./rpc/profiling/index.js";
|
|
4
|
-
const logger = getServerLogger();
|
|
5
|
-
function buildErrorResponseData(error, profiler) {
|
|
6
|
-
const errorResponse = createErrorResponse(error);
|
|
7
|
-
const validated = responseSchema.parse(errorResponse);
|
|
8
|
-
const json = JSON.stringify(validated);
|
|
9
|
-
return profiler ? profiler.serializeError(json) : json;
|
|
10
|
-
}
|
|
11
|
-
export function sendErrorResponse(req, error, profiler) {
|
|
2
|
+
export function sendErrorResponse(req, error) {
|
|
12
3
|
try {
|
|
13
|
-
|
|
4
|
+
const errorResponse = createErrorResponse(error);
|
|
5
|
+
const responseData = JSON.stringify(responseSchema.parse(errorResponse));
|
|
6
|
+
req.reply(responseData, "utf-8");
|
|
14
7
|
}
|
|
15
8
|
catch (responseError) {
|
|
16
|
-
|
|
9
|
+
console.error("Failed to create error response:", responseError);
|
|
17
10
|
const fallbackError = createErrorResponse(new Error("Internal server error"));
|
|
18
11
|
req.reply(JSON.stringify(fallbackError), "utf-8");
|
|
19
12
|
}
|
|
20
13
|
}
|
|
21
|
-
export function sendStreamErrorResponse(stream, error
|
|
14
|
+
export function sendStreamErrorResponse(stream, error) {
|
|
22
15
|
try {
|
|
23
|
-
|
|
16
|
+
const errorResponse = createErrorResponse(error);
|
|
17
|
+
const responseData = JSON.stringify(responseSchema.parse(errorResponse));
|
|
18
|
+
stream.write(responseData + "\n", "utf-8");
|
|
24
19
|
stream.end();
|
|
25
20
|
}
|
|
26
21
|
catch (responseError) {
|
|
27
|
-
|
|
22
|
+
console.error("Failed to create stream error response:", responseError);
|
|
28
23
|
const fallbackError = createErrorResponse(new Error("Internal server error"));
|
|
29
24
|
stream.write(JSON.stringify(fallbackError) + "\n", "utf-8");
|
|
30
25
|
stream.end();
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
// import http from "bare-http1";
|
|
2
|
+
// import process from "bare-process";
|
|
3
|
+
// import { loadModel, completion } from "./handlers/llamacpp";
|
|
4
|
+
// // import { loadWhisperModel, transcribe } from "./whisper.js";
|
|
5
|
+
export {};
|
|
6
|
+
// export type Request = http.HTTPIncomingMessage;
|
|
7
|
+
// export type Response = http.HTTPServerResponse;
|
|
8
|
+
// export type RouteHandler = (
|
|
9
|
+
// req: Request,
|
|
10
|
+
// res: Response
|
|
11
|
+
// ) => Promise<void>;
|
|
12
|
+
// // async function transcribeRoute(
|
|
13
|
+
// // req: http.Request,
|
|
14
|
+
// // res: http.Response
|
|
15
|
+
// // ): Promise<void> {
|
|
16
|
+
// // if (req.method !== 'POST') {
|
|
17
|
+
// // res.statusCode = 405;
|
|
18
|
+
// // res.setHeader('Content-Type', 'application/json');
|
|
19
|
+
// // const errorResponse = JSON.stringify({ error: 'Method not allowed' });
|
|
20
|
+
// // res.setHeader("Content-Length", errorResponse.length);
|
|
21
|
+
// // res.write(errorResponse);
|
|
22
|
+
// // res.end();
|
|
23
|
+
// // return;
|
|
24
|
+
// // }
|
|
25
|
+
// // try {
|
|
26
|
+
// // // Read the request body
|
|
27
|
+
// // let body = '';
|
|
28
|
+
// // req.on('data', (chunk) => {
|
|
29
|
+
// // body += chunk;
|
|
30
|
+
// // });
|
|
31
|
+
// // await new Promise((resolve) => {
|
|
32
|
+
// // req.on('end', resolve);
|
|
33
|
+
// // });
|
|
34
|
+
// // // Parse JSON body
|
|
35
|
+
// // const { audio: b64Audio } = JSON.parse(body);
|
|
36
|
+
// // if (!b64Audio) {
|
|
37
|
+
// // res.statusCode = 400;
|
|
38
|
+
// // res.setHeader('Content-Type', 'application/json');
|
|
39
|
+
// // const errorResponse = JSON.stringify({ error: 'Missing b64Audio in request body' });
|
|
40
|
+
// // res.setHeader("Content-Length", errorResponse.length);
|
|
41
|
+
// // res.write(errorResponse);
|
|
42
|
+
// // res.end();
|
|
43
|
+
// // return;
|
|
44
|
+
// // }
|
|
45
|
+
// // // Call transcribe function
|
|
46
|
+
// // const transcription = await transcribe(b64Audio);
|
|
47
|
+
// // // Return transcription result
|
|
48
|
+
// // res.statusCode = 200;
|
|
49
|
+
// // res.setHeader('Content-Type', 'application/json');
|
|
50
|
+
// // const response = JSON.stringify({ transcription });
|
|
51
|
+
// // res.setHeader("Content-Length", response.length);
|
|
52
|
+
// // res.write(response);
|
|
53
|
+
// // res.end();
|
|
54
|
+
// // } catch (error) {
|
|
55
|
+
// // console.error('Transcription error:', error);
|
|
56
|
+
// // res.statusCode = 500;
|
|
57
|
+
// // res.setHeader('Content-Type', 'application/json');
|
|
58
|
+
// // const errorResponse = JSON.stringify({ error: 'Internal server error' });
|
|
59
|
+
// // res.setHeader("Content-Length", errorResponse.length);
|
|
60
|
+
// // res.write(errorResponse);
|
|
61
|
+
// // res.end();
|
|
62
|
+
// // }
|
|
63
|
+
// // }
|
|
64
|
+
// async function completionRoute(
|
|
65
|
+
// req: Request,
|
|
66
|
+
// res: Response
|
|
67
|
+
// ): Promise<void> {
|
|
68
|
+
// if (req.method !== 'POST') {
|
|
69
|
+
// res.statusCode = 405;
|
|
70
|
+
// res.setHeader('Content-Type', 'application/json');
|
|
71
|
+
// const errorResponse = JSON.stringify({ error: 'Method not allowed' });
|
|
72
|
+
// res.setHeader("Content-Length", errorResponse.length);
|
|
73
|
+
// res.write(errorResponse);
|
|
74
|
+
// res.end();
|
|
75
|
+
// return;
|
|
76
|
+
// }
|
|
77
|
+
// try {
|
|
78
|
+
// // Read the request body
|
|
79
|
+
// let body = '';
|
|
80
|
+
// req.on('data', (chunk) => {
|
|
81
|
+
// body += chunk;
|
|
82
|
+
// });
|
|
83
|
+
// await new Promise((resolve) => {
|
|
84
|
+
// req.on('end', resolve);
|
|
85
|
+
// });
|
|
86
|
+
// // Parse JSON body
|
|
87
|
+
// const { messages } = JSON.parse(body);
|
|
88
|
+
// if (!messages || !Array.isArray(messages)) {
|
|
89
|
+
// res.statusCode = 400;
|
|
90
|
+
// res.setHeader('Content-Type', 'application/json');
|
|
91
|
+
// const errorResponse = JSON.stringify({ error: 'Missing or invalid messages in request body' });
|
|
92
|
+
// res.setHeader("Content-Length", errorResponse.length);
|
|
93
|
+
// res.write(errorResponse);
|
|
94
|
+
// res.end();
|
|
95
|
+
// return;
|
|
96
|
+
// }
|
|
97
|
+
// // Call completion function
|
|
98
|
+
// const response = await completion(messages);
|
|
99
|
+
// // Return completion result
|
|
100
|
+
// res.statusCode = 200;
|
|
101
|
+
// res.setHeader('Content-Type', 'application/json');
|
|
102
|
+
// const jsonResponse = JSON.stringify({ response });
|
|
103
|
+
// res.setHeader("Content-Length", jsonResponse.length);
|
|
104
|
+
// res.write(jsonResponse);
|
|
105
|
+
// res.end();
|
|
106
|
+
// } catch (error) {
|
|
107
|
+
// console.error('Completion error:', error);
|
|
108
|
+
// res.statusCode = 500;
|
|
109
|
+
// res.setHeader('Content-Type', 'application/json');
|
|
110
|
+
// const errorResponse = JSON.stringify({ error: 'Internal server error' });
|
|
111
|
+
// res.setHeader("Content-Length", errorResponse.length);
|
|
112
|
+
// res.write(errorResponse);
|
|
113
|
+
// res.end();
|
|
114
|
+
// }
|
|
115
|
+
// }
|
|
116
|
+
// export const routes: Record<string, RouteHandler> = {
|
|
117
|
+
// // '/transcribe': transcribeRoute,
|
|
118
|
+
// '/completion': completionRoute
|
|
119
|
+
// };
|
|
120
|
+
// export async function handleRequest(
|
|
121
|
+
// req: Request,
|
|
122
|
+
// res: Response
|
|
123
|
+
// ): Promise<void> {
|
|
124
|
+
// // Set CORS headers
|
|
125
|
+
// res.setHeader('Access-Control-Allow-Origin', '*');
|
|
126
|
+
// res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
|
|
127
|
+
// res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
|
|
128
|
+
// // Handle preflight requests
|
|
129
|
+
// if (req.method === 'OPTIONS') {
|
|
130
|
+
// res.statusCode = 200;
|
|
131
|
+
// res.end();
|
|
132
|
+
// return;
|
|
133
|
+
// }
|
|
134
|
+
// const url = new URL(req.url!, `http://${req.headers.host}`);
|
|
135
|
+
// const route = routes[url.pathname];
|
|
136
|
+
// if (route) {
|
|
137
|
+
// await route(req, res);
|
|
138
|
+
// } else {
|
|
139
|
+
// // Handle 404 for unknown routes
|
|
140
|
+
// res.statusCode = 404;
|
|
141
|
+
// res.setHeader('Content-Type', 'application/json');
|
|
142
|
+
// const errorResponse = JSON.stringify({ error: 'Route not found' });
|
|
143
|
+
// res.setHeader("Content-Length", errorResponse.length);
|
|
144
|
+
// res.write(errorResponse);
|
|
145
|
+
// res.end();
|
|
146
|
+
// }
|
|
147
|
+
// }
|
|
148
|
+
// async function startServer(port: number = 3000): Promise<void> {
|
|
149
|
+
// const server = http.createServer(handleRequest);
|
|
150
|
+
// server.listen(port, () => {
|
|
151
|
+
// console.log(`HTTP server listening on port ${port}`);
|
|
152
|
+
// });
|
|
153
|
+
// // Handle graceful shutdown
|
|
154
|
+
// process.on('SIGTERM', () => {
|
|
155
|
+
// console.log('Shutting down HTTP server...');
|
|
156
|
+
// server.close(() => {
|
|
157
|
+
// console.log('HTTP server closed');
|
|
158
|
+
// process.exit(0);
|
|
159
|
+
// });
|
|
160
|
+
// });
|
|
161
|
+
// process.on('SIGINT', () => {
|
|
162
|
+
// console.log('Shutting down HTTP server...');
|
|
163
|
+
// server.close(() => {
|
|
164
|
+
// console.log('HTTP server closed');
|
|
165
|
+
// process.exit(0);
|
|
166
|
+
// });
|
|
167
|
+
// });
|
|
168
|
+
// }
|
|
169
|
+
// // Main application startup
|
|
170
|
+
// async function main() {
|
|
171
|
+
// console.log("🚀 Starting QVAC Notes server...");
|
|
172
|
+
// try {
|
|
173
|
+
// // Load models on startup
|
|
174
|
+
// console.log("Loading Whisper model...");
|
|
175
|
+
// // await loadWhisperModel();
|
|
176
|
+
// console.log("✅ Whisper model loaded");
|
|
177
|
+
// // Load LLM model (you may want to make this configurable)
|
|
178
|
+
// console.log("Loading LLM model...");
|
|
179
|
+
// await loadModel("/Users/marco/.cache/lm-studio/models/lmstudio-community/medgemma-4b-it-GGUF/medgemma-4b-it-Q4_K_M.gguf");
|
|
180
|
+
// console.log("✅ LLM model loaded");
|
|
181
|
+
// // Start HTTP server
|
|
182
|
+
// await startServer();
|
|
183
|
+
// } catch (error) {
|
|
184
|
+
// console.error("❌ Failed to start server:", error);
|
|
185
|
+
// process.exit(1);
|
|
186
|
+
// }
|
|
187
|
+
// }
|
|
188
|
+
// // Start the server
|
|
189
|
+
// main().catch(console.error);
|
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
import RPC from "bare-rpc";
|
|
2
2
|
import { connect } from "bare-net";
|
|
3
3
|
import { handleRequest } from "./handle-request.js";
|
|
4
|
-
import { getServerLogger } from "../../logging/index.js";
|
|
5
|
-
const logger = getServerLogger();
|
|
6
4
|
export function createBareKitRPCServer() {
|
|
7
5
|
const { IPC } = globalThis
|
|
8
6
|
.BareKit;
|
|
9
7
|
return new RPC(IPC, handleRequest);
|
|
10
8
|
}
|
|
11
9
|
export function createIPCClient(socketPath) {
|
|
12
|
-
|
|
10
|
+
console.log(`Connecting to IPC socket at ${socketPath}`);
|
|
13
11
|
const socket = connect(socketPath);
|
|
14
12
|
socket.on("connect", () => {
|
|
15
|
-
|
|
13
|
+
console.log("Connected to IPC server");
|
|
16
14
|
});
|
|
17
15
|
socket.on("error", (err) => {
|
|
18
|
-
|
|
16
|
+
console.error("IPC client connection error:", err);
|
|
19
17
|
});
|
|
20
18
|
return new RPC(socket, handleRequest);
|
|
21
19
|
}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
import type RPC from "bare-rpc";
|
|
2
|
+
export type BareRPCRequest = {
|
|
3
|
+
data: Buffer;
|
|
4
|
+
reply: (data: string, encoding: BufferEncoding) => void;
|
|
5
|
+
createResponseStream: () => {
|
|
6
|
+
write: (data: string, encoding: BufferEncoding) => void;
|
|
7
|
+
end: () => void;
|
|
8
|
+
[Symbol.asyncIterator]?: () => AsyncIterator<Buffer>;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
2
11
|
export declare function handleRequest(req: RPC.IncomingRequest): Promise<void>;
|
|
3
12
|
//# sourceMappingURL=handle-request.d.ts.map
|