@qvac/sdk 0.19.0 → 0.20.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 +111 -82
- package/dist/examples/abot-world.js +3 -3
- package/dist/examples/advisory-model-fit.d.ts +59 -0
- package/dist/examples/advisory-model-fit.js +156 -0
- package/dist/examples/asr/parakeet-nemotron-filesystem.d.ts +2 -0
- package/dist/examples/asr/parakeet-nemotron-filesystem.js +170 -0
- package/dist/examples/assess-model-fit.js +6 -1
- package/dist/examples/audiogen/edit-music.d.ts +2 -0
- package/dist/examples/audiogen/edit-music.js +121 -0
- package/dist/examples/audiogen/understand-music.d.ts +2 -0
- package/dist/examples/audiogen/understand-music.js +73 -0
- package/dist/examples/diffusion-ic-lora-ltx.js +3 -3
- package/dist/examples/diffusion-img2vid.js +1 -1
- package/dist/examples/diffusion-txt2vid-minimax-h3.d.ts +2 -0
- package/dist/examples/diffusion-txt2vid-minimax-h3.js +64 -0
- package/dist/examples/diffusion-txt2vid.js +1 -1
- package/dist/examples/kv-cache-cleanup.js +5 -2
- package/dist/examples/model-fit-ui/server.js +33 -7
- package/dist/examples/rag/rag-turbovec.d.ts +2 -0
- package/dist/examples/rag/rag-turbovec.js +58 -0
- package/dist/examples/tts/audio8.js +5 -5
- package/dist/examples/tts/chatterbox-enhanced.js +4 -5
- package/dist/examples/tts/chatterbox-multilingual.js +5 -5
- package/dist/examples/tts/chatterbox.js +5 -5
- package/dist/examples/tts/cosyvoice3.js +5 -5
- package/dist/examples/tts/llm-to-tts-streaming.js +12 -2
- package/dist/examples/tts/parler.js +5 -5
- package/dist/examples/tts/supertonic-enhanced.js +4 -5
- package/dist/examples/tts/supertonic-multilingual.js +5 -5
- package/dist/examples/tts/supertonic.js +5 -5
- package/dist/scripts/contract/build-contract.d.ts +1 -1
- package/dist/scripts/contract/constants-registry.d.ts +31 -0
- package/dist/scripts/contract/constants-registry.js +13 -2
- package/dist/scripts/contract/method-shapes.d.ts +3 -0
- package/dist/scripts/contract/method-shapes.js +3 -0
- package/dist/src/client/api/assess-model-fit.js +2 -0
- package/dist/src/client/api/audio-edit.d.ts +36 -0
- package/dist/src/client/api/audio-edit.js +38 -0
- package/dist/src/client/api/audio-gen-result.d.ts +5 -1
- package/dist/src/client/api/audio-gen-result.js +105 -52
- package/dist/src/client/api/audio-gen.d.ts +38 -1
- package/dist/src/client/api/audio-gen.js +38 -1
- package/dist/src/client/api/audio-understand.d.ts +25 -0
- package/dist/src/client/api/audio-understand.js +27 -0
- package/dist/src/client/api/delete-cache.d.ts +7 -1
- package/dist/src/client/api/delete-cache.js +11 -1
- package/dist/src/client/api/index.d.ts +3 -0
- package/dist/src/client/api/index.js +3 -0
- package/dist/src/client/api/text-to-speech.d.ts +31 -4
- package/dist/src/client/api/text-to-speech.js +118 -21
- package/dist/src/client/api/vector-index.d.ts +143 -0
- package/dist/src/client/api/vector-index.js +168 -0
- package/dist/src/client/api/world.d.ts +2 -2
- package/dist/src/commands/bundle/manifest.d.ts +2 -0
- package/dist/src/commands/verify/addon-source.d.ts +6 -0
- package/dist/src/commands/verify/bundle-source.d.ts +2 -0
- package/dist/src/commands/verify/bundle-source.js +155 -1
- package/dist/src/commands/verify/index.js +1 -0
- package/dist/src/commands/verify/prebuilds.d.ts +23 -0
- package/dist/src/commands/verify/prebuilds.js +129 -13
- package/dist/src/commands/verify/resource-collectors.js +2 -1
- package/dist/src/expo/plugins/patches/qvac-platform-addons.d.ts +23 -0
- package/dist/src/expo/plugins/patches/qvac-platform-addons.js +94 -0
- package/dist/src/expo/plugins/withMobileBundle.d.ts +12 -2
- package/dist/src/expo/plugins/withMobileBundle.js +62 -31
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.js +7 -3
- package/dist/src/schemas/sdk-errors-server.d.ts +4 -0
- package/dist/src/schemas/sdk-errors-server.js +22 -0
- package/dist/src/utils/aggregate-events.d.ts +3 -1
- package/dist/src/utils/aggregate-events.js +7 -1
- package/dist/src/utils/errors-server.d.ts +12 -0
- package/dist/src/utils/errors-server.js +21 -0
- package/docs/system-resources-support-matrix.md +19 -19
- package/package.json +22 -15
- package/src/electron-forge/index.cjs +86 -14
- package/src/expo/plugins/patches/android-link.mjs +18 -9
- package/src/expo/plugins/patches/ios-link.mjs +18 -9
- package/src/expo/plugins/patches/qvac-platform-addons.ts +124 -0
|
@@ -12,7 +12,20 @@ import { BundleVerificationFailedError } from '../../utils/errors-client.js';
|
|
|
12
12
|
const { withDangerousMod } = configPlugins;
|
|
13
13
|
/** Modules to defer from mobile bundles (not available at bundle time) */
|
|
14
14
|
const DEFERRED_MODULES = ['expo-file-system', 'react-native-bare-kit'];
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Desktop-only spawn path, deferred so bare-pack does not walk `bare-process`
|
|
17
|
+
* -> `bare-posix` (no `android-arm64` prebuild). Mobile advisory uses
|
|
18
|
+
* in-process `@qvac/model-fit` (`fitParams`), not this subprocess.
|
|
19
|
+
*/
|
|
20
|
+
const MOBILE_UNSUPPORTED_MODULES = ['bare-runtime/spawn', '@qvac/model-fit/process'];
|
|
21
|
+
const MOBILE_HOSTS_BY_PLATFORM = {
|
|
22
|
+
android: ['android-arm64'],
|
|
23
|
+
ios: ['ios-arm64', 'ios-arm64-simulator', 'ios-x64-simulator']
|
|
24
|
+
};
|
|
25
|
+
/** Compiled resolver copied beside each patched linker as this filename. */
|
|
26
|
+
const PLATFORM_ADDON_RESOLVER = 'qvac-platform-addons.mjs';
|
|
27
|
+
/** Every mobile host, in platform order. The bundle covers all of them. */
|
|
28
|
+
const MOBILE_HOSTS = [...MOBILE_HOSTS_BY_PLATFORM.android, ...MOBILE_HOSTS_BY_PLATFORM.ios];
|
|
16
29
|
/**
|
|
17
30
|
* Expo plugin: bundle, verify, then copy the mobile worker bundle.
|
|
18
31
|
*
|
|
@@ -31,10 +44,18 @@ function withMobileBundle(config) {
|
|
|
31
44
|
else {
|
|
32
45
|
console.log('🕚 QVAC: No config found, generating default bundle (all plugins)...');
|
|
33
46
|
}
|
|
34
|
-
const deferredModules = [
|
|
35
|
-
|
|
47
|
+
const deferredModules = [
|
|
48
|
+
...DEFERRED_MODULES,
|
|
49
|
+
...MOBILE_UNSUPPORTED_MODULES,
|
|
50
|
+
`${sdkPackage.name}/worker.mobile.bundle`
|
|
51
|
+
];
|
|
52
|
+
// The bundle is one shared artifact both platforms import, so it is built
|
|
53
|
+
// for every mobile host: a dual-platform `expo prebuild` runs this mod twice
|
|
54
|
+
// and the second run would otherwise overwrite the first platform's bundle
|
|
55
|
+
// with one that resolved the other platform's conditions.
|
|
56
|
+
const linkerPaths = await runBundler(projectRoot, sdkPackage.dir, configPath, deferredModules, MOBILE_HOSTS);
|
|
36
57
|
const generatedBundle = path.join(projectRoot, 'qvac', 'worker.bundle.js');
|
|
37
|
-
await runVerifier(projectRoot, generatedBundle, configPath);
|
|
58
|
+
await runVerifier(projectRoot, generatedBundle, configPath, mobileHostsForPlatform(config.modRequest.platform));
|
|
38
59
|
fs.copyFileSync(generatedBundle, outputPath);
|
|
39
60
|
if (config.modRequest.platform === 'ios' && linkerPaths.ios !== null) {
|
|
40
61
|
await runIOSAddonLinker(linkerPaths.ios);
|
|
@@ -46,6 +67,12 @@ function withMobileBundle(config) {
|
|
|
46
67
|
config = withDangerousMod(config, ['ios', buildMobileBundle]);
|
|
47
68
|
return config;
|
|
48
69
|
}
|
|
70
|
+
function mobileHostsForPlatform(platform) {
|
|
71
|
+
if (platform !== 'android' && platform !== 'ios') {
|
|
72
|
+
throw new Error(`QVAC: withMobileBundle only supports android and ios builds, got "${platform}"`);
|
|
73
|
+
}
|
|
74
|
+
return MOBILE_HOSTS_BY_PLATFORM[platform];
|
|
75
|
+
}
|
|
49
76
|
/** Finds qvac.config.* file in project root */
|
|
50
77
|
function findConfigFile(projectRoot) {
|
|
51
78
|
for (const candidate of CONFIG_CANDIDATES) {
|
|
@@ -56,7 +83,7 @@ function findConfigFile(projectRoot) {
|
|
|
56
83
|
}
|
|
57
84
|
return null;
|
|
58
85
|
}
|
|
59
|
-
async function runVerifier(projectRoot, generatedBundle, configPath) {
|
|
86
|
+
async function runVerifier(projectRoot, generatedBundle, configPath, hosts) {
|
|
60
87
|
if (!configPath) {
|
|
61
88
|
console.log('⚠️ QVAC: no qvac.config.* found — Bare runtime will be auto-detected ' +
|
|
62
89
|
'from node_modules (bare-runtime, then bare). Add qvac.config.json ' +
|
|
@@ -65,20 +92,20 @@ async function runVerifier(projectRoot, generatedBundle, configPath) {
|
|
|
65
92
|
const result = await verifyBundle({
|
|
66
93
|
projectRoot,
|
|
67
94
|
addonsSource: generatedBundle,
|
|
68
|
-
hosts
|
|
95
|
+
hosts,
|
|
69
96
|
...(configPath ? { configPath } : {})
|
|
70
97
|
});
|
|
71
98
|
if (hasErrors(result)) {
|
|
72
99
|
throw new BundleVerificationFailedError(generatedBundle, new Error(formatVerifyBundleResult(result)));
|
|
73
100
|
}
|
|
74
101
|
}
|
|
75
|
-
async function runBundler(projectRoot, qvacSdkPath, configPath, deferredModules) {
|
|
102
|
+
async function runBundler(projectRoot, qvacSdkPath, configPath, deferredModules, hosts) {
|
|
76
103
|
const linkerPaths = patchBareKitLinkers(projectRoot, qvacSdkPath);
|
|
77
104
|
await bundleSdk({
|
|
78
105
|
projectRoot,
|
|
79
106
|
sdkPath: qvacSdkPath,
|
|
80
107
|
...(configPath ? { configPath } : {}),
|
|
81
|
-
hosts
|
|
108
|
+
hosts,
|
|
82
109
|
defer: deferredModules,
|
|
83
110
|
quiet: true
|
|
84
111
|
});
|
|
@@ -120,33 +147,37 @@ function patchBareKitLinkers(projectRoot, qvacSdkPath) {
|
|
|
120
147
|
return { android: null, ios: null };
|
|
121
148
|
}
|
|
122
149
|
const patchesDir = path.join(qvacSdkPath, 'src', 'expo', 'plugins', 'patches');
|
|
150
|
+
const resolver = compiledPlatformAddonResolver(qvacSdkPath);
|
|
123
151
|
if (!fs.existsSync(patchesDir)) {
|
|
124
152
|
console.log(`⚠️ QVAC: patches directory not found (${patchesDir}), skipping linker patch`);
|
|
125
153
|
return { android: null, ios: null };
|
|
126
154
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
iosLinkerPath = iosTarget;
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
console.log(`⚠️ QVAC: iOS linker patch not found (${iosPatch})`);
|
|
155
|
+
return {
|
|
156
|
+
android: copyLinkerPatch(patchesDir, resolver, path.join(bareKitPath, 'android'), 'android-link.mjs'),
|
|
157
|
+
ios: copyLinkerPatch(patchesDir, resolver, path.join(bareKitPath, 'ios'), 'ios-link.mjs')
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Copies one linker patch and the split-addon resolver it imports, returning the
|
|
162
|
+
* installed linker path. The resolver has to sit beside the linker: the patch is
|
|
163
|
+
* installed into react-native-bare-kit and imports it relatively.
|
|
164
|
+
*/
|
|
165
|
+
function copyLinkerPatch(patchesDir, resolver, targetDir, patchName) {
|
|
166
|
+
const patch = path.join(patchesDir, patchName);
|
|
167
|
+
if (!fs.existsSync(patch) || !fs.existsSync(resolver)) {
|
|
168
|
+
// Installing the patch without the resolver it imports would break linking
|
|
169
|
+
// outright, so leave the stock linker in place instead.
|
|
170
|
+
console.log(`⚠️ QVAC: linker patch incomplete (${patch}), leaving the stock linker`);
|
|
171
|
+
return null;
|
|
148
172
|
}
|
|
149
|
-
|
|
173
|
+
const target = path.join(targetDir, 'link.mjs');
|
|
174
|
+
fs.copyFileSync(patch, target);
|
|
175
|
+
fs.copyFileSync(resolver, path.join(targetDir, PLATFORM_ADDON_RESOLVER));
|
|
176
|
+
console.log(`✅ QVAC: Patched ${path.basename(targetDir)}/link.mjs for manifest-aware linking`);
|
|
177
|
+
return target;
|
|
178
|
+
}
|
|
179
|
+
function compiledPlatformAddonResolver(qvacSdkPath) {
|
|
180
|
+
return path.join(qvacSdkPath, 'dist', 'src', 'expo', 'plugins', 'patches', 'qvac-platform-addons.js');
|
|
150
181
|
}
|
|
151
|
-
export { MOBILE_HOSTS, patchBareKitLinkers, runIOSAddonLinker };
|
|
182
|
+
export { MOBILE_HOSTS, MOBILE_HOSTS_BY_PLATFORM, MOBILE_UNSUPPORTED_MODULES, mobileHostsForPlatform, patchBareKitLinkers, runIOSAddonLinker };
|
|
152
183
|
export default withMobileBundle;
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { batchCompletion, completion, deleteCache, loadModel, downloadAsset, heartbeat, unloadModel, transcribe, transcribeStream, bciTranscribe, bciTranscribeStream, embed, finetune, translate, cancel, ragChunk, ragIngest, ragSaveEmbeddings, ragSearch, ragDeleteEmbeddings, ragReindex, ragListWorkspaces, ragCloseWorkspace, ragDeleteWorkspace, textToSpeech, textToSpeechStream, getModelInfo, getLoadedModelInfo, getSystemResources, assessModelFit, loggingStream, subscribeServerLogs, type ServerLogHandler, ocr, invokePlugin, invokePluginStream, diffusion, type DiffusionProgressTick, classify, video, type VideoProgressTick, upscale, worldCreateScene, worldStep, type WorldStepResult, type WorldStepProgressTick, type WorldSceneResult, type WorldSceneResultWithPack, modelRegistryList, modelRegistrySearch, modelRegistryGetModel, type ModelRegistrySearchParams, suspend, resume, state, vla, vlaHparams, vlaSetEmbodiment, vlaPreprocessImage, vlaPadState, VLA_DEFAULT_IMAGE_SIZE, audioGen, type FinetuneHandle } from './client/api/index.js';
|
|
1
|
+
export { batchCompletion, completion, deleteCache, loadModel, downloadAsset, heartbeat, unloadModel, transcribe, transcribeStream, bciTranscribe, bciTranscribeStream, embed, finetune, translate, cancel, ragChunk, ragIngest, ragSaveEmbeddings, ragSearch, ragDeleteEmbeddings, ragReindex, ragListWorkspaces, ragCloseWorkspace, ragDeleteWorkspace, createVectorIndex, loadVectorIndex, type VectorIndex, textToSpeech, textToSpeechStream, getModelInfo, getLoadedModelInfo, getSystemResources, assessModelFit, loggingStream, subscribeServerLogs, type ServerLogHandler, ocr, invokePlugin, invokePluginStream, diffusion, type DiffusionProgressTick, classify, video, type VideoProgressTick, upscale, worldCreateScene, worldStep, type WorldStepResult, type WorldStepProgressTick, type WorldSceneResult, type WorldSceneResultWithPack, modelRegistryList, modelRegistrySearch, modelRegistryGetModel, type ModelRegistrySearchParams, suspend, resume, state, vla, vlaHparams, vlaSetEmbodiment, vlaPreprocessImage, vlaPadState, VLA_DEFAULT_IMAGE_SIZE, audioGen, audioEdit, audioUnderstand, type FinetuneHandle } from './client/api/index.js';
|
|
2
2
|
export { close } from './client/index.js';
|
|
3
3
|
export { plugins } from './client/plugins-factory.js';
|
|
4
|
-
export { type LifecycleState, type ModelProgressUpdate, type LoadModelOptions, type LoadCustomPluginModelOptions, type DownloadAssetOptions, type Tool, type ToolCall, type ToolCallWithCall, type ToolCallError, type ToolCallEvent, type CompletionEvent, type CompletionFinal, type CompletionRun, type CompletionStats, type BatchCompletionEvent, type BatchCompletionResult, type BatchCompletionRun, type BatchPrompt, type EmbedStats, type TranscribeStats, VERBOSITY, type Attachment, type TranscribeStreamSession, type TranscribeStreamMetadataSession, type TranscribeStreamConversationSession, type TranscribeStreamEvent, type VadStateEvent, type EndOfTurnEvent, type TranscribeSegment, type BciConfig, type BciTranscribeClientParams, type BciTranscribeStreamClientParams, type BciTranscribeStreamSession, type BciTranscribeStreamMetadataSession, type BciStreamOpts, type NeuralInput, type TextToSpeechStreamSession, type TextToSpeechStreamResponse, type TextToSpeechStreamClientParams, type TtsClientParamsInput, type TtsParlerEmotion, type TtsParlerLoadConfig, type TtsParlerRuntimeConfig, TTS_PACES, TTS_COSYVOICE3_EMOTIONS, TTS_COSYVOICE3_INSTRUCT_DIALECTS, TTS_COSYVOICE3_INSTRUCT_VOLUMES, TTS_COSYVOICE3_INSTRUCT_STYLES, type TtsPace, type TtsCosyvoice3Emotion, type TtsCosyvoice3Instruct, type TtsCosyvoice3LoadConfig, type TtsCosyvoice3RuntimeConfig, type TtsAudio8LoadConfig, type TtsAudio8RuntimeConfig, type CompletionParams, type ToolDialect, type RagSearchResult, type RagSaveEmbeddingsResult, type RagReindexResult, type RagEmbeddedDoc, type RagDoc, type RagWorkspaceInfo, type RagCloseWorkspaceParams, type RagDeleteWorkspaceParams, type RagIngestStage, type RagReindexStage, type RagSaveStage, RAG_ERROR_CODES, type QvacConfig, type ModelInfo, type GetModelInfoParams, type GetLoadedModelInfoParams, type LoadedModelInfo, type GetSystemResourcesInput, type ResourceScope, type ResourceProvenance, type ResourceMetric, type GraphicsDriver, type GraphicsDriverCapabilities, type BackendProbeResult, type BackendDevice, type BackendDriver, type BackendFallback, type InferenceBackendDiagnostics, type CPUResourceCapabilities, type GPUResourceCapabilities, type SystemResourceCapabilities, type GPUResourceSample, type SystemResourceSample, type SystemResources, type AssessModelFitInput, type AssessModelFitResult, type LoadedInstance, type CacheFileInfo, toolSchema, type McpClient, type McpClientInput, type OCRClientParams, type OCRTextBlock, type OCROptions, type ClassifyClientParams, type ClassificationResult, type DiffusionClientParams, type DiffusionStreamResponse, type DiffusionStats, AUDIOGEN_ENGINES, AUDIOGEN_TASK_TYPES, AUDIOGEN_INPUT_SAMPLE_RATE, AUDIOGEN_INPUT_CHANNELS, AUDIOGEN_INPUT_MAX_SECONDS, type AudioGenEngine, type AudioGenTaskType, type AudioGenAudioInput, type AudioGenClientParams, type AudioGenConfig, type AudioGenRuntimeConfig, type AudioGenProgress, type AudioGenAudio, type AudioGenStats, type AudioGenResult, type AudioGenStreamResponse, type VideoClientParams, type VideoStreamResponse, type VideoStats, type UpscaleClientParams, type UpscaleStreamResponse, type UpscaleStats, type WalkKey, type WalkKeysInput, type WorldStepClientParams, type WorldStepStreamResponse, type WorldStepStats, type WorldSceneClientParams, type WorldSceneStreamResponse, type WorldSceneStats, type VlaConfig, type VlaClientRunParams, type VlaClientRunResult, type VlaEmbodimentSelection, type VlaEmbodimentSelector, type VlaHparams, type VlaStats, definePlugin, defineHandler, defineDuplexHandler, PluginDefinitionInvalidError, type QvacPlugin, type CreateModelParams, type PluginModelResult, type ModelRegistryEntry, type ModelRegistryEntryAddon, type ProfilerMode, type FinetuneValidation, type FinetuneRunParams, type FinetuneGetStateParams, type FinetuneStopParams, type FinetuneParams, type FinetuneStatus, type FinetuneProgress, type FinetuneStats, type FinetuneResult } from '@qvac/inference/surface';
|
|
4
|
+
export { type LifecycleState, type ModelProgressUpdate, type LoadModelOptions, type LoadCustomPluginModelOptions, type DownloadAssetOptions, type Tool, type ToolCall, type ToolCallWithCall, type ToolCallError, type ToolCallEvent, type CompletionEvent, type CompletionFinal, type CompletionRun, type CompletionStats, type BatchCompletionEvent, type BatchCompletionResult, type BatchCompletionRun, type BatchPrompt, type EmbedStats, type TranscribeStats, VERBOSITY, type Attachment, type TranscribeStreamSession, type TranscribeStreamMetadataSession, type TranscribeStreamConversationSession, type TranscribeStreamEvent, type VadStateEvent, type EndOfTurnEvent, type TranscribeSegment, type BciConfig, type BciTranscribeClientParams, type BciTranscribeStreamClientParams, type BciTranscribeStreamSession, type BciTranscribeStreamMetadataSession, type BciStreamOpts, type NeuralInput, type TextToSpeechStreamSession, type TextToSpeechStreamResponse, type TextToSpeechStreamClientParams, type TtsClientParamsInput, type TextToSpeechStreamResult, type TtsSentenceChunkUpdate, type TtsResponse, type TtsStats, TTS_ENGINES, type TtsEngine, TTS_PARLER_EMOTIONS, type TtsParlerEmotion, type TtsParlerLoadConfig, type TtsParlerRuntimeConfig, TTS_PACES, TTS_SENTENCE_DELIMITER_PRESETS, type TtsSentenceDelimiterPreset, TTS_CHATTERBOX_LANGUAGES, type TtsChatterboxLanguage, type TtsChatterboxLoadConfig, type TtsChatterboxRuntimeConfig, TTS_SUPERTONIC_LANGUAGES, type TtsSupertonicLanguage, type TtsSupertonicLoadConfig, type TtsSupertonicRuntimeConfig, TTS_COSYVOICE3_EMOTIONS, TTS_COSYVOICE3_INSTRUCT_DIALECTS, TTS_COSYVOICE3_INSTRUCT_VOLUMES, TTS_COSYVOICE3_INSTRUCT_STYLES, type TtsPace, type TtsCosyvoice3Emotion, type TtsCosyvoice3Instruct, type TtsCosyvoice3LoadConfig, type TtsCosyvoice3RuntimeConfig, type TtsAudio8LoadConfig, type TtsAudio8RuntimeConfig, type CompletionParams, type ToolDialect, type RagSearchResult, type RagSaveEmbeddingsResult, type RagReindexResult, type RagEmbeddedDoc, type RagDoc, type RagWorkspaceInfo, type RagCloseWorkspaceParams, type RagDeleteWorkspaceParams, type RagIngestStage, type RagReindexStage, type RagSaveStage, RAG_ERROR_CODES, VectorIndexStorage, DEFAULT_VECTOR_INDEX_STORAGE, type VectorId, type VectorIndexHit, type CreateVectorIndexParams, type LoadVectorIndexParams, type VectorIndexAddParams, type VectorIndexIdsParams, type VectorIndexSearchParams, type VectorIndexWriteParams, type QvacConfig, type ModelInfo, type GetModelInfoParams, type GetLoadedModelInfoParams, type LoadedModelInfo, type GetSystemResourcesInput, type ResourceScope, type ResourceProvenance, type ResourceMetric, type GraphicsDriver, type GraphicsDriverCapabilities, type BackendProbeResult, type BackendDevice, type BackendDriver, type BackendFallback, type InferenceBackendDiagnostics, type CPUResourceCapabilities, type GPUResourceCapabilities, type SystemResourceCapabilities, type GPUResourceSample, type SystemResourceSample, type SystemResources, type AssessModelFitInput, type AssessModelFitResult, type LoadedInstance, type CacheFileInfo, toolSchema, type McpClient, type McpClientInput, type OCRClientParams, type OCRTextBlock, type OCROptions, type ClassifyClientParams, type ClassificationResult, type DiffusionClientParams, type DiffusionStreamResponse, type DiffusionStats, AUDIOGEN_ENGINES, AUDIOGEN_TASK_TYPES, AUDIOGEN_TRACKS, AUDIOGEN_INPUT_SAMPLE_RATE, AUDIOGEN_INPUT_CHANNELS, AUDIOGEN_INPUT_MAX_SECONDS, AUDIOGEN_MAX_AUDIO_CODES, AUDIOGEN_EDIT_OPERATIONS, AUDIOGEN_REPAINT_MODES, type AudioGenEngine, type AudioGenTaskType, type AudioGenTrack, type AudioGenAudioInput, type AudioGenClientParams, type AudioGenConfig, type AudioGenRuntimeConfig, type AudioGenProgress, type AudioGenAudio, type AudioGenStats, type AudioGenResult, type AudioGenStreamResponse, type AudioGenEditOperationType, type AudioGenRepaintMode, type AudioEditPrompt, type AudioEditFlowEditOperation, type AudioEditRepaintOperation, type AudioEditOperation, type AudioEditClientParams, type AudioEditStreamResponse, type AudioUnderstandClientParams, type AudioUnderstandResponse, type AudioGenUnderstandResult, type AudioUnderstandResult, type VideoClientParams, type VideoStreamResponse, type VideoStats, type UpscaleClientParams, type UpscaleStreamResponse, type UpscaleStats, type WalkKey, type WalkKeysInput, type WorldStepClientParams, type WorldStepStreamResponse, type WorldStepStats, type WorldSceneClientParams, type WorldSceneStreamResponse, type WorldSceneStats, type VlaConfig, type VlaClientRunParams, type VlaClientRunResult, type VlaEmbodimentSelection, type VlaEmbodimentSelector, type VlaHparams, type VlaStats, definePlugin, defineHandler, defineDuplexHandler, PluginDefinitionInvalidError, type QvacPlugin, type CreateModelParams, type PluginModelResult, type ModelRegistryEntry, type ModelRegistryEntryAddon, type ProfilerMode, type FinetuneValidation, type FinetuneRunParams, type FinetuneGetStateParams, type FinetuneStopParams, type FinetuneParams, type FinetuneStatus, type FinetuneProgress, type FinetuneStats, type FinetuneResult } from '@qvac/inference/surface';
|
|
5
5
|
export { SDK_CLIENT_ERROR_CODES } from './schemas/sdk-errors-client.js';
|
|
6
6
|
export { SDK_SERVER_ERROR_CODES } from './schemas/sdk-errors-server.js';
|
|
7
7
|
export { PLUGIN_LLM, PLUGIN_EMBEDDING, PLUGIN_WHISPER, PLUGIN_BCI, PLUGIN_NMT, PLUGIN_TTS, PLUGIN_OCR, PLUGIN_DIFFUSION, PLUGIN_AUDIOGEN, PLUGIN_VLA, PLUGIN_CLASSIFICATION, SDK_DEFAULT_PLUGINS, type BuiltinPlugin } from './plugin-ids.js';
|
|
@@ -12,7 +12,7 @@ export { SUPPORTED_AUDIO_FORMATS } from '@qvac/inference/surface';
|
|
|
12
12
|
export { InferenceCancelledError } from './utils/errors-server.js';
|
|
13
13
|
export type { InferenceCancelledPartial } from './utils/errors-server.js';
|
|
14
14
|
export { ContextOverflowError, type ContextOverflowErrorSizes, RequestIdConflictError, RequestNotFoundError, RequestRejectedByPolicyError, TranslationFailedError } from './utils/errors-server.js';
|
|
15
|
-
export { BareRuntimeBinaryNotFoundError, WorkerCrashedError, WorkerShutdownError, WorkerStartupError, RequestValidationFailedError, StreamEndedError } from './utils/errors-client.js';
|
|
15
|
+
export { BareRuntimeBinaryNotFoundError, WorkerCrashedError, WorkerShutdownError, WorkerStartupError, RequestValidationFailedError, StreamEndedError, TextToSpeechStreamFailedError } from './utils/errors-client.js';
|
|
16
16
|
export { getLogger, SDK_LOG_ID, SDK_ALL_LOG_ID } from './logging/index.js';
|
|
17
17
|
export type { Logger, LogTransport, LoggerOptions } from './logging/index.js';
|
|
18
18
|
export { profiler, attachBackendDiagnostics } from '@qvac/inference/surface';
|
package/dist/src/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Public API exports only
|
|
2
|
-
export { batchCompletion, completion, deleteCache, loadModel, downloadAsset, heartbeat, unloadModel, transcribe, transcribeStream, bciTranscribe, bciTranscribeStream, embed, finetune, translate, cancel, ragChunk, ragIngest, ragSaveEmbeddings, ragSearch, ragDeleteEmbeddings, ragReindex, ragListWorkspaces, ragCloseWorkspace, ragDeleteWorkspace, textToSpeech, textToSpeechStream, getModelInfo, getLoadedModelInfo, getSystemResources, assessModelFit, loggingStream, subscribeServerLogs, ocr, invokePlugin, invokePluginStream, diffusion, classify, video, upscale, worldCreateScene, worldStep, modelRegistryList, modelRegistrySearch, modelRegistryGetModel, suspend, resume, state, vla, vlaHparams, vlaSetEmbodiment, vlaPreprocessImage, vlaPadState, VLA_DEFAULT_IMAGE_SIZE, audioGen } from './client/api/index.js';
|
|
2
|
+
export { batchCompletion, completion, deleteCache, loadModel, downloadAsset, heartbeat, unloadModel, transcribe, transcribeStream, bciTranscribe, bciTranscribeStream, embed, finetune, translate, cancel, ragChunk, ragIngest, ragSaveEmbeddings, ragSearch, ragDeleteEmbeddings, ragReindex, ragListWorkspaces, ragCloseWorkspace, ragDeleteWorkspace, createVectorIndex, loadVectorIndex, textToSpeech, textToSpeechStream, getModelInfo, getLoadedModelInfo, getSystemResources, assessModelFit, loggingStream, subscribeServerLogs, ocr, invokePlugin, invokePluginStream, diffusion, classify, video, upscale, worldCreateScene, worldStep, modelRegistryList, modelRegistrySearch, modelRegistryGetModel, suspend, resume, state, vla, vlaHparams, vlaSetEmbodiment, vlaPreprocessImage, vlaPadState, VLA_DEFAULT_IMAGE_SIZE, audioGen, audioEdit, audioUnderstand } from './client/api/index.js';
|
|
3
3
|
export { close } from './client/index.js';
|
|
4
4
|
export { plugins } from './client/plugins-factory.js';
|
|
5
|
-
export { VERBOSITY, TTS_PACES, TTS_COSYVOICE3_EMOTIONS, TTS_COSYVOICE3_INSTRUCT_DIALECTS, TTS_COSYVOICE3_INSTRUCT_VOLUMES, TTS_COSYVOICE3_INSTRUCT_STYLES, RAG_ERROR_CODES, toolSchema, AUDIOGEN_ENGINES, AUDIOGEN_TASK_TYPES, AUDIOGEN_INPUT_SAMPLE_RATE, AUDIOGEN_INPUT_CHANNELS, AUDIOGEN_INPUT_MAX_SECONDS, definePlugin, defineHandler, defineDuplexHandler, PluginDefinitionInvalidError } from '@qvac/inference/surface';
|
|
5
|
+
export { VERBOSITY, TTS_ENGINES, TTS_PARLER_EMOTIONS, TTS_PACES, TTS_SENTENCE_DELIMITER_PRESETS, TTS_CHATTERBOX_LANGUAGES, TTS_SUPERTONIC_LANGUAGES, TTS_COSYVOICE3_EMOTIONS, TTS_COSYVOICE3_INSTRUCT_DIALECTS, TTS_COSYVOICE3_INSTRUCT_VOLUMES, TTS_COSYVOICE3_INSTRUCT_STYLES, RAG_ERROR_CODES, VectorIndexStorage, DEFAULT_VECTOR_INDEX_STORAGE, toolSchema, AUDIOGEN_ENGINES, AUDIOGEN_TASK_TYPES, AUDIOGEN_TRACKS, AUDIOGEN_INPUT_SAMPLE_RATE, AUDIOGEN_INPUT_CHANNELS, AUDIOGEN_INPUT_MAX_SECONDS, AUDIOGEN_MAX_AUDIO_CODES, AUDIOGEN_EDIT_OPERATIONS, AUDIOGEN_REPAINT_MODES, definePlugin, defineHandler, defineDuplexHandler, PluginDefinitionInvalidError } from '@qvac/inference/surface';
|
|
6
6
|
// SDK-owned error-code objects: `SDK_CLIENT_ERROR_CODES` holds transport/client
|
|
7
7
|
// codes absent from @qvac/inference, and `SDK_SERVER_ERROR_CODES` carries the
|
|
8
8
|
// client-side error definitions (`addCodes` message registry) that
|
|
@@ -52,7 +52,11 @@ export { ContextOverflowError, RequestIdConflictError, RequestNotFoundError, Req
|
|
|
52
52
|
// `StreamEndedError` is raised by the streaming result helpers (upscale, world)
|
|
53
53
|
// when the RPC stream closes without a terminal `done` frame. Exported for the
|
|
54
54
|
// same reason as the rest of this block: matching on it requires the class.
|
|
55
|
-
|
|
55
|
+
// `TextToSpeechStreamFailedError` is what `textToSpeech()` throws for an
|
|
56
|
+
// invalid stream/sentenceStream combination, and what the duplex TTS session
|
|
57
|
+
// throws on a write after end — its own JSDoc named it long before it was
|
|
58
|
+
// exported.
|
|
59
|
+
export { BareRuntimeBinaryNotFoundError, WorkerCrashedError, WorkerShutdownError, WorkerStartupError, RequestValidationFailedError, StreamEndedError, TextToSpeechStreamFailedError } from './utils/errors-client.js';
|
|
56
60
|
// Logging exports
|
|
57
61
|
export { getLogger, SDK_LOG_ID, SDK_ALL_LOG_ID } from './logging/index.js';
|
|
58
62
|
// Profiler exports
|
|
@@ -50,6 +50,10 @@ export declare const SDK_SERVER_ERROR_CODES: {
|
|
|
50
50
|
readonly RAG_LIST_WORKSPACES_FAILED: 52809;
|
|
51
51
|
readonly RAG_CHUNK_FAILED: 52810;
|
|
52
52
|
readonly RAG_WORKSPACE_NOT_OPEN: 52811;
|
|
53
|
+
readonly VECTOR_INDEX_PROVIDER_UNAVAILABLE: 52850;
|
|
54
|
+
readonly VECTOR_INDEX_NOT_FOUND: 52851;
|
|
55
|
+
readonly VECTOR_INDEX_INVALID_VECTORS: 52852;
|
|
56
|
+
readonly VECTOR_INDEX_FAILED: 52853;
|
|
53
57
|
readonly FILE_NOT_FOUND: 53000;
|
|
54
58
|
readonly DOWNLOAD_CANCELLED: 53001;
|
|
55
59
|
readonly CHECKSUM_VALIDATION_FAILED: 53002;
|
|
@@ -57,6 +57,11 @@ export const SDK_SERVER_ERROR_CODES = {
|
|
|
57
57
|
RAG_LIST_WORKSPACES_FAILED: 52809,
|
|
58
58
|
RAG_CHUNK_FAILED: 52810,
|
|
59
59
|
RAG_WORKSPACE_NOT_OPEN: 52811,
|
|
60
|
+
// Vector index (52,850-52,899)
|
|
61
|
+
VECTOR_INDEX_PROVIDER_UNAVAILABLE: 52850,
|
|
62
|
+
VECTOR_INDEX_NOT_FOUND: 52851,
|
|
63
|
+
VECTOR_INDEX_INVALID_VECTORS: 52852,
|
|
64
|
+
VECTOR_INDEX_FAILED: 52853,
|
|
60
65
|
// Download/Resource Errors (53,000-53,199)
|
|
61
66
|
FILE_NOT_FOUND: 53000,
|
|
62
67
|
DOWNLOAD_CANCELLED: 53001,
|
|
@@ -340,6 +345,23 @@ const serverErrorDefinitions = {
|
|
|
340
345
|
name: 'RAG_WORKSPACE_NOT_OPEN',
|
|
341
346
|
message: (workspace) => `RAG workspace '${workspace}' is not open`
|
|
342
347
|
},
|
|
348
|
+
// Vector index (52,850-52,899)
|
|
349
|
+
[SDK_SERVER_ERROR_CODES.VECTOR_INDEX_PROVIDER_UNAVAILABLE]: {
|
|
350
|
+
name: 'VECTOR_INDEX_PROVIDER_UNAVAILABLE',
|
|
351
|
+
message: () => 'No vector index provider is registered. Register a plugin that exposes the turbovecIndexProvider capability, such as the built-in llamacpp-embedding plugin'
|
|
352
|
+
},
|
|
353
|
+
[SDK_SERVER_ERROR_CODES.VECTOR_INDEX_NOT_FOUND]: {
|
|
354
|
+
name: 'VECTOR_INDEX_NOT_FOUND',
|
|
355
|
+
message: (indexId) => `Vector index '${indexId}' is not open. It was disposed or the worker restarted; create a new index or load a snapshot`
|
|
356
|
+
},
|
|
357
|
+
[SDK_SERVER_ERROR_CODES.VECTOR_INDEX_INVALID_VECTORS]: {
|
|
358
|
+
name: 'VECTOR_INDEX_INVALID_VECTORS',
|
|
359
|
+
message: (details) => `Invalid vector input: ${details}`
|
|
360
|
+
},
|
|
361
|
+
[SDK_SERVER_ERROR_CODES.VECTOR_INDEX_FAILED]: {
|
|
362
|
+
name: 'VECTOR_INDEX_FAILED',
|
|
363
|
+
message: (details) => `Vector index operation failed: ${details}`
|
|
364
|
+
},
|
|
343
365
|
// Download/Resource Errors (53,000-53,199)
|
|
344
366
|
[SDK_SERVER_ERROR_CODES.FILE_NOT_FOUND]: {
|
|
345
367
|
name: 'FILE_NOT_FOUND',
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import type { CompletionError, CompletionEvent, CompletionFinal, CompletionStats, StopReason, ToolCall } from '@qvac/inference/surface';
|
|
1
|
+
import type { CompletionError, CompletionEvent, CompletionFinal, CompletionStats, StopReason, ToolCall, ToolCallError } from '@qvac/inference/surface';
|
|
2
2
|
import { type ToolHandlerMap } from './tool-helpers.js';
|
|
3
3
|
export type AggregatedEvents = {
|
|
4
4
|
contentText: string;
|
|
5
5
|
thinkingText: string;
|
|
6
6
|
stats: CompletionStats | undefined;
|
|
7
7
|
toolCalls: ToolCall[];
|
|
8
|
+
/** Tool-call regions that failed to parse or validate; see `CompletionFinal.toolErrors`. */
|
|
9
|
+
toolErrors: ToolCallError[];
|
|
8
10
|
rawFullText: string | undefined;
|
|
9
11
|
error: CompletionError | undefined;
|
|
10
12
|
stopReason: StopReason | undefined;
|
|
@@ -9,6 +9,7 @@ export function aggregateEvents(events) {
|
|
|
9
9
|
let stopReason;
|
|
10
10
|
let cancelled = false;
|
|
11
11
|
const toolCalls = [];
|
|
12
|
+
const toolErrors = [];
|
|
12
13
|
for (const event of events) {
|
|
13
14
|
if (event.type === 'contentDelta') {
|
|
14
15
|
contentText += event.text;
|
|
@@ -22,6 +23,9 @@ export function aggregateEvents(events) {
|
|
|
22
23
|
else if (event.type === 'toolCall') {
|
|
23
24
|
toolCalls.push(event.call);
|
|
24
25
|
}
|
|
26
|
+
else if (event.type === 'toolError') {
|
|
27
|
+
toolErrors.push(event.error);
|
|
28
|
+
}
|
|
25
29
|
else if (event.type === 'completionDone') {
|
|
26
30
|
if ('raw' in event && event.raw) {
|
|
27
31
|
rawFullText = event.raw.fullText;
|
|
@@ -47,6 +51,7 @@ export function aggregateEvents(events) {
|
|
|
47
51
|
thinkingText,
|
|
48
52
|
stats,
|
|
49
53
|
toolCalls,
|
|
54
|
+
toolErrors,
|
|
50
55
|
rawFullText,
|
|
51
56
|
error,
|
|
52
57
|
stopReason,
|
|
@@ -54,7 +59,7 @@ export function aggregateEvents(events) {
|
|
|
54
59
|
};
|
|
55
60
|
}
|
|
56
61
|
export function buildFinalFromEvents(events, handlers) {
|
|
57
|
-
const { contentText, thinkingText, stats, toolCalls, rawFullText, error, stopReason, cancelled } = aggregateEvents(events);
|
|
62
|
+
const { contentText, thinkingText, stats, toolCalls, toolErrors, rawFullText, error, stopReason, cancelled } = aggregateEvents(events);
|
|
58
63
|
const attachedToolCalls = attachHandlersToToolCalls(toolCalls, handlers);
|
|
59
64
|
const fullText = rawFullText ?? contentText;
|
|
60
65
|
const cacheableAssistantContent = attachedToolCalls.length === 0 ? normalizeAssistantCacheContent(fullText) : undefined;
|
|
@@ -62,6 +67,7 @@ export function buildFinalFromEvents(events, handlers) {
|
|
|
62
67
|
contentText,
|
|
63
68
|
...(thinkingText && { thinkingText }),
|
|
64
69
|
toolCalls: attachedToolCalls,
|
|
70
|
+
...(toolErrors.length > 0 && { toolErrors }),
|
|
65
71
|
...(stats && { stats }),
|
|
66
72
|
raw: { fullText },
|
|
67
73
|
...(cacheableAssistantContent !== undefined && {
|
|
@@ -240,6 +240,18 @@ export declare class RAGUnknownOperationError extends QvacErrorBase {
|
|
|
240
240
|
export declare class RAGHyperDBFailedError extends QvacErrorBase {
|
|
241
241
|
constructor(details: string, cause?: unknown);
|
|
242
242
|
}
|
|
243
|
+
export declare class VectorIndexProviderUnavailableError extends QvacErrorBase {
|
|
244
|
+
constructor(cause?: unknown);
|
|
245
|
+
}
|
|
246
|
+
export declare class VectorIndexNotFoundError extends QvacErrorBase {
|
|
247
|
+
constructor(indexId: string, cause?: unknown);
|
|
248
|
+
}
|
|
249
|
+
export declare class VectorIndexInvalidVectorsError extends QvacErrorBase {
|
|
250
|
+
constructor(details: string, cause?: unknown);
|
|
251
|
+
}
|
|
252
|
+
export declare class VectorIndexFailedError extends QvacErrorBase {
|
|
253
|
+
constructor(details: string, cause?: unknown);
|
|
254
|
+
}
|
|
243
255
|
export declare class FileNotFoundError extends QvacErrorBase {
|
|
244
256
|
constructor(path: string, cause?: unknown);
|
|
245
257
|
}
|
|
@@ -375,6 +375,27 @@ export class RAGHyperDBFailedError extends QvacErrorBase {
|
|
|
375
375
|
super(createErrorOptions(SDK_SERVER_ERROR_CODES.RAG_HYPERDB_FAILED, [details], cause));
|
|
376
376
|
}
|
|
377
377
|
}
|
|
378
|
+
// ============== Vector Index Errors ==============
|
|
379
|
+
export class VectorIndexProviderUnavailableError extends QvacErrorBase {
|
|
380
|
+
constructor(cause) {
|
|
381
|
+
super(createErrorOptions(SDK_SERVER_ERROR_CODES.VECTOR_INDEX_PROVIDER_UNAVAILABLE, undefined, cause));
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
export class VectorIndexNotFoundError extends QvacErrorBase {
|
|
385
|
+
constructor(indexId, cause) {
|
|
386
|
+
super(createErrorOptions(SDK_SERVER_ERROR_CODES.VECTOR_INDEX_NOT_FOUND, [indexId], cause));
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
export class VectorIndexInvalidVectorsError extends QvacErrorBase {
|
|
390
|
+
constructor(details, cause) {
|
|
391
|
+
super(createErrorOptions(SDK_SERVER_ERROR_CODES.VECTOR_INDEX_INVALID_VECTORS, [details], cause));
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
export class VectorIndexFailedError extends QvacErrorBase {
|
|
395
|
+
constructor(details, cause) {
|
|
396
|
+
super(createErrorOptions(SDK_SERVER_ERROR_CODES.VECTOR_INDEX_FAILED, [details], cause));
|
|
397
|
+
}
|
|
398
|
+
}
|
|
378
399
|
// ============== Download/Resource Errors ==============
|
|
379
400
|
export class FileNotFoundError extends QvacErrorBase {
|
|
380
401
|
constructor(path, cause) {
|
|
@@ -59,25 +59,25 @@ native value does not establish one, rather than inventing a scope.
|
|
|
59
59
|
|
|
60
60
|
## Metric behavior
|
|
61
61
|
|
|
62
|
-
| Public metric | Accepted value | Source and scope when `supported` | Current runtime evidence
|
|
63
|
-
| -------------------------------------------- | ------------------------------------------- | -------------------------------------------------------------------------- |
|
|
64
|
-
| `capabilities.cpu.value.logicalCores` | Positive integer | `bare-cpu-info`; scope omitted | `supported` on `darwin-arm64`
|
|
65
|
-
| `sample.cpu` | Number from 0 through 1 | `bare-cpu-info`; `system` | `supported` on `darwin-arm64`
|
|
66
|
-
| `capabilities.memory.totalBytes` | Positive integer | `bare-cpu-info`; `system` | `supported` on `darwin-arm64`
|
|
67
|
-
| `sample.memory.usedBytes` | Non-negative integer | `bare-cpu-info`; `system` | `supported` on `darwin-arm64`
|
|
68
|
-
| `sample.memory.totalBytes` | Positive integer | `bare-cpu-info`; `system` | `supported` on `darwin-arm64`
|
|
69
|
-
| `sample.memory.processUsedBytes` | Non-negative integer | `bare-os`; `process` | `supported` where `bare-os` reports RSS
|
|
70
|
-
| `sample.memory.processAvailableBytes` | Non-negative integer | `bare-os`; `process` | `
|
|
71
|
-
| `capabilities.gpus` | Array, including an empty array | `bare-gpu-info`; scope omitted | `supported` with one GPU on `darwin-arm64`
|
|
72
|
-
| `capabilities.gpus.value[].memoryTotalBytes` | Non-negative number | `bare-gpu-info`; `device`, when not unified memory | `unverified` on `darwin-arm64` (unified)
|
|
73
|
-
| `sample.gpus` | Array aligned with the cached GPU inventory | `bare-gpu-info`; scope omitted | `supported` with one GPU sample on `darwin-arm64`
|
|
74
|
-
| `sample.gpus.value[].compute` | Number from 0 through 1 | `bare-gpu-info`; `device` | `supported` on `darwin-arm64`
|
|
75
|
-
| `sample.gpus.value[].encode` | Number from 0 through 1 | `bare-gpu-info`; `device` | `unavailable` on `darwin-arm64`
|
|
76
|
-
| `sample.gpus.value[].decode` | Number from 0 through 1 | `bare-gpu-info`; `device` | `unavailable` on `darwin-arm64`
|
|
77
|
-
| `sample.gpus.value[].memoryUsedBytes` | Non-negative number | `bare-gpu-info`; `device`, when the sample agrees with the declared memory | `unverified` on `darwin-arm64` (unified)
|
|
78
|
-
| `sample.gpus.value[].memoryTotalBytes` | Non-negative number | `bare-gpu-info`; `device`, when the sample agrees with the declared memory | `unverified` on `darwin-arm64` (unified)
|
|
79
|
-
| `sample.gpus.value[].powerWatts` | Non-negative number | `bare-gpu-info`; `device` | `unavailable` on `darwin-arm64`
|
|
80
|
-
| `sample.gpus.value[].temperatureCelsius` | Non-negative number | `bare-gpu-info`; `device` | `unavailable` on `darwin-arm64`
|
|
62
|
+
| Public metric | Accepted value | Source and scope when `supported` | Current runtime evidence |
|
|
63
|
+
| -------------------------------------------- | ------------------------------------------- | -------------------------------------------------------------------------- | --------------------------------------------------- |
|
|
64
|
+
| `capabilities.cpu.value.logicalCores` | Positive integer | `bare-cpu-info`; scope omitted | `supported` on `darwin-arm64` |
|
|
65
|
+
| `sample.cpu` | Number from 0 through 1 | `bare-cpu-info`; `system` | `supported` on `darwin-arm64` |
|
|
66
|
+
| `capabilities.memory.totalBytes` | Positive integer | `bare-cpu-info`; `system` | `supported` on `darwin-arm64` |
|
|
67
|
+
| `sample.memory.usedBytes` | Non-negative integer | `bare-cpu-info`; `system` | `supported` on `darwin-arm64` |
|
|
68
|
+
| `sample.memory.totalBytes` | Positive integer | `bare-cpu-info`; `system` | `supported` on `darwin-arm64` |
|
|
69
|
+
| `sample.memory.processUsedBytes` | Non-negative integer | `bare-os`; `process` | `supported` where `bare-os` reports RSS |
|
|
70
|
+
| `sample.memory.processAvailableBytes` | Non-negative integer | `bare-os`; `process` | `supported` on `ios-arm64`; `unavailable` elsewhere |
|
|
71
|
+
| `capabilities.gpus` | Array, including an empty array | `bare-gpu-info`; scope omitted | `supported` with one GPU on `darwin-arm64` |
|
|
72
|
+
| `capabilities.gpus.value[].memoryTotalBytes` | Non-negative number | `bare-gpu-info`; `device`, when not unified memory | `unverified` on `darwin-arm64` (unified) |
|
|
73
|
+
| `sample.gpus` | Array aligned with the cached GPU inventory | `bare-gpu-info`; scope omitted | `supported` with one GPU sample on `darwin-arm64` |
|
|
74
|
+
| `sample.gpus.value[].compute` | Number from 0 through 1 | `bare-gpu-info`; `device` | `supported` on `darwin-arm64` |
|
|
75
|
+
| `sample.gpus.value[].encode` | Number from 0 through 1 | `bare-gpu-info`; `device` | `unavailable` on `darwin-arm64` |
|
|
76
|
+
| `sample.gpus.value[].decode` | Number from 0 through 1 | `bare-gpu-info`; `device` | `unavailable` on `darwin-arm64` |
|
|
77
|
+
| `sample.gpus.value[].memoryUsedBytes` | Non-negative number | `bare-gpu-info`; `device`, when the sample agrees with the declared memory | `unverified` on `darwin-arm64` (unified) |
|
|
78
|
+
| `sample.gpus.value[].memoryTotalBytes` | Non-negative number | `bare-gpu-info`; `device`, when the sample agrees with the declared memory | `unverified` on `darwin-arm64` (unified) |
|
|
79
|
+
| `sample.gpus.value[].powerWatts` | Non-negative number | `bare-gpu-info`; `device` | `unavailable` on `darwin-arm64` |
|
|
80
|
+
| `sample.gpus.value[].temperatureCelsius` | Non-negative number | `bare-gpu-info`; `device` | `unavailable` on `darwin-arm64` |
|
|
81
81
|
|
|
82
82
|
For GPU memory, a missing native value becomes `unavailable`. The native API
|
|
83
83
|
does not identify the scope of a present value, so the SDK establishes it
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qvac/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -212,23 +212,23 @@
|
|
|
212
212
|
"changelog:generate": "node ../../scripts/sdk/generate-changelog-sdk-pod.cjs --package=sdk && prettier --write changelog"
|
|
213
213
|
},
|
|
214
214
|
"dependencies": {
|
|
215
|
-
"@qvac/
|
|
216
|
-
"@qvac/
|
|
217
|
-
"@qvac/bci-whispercpp": "^0.
|
|
218
|
-
"@qvac/classification-ggml": "^0.
|
|
219
|
-
"@qvac/decoder-audio": "^0.
|
|
220
|
-
"@qvac/diffusion-cpp": "^0.
|
|
221
|
-
"@qvac/embed-llamacpp": "^0.
|
|
215
|
+
"@qvac/asr-ggml": "^0.5.3",
|
|
216
|
+
"@qvac/audiogen-ggml": "^0.4.0",
|
|
217
|
+
"@qvac/bci-whispercpp": "^0.9.1",
|
|
218
|
+
"@qvac/classification-ggml": "^0.26.1",
|
|
219
|
+
"@qvac/decoder-audio": "^0.6.0",
|
|
220
|
+
"@qvac/diffusion-cpp": "^0.24.0",
|
|
221
|
+
"@qvac/embed-llamacpp": "^0.41.1",
|
|
222
222
|
"@qvac/error": "^0.1.1",
|
|
223
|
-
"@qvac/inference": "^0.
|
|
223
|
+
"@qvac/inference": "^0.20.0",
|
|
224
224
|
"@qvac/langdetect-text": "^0.1.2",
|
|
225
|
-
"@qvac/llm-llamacpp": "^0.
|
|
225
|
+
"@qvac/llm-llamacpp": "^0.53.0",
|
|
226
226
|
"@qvac/logging": "^0.1.0",
|
|
227
|
-
"@qvac/ocr-ggml": "^0.
|
|
227
|
+
"@qvac/ocr-ggml": "^0.24.1",
|
|
228
228
|
"@qvac/registry-client": "^0.6.1",
|
|
229
|
-
"@qvac/translation-nmtcpp": "^0.
|
|
230
|
-
"@qvac/tts-ggml": "^0.
|
|
231
|
-
"@qvac/vla-ggml": "^0.
|
|
229
|
+
"@qvac/translation-nmtcpp": "^0.16.1",
|
|
230
|
+
"@qvac/tts-ggml": "^0.9.1",
|
|
231
|
+
"@qvac/vla-ggml": "^0.27.1",
|
|
232
232
|
"bare-abort-controller": "^1.0.0",
|
|
233
233
|
"bare-cpu-info": "0.1.1",
|
|
234
234
|
"bare-crypto": "^1.15.0",
|
|
@@ -252,13 +252,16 @@
|
|
|
252
252
|
"semver": "^7.8.0",
|
|
253
253
|
"tar-stream": "^3.1.8",
|
|
254
254
|
"which-runtime": "^1.3.2",
|
|
255
|
-
"zod": "^4.3.0"
|
|
255
|
+
"zod": "^4.3.0",
|
|
256
|
+
"bare-buffer": "^3.4.2"
|
|
256
257
|
},
|
|
257
258
|
"devDependencies": {
|
|
258
259
|
"@electron-forge/plugin-base": "^7.11.1",
|
|
259
260
|
"@expo/config-plugins": "^54.0.4",
|
|
261
|
+
"bare-module": "^6.2.0",
|
|
260
262
|
"@lancedb/lancedb": "^0.21.3",
|
|
261
263
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
264
|
+
"apache-arrow": "^18.1.0",
|
|
262
265
|
"@sqliteai/sqlite-wasm": "3.50.4-sync.0.8.30-vector.0.9.23",
|
|
263
266
|
"@types/brittle": "^3.5.0",
|
|
264
267
|
"@types/node": "^24.2.1",
|
|
@@ -293,6 +296,7 @@
|
|
|
293
296
|
"expo-build-properties": ">=0.12.0",
|
|
294
297
|
"expo-device": ">=8.0.0",
|
|
295
298
|
"expo-file-system": ">=19.0.0",
|
|
299
|
+
"expo-modules-core": ">=3.0.0",
|
|
296
300
|
"pear-pipe": ">=1.0.0",
|
|
297
301
|
"react-native-bare-kit": "*",
|
|
298
302
|
"tsx": "*"
|
|
@@ -313,6 +317,9 @@
|
|
|
313
317
|
"expo-file-system": {
|
|
314
318
|
"optional": true
|
|
315
319
|
},
|
|
320
|
+
"expo-modules-core": {
|
|
321
|
+
"optional": true
|
|
322
|
+
},
|
|
316
323
|
"pear-pipe": {
|
|
317
324
|
"optional": true
|
|
318
325
|
},
|