dsh-plugin-local-infer 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -6
- package/cordis.patch.yml +7 -0
- package/docs/zh/README.md +24 -4
- package/dsh/client.js +4200 -4049
- package/package.json +33 -11
- package/packages/core/lib/adapter.d.ts +177 -11
- package/packages/core/lib/adapter.js +74 -1
- package/packages/core/lib/config.d.ts +1 -1
- package/packages/core/lib/config.js +1 -1
- package/packages/core/lib/debug.d.ts +1 -1
- package/packages/core/lib/debug.js +1 -1
- package/packages/core/lib/defaults.d.ts +1 -1
- package/packages/core/lib/defaults.js +1 -1
- package/packages/core/lib/deps.d.ts +48 -20
- package/packages/core/lib/deps.js +24 -8
- package/packages/core/lib/estimator.d.ts +1 -1
- package/packages/core/lib/estimator.js +1 -1
- package/packages/core/lib/guideline.d.ts +1 -1
- package/packages/core/lib/guideline.js +1 -1
- package/packages/core/lib/hardware.d.ts +1 -1
- package/packages/core/lib/hardware.js +1 -1
- package/packages/core/lib/hf-cache.d.ts +70 -0
- package/packages/core/lib/hf-cache.js +83 -0
- package/packages/core/lib/index.d.ts +16 -9
- package/packages/core/lib/index.js +10 -6
- package/packages/core/lib/infer-cache.d.ts +39 -0
- package/packages/core/lib/infer-cache.js +53 -0
- package/packages/core/lib/launch-command.d.ts +8 -4
- package/packages/core/lib/launch-command.js +13 -6
- package/packages/core/lib/launch-record.d.ts +1 -1
- package/packages/core/lib/launch-record.js +1 -1
- package/packages/core/lib/logs.d.ts +8 -1
- package/packages/core/lib/logs.js +12 -4
- package/packages/core/lib/models.d.ts +120 -14
- package/packages/core/lib/models.js +209 -17
- package/packages/core/lib/parameter.d.ts +31 -3
- package/packages/core/lib/parameter.js +1 -1
- package/packages/core/lib/progress.d.ts +54 -0
- package/packages/core/lib/progress.js +120 -0
- package/packages/core/lib/registrar.d.ts +25 -14
- package/packages/core/lib/registrar.js +30 -10
- package/packages/core/lib/reserve.d.ts +11 -3
- package/packages/core/lib/reserve.js +6 -4
- package/packages/core/lib/status.d.ts +12 -6
- package/packages/core/lib/status.js +21 -10
- package/packages/core/lib/sudo.d.ts +80 -0
- package/packages/core/lib/sudo.js +78 -0
- package/packages/core/package.json +1 -1
- package/packages/orchestrator/lib/config.d.ts +63 -0
- package/packages/orchestrator/lib/config.js +111 -0
- package/packages/orchestrator/lib/index.d.ts +51 -0
- package/packages/orchestrator/lib/index.js +73 -0
- package/packages/orchestrator/lib/route.d.ts +60 -0
- package/packages/orchestrator/lib/route.js +159 -0
- package/packages/orchestrator/locale/en.json +6 -0
- package/packages/orchestrator/package.json +39 -0
- package/packages/orchestrator/prompt.md +87 -0
- package/packages/providers/lib/acquire.d.ts +95 -15
- package/packages/providers/lib/acquire.js +239 -40
- package/packages/providers/lib/adapters.d.ts +155 -221
- package/packages/providers/lib/adapters.js +589 -935
- package/packages/providers/lib/debug.d.ts +1 -1
- package/packages/providers/lib/debug.js +1 -1
- package/packages/providers/lib/deps.d.ts +31 -212
- package/packages/providers/lib/deps.js +71 -205
- package/packages/providers/lib/engines/basalt/basalt.d.ts +130 -0
- package/packages/providers/lib/engines/basalt/basalt.js +304 -0
- package/packages/providers/lib/engines/basalt/basaltAdapter.d.ts +85 -0
- package/packages/providers/lib/engines/basalt/basaltAdapter.js +439 -0
- package/packages/providers/lib/engines/basalt/basaltLinux.d.ts +23 -0
- package/packages/providers/lib/engines/basalt/basaltLinux.js +47 -0
- package/packages/providers/lib/engines/basalt/basaltMacOS.d.ts +17 -0
- package/packages/providers/lib/engines/basalt/basaltMacOS.js +19 -0
- package/packages/providers/lib/engines/basalt/basaltWindows.d.ts +24 -0
- package/packages/providers/lib/engines/basalt/basaltWindows.js +49 -0
- package/packages/providers/lib/engines/engineOs.d.ts +24 -0
- package/packages/providers/lib/engines/engineOs.js +17 -0
- package/packages/providers/lib/{hyperqwen.d.ts → engines/hyperqwen/hyperqwen.d.ts} +2 -2
- package/packages/providers/lib/{hyperqwen.js → engines/hyperqwen/hyperqwen.js} +14 -2
- package/packages/providers/lib/engines/hyperqwen/hyperqwenAdapter.d.ts +38 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenAdapter.js +115 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenArch.d.ts +9 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenArch.js +9 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenDebian.d.ts +9 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenDebian.js +9 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenFedora.d.ts +9 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenFedora.js +9 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenLinux.d.ts +10 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenLinux.js +14 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenMacOS.d.ts +9 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenMacOS.js +9 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenWindows.d.ts +9 -0
- package/packages/providers/lib/engines/hyperqwen/hyperqwenWindows.js +9 -0
- package/packages/providers/lib/{infernix.d.ts → engines/infernix/infernix.d.ts} +7 -4
- package/packages/providers/lib/{infernix.js → engines/infernix/infernix.js} +53 -8
- package/packages/providers/lib/engines/infernix/infernixAdapter.d.ts +52 -0
- package/packages/providers/lib/engines/infernix/infernixAdapter.js +235 -0
- package/packages/providers/lib/engines/infernix/infernixArch.d.ts +9 -0
- package/packages/providers/lib/engines/infernix/infernixArch.js +9 -0
- package/packages/providers/lib/engines/infernix/infernixDebian.d.ts +9 -0
- package/packages/providers/lib/engines/infernix/infernixDebian.js +9 -0
- package/packages/providers/lib/engines/infernix/infernixFedora.d.ts +9 -0
- package/packages/providers/lib/engines/infernix/infernixFedora.js +9 -0
- package/packages/providers/lib/engines/infernix/infernixLinux.d.ts +17 -0
- package/packages/providers/lib/engines/infernix/infernixLinux.js +35 -0
- package/packages/providers/lib/engines/infernix/infernixMacOS.d.ts +16 -0
- package/packages/providers/lib/engines/infernix/infernixMacOS.js +18 -0
- package/packages/providers/lib/engines/infernix/infernixWindows.d.ts +16 -0
- package/packages/providers/lib/engines/infernix/infernixWindows.js +34 -0
- package/packages/providers/lib/{llamacpp.d.ts → engines/llamacpp/llamacpp.d.ts} +2 -2
- package/packages/providers/lib/{llamacpp.js → engines/llamacpp/llamacpp.js} +12 -2
- package/packages/providers/lib/engines/llamacpp/llamacppAdapter.d.ts +50 -0
- package/packages/providers/lib/engines/llamacpp/llamacppAdapter.js +274 -0
- package/packages/providers/lib/engines/llamacpp/llamacppArch.d.ts +9 -0
- package/packages/providers/lib/engines/llamacpp/llamacppArch.js +9 -0
- package/packages/providers/lib/engines/llamacpp/llamacppDebian.d.ts +9 -0
- package/packages/providers/lib/engines/llamacpp/llamacppDebian.js +9 -0
- package/packages/providers/lib/engines/llamacpp/llamacppFedora.d.ts +9 -0
- package/packages/providers/lib/engines/llamacpp/llamacppFedora.js +9 -0
- package/packages/providers/lib/engines/llamacpp/llamacppLinux.d.ts +17 -0
- package/packages/providers/lib/engines/llamacpp/llamacppLinux.js +28 -0
- package/packages/providers/lib/engines/llamacpp/llamacppMacOS.d.ts +15 -0
- package/packages/providers/lib/engines/llamacpp/llamacppMacOS.js +17 -0
- package/packages/providers/lib/engines/llamacpp/llamacppWindows.d.ts +15 -0
- package/packages/providers/lib/engines/llamacpp/llamacppWindows.js +26 -0
- package/packages/providers/lib/{ninfer.d.ts → engines/ninfer/ninfer.d.ts} +2 -2
- package/packages/providers/lib/{ninfer.js → engines/ninfer/ninfer.js} +25 -3
- package/packages/providers/lib/engines/ninfer/ninferAdapter.d.ts +81 -0
- package/packages/providers/lib/engines/ninfer/ninferAdapter.js +392 -0
- package/packages/providers/lib/engines/ninfer/ninferArch.d.ts +9 -0
- package/packages/providers/lib/engines/ninfer/ninferArch.js +9 -0
- package/packages/providers/lib/engines/ninfer/ninferDebian.d.ts +9 -0
- package/packages/providers/lib/engines/ninfer/ninferDebian.js +9 -0
- package/packages/providers/lib/engines/ninfer/ninferFedora.d.ts +9 -0
- package/packages/providers/lib/engines/ninfer/ninferFedora.js +9 -0
- package/packages/providers/lib/engines/ninfer/ninferLinux.d.ts +17 -0
- package/packages/providers/lib/engines/ninfer/ninferLinux.js +37 -0
- package/packages/providers/lib/engines/ninfer/ninferMacOS.d.ts +15 -0
- package/packages/providers/lib/engines/ninfer/ninferMacOS.js +17 -0
- package/packages/providers/lib/engines/ninfer/ninferWindows.d.ts +29 -0
- package/packages/providers/lib/engines/ninfer/ninferWindows.js +59 -0
- package/packages/providers/lib/engines/strata/strata.d.ts +1 -0
- package/packages/providers/lib/engines/strata/strata.js +264 -0
- package/packages/providers/lib/engines/strata/strataAdapter.d.ts +97 -0
- package/packages/providers/lib/engines/strata/strataAdapter.js +463 -0
- package/packages/providers/lib/engines/strata/strataArch.d.ts +9 -0
- package/packages/providers/lib/engines/strata/strataArch.js +9 -0
- package/packages/providers/lib/engines/strata/strataDebian.d.ts +9 -0
- package/packages/providers/lib/engines/strata/strataDebian.js +9 -0
- package/packages/providers/lib/engines/strata/strataFedora.d.ts +9 -0
- package/packages/providers/lib/engines/strata/strataFedora.js +9 -0
- package/packages/providers/lib/engines/strata/strataLinux.d.ts +21 -0
- package/packages/providers/lib/engines/strata/strataLinux.js +30 -0
- package/packages/providers/lib/engines/strata/strataMacOS.d.ts +16 -0
- package/packages/providers/lib/engines/strata/strataMacOS.js +17 -0
- package/packages/providers/lib/engines/strata/strataWindows.d.ts +27 -0
- package/packages/providers/lib/engines/strata/strataWindows.js +37 -0
- package/packages/providers/lib/engines.d.ts +8 -5
- package/packages/providers/lib/engines.js +22 -11
- package/packages/providers/lib/guidelines.d.ts +5 -4
- package/packages/providers/lib/guidelines.js +18 -5
- package/packages/providers/lib/index.d.ts +33 -24
- package/packages/providers/lib/index.js +46 -24
- package/packages/providers/lib/model-defaults.d.ts +10 -5
- package/packages/providers/lib/model-defaults.js +47 -5
- package/packages/providers/lib/platform.d.ts +8 -5
- package/packages/providers/lib/platform.js +27 -7
- package/packages/providers/lib/presets.d.ts +6 -4
- package/packages/providers/lib/presets.js +53 -5
- package/packages/providers/lib/systemDeps.d.ts +313 -0
- package/packages/providers/lib/systemDeps.js +284 -0
- package/packages/providers/lib/vram.d.ts +34 -8
- package/packages/providers/lib/vram.js +81 -8
- package/packages/providers/package.json +2 -2
- package/packages/service/lib/index.d.ts +187 -23
- package/packages/service/lib/index.js +667 -90
- package/packages/service/lib/launch-target.d.ts +19 -0
- package/packages/service/lib/launch-target.js +28 -0
- package/packages/service/lib/run-logs.d.ts +72 -0
- package/packages/service/lib/run-logs.js +125 -0
- package/packages/service/lib/types.d.ts +166 -8
- package/packages/service/lib/types.js +1 -1
- package/packages/service/package.json +2 -2
- package/packages/tool/lib/index.d.ts +1 -1
- package/packages/tool/lib/index.js +1 -1
- package/packages/tool/package.json +2 -2
- package/packages/ui/lib/config.d.ts +89 -0
- package/packages/ui/lib/config.js +251 -0
- package/packages/ui/lib/deps.d.ts +4 -4
- package/packages/ui/lib/deps.js +1 -1
- package/packages/ui/lib/form.d.ts +1 -1
- package/packages/ui/lib/form.js +1 -1
- package/packages/ui/lib/index.d.ts +7 -1
- package/packages/ui/lib/index.js +12 -2
- package/packages/ui/lib/meter.d.ts +1 -1
- package/packages/ui/lib/meter.js +1 -1
- package/packages/ui/lib/ops/engine.d.ts +216 -0
- package/packages/ui/lib/ops/engine.js +697 -0
- package/packages/ui/lib/ops/get-steps.d.ts +98 -0
- package/packages/ui/lib/ops/get-steps.js +359 -0
- package/packages/ui/lib/ops/hf.d.ts +42 -0
- package/packages/ui/lib/ops/hf.js +150 -0
- package/packages/ui/lib/ops/logs.d.ts +78 -0
- package/packages/ui/lib/ops/logs.js +119 -0
- package/packages/ui/lib/ops/model.d.ts +71 -0
- package/packages/ui/lib/ops/model.js +123 -0
- package/packages/ui/lib/request.d.ts +106 -0
- package/packages/ui/lib/request.js +80 -0
- package/packages/ui/lib/route.d.ts +106 -422
- package/packages/ui/lib/route.js +136 -1845
- package/packages/ui/lib/routes/chat-template.d.ts +1 -0
- package/packages/ui/lib/routes/chat-template.js +1 -0
- package/packages/ui/lib/routes/deps.d.ts +1 -0
- package/packages/ui/lib/routes/deps.js +1 -0
- package/packages/ui/lib/routes/download.d.ts +1 -0
- package/packages/ui/lib/routes/download.js +1 -0
- package/packages/ui/lib/routes/get.d.ts +1 -0
- package/packages/ui/lib/routes/get.js +106 -0
- package/packages/ui/lib/routes/install.d.ts +16 -0
- package/packages/ui/lib/routes/install.js +36 -0
- package/packages/ui/lib/routes/launch.d.ts +24 -0
- package/packages/ui/lib/routes/launch.js +74 -0
- package/packages/ui/lib/routes/logs.d.ts +57 -0
- package/packages/ui/lib/routes/logs.js +117 -0
- package/packages/ui/lib/routes/provider-delete.d.ts +15 -0
- package/packages/ui/lib/routes/provider-delete.js +37 -0
- package/packages/ui/lib/routes/register.d.ts +16 -0
- package/packages/ui/lib/routes/register.js +28 -0
- package/packages/ui/lib/routes/save.d.ts +18 -0
- package/packages/ui/lib/routes/save.js +159 -0
- package/packages/ui/lib/routes/stop.d.ts +19 -0
- package/packages/ui/lib/routes/stop.js +32 -0
- package/packages/ui/lib/routes/stream.d.ts +40 -0
- package/packages/ui/lib/routes/stream.js +68 -0
- package/packages/ui/lib/routes/summary.d.ts +15 -0
- package/packages/ui/lib/routes/summary.js +26 -0
- package/packages/ui/lib/routes/unregister.d.ts +14 -0
- package/packages/ui/lib/routes/unregister.js +26 -0
- package/packages/ui/lib/viewmodels/deps.d.ts +1 -0
- package/packages/ui/lib/viewmodels/deps.js +1 -0
- package/packages/ui/lib/viewmodels/depsHelpers.d.ts +1 -0
- package/packages/ui/lib/viewmodels/depsHelpers.js +94 -0
- package/packages/ui/lib/viewmodels/summary.d.ts +145 -0
- package/packages/ui/lib/viewmodels/summary.js +245 -0
- package/packages/ui/lib/viewmodels/summaryHelpers.d.ts +30 -0
- package/packages/ui/lib/viewmodels/summaryHelpers.js +42 -0
- package/packages/ui/lib/warnings.d.ts +1 -1
- package/packages/ui/lib/warnings.js +1 -1
- package/packages/ui/package.json +4 -4
- package/packages/providers/lib/strata.d.ts +0 -15
- package/packages/providers/lib/strata.js +0 -14
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Strata Windows build profile. The Windows source route is the engine's
|
|
3
|
+
* own START-HERE.bat wrapper (docs/SOURCE_INSTALL.md, From source: Windows),
|
|
4
|
+
* not the Linux setup.sh. `--yes` accepts the recommended answer to every
|
|
5
|
+
* question, so the step runs unattended. The wrapper acquires a ready-made
|
|
6
|
+
* engine when one fits the PC, and compiles one when it does not: the
|
|
7
|
+
* compile needs the Visual Studio 2022 Build Tools with the C++ workload
|
|
8
|
+
* (the sources are C++20, so VS2019 is too old). When setup cannot find the
|
|
9
|
+
* toolchain, point STRATA_VCVARS at vcvars64.bat before running. The build
|
|
10
|
+
* keeps its dependencies and products in the source install and writes the
|
|
11
|
+
* launch scripts (run-<model>.bat) and run configs (strata-<model>.json)
|
|
12
|
+
* into the checkout, so the profile carries no build directory. Updates run
|
|
13
|
+
* through UPDATE.bat.
|
|
14
|
+
* @module dsh-plugin-local-infer/providers/engines/strata/strataWindows
|
|
15
|
+
*/
|
|
16
|
+
import { strataSourceLaunchArgs } from "./strata.js";
|
|
17
|
+
import { SYSTEM_DEPS } from "../../systemDeps.js";
|
|
18
|
+
export const STRATA_WINDOWS = {
|
|
19
|
+
buildSteps: ['cd {dir} && .\\START-HERE.bat --yes'],
|
|
20
|
+
// The engine command is the strata Terminal on every platform (a
|
|
21
|
+
// PowerShell command on Windows), so the name stays plain.
|
|
22
|
+
binary: 'strata',
|
|
23
|
+
// The Windows source route is the engine's own START-HERE.bat wrapper; the
|
|
24
|
+
// host deps are the same git-plus-curl list as the Linux route.
|
|
25
|
+
deps: [SYSTEM_DEPS.git, SYSTEM_DEPS.curl],
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* strataWindowsSourceLaunch renders the source-build launch argv for the
|
|
29
|
+
* Windows route: the engine's own START-HERE.bat wrapper with --yes
|
|
30
|
+
* (unattended) and the resolved model, family, vision, context, and port. The
|
|
31
|
+
* wrapper acquires a ready-made engine when one fits the PC, and compiles one
|
|
32
|
+
* (the Visual Studio 2022 C++ toolchain) when it does not.
|
|
33
|
+
*/
|
|
34
|
+
export function strataWindowsSourceLaunch(args) {
|
|
35
|
+
return strataSourceLaunchArgs('START-HERE.bat', args);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=strataWindows.js.map
|
|
@@ -14,15 +14,18 @@ export interface EngineInfo {
|
|
|
14
14
|
supports: {
|
|
15
15
|
docker: boolean;
|
|
16
16
|
local: boolean;
|
|
17
|
+
binary?: boolean;
|
|
17
18
|
};
|
|
18
19
|
parameters: readonly ParameterSpec[];
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* The engines the Web card offers, in the order the card lists them. NInfer,
|
|
22
|
-
* Hyper-Qwen, Infernix,
|
|
23
|
-
* is the specified set the plan names, verified when the
|
|
24
|
-
* Strata is the
|
|
25
|
-
*
|
|
23
|
+
* Hyper-Qwen, Infernix, llama.cpp, Strata, and Basalt all carry parameter
|
|
24
|
+
* surfaces (llama.cpp's is the specified set the plan names, verified when the
|
|
25
|
+
* binary lands); Strata's surface is the `strata launch` flags and it supports
|
|
26
|
+
* all three build modes (docker, source build, and the binary install);
|
|
27
|
+
* Basalt's surface is the `basalt_config.json` settings and it is local-build
|
|
28
|
+
* only (the C++/CUDA engine ships no container image).
|
|
26
29
|
*/
|
|
27
30
|
export declare const ENGINES: readonly EngineInfo[];
|
|
28
|
-
//# sourceMappingURL=engines.d.ts.map
|
|
31
|
+
//# sourceMappingURL=engines.d.ts.map
|
|
@@ -7,17 +7,20 @@
|
|
|
7
7
|
* here, never a rewire of the card.
|
|
8
8
|
* @module dsh-plugin-local-infer/providers/engines
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
10
|
+
import { BASALT_PARAMETERS } from "./engines/basalt/basalt.js";
|
|
11
|
+
import { HYPERQWEN_PARAMETERS } from "./engines/hyperqwen/hyperqwen.js";
|
|
12
|
+
import { INFERNIX_PARAMETERS } from "./engines/infernix/infernix.js";
|
|
13
|
+
import { LLAMACPP_PARAMETERS } from "./engines/llamacpp/llamacpp.js";
|
|
14
|
+
import { NINFER_PARAMETERS } from "./engines/ninfer/ninfer.js";
|
|
15
|
+
import { STRATA_PARAMETERS } from "./engines/strata/strata.js";
|
|
15
16
|
/**
|
|
16
17
|
* The engines the Web card offers, in the order the card lists them. NInfer,
|
|
17
|
-
* Hyper-Qwen, Infernix,
|
|
18
|
-
* is the specified set the plan names, verified when the
|
|
19
|
-
* Strata is the
|
|
20
|
-
*
|
|
18
|
+
* Hyper-Qwen, Infernix, llama.cpp, Strata, and Basalt all carry parameter
|
|
19
|
+
* surfaces (llama.cpp's is the specified set the plan names, verified when the
|
|
20
|
+
* binary lands); Strata's surface is the `strata launch` flags and it supports
|
|
21
|
+
* all three build modes (docker, source build, and the binary install);
|
|
22
|
+
* Basalt's surface is the `basalt_config.json` settings and it is local-build
|
|
23
|
+
* only (the C++/CUDA engine ships no container image).
|
|
21
24
|
*/
|
|
22
25
|
export const ENGINES = [
|
|
23
26
|
{
|
|
@@ -47,8 +50,16 @@ export const ENGINES = [
|
|
|
47
50
|
{
|
|
48
51
|
id: 'strata',
|
|
49
52
|
label: 'Strata',
|
|
50
|
-
supports: { docker: true, local:
|
|
53
|
+
supports: { docker: true, local: true, binary: true },
|
|
51
54
|
parameters: STRATA_PARAMETERS,
|
|
52
55
|
},
|
|
56
|
+
{
|
|
57
|
+
// Basalt is the C++/CUDA engine for the Qwen3.8-Flash-Next MoE model,
|
|
58
|
+
// Blackwell-only: a local source build, no container image.
|
|
59
|
+
id: 'basalt',
|
|
60
|
+
label: 'Basalt',
|
|
61
|
+
supports: { docker: false, local: true },
|
|
62
|
+
parameters: BASALT_PARAMETERS,
|
|
63
|
+
},
|
|
53
64
|
];
|
|
54
|
-
//# sourceMappingURL=engines.js.map
|
|
65
|
+
//# sourceMappingURL=engines.js.map
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Built-in hardware guidelines. The rules that every engine shares, expressed
|
|
3
3
|
* as `Guideline` data over (config, hardware): the docker-availability gate,
|
|
4
|
-
* the host RAM tier ceiling,
|
|
5
|
-
* registered with `ctx.localInfer` by the
|
|
6
|
-
* override or an extra rule composes on top
|
|
4
|
+
* the host RAM tier ceiling, the WSL2 pin-memory boot abort, and the Basalt
|
|
5
|
+
* Blackwell (sm_120) gate. Each is registered with `ctx.localInfer` by the
|
|
6
|
+
* provider `apply`, so a per-engine override or an extra rule composes on top
|
|
7
|
+
* without touching these.
|
|
7
8
|
*
|
|
8
9
|
* The rules that need the registered VramModel (the estimator-backed
|
|
9
10
|
* "exceeds usable VRAM" and "spec needs draft weights" rules) live in the
|
|
@@ -26,4 +27,4 @@ export declare const HOST_STATE_IMAGE_BYTES = 195897344;
|
|
|
26
27
|
* degrades before it breaks.
|
|
27
28
|
*/
|
|
28
29
|
export declare const BUILTIN_GUIDELINES: readonly Guideline[];
|
|
29
|
-
//# sourceMappingURL=guidelines.d.ts.map
|
|
30
|
+
//# sourceMappingURL=guidelines.d.ts.map
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Built-in hardware guidelines. The rules that every engine shares, expressed
|
|
3
3
|
* as `Guideline` data over (config, hardware): the docker-availability gate,
|
|
4
|
-
* the host RAM tier ceiling,
|
|
5
|
-
* registered with `ctx.localInfer` by the
|
|
6
|
-
* override or an extra rule composes on top
|
|
4
|
+
* the host RAM tier ceiling, the WSL2 pin-memory boot abort, and the Basalt
|
|
5
|
+
* Blackwell (sm_120) gate. Each is registered with `ctx.localInfer` by the
|
|
6
|
+
* provider `apply`, so a per-engine override or an extra rule composes on top
|
|
7
|
+
* without touching these.
|
|
7
8
|
*
|
|
8
9
|
* The rules that need the registered VramModel (the estimator-backed
|
|
9
10
|
* "exceeds usable VRAM" and "spec needs draft weights" rules) live in the
|
|
@@ -11,7 +12,7 @@
|
|
|
11
12
|
* a model, not against the hardware alone.
|
|
12
13
|
* @module dsh-plugin-local-infer/providers/guidelines
|
|
13
14
|
*/
|
|
14
|
-
import { infernixDraftModelPath } from "./infernix.js";
|
|
15
|
+
import { infernixDraftModelPath } from "./engines/infernix/infernix.js";
|
|
15
16
|
/**
|
|
16
17
|
* One pinned Host StateImage, in bytes. The NInfer measured figure for the
|
|
17
18
|
* 27B artifact (195,897,344 B, the README's Host StateImage size), used as
|
|
@@ -73,5 +74,17 @@ export const BUILTIN_GUIDELINES = [
|
|
|
73
74
|
'draftModelPreset' in config &&
|
|
74
75
|
infernixDraftModelPath(config) === null,
|
|
75
76
|
},
|
|
77
|
+
{
|
|
78
|
+
// Basalt is Blackwell-only: the engine is compiled for sm_120 and its
|
|
79
|
+
// NVFP4 expert kernels need it. A basalt config on a card that reports a
|
|
80
|
+
// different SM number (or no card at all) cannot boot, so the rule names
|
|
81
|
+
// the fix before the engine starts. It is basalt-specific: only basalt
|
|
82
|
+
// configs carry the engine key, so every other engine stays silent.
|
|
83
|
+
id: 'basalt-needs-blackwell',
|
|
84
|
+
level: 'error',
|
|
85
|
+
message: 'Basalt needs an NVIDIA Blackwell GPU (SM 120). This machine reports a different SM number, or no GPU at all.',
|
|
86
|
+
anchors: ['gpu'],
|
|
87
|
+
when: (config, hw) => config.engine === 'basalt' && hw.gpu?.sm !== 120,
|
|
88
|
+
},
|
|
76
89
|
];
|
|
77
|
-
//# sourceMappingURL=guidelines.js.map
|
|
90
|
+
//# sourceMappingURL=guidelines.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The concrete providers for the local-inference capability: the engine
|
|
3
|
-
* adapters (ninfer, hyperqwen, llamacpp, infernix, strata), the NInfer
|
|
3
|
+
* adapters (ninfer, hyperqwen, llamacpp, infernix, strata, basalt), the NInfer
|
|
4
4
|
* VramModel, the built-in presets, the built-in guidelines, and the per-OS
|
|
5
5
|
* SystemDep install command data. Each registers itself with `ctx.localInfer`.
|
|
6
6
|
*
|
|
@@ -18,36 +18,45 @@ export declare const inject: string[];
|
|
|
18
18
|
* Phase 5 adapters. NInfer's surface is CLI flags (`toArgv`); Hyper-Qwen's is
|
|
19
19
|
* `.env` keys (`toEnv`).
|
|
20
20
|
*/
|
|
21
|
-
export { CTX_OPTIONS, HYPERQWEN_PARAMETERS, KV_OPTIONS, SPEC_OPTIONS as HYPERQWEN_SPEC_OPTIONS, } from './hyperqwen.ts';
|
|
22
|
-
export { CHAT_TEMPLATE_OPTIONS, DEVICE_PROFILE_OPTIONS, KV_DTYPE_OPTIONS, NINFER_PARAMETERS, SPEC_OPTIONS as NINFER_SPEC_OPTIONS, } from './ninfer.ts';
|
|
23
|
-
export { NINFER_VRAM_MODELS, ninferVramModel } from './vram.ts';
|
|
21
|
+
export { CTX_OPTIONS, HYPERQWEN_PARAMETERS, KV_OPTIONS, SPEC_OPTIONS as HYPERQWEN_SPEC_OPTIONS, } from './engines/hyperqwen/hyperqwen.ts';
|
|
22
|
+
export { CHAT_TEMPLATE_OPTIONS, DEVICE_PROFILE_OPTIONS, KV_DTYPE_OPTIONS, NINFER_PARAMETERS, SPEC_OPTIONS as NINFER_SPEC_OPTIONS, } from './engines/ninfer/ninfer.ts';
|
|
23
|
+
export { BASALT_VRAM_MODELS, NINFER_VRAM_MODELS, basaltVramModel, ninferVramModel, } from './vram.ts';
|
|
24
24
|
export { BUILTIN_GUIDELINES, HOST_STATE_IMAGE_BYTES } from './guidelines.ts';
|
|
25
25
|
export { ENGINES } from './engines.ts';
|
|
26
26
|
export type { EngineInfo } from './engines.ts';
|
|
27
|
-
export { ENGINE_SOURCES, FORK_REMOTE, buildEngineRepo, engineBuildSteps, engineSource, syncAndRebuildEngine, syncEngineRepo, } from './acquire.ts';
|
|
28
|
-
export type { AcquireLog, EngineSource, EngineStepResult, SyncRebuildRequest, SyncRebuildResult, } from './acquire.ts';
|
|
29
|
-
export { ENGINE_DEP_PLANS, SYSTEM_DEPS } from './deps.ts';
|
|
27
|
+
export { ENGINE_SOURCES, FORK_REMOTE, buildEngineRepo, engineBuildSteps, engineSource, syncAndRebuildEngine, syncEngineForDeploy, syncEngineRepo, } from './acquire.ts';
|
|
28
|
+
export type { AcquireLog, EngineDeploySync, EngineSource, EngineStepResult, SyncRebuildRequest, SyncRebuildResult, SyncStepResult, } from './acquire.ts';
|
|
29
|
+
export { ENGINE_DEP_PLANS, SYSTEM_DEPS, engineLocalDeps } from './deps.ts';
|
|
30
30
|
export { ENGINE_PLATFORM_DEFAULTS, enginePlatformDefaults } from './platform.ts';
|
|
31
31
|
export type { EnginePlatformDefaults } from './platform.ts';
|
|
32
32
|
export { BUILTIN_PRESETS, PRESET_SOURCES, extractJsonBlock } from './presets.ts';
|
|
33
33
|
export { DEFAULT_MODELS, defaultModelFor, defaultModelsForEngine } from './model-defaults.ts';
|
|
34
|
-
export {
|
|
35
|
-
export type {
|
|
36
|
-
export {
|
|
37
|
-
export
|
|
38
|
-
export {
|
|
39
|
-
export
|
|
40
|
-
export {
|
|
34
|
+
export { createNodeLifecycleHost, customArgEnv, customArgFlags, envFromSpecs, flagsFromSpecs, nodeLifecycleHost, pollHealth, resolveLaunchArgv, } from './adapters.ts';
|
|
35
|
+
export type { SudoHook } from './adapters.ts';
|
|
36
|
+
export { HyperQwenAdapter } from './engines/hyperqwen/hyperqwenAdapter.ts';
|
|
37
|
+
export { InfernixAdapter } from './engines/infernix/infernixAdapter.ts';
|
|
38
|
+
export { LLAMACPP_DOCKER_IMAGE, LlamaCppAdapter } from './engines/llamacpp/llamacppAdapter.ts';
|
|
39
|
+
export { NINFER_DOCKER_IMAGE, NINFER_MODEL_ARTIFACTS, NInferAdapter } from './engines/ninfer/ninferAdapter.ts';
|
|
40
|
+
export { STRATA_DOCKER_IMAGE, StrataAdapter } from './engines/strata/strataAdapter.ts';
|
|
41
|
+
export type { NInferModelArtifact } from './engines/ninfer/ninferAdapter.ts';
|
|
42
|
+
export { KV_CACHE_TYPE_OPTIONS, LLAMACPP_MODEL_ARTIFACTS, LLAMACPP_PARAMETERS, llamaCppModelKey, } from './engines/llamacpp/llamacpp.ts';
|
|
43
|
+
export type { LlamaCppModelArtifact } from './engines/llamacpp/llamacpp.ts';
|
|
44
|
+
export { DFLASH2_CUSTOM_VALUE, DFLASH2_GATE_MESSAGE, INFERNIX_DFLASH2_MODELS, INFERNIX_KV_DTYPE_OPTIONS, INFERNIX_MODEL_ARTIFACTS, INFERNIX_NGRAM_RESIDENCY_OPTIONS, INFERNIX_NGRAM_VOLUMES, INFERNIX_PARAMETERS, INFERNIX_REASONING_LOOP_OPTIONS, INFERNIX_SPEC_OPTIONS, SPEC_GATE_MESSAGE as INFERNIX_SPEC_GATE_MESSAGE, dflash2PresetOptions, infernixArtifactFor, infernixDraftModelPath, infernixGetDownloads, infernixModelKey, } from './engines/infernix/infernix.ts';
|
|
45
|
+
export type { InfernixDFlash2Model, InfernixModelArtifact, InfernixNgramVolume, } from './engines/infernix/infernix.ts';
|
|
46
|
+
export { STRATA_PARAMETERS } from './engines/strata/strata.ts';
|
|
47
|
+
export { BASALT_PARAMETERS } from './engines/basalt/basalt.ts';
|
|
48
|
+
export { BasaltAdapter } from './engines/basalt/basaltAdapter.ts';
|
|
41
49
|
/**
|
|
42
|
-
* Mount the providers. The NInfer measured VramModels
|
|
43
|
-
* service's estimate prices a named
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
50
|
+
* Mount the providers. The NInfer measured VramModels and the Basalt
|
|
51
|
+
* estimated VramModel register here so the service's estimate prices a named
|
|
52
|
+
* model; the built-in hardware guidelines register so the guideline engine
|
|
53
|
+
* warns on docker, host RAM, WSL2, and the Basalt Blackwell gate before the
|
|
54
|
+
* engine boots; the per-engine dep plans register so the deps, installString,
|
|
55
|
+
* and runInstall entry points resolve a plan for every engine the card
|
|
56
|
+
* offers; the built-in presets register so the defaults resolver resolves a
|
|
57
|
+
* sane starting config for the detected hardware class; and the engine
|
|
58
|
+
* adapters register so the launch, stop, and register entry points route a
|
|
59
|
+
* plan to the adapter that rendered it.
|
|
51
60
|
*/
|
|
52
61
|
export declare function apply(ctx: Context): void;
|
|
53
62
|
declare const plugin: {
|
|
@@ -56,4 +65,4 @@ declare const plugin: {
|
|
|
56
65
|
apply: typeof apply;
|
|
57
66
|
};
|
|
58
67
|
export default plugin;
|
|
59
|
-
//# sourceMappingURL=index.d.ts.map
|
|
68
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The concrete providers for the local-inference capability: the engine
|
|
3
|
-
* adapters (ninfer, hyperqwen, llamacpp, infernix, strata), the NInfer
|
|
3
|
+
* adapters (ninfer, hyperqwen, llamacpp, infernix, strata, basalt), the NInfer
|
|
4
4
|
* VramModel, the built-in presets, the built-in guidelines, and the per-OS
|
|
5
5
|
* SystemDep install command data. Each registers itself with `ctx.localInfer`.
|
|
6
6
|
*
|
|
@@ -10,12 +10,18 @@
|
|
|
10
10
|
* that the defaults resolver resolves against.
|
|
11
11
|
* @module dsh-plugin-local-infer/providers
|
|
12
12
|
*/
|
|
13
|
-
import { createNodeLifecycleHost
|
|
13
|
+
import { createNodeLifecycleHost } from "./adapters.js";
|
|
14
|
+
import { BasaltAdapter } from "./engines/basalt/basaltAdapter.js";
|
|
15
|
+
import { HyperQwenAdapter } from "./engines/hyperqwen/hyperqwenAdapter.js";
|
|
16
|
+
import { InfernixAdapter } from "./engines/infernix/infernixAdapter.js";
|
|
17
|
+
import { LlamaCppAdapter } from "./engines/llamacpp/llamacppAdapter.js";
|
|
18
|
+
import { NInferAdapter } from "./engines/ninfer/ninferAdapter.js";
|
|
19
|
+
import { StrataAdapter } from "./engines/strata/strataAdapter.js";
|
|
14
20
|
import { createDshDebugLogger } from "./debug.js";
|
|
15
21
|
import { ENGINE_DEP_PLANS } from "./deps.js";
|
|
16
22
|
import { BUILTIN_GUIDELINES } from "./guidelines.js";
|
|
17
23
|
import { BUILTIN_PRESETS } from "./presets.js";
|
|
18
|
-
import { NINFER_VRAM_MODELS } from "./vram.js";
|
|
24
|
+
import { BASALT_VRAM_MODELS, NINFER_VRAM_MODELS } from "./vram.js";
|
|
19
25
|
export const name = 'local-infer-providers';
|
|
20
26
|
export const inject = ['localInfer'];
|
|
21
27
|
/**
|
|
@@ -23,36 +29,47 @@ export const inject = ['localInfer'];
|
|
|
23
29
|
* Phase 5 adapters. NInfer's surface is CLI flags (`toArgv`); Hyper-Qwen's is
|
|
24
30
|
* `.env` keys (`toEnv`).
|
|
25
31
|
*/
|
|
26
|
-
export { CTX_OPTIONS, HYPERQWEN_PARAMETERS, KV_OPTIONS, SPEC_OPTIONS as HYPERQWEN_SPEC_OPTIONS, } from "./hyperqwen.js";
|
|
27
|
-
export { CHAT_TEMPLATE_OPTIONS, DEVICE_PROFILE_OPTIONS, KV_DTYPE_OPTIONS, NINFER_PARAMETERS, SPEC_OPTIONS as NINFER_SPEC_OPTIONS, } from "./ninfer.js";
|
|
28
|
-
export { NINFER_VRAM_MODELS, ninferVramModel } from "./vram.js";
|
|
32
|
+
export { CTX_OPTIONS, HYPERQWEN_PARAMETERS, KV_OPTIONS, SPEC_OPTIONS as HYPERQWEN_SPEC_OPTIONS, } from "./engines/hyperqwen/hyperqwen.js";
|
|
33
|
+
export { CHAT_TEMPLATE_OPTIONS, DEVICE_PROFILE_OPTIONS, KV_DTYPE_OPTIONS, NINFER_PARAMETERS, SPEC_OPTIONS as NINFER_SPEC_OPTIONS, } from "./engines/ninfer/ninfer.js";
|
|
34
|
+
export { BASALT_VRAM_MODELS, NINFER_VRAM_MODELS, basaltVramModel, ninferVramModel, } from "./vram.js";
|
|
29
35
|
export { BUILTIN_GUIDELINES, HOST_STATE_IMAGE_BYTES } from "./guidelines.js";
|
|
30
36
|
export { ENGINES } from "./engines.js";
|
|
31
|
-
export { ENGINE_SOURCES, FORK_REMOTE, buildEngineRepo, engineBuildSteps, engineSource, syncAndRebuildEngine, syncEngineRepo, } from "./acquire.js";
|
|
32
|
-
export { ENGINE_DEP_PLANS, SYSTEM_DEPS } from "./deps.js";
|
|
37
|
+
export { ENGINE_SOURCES, FORK_REMOTE, buildEngineRepo, engineBuildSteps, engineSource, syncAndRebuildEngine, syncEngineForDeploy, syncEngineRepo, } from "./acquire.js";
|
|
38
|
+
export { ENGINE_DEP_PLANS, SYSTEM_DEPS, engineLocalDeps } from "./deps.js";
|
|
33
39
|
export { ENGINE_PLATFORM_DEFAULTS, enginePlatformDefaults } from "./platform.js";
|
|
34
40
|
export { BUILTIN_PRESETS, PRESET_SOURCES, extractJsonBlock } from "./presets.js";
|
|
35
41
|
export { DEFAULT_MODELS, defaultModelFor, defaultModelsForEngine } from "./model-defaults.js";
|
|
36
|
-
export {
|
|
37
|
-
export {
|
|
38
|
-
export {
|
|
39
|
-
export {
|
|
42
|
+
export { createNodeLifecycleHost, customArgEnv, customArgFlags, envFromSpecs, flagsFromSpecs, nodeLifecycleHost, pollHealth, resolveLaunchArgv, } from "./adapters.js";
|
|
43
|
+
export { HyperQwenAdapter } from "./engines/hyperqwen/hyperqwenAdapter.js";
|
|
44
|
+
export { InfernixAdapter } from "./engines/infernix/infernixAdapter.js";
|
|
45
|
+
export { LLAMACPP_DOCKER_IMAGE, LlamaCppAdapter } from "./engines/llamacpp/llamacppAdapter.js";
|
|
46
|
+
export { NINFER_DOCKER_IMAGE, NINFER_MODEL_ARTIFACTS, NInferAdapter } from "./engines/ninfer/ninferAdapter.js";
|
|
47
|
+
export { STRATA_DOCKER_IMAGE, StrataAdapter } from "./engines/strata/strataAdapter.js";
|
|
48
|
+
export { KV_CACHE_TYPE_OPTIONS, LLAMACPP_MODEL_ARTIFACTS, LLAMACPP_PARAMETERS, llamaCppModelKey, } from "./engines/llamacpp/llamacpp.js";
|
|
49
|
+
export { DFLASH2_CUSTOM_VALUE, DFLASH2_GATE_MESSAGE, INFERNIX_DFLASH2_MODELS, INFERNIX_KV_DTYPE_OPTIONS, INFERNIX_MODEL_ARTIFACTS, INFERNIX_NGRAM_RESIDENCY_OPTIONS, INFERNIX_NGRAM_VOLUMES, INFERNIX_PARAMETERS, INFERNIX_REASONING_LOOP_OPTIONS, INFERNIX_SPEC_OPTIONS, SPEC_GATE_MESSAGE as INFERNIX_SPEC_GATE_MESSAGE, dflash2PresetOptions, infernixArtifactFor, infernixDraftModelPath, infernixGetDownloads, infernixModelKey, } from "./engines/infernix/infernix.js";
|
|
50
|
+
export { STRATA_PARAMETERS } from "./engines/strata/strata.js";
|
|
51
|
+
export { BASALT_PARAMETERS } from "./engines/basalt/basalt.js";
|
|
52
|
+
export { BasaltAdapter } from "./engines/basalt/basaltAdapter.js";
|
|
40
53
|
/**
|
|
41
|
-
* Mount the providers. The NInfer measured VramModels
|
|
42
|
-
* service's estimate prices a named
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
54
|
+
* Mount the providers. The NInfer measured VramModels and the Basalt
|
|
55
|
+
* estimated VramModel register here so the service's estimate prices a named
|
|
56
|
+
* model; the built-in hardware guidelines register so the guideline engine
|
|
57
|
+
* warns on docker, host RAM, WSL2, and the Basalt Blackwell gate before the
|
|
58
|
+
* engine boots; the per-engine dep plans register so the deps, installString,
|
|
59
|
+
* and runInstall entry points resolve a plan for every engine the card
|
|
60
|
+
* offers; the built-in presets register so the defaults resolver resolves a
|
|
61
|
+
* sane starting config for the detected hardware class; and the engine
|
|
62
|
+
* adapters register so the launch, stop, and register entry points route a
|
|
63
|
+
* plan to the adapter that rendered it.
|
|
50
64
|
*/
|
|
51
65
|
export function apply(ctx) {
|
|
52
66
|
const localInfer = ctx.localInfer;
|
|
53
67
|
for (const model of NINFER_VRAM_MODELS) {
|
|
54
68
|
localInfer.registerVramModel(model);
|
|
55
69
|
}
|
|
70
|
+
for (const model of BASALT_VRAM_MODELS) {
|
|
71
|
+
localInfer.registerVramModel(model);
|
|
72
|
+
}
|
|
56
73
|
for (const guideline of BUILTIN_GUIDELINES) {
|
|
57
74
|
localInfer.registerGuideline(guideline);
|
|
58
75
|
}
|
|
@@ -66,14 +83,19 @@ export function apply(ctx) {
|
|
|
66
83
|
// (the HARNESS_LOG_LEVEL env var or the DSH logger level config), the host
|
|
67
84
|
// logs every command it issues to an engine, from build to launch, through
|
|
68
85
|
// the cordis logger's debug method. A normal run wires the no-debug host, so
|
|
69
|
-
// the command path stays quiet.
|
|
70
|
-
|
|
86
|
+
// the command path stays quiet. The sudo hook reports a waiting
|
|
87
|
+
// `sudo ln -sf ...` deploy link through the service's notifySudoNeeded, so
|
|
88
|
+
// the route-registered observer can show the CLI note while the card waits.
|
|
89
|
+
const host = createNodeLifecycleHost(createDshDebugLogger(ctx), {
|
|
90
|
+
notify: (command) => localInfer.notifySudoNeeded(command),
|
|
91
|
+
});
|
|
71
92
|
localInfer.registerEngine(new NInferAdapter(host));
|
|
72
93
|
localInfer.registerEngine(new HyperQwenAdapter(host));
|
|
73
94
|
localInfer.registerEngine(new LlamaCppAdapter(host));
|
|
74
95
|
localInfer.registerEngine(new InfernixAdapter(host));
|
|
75
96
|
localInfer.registerEngine(new StrataAdapter(host));
|
|
97
|
+
localInfer.registerEngine(new BasaltAdapter(host));
|
|
76
98
|
}
|
|
77
99
|
const plugin = { name, inject, apply };
|
|
78
100
|
export default plugin;
|
|
79
|
-
//# sourceMappingURL=index.js.map
|
|
101
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -4,8 +4,13 @@
|
|
|
4
4
|
* Hyper-Qwen W4A16 27B and AWQ 35B-A3B artifacts, the llama.cpp GGUF 27B and
|
|
5
5
|
* 35B-A3B artifacts, and the Infernix 27B NVIDIA NVFP4 and the Qwen3.8-
|
|
6
6
|
* Flash-Next Dense8 conversion (whose whole-repo download carries the FP8
|
|
7
|
-
* n-gram volume the `--ngram-volume` flag reads). Strata
|
|
8
|
-
* the
|
|
7
|
+
* n-gram volume the `--ngram-volume` flag reads). Strata carries the two
|
|
8
|
+
* models the README's Models section links (Gyro and DeepSeek V4.1-Flash),
|
|
9
|
+
* each named by the model the engine accepts and the repo it downloads.
|
|
10
|
+
* Basalt carries the two `.basalt` artifacts the engine serves (the
|
|
11
|
+
* Qwen3.8-Flash-Next NVFP4 conversion and the DeepSeek-V4.1-Flash UD-IQ1_M
|
|
12
|
+
* pack, each named by the repo and file the adapter's deploy step
|
|
13
|
+
* downloads).
|
|
9
14
|
*
|
|
10
15
|
* The list is the single source the card's Model dropdown, the model
|
|
11
16
|
* presence check, and the hf CLI download route read. Adding a model is a
|
|
@@ -22,8 +27,8 @@ import type { DefaultModel } from 'dsh-plugin-local-infer/core';
|
|
|
22
27
|
export declare const DEFAULT_MODELS: readonly DefaultModel[];
|
|
23
28
|
/**
|
|
24
29
|
* defaultModelsForEngine reads the default list for one engine id, in list
|
|
25
|
-
* order. An engine with no entry
|
|
26
|
-
*
|
|
30
|
+
* order. An engine with no entry reads as an empty list, which the card
|
|
31
|
+
* renders as no Model row.
|
|
27
32
|
*/
|
|
28
33
|
export declare function defaultModelsForEngine(engineId: string): readonly DefaultModel[];
|
|
29
34
|
/**
|
|
@@ -32,4 +37,4 @@ export declare function defaultModelsForEngine(engineId: string): readonly Defau
|
|
|
32
37
|
* undefined entry with a 404, so a model no default names never downloads.
|
|
33
38
|
*/
|
|
34
39
|
export declare function defaultModelFor(engineId: string, modelId: string): DefaultModel | undefined;
|
|
35
|
-
//# sourceMappingURL=model-defaults.d.ts.map
|
|
40
|
+
//# sourceMappingURL=model-defaults.d.ts.map
|
|
@@ -4,14 +4,20 @@
|
|
|
4
4
|
* Hyper-Qwen W4A16 27B and AWQ 35B-A3B artifacts, the llama.cpp GGUF 27B and
|
|
5
5
|
* 35B-A3B artifacts, and the Infernix 27B NVIDIA NVFP4 and the Qwen3.8-
|
|
6
6
|
* Flash-Next Dense8 conversion (whose whole-repo download carries the FP8
|
|
7
|
-
* n-gram volume the `--ngram-volume` flag reads). Strata
|
|
8
|
-
* the
|
|
7
|
+
* n-gram volume the `--ngram-volume` flag reads). Strata carries the two
|
|
8
|
+
* models the README's Models section links (Gyro and DeepSeek V4.1-Flash),
|
|
9
|
+
* each named by the model the engine accepts and the repo it downloads.
|
|
10
|
+
* Basalt carries the two `.basalt` artifacts the engine serves (the
|
|
11
|
+
* Qwen3.8-Flash-Next NVFP4 conversion and the DeepSeek-V4.1-Flash UD-IQ1_M
|
|
12
|
+
* pack, each named by the repo and file the adapter's deploy step
|
|
13
|
+
* downloads).
|
|
9
14
|
*
|
|
10
15
|
* The list is the single source the card's Model dropdown, the model
|
|
11
16
|
* presence check, and the hf CLI download route read. Adding a model is a
|
|
12
17
|
* data edit here, never a route or card rewire.
|
|
13
18
|
* @module dsh-plugin-local-infer/providers/model-defaults
|
|
14
19
|
*/
|
|
20
|
+
import { BASALT_DEFAULT_MODEL_ID, BASALT_MODEL_FILE, BASALT_MODEL_REPO, BASALT_DEEPSEEK_MODEL_FILE, BASALT_DEEPSEEK_MODEL_ID, BASALT_DEEPSEEK_MODEL_REPO, } from "./engines/basalt/basalt.js";
|
|
15
21
|
/**
|
|
16
22
|
* DEFAULT_MODELS is the default model list, in the order the card lists them.
|
|
17
23
|
* The 27B keys reuse the VramModel registry ids; the 35B-A3B entries use the
|
|
@@ -88,11 +94,47 @@ export const DEFAULT_MODELS = [
|
|
|
88
94
|
url: 'https://huggingface.co/neroued/Qwen3.6-35B-A3B-NInfer',
|
|
89
95
|
file: 'qwen3_6_35b_a3b.ninfer',
|
|
90
96
|
},
|
|
97
|
+
// The two models the Strata README's Models section links: Gyro (the
|
|
98
|
+
// smallest way to run Qwen3.8-Flash-Next) and DeepSeek V4.1-Flash (the
|
|
99
|
+
// bigger model that runs on one 12 GB card). No single file: the engine
|
|
100
|
+
// downloads the model itself (into the container volume or its data dir),
|
|
101
|
+
// so the entry names the repo only.
|
|
102
|
+
{
|
|
103
|
+
engineId: 'strata',
|
|
104
|
+
modelId: 'gyro-s',
|
|
105
|
+
label: 'Strata Gyro-S (Qwen3.8-Flash-Next)',
|
|
106
|
+
url: 'https://huggingface.co/agentionai/Qwen3.8-Flash-Next-Gyro-GGUF',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
engineId: 'strata',
|
|
110
|
+
modelId: 'ist-das-2.00bpw',
|
|
111
|
+
label: 'Strata DeepSeek V4.1-Flash (2.00 bpw)',
|
|
112
|
+
url: 'https://huggingface.co/ISTA-DASLab/DeepSeek-V4.1-Flash-1017-GSQ-RCO-GGUF',
|
|
113
|
+
},
|
|
114
|
+
// The two `.basalt` artifacts the engine serves: for each, the weights,
|
|
115
|
+
// tokenizer, chat template, drafter, vision projector, and default
|
|
116
|
+
// sampling all come from the one file. The repos and files ride the
|
|
117
|
+
// adapter constants, so the download route and the deploy step share one
|
|
118
|
+
// source.
|
|
119
|
+
{
|
|
120
|
+
engineId: 'basalt',
|
|
121
|
+
modelId: BASALT_DEFAULT_MODEL_ID,
|
|
122
|
+
label: 'Basalt Qwen3.8-Flash-Next (NVFP4 DQ6_K)',
|
|
123
|
+
url: `https://huggingface.co/${BASALT_MODEL_REPO}`,
|
|
124
|
+
file: BASALT_MODEL_FILE,
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
engineId: 'basalt',
|
|
128
|
+
modelId: BASALT_DEEPSEEK_MODEL_ID,
|
|
129
|
+
label: 'Basalt DeepSeek-V4.1-Flash (UD-IQ1_M)',
|
|
130
|
+
url: `https://huggingface.co/${BASALT_DEEPSEEK_MODEL_REPO}`,
|
|
131
|
+
file: BASALT_DEEPSEEK_MODEL_FILE,
|
|
132
|
+
},
|
|
91
133
|
];
|
|
92
134
|
/**
|
|
93
135
|
* defaultModelsForEngine reads the default list for one engine id, in list
|
|
94
|
-
* order. An engine with no entry
|
|
95
|
-
*
|
|
136
|
+
* order. An engine with no entry reads as an empty list, which the card
|
|
137
|
+
* renders as no Model row.
|
|
96
138
|
*/
|
|
97
139
|
export function defaultModelsForEngine(engineId) {
|
|
98
140
|
return DEFAULT_MODELS.filter((entry) => entry.engineId === engineId);
|
|
@@ -105,4 +147,4 @@ export function defaultModelsForEngine(engineId) {
|
|
|
105
147
|
export function defaultModelFor(engineId, modelId) {
|
|
106
148
|
return DEFAULT_MODELS.find((entry) => entry.engineId === engineId && entry.modelId === modelId);
|
|
107
149
|
}
|
|
108
|
-
//# sourceMappingURL=model-defaults.js.map
|
|
150
|
+
//# sourceMappingURL=model-defaults.js.map
|
|
@@ -19,13 +19,16 @@ export interface EnginePlatformDefaults {
|
|
|
19
19
|
* The per-engine platform defaults, keyed by engine id. The build command is
|
|
20
20
|
* the engine's first acquisition build step; the docker tag is the upstream
|
|
21
21
|
* image the adapter pulls. Hyper-Qwen is compose-driven, so its docker tag is
|
|
22
|
-
* the vLLM OpenAI server image; Infernix
|
|
23
|
-
* a build command only.
|
|
22
|
+
* the vLLM OpenAI server image; Infernix and Basalt ship no docker image, so
|
|
23
|
+
* they carry a build command only.
|
|
24
24
|
*/
|
|
25
25
|
export declare const ENGINE_PLATFORM_DEFAULTS: Record<string, EnginePlatformDefaults>;
|
|
26
26
|
/**
|
|
27
27
|
* enginePlatformDefaults reads the registered platform defaults for an engine
|
|
28
|
-
* id, or an empty object when none is registered.
|
|
28
|
+
* id on an OS, or an empty object when none is registered. The build command
|
|
29
|
+
* is the engine's first build step for the OS (the Windows vcpkg route on a
|
|
30
|
+
* Windows host), so the card's placeholder seeds the OS-appropriate default.
|
|
31
|
+
* The docker tag is OS-independent and rides the registered entry.
|
|
29
32
|
*/
|
|
30
|
-
export declare function enginePlatformDefaults(engineId: string): EnginePlatformDefaults;
|
|
31
|
-
//# sourceMappingURL=platform.d.ts.map
|
|
33
|
+
export declare function enginePlatformDefaults(engineId: string, os?: 'linux' | 'windows' | 'macos'): EnginePlatformDefaults;
|
|
34
|
+
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* defaults are a data edit here, never a card rewire.
|
|
6
6
|
* @module dsh-plugin-local-infer/providers/platform
|
|
7
7
|
*/
|
|
8
|
-
import { LLAMACPP_DOCKER_IMAGE
|
|
8
|
+
import { LLAMACPP_DOCKER_IMAGE } from "./engines/llamacpp/llamacppAdapter.js";
|
|
9
|
+
import { NINFER_DOCKER_IMAGE } from "./engines/ninfer/ninferAdapter.js";
|
|
10
|
+
import { STRATA_DOCKER_IMAGE } from "./engines/strata/strataAdapter.js";
|
|
9
11
|
import { engineBuildSteps } from "./acquire.js";
|
|
10
12
|
// The local build command is the engine's first acquisition build step (the
|
|
11
13
|
// cmake build the deploy step runs in the checkout), read through
|
|
@@ -15,12 +17,14 @@ import { engineBuildSteps } from "./acquire.js";
|
|
|
15
17
|
const NINFER_BUILD_COMMAND = engineBuildSteps('ninfer')[0];
|
|
16
18
|
const LLAMACPP_BUILD_COMMAND = engineBuildSteps('llamacpp')[0];
|
|
17
19
|
const INFERNIX_BUILD_COMMAND = engineBuildSteps('infernix')[0];
|
|
20
|
+
const STRATA_BUILD_COMMAND = engineBuildSteps('strata')[0];
|
|
21
|
+
const BASALT_BUILD_COMMAND = engineBuildSteps('basalt')[0];
|
|
18
22
|
/**
|
|
19
23
|
* The per-engine platform defaults, keyed by engine id. The build command is
|
|
20
24
|
* the engine's first acquisition build step; the docker tag is the upstream
|
|
21
25
|
* image the adapter pulls. Hyper-Qwen is compose-driven, so its docker tag is
|
|
22
|
-
* the vLLM OpenAI server image; Infernix
|
|
23
|
-
* a build command only.
|
|
26
|
+
* the vLLM OpenAI server image; Infernix and Basalt ship no docker image, so
|
|
27
|
+
* they carry a build command only.
|
|
24
28
|
*/
|
|
25
29
|
export const ENGINE_PLATFORM_DEFAULTS = {
|
|
26
30
|
ninfer: {
|
|
@@ -45,14 +49,30 @@ export const ENGINE_PLATFORM_DEFAULTS = {
|
|
|
45
49
|
: {}),
|
|
46
50
|
},
|
|
47
51
|
strata: {
|
|
52
|
+
...(STRATA_BUILD_COMMAND !== undefined
|
|
53
|
+
? { defaultBuildCommand: STRATA_BUILD_COMMAND }
|
|
54
|
+
: {}),
|
|
48
55
|
defaultDockerTag: STRATA_DOCKER_IMAGE,
|
|
49
56
|
},
|
|
57
|
+
basalt: {
|
|
58
|
+
// The CMake build command the deploy step runs in the checkout; the
|
|
59
|
+
// engine ships no container image, so no docker tag.
|
|
60
|
+
...(BASALT_BUILD_COMMAND !== undefined ? { defaultBuildCommand: BASALT_BUILD_COMMAND } : {}),
|
|
61
|
+
},
|
|
50
62
|
};
|
|
51
63
|
/**
|
|
52
64
|
* enginePlatformDefaults reads the registered platform defaults for an engine
|
|
53
|
-
* id, or an empty object when none is registered.
|
|
65
|
+
* id on an OS, or an empty object when none is registered. The build command
|
|
66
|
+
* is the engine's first build step for the OS (the Windows vcpkg route on a
|
|
67
|
+
* Windows host), so the card's placeholder seeds the OS-appropriate default.
|
|
68
|
+
* The docker tag is OS-independent and rides the registered entry.
|
|
54
69
|
*/
|
|
55
|
-
export function enginePlatformDefaults(engineId) {
|
|
56
|
-
|
|
70
|
+
export function enginePlatformDefaults(engineId, os = 'linux') {
|
|
71
|
+
const base = ENGINE_PLATFORM_DEFAULTS[engineId] ?? {};
|
|
72
|
+
const buildCommand = engineBuildSteps(engineId, os)[0];
|
|
73
|
+
return {
|
|
74
|
+
...base,
|
|
75
|
+
...(buildCommand !== undefined ? { defaultBuildCommand: buildCommand } : {}),
|
|
76
|
+
};
|
|
57
77
|
}
|
|
58
|
-
//# sourceMappingURL=platform.js.map
|
|
78
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
* Built-in preset data for the local-inference defaults layer. The presets are
|
|
3
3
|
* the offline floor the DefaultsResolver resolves against: the NInfer
|
|
4
4
|
* measured configs (the `config-calculator.html` figures and the
|
|
5
|
-
* `qwen-ninfer` launcher, on a 24 GiB sm86 card)
|
|
5
|
+
* `qwen-ninfer` launcher, on a 24 GiB sm86 card), the Hyper-Qwen `.env`
|
|
6
6
|
* profiles (the single-user speed, long-context, and huge-context tiers from
|
|
7
|
-
* `.env.example`)
|
|
8
|
-
*
|
|
7
|
+
* `.env.example`), and the Basalt Blackwell long-context starting config
|
|
8
|
+
* (keyed to the wildcard class, since Basalt runs on any Blackwell card).
|
|
9
|
+
* Each preset is keyed by its exact (engine, model, hardware class) triple, so
|
|
10
|
+
* it is only trusted for the hardware it was sourced for.
|
|
9
11
|
*
|
|
10
12
|
* The `PRESET_SOURCES` list names the mod-search fetch path: the URL the
|
|
11
13
|
* bridge pulls and the pure extractor that turns the fetched page into a
|
|
@@ -32,4 +34,4 @@ export declare function extractJsonBlock(content: string): Config;
|
|
|
32
34
|
* block the docs embed, so a page without one degrades to an empty config.
|
|
33
35
|
*/
|
|
34
36
|
export declare const PRESET_SOURCES: readonly PresetSource[];
|
|
35
|
-
//# sourceMappingURL=presets.d.ts.map
|
|
37
|
+
//# sourceMappingURL=presets.d.ts.map
|