@wenathlan/saddle 2.0.151 → 2.0.153
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 +3 -3
- package/biome.jsonc +12 -5
- package/dist/App.d.ts +5 -0
- package/dist/App.js +52 -0
- package/dist/Sol/Sol.d.ts +3 -0
- package/dist/Sol/Sol.js +46 -0
- package/dist/Sol/agentbrowser/agentbrowser.d.ts +9 -0
- package/dist/Sol/agentbrowser/agentbrowser.js +121 -0
- package/dist/Sol/architecture/architecture.d.ts +9 -0
- package/dist/Sol/architecture/architecture.js +93 -0
- package/dist/Sol/compute/compute.d.ts +9 -0
- package/dist/Sol/compute/compute.js +22 -0
- package/dist/Sol/console/console.d.ts +15 -0
- package/dist/Sol/console/console.js +292 -0
- package/dist/Sol/dashboard/dashboard.d.ts +10 -0
- package/dist/Sol/dashboard/dashboard.js +181 -0
- package/dist/Sol/docs/docs.d.ts +9 -0
- package/dist/Sol/docs/docs.js +28 -0
- package/dist/Sol/home/home.d.ts +35 -0
- package/dist/Sol/home/home.js +239 -0
- package/dist/Sol/integrations/integrations.d.ts +9 -0
- package/dist/Sol/integrations/integrations.js +83 -0
- package/dist/Sol/intro/intro.d.ts +7 -0
- package/dist/Sol/intro/intro.js +102 -0
- package/dist/Sol/login/login.d.ts +16 -0
- package/dist/Sol/login/login.js +49 -0
- package/dist/Sol/notfound/notfound.d.ts +9 -0
- package/dist/Sol/notfound/notfound.js +15 -0
- package/dist/Sol/onboarding/onboarding.d.ts +25 -0
- package/dist/Sol/onboarding/onboarding.js +60 -0
- package/dist/Sol/playground/playground.d.ts +9 -0
- package/dist/Sol/playground/playground.js +127 -0
- package/dist/Sol/register/register.d.ts +16 -0
- package/dist/Sol/register/register.js +193 -0
- package/dist/Sol/shell/Shell.d.ts +124 -0
- package/dist/Sol/shell/Shell.js +335 -0
- package/dist/Sol/wingets/ComputeBootladder.d.ts +6 -0
- package/dist/Sol/wingets/ComputeBootladder.js +71 -0
- package/dist/Sol/wingets/ComputeModalitycatalog.d.ts +7 -0
- package/dist/Sol/wingets/ComputeModalitycatalog.js +71 -0
- package/dist/Sol/wingets/ConsoleApibadge.d.ts +7 -0
- package/dist/Sol/wingets/ConsoleApibadge.js +5 -0
- package/dist/Sol/wingets/ConsoleEdgelaw.d.ts +6 -0
- package/dist/Sol/wingets/ConsoleEdgelaw.js +36 -0
- package/dist/Sol/wingets/ConsoleEventstimeline.d.ts +19 -0
- package/dist/Sol/wingets/ConsoleEventstimeline.js +12 -0
- package/dist/Sol/wingets/ConsoleSnapshotcontrols.d.ts +8 -0
- package/dist/Sol/wingets/ConsoleSnapshotcontrols.js +8 -0
- package/dist/Sol/wingets/ConsoleSpecpanel.d.ts +21 -0
- package/dist/Sol/wingets/ConsoleSpecpanel.js +75 -0
- package/dist/Sol/wingets/ConsoleTerminal.d.ts +22 -0
- package/dist/Sol/wingets/ConsoleTerminal.js +77 -0
- package/dist/Sol/wingets/DashboardAccountpanel.d.ts +18 -0
- package/dist/Sol/wingets/DashboardAccountpanel.js +65 -0
- package/dist/Sol/wingets/DashboardAdminpanel.d.ts +6 -0
- package/dist/Sol/wingets/DashboardAdminpanel.js +90 -0
- package/dist/Sol/wingets/DashboardAuditlog.d.ts +8 -0
- package/dist/Sol/wingets/DashboardAuditlog.js +50 -0
- package/dist/Sol/wingets/DashboardCreatesandboxform.d.ts +10 -0
- package/dist/Sol/wingets/DashboardCreatesandboxform.js +71 -0
- package/dist/Sol/wingets/DashboardEventstimeline.d.ts +8 -0
- package/dist/Sol/wingets/DashboardEventstimeline.js +83 -0
- package/dist/Sol/wingets/DashboardGlobalsandboxestable.d.ts +8 -0
- package/dist/Sol/wingets/DashboardGlobalsandboxestable.js +57 -0
- package/dist/Sol/wingets/DashboardMeshnodestable.d.ts +8 -0
- package/dist/Sol/wingets/DashboardMeshnodestable.js +103 -0
- package/dist/Sol/wingets/DashboardSandboxlist.d.ts +10 -0
- package/dist/Sol/wingets/DashboardSandboxlist.js +163 -0
- package/dist/Sol/wingets/DashboardUserstable.d.ts +8 -0
- package/dist/Sol/wingets/DashboardUserstable.js +78 -0
- package/dist/Sol/wingets/HomeEntrygate.d.ts +23 -0
- package/dist/Sol/wingets/HomeEntrygate.js +73 -0
- package/dist/Sol/wingets/HomeMetricstrip.d.ts +9 -0
- package/dist/Sol/wingets/HomeMetricstrip.js +4 -0
- package/dist/Sol/wingets/HomeRuntimediagram.d.ts +1 -0
- package/dist/Sol/wingets/HomeRuntimediagram.js +22 -0
- package/dist/Sol/wingets/LoginForm.d.ts +19 -0
- package/dist/Sol/wingets/LoginForm.js +141 -0
- package/dist/Sol/wingets/RegisterPasswordconfirm.d.ts +13 -0
- package/dist/Sol/wingets/RegisterPasswordconfirm.js +16 -0
- package/dist/Sol/wingets/RegisterPasswordmeter.d.ts +19 -0
- package/dist/Sol/wingets/RegisterPasswordmeter.js +65 -0
- package/dist/Sol/wingets/RegisterUsernamerules.d.ts +11 -0
- package/dist/Sol/wingets/RegisterUsernamerules.js +16 -0
- package/dist/Sol/wingets/index.d.ts +39 -0
- package/dist/Sol/wingets/index.js +39 -0
- package/dist/alternatives.d.ts +508 -0
- package/dist/alternatives.js +950 -0
- package/dist/api.d.ts +154 -0
- package/dist/api.js +174 -0
- package/dist/auth.d.ts +268 -0
- package/dist/auth.js +476 -0
- package/dist/automation.d.ts +425 -0
- package/dist/automation.js +566 -0
- package/dist/browser.d.ts +561 -0
- package/dist/browser.js +1058 -0
- package/dist/capacitor.config.d.ts +45 -0
- package/dist/capacitor.config.js +48 -0
- package/dist/catalog.d.ts +43 -0
- package/dist/catalog.js +44 -0
- package/dist/cli.d.ts +16 -0
- package/dist/cli.js +168 -0
- package/dist/communication.d.ts +181 -0
- package/dist/communication.js +376 -0
- package/dist/compute.d.ts +1160 -0
- package/dist/compute.js +2272 -0
- package/dist/dashboardlib.d.ts +58 -0
- package/dist/dashboardlib.js +161 -0
- package/dist/db.d.ts +569 -0
- package/dist/db.js +1080 -0
- package/dist/distribution.d.ts +528 -0
- package/dist/distribution.js +810 -0
- package/dist/drizzle.config.d.ts +20 -0
- package/dist/drizzle.config.js +18 -0
- package/dist/edgelandes.d.ts +70 -0
- package/dist/edgelandes.host.d.ts +26 -0
- package/dist/edgelandes.host.js +1089 -0
- package/dist/edgelandes.inproc.d.ts +27 -0
- package/dist/edgelandes.inproc.js +952 -0
- package/dist/edgelandes.js +1133 -0
- package/dist/edgelandes.ninety.d.ts +31 -0
- package/dist/edgelandes.ninety.js +174 -0
- package/dist/edgelandes.virtual.d.ts +25 -0
- package/dist/edgelandes.virtual.js +629 -0
- package/dist/edgeplane.d.ts +114 -0
- package/dist/edgeplane.js +305 -0
- package/dist/examplelocaljob.d.ts +1 -0
- package/{docs/example-localjob.ts → dist/examplelocaljob.js} +0 -1
- package/dist/execution.d.ts +529 -0
- package/dist/execution.js +760 -0
- package/dist/family.d.ts +16 -0
- package/dist/family.js +42 -0
- package/dist/familyurl.d.ts +21 -0
- package/dist/familyurl.js +24 -0
- package/dist/format.d.ts +18 -0
- package/dist/format.js +59 -0
- package/dist/foundation.d.ts +172 -0
- package/dist/foundation.js +312 -0
- package/dist/index.d.ts +735 -0
- package/dist/index.js +1020 -0
- package/dist/integration.d.ts +235 -0
- package/dist/integration.js +228 -0
- package/dist/intelligence.d.ts +93 -0
- package/dist/intelligence.js +144 -0
- package/dist/isolation.d.ts +128 -0
- package/dist/isolation.js +95 -0
- package/dist/labels.d.ts +665 -0
- package/dist/labels.js +751 -0
- package/dist/localauth.d.ts +127 -0
- package/dist/localauth.js +413 -0
- package/dist/media.d.ts +343 -0
- package/dist/media.js +985 -0
- package/dist/mesh.d.ts +177 -0
- package/dist/mesh.js +468 -0
- package/dist/modalityregistry.d.ts +109 -0
- package/dist/modalityregistry.js +1386 -0
- package/dist/modes.d.ts +358 -0
- package/dist/modes.js +133 -0
- package/dist/onboardingstate.d.ts +79 -0
- package/dist/onboardingstate.js +282 -0
- package/dist/orchestrator.d.ts +1338 -0
- package/dist/orchestrator.js +4310 -0
- package/dist/packager/targetcli.js +4 -0
- package/dist/paths.d.ts +2 -0
- package/dist/paths.js +14 -0
- package/dist/performance.d.ts +415 -0
- package/dist/performance.js +826 -0
- package/dist/quantum.d.ts +809 -0
- package/dist/quantum.js +2072 -0
- package/dist/render.d.ts +380 -0
- package/dist/render.js +1072 -0
- package/dist/runall.d.ts +2 -0
- package/dist/runall.js +39 -0
- package/dist/runtimeprobe.d.ts +4 -0
- package/dist/runtimeprobe.js +8 -0
- package/dist/sandbox.d.ts +355 -0
- package/dist/sandbox.js +1721 -0
- package/dist/sandboxenvprofile.d.ts +29 -0
- package/dist/sandboxenvprofile.js +89 -0
- package/dist/sandboxprofile.d.ts +137 -0
- package/dist/sandboxprofile.js +241 -0
- package/dist/sandboxqueue.d.ts +108 -0
- package/dist/sandboxqueue.js +201 -0
- package/dist/sandboxquota.d.ts +121 -0
- package/dist/sandboxquota.js +236 -0
- package/dist/scheduler.d.ts +595 -0
- package/dist/scheduler.js +1258 -0
- package/dist/scriptlanes.d.ts +182 -0
- package/dist/scriptlanes.js +660 -0
- package/dist/scripts.buildengine.d.ts +1 -0
- package/dist/scripts.buildengine.js +39 -0
- package/dist/scripts.securitygate.d.ts +1 -0
- package/dist/scripts.securitygate.js +68 -0
- package/dist/scripts.validateflatnative.d.ts +1 -0
- package/dist/scripts.validateflatnative.js +72 -0
- package/dist/security.d.ts +500 -0
- package/dist/security.js +1169 -0
- package/dist/seedcatalog.d.ts +13 -0
- package/dist/seedcatalog.js +46 -0
- package/dist/server.d.ts +20 -0
- package/dist/server.js +53 -0
- package/dist/speccatalog.d.ts +31 -0
- package/dist/speccatalog.js +163 -0
- package/dist/tiers.d.ts +1001 -0
- package/dist/tiers.js +2169 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.js +5 -0
- package/dist/vaulthandoff.d.ts +141 -0
- package/dist/vaulthandoff.js +444 -0
- package/dist/virtual.d.ts +640 -0
- package/dist/virtual.js +1284 -0
- package/dist/virtualcpu.d.ts +315 -0
- package/dist/virtualcpu.js +1180 -0
- package/dist/virtualgpu.d.ts +344 -0
- package/dist/virtualgpu.js +1000 -0
- package/dist/virtualization.d.ts +606 -0
- package/dist/virtualization.js +1186 -0
- package/dist/virtualmemory.d.ts +817 -0
- package/dist/virtualmemory.js +1795 -0
- package/dist/vite.config.d.ts +3 -0
- package/dist/vite.config.js +43 -0
- package/dist/vitest.config.d.ts +2 -0
- package/dist/vitest.config.js +25 -0
- package/dist/webserver.d.ts +166 -0
- package/dist/webserver.js +2226 -0
- package/dist/workloadlaw.d.ts +133 -0
- package/dist/workloadlaw.js +193 -0
- package/docs/artifactavailability.md +2 -2
- package/docs/{containerplatforms-2.1.0.md → containerplatforms.2.1.0.md} +1 -1
- package/docs/{documentmap-1.8.12.md → documentmap.1.8.12.md} +1 -1
- package/docs/ninety.modalities.md +108 -0
- package/docs/planning.ninety.md +391 -0
- package/docs/{releasenotes-1.8.13.md → releasenotes.1.8.13.md} +2 -2
- package/docs/{releasenotes-1.8.14.md → releasenotes.1.8.14.md} +1 -1
- package/docs/{repo-synthesis-1.8.16.md → repo.synthesis.1.8.16.md} +1 -1
- package/docs/{todo-1.8.15.md → todo.1.8.15.md} +1 -1
- package/docs/{todo-1.8.16.md → todo.1.8.16.md} +5 -5
- package/docs/todo.md +2 -2
- package/docs/workloadlaw.md +104 -0
- package/index.ts +1 -1
- package/manifest.json +1 -1
- package/modalityregistry.ts +1371 -34
- package/orchestrator.ts +1 -1
- package/package.json +78 -33
- package/docs/CONVERSA.txt +0 -1523
- package/docs/architecture-1.8.19.png +0 -0
- package/docs/assets/architecture.svg +0 -45
- package/docs/assets/saddle-browser-trace.webp +0 -0
- package/docs/assets/saddle-hero-bridge.webp +0 -0
- package/docs/assets/saddle-mark.webp +0 -0
- package/docs/assets/saddle-runtime-map.webp +0 -0
- package/docs/assets/saddlemark.svg +0 -13
- package/docs/saddle.archive.1.8.17.tar.gz.gpg +0 -0
- /package/docs/{architecture-1.8.19.md → architecture.1.8.19.md} +0 -0
- /package/docs/{architecture-1.8.19.mmd → architecture.1.8.19.mmd} +0 -0
- /package/docs/{artifactresearch-1.8.9.md → artifactresearch.1.8.9.md} +0 -0
- /package/docs/{batches-1816-1820.md → batches.1816.to.1820.md} +0 -0
- /package/docs/{brancharchive-2026-08-18.md → brancharchive.2026.08.18.md} +0 -0
- /package/docs/{containerplatforms-1.8.17.md → containerplatforms.1.8.17.md} +0 -0
- /package/docs/{e2ugh-engine.md → e2ugh.engine.md} +0 -0
- /package/docs/{flatbuildresearch-1.8.11.md → flatbuildresearch.1.8.11.md} +0 -0
- /package/docs/{licenseaudit-1.8.12.md → licenseaudit.1.8.12.md} +0 -0
- /package/docs/{mobileconversionresearch-1.8.10.md → mobileconversionresearch.1.8.10.md} +0 -0
- /package/docs/{native-wrappers.md → native.wrappers.md} +0 -0
- /package/docs/{nativeidentityresearch-1.8.11.md → nativeidentityresearch.1.8.11.md} +0 -0
- /package/docs/{releasenotes-1.8.12.md → releasenotes.1.8.12.md} +0 -0
- /package/docs/{releasenotes-1.8.15.md → releasenotes.1.8.15.md} +0 -0
- /package/docs/{releasenotes-1.8.16.md → releasenotes.1.8.16.md} +0 -0
- /package/docs/{releasenotes-1.8.17.md → releasenotes.1.8.17.md} +0 -0
- /package/docs/{releasenotes-1.8.18.md → releasenotes.1.8.18.md} +0 -0
- /package/docs/{releasenotes-1.8.19.md → releasenotes.1.8.19.md} +0 -0
- /package/docs/{reorganization-1.8.8.md → reorganization.1.8.8.md} +0 -0
- /package/docs/{reorganization-1.8.9.md → reorganization.1.8.9.md} +0 -0
- /package/docs/{repo-analysis-1.8.21.json → repo.analysis.1.8.21.json} +0 -0
- /package/docs/{repo-candidates-1.8.21.jsonl → repo.candidates.1.8.21.jsonl} +0 -0
- /package/docs/{repo-research-1.8.16.md → repo.research.1.8.16.md} +0 -0
- /package/docs/{repo-research-1.8.21.md → repo.research.1.8.21.md} +0 -0
- /package/docs/{repo-selected-1.8.21.json → repo.selected.1.8.21.json} +0 -0
- /package/docs/{repo-synthesis-1.8.21.md → repo.synthesis.1.8.21.md} +0 -0
- /package/docs/{research-1.8.18-isolation.md → research.1.8.18.isolation.md} +0 -0
- /package/docs/{research-1.8.19-virtual-browser.md → research.1.8.19.virtual.browser.md} +0 -0
- /package/docs/{scanningresearch-1.8.11.md → scanningresearch.1.8.11.md} +0 -0
- /package/docs/{securityaudit-1.8.7.md → securityaudit.1.8.7.md} +0 -0
- /package/docs/{securityreferences-1.8.11.md → securityreferences.1.8.11.md} +0 -0
- /package/docs/{securityresearch-1.8.11.md → securityresearch.1.8.11.md} +0 -0
- /package/docs/{signingresearch-1.8.12.md → signingresearch.1.8.12.md} +0 -0
- /package/docs/{tauri-glib-risk-1.8.11.md → tauri.glib.risk.1.8.11.md} +0 -0
- /package/docs/{todo-1.8.18.md → todo.1.8.18.md} +0 -0
- /package/docs/{todo-1.8.19.md → todo.1.8.19.md} +0 -0
- /package/docs/{toolchainresearch-1.8.9.md → toolchainresearch.1.8.9.md} +0 -0
- /package/docs/{web-duplicatecleanup.md → web.duplicatecleanup.md} +0 -0
- /package/docs/{web-ideas.md → web.ideas.md} +0 -0
- /package/docs/{workflowimprovements-2026-08-19.md → workflowimprovements.2026.08.19.md} +0 -0
package/dist/render.d.ts
ADDED
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* render.ts — software rendering stack and gpu identity spoofing for the
|
|
3
|
+
* virtual hardware engine.
|
|
4
|
+
*
|
|
5
|
+
* the module pins the 100% software graphics pipeline verified against
|
|
6
|
+
* primary sources on 2026-08-22:
|
|
7
|
+
* - mesa 26.2.1 stable (released 2026-08-20) with the 26.3-devel mainline
|
|
8
|
+
* open since 2026-07-15; llvm 22.1.8 (2026-07-10) is the reference
|
|
9
|
+
* compiler backend and mesa 26.2 is already llvm-22 ready
|
|
10
|
+
* - llvmpipe: opengl 4.6 core profile 100% (161/161 extensions tracked by
|
|
11
|
+
* mesamatrix), opengl es 3.2 100%, avx-512 selected at runtime by gallivm
|
|
12
|
+
* (mesa mr !17813), rasterizer thread ceiling lp_max_threads = 32 (mr
|
|
13
|
+
* 31551 raised the previous 16; docs state "up to 32 at this time")
|
|
14
|
+
* - lavapipe: vulkan 1.4 surface since mesa 25.1, khronos-conformant on the
|
|
15
|
+
* vulkan 1.3 cts (submission 2022-07-19); icd manifest
|
|
16
|
+
* /usr/share/vulkan/icd.d/lvp_icd.x86_64.json selected through
|
|
17
|
+
* vk_driver_files (vk_icd_filenames is deprecated by the vulkan loader)
|
|
18
|
+
* - rusticl: opencl 3.1 with same-day spec support in mesa 26.2; sole mesa
|
|
19
|
+
* opencl frontend since clover was deleted in mesa 25.2; cl_khr_fp16 is
|
|
20
|
+
* default since mesa 25.2 so only fp64 still needs rusticl_features
|
|
21
|
+
* - xvfb headless glx recipe (man xvfb(1)):
|
|
22
|
+
* "xvfb :99 -ac -screen 0 1920x1080x24 -nolisten tcp +extension glx
|
|
23
|
+
* +render -noreset"
|
|
24
|
+
*
|
|
25
|
+
* contexts (25): versioncatalog, llvmpipefacts, cpucapsdomain, lpperfdomain,
|
|
26
|
+
* lavapipefacts, rusticlfacts, xvfbrecipe, gpuspoofdata, pciid, gpuregistry,
|
|
27
|
+
* gpuprofilebuilder, mesaenvbuilder, renderenv, threadadvisor, smiformat,
|
|
28
|
+
* smiadapter, rendertargets, rendererbase, llvmpiperenderer, lavapiperenderer,
|
|
29
|
+
* rusticlrenderer, xvfbdisplay, rendererfactory, rendererproxy, renderprobe
|
|
30
|
+
*
|
|
31
|
+
* patterns: builder (mesaenvbuilder, gpuprofilebuilder), registry
|
|
32
|
+
* (gpuregistry), factory (rendererfactory), proxy (rendererproxy).
|
|
33
|
+
* rules: lowercase identifiers, english jsdoc, third person, no emoji,
|
|
34
|
+
* try/catch catcher on every fallible path, node:* built-ins only, and no
|
|
35
|
+
* hardcoded localhost address anywhere.
|
|
36
|
+
*
|
|
37
|
+
* domain split (v2): this module keeps the software identity stack — mesa
|
|
38
|
+
* environment builders, llvmpipe/lavapipe/rusticl renderers, xvfb and the
|
|
39
|
+
* virtual nvidia-smi adapter renderer. the physical gpu side (vfio passthrough, vgpu
|
|
40
|
+
* slicing, MIG layouts, the verified gpu bank) lives in virtualgpu.ts, and
|
|
41
|
+
* the paravirtual virtio-gpu venus path (`-device virtio-gpu-pci,venus=true`
|
|
42
|
+
* with `hostmem=8g`, or `virtio-gpu-gl blob=on venus=on`) is emitted by the
|
|
43
|
+
* virtualization module that owns the QEMU command line.
|
|
44
|
+
*/
|
|
45
|
+
import type { ChildProcess } from 'node:child_process';
|
|
46
|
+
/** stack pinned from primary sources (mesa3d.org, llvm releases, docs.nvidia.com). */
|
|
47
|
+
declare const mesastack: {
|
|
48
|
+
mesa: string;
|
|
49
|
+
mesadevel: string;
|
|
50
|
+
llvm: string;
|
|
51
|
+
gl: string;
|
|
52
|
+
gles: string;
|
|
53
|
+
vulkan: string;
|
|
54
|
+
opencl: string;
|
|
55
|
+
smidriver: string;
|
|
56
|
+
cudaversion: string;
|
|
57
|
+
};
|
|
58
|
+
declare const llvmpipe: {
|
|
59
|
+
glcoreprofile: string;
|
|
60
|
+
glcoreextensions: string;
|
|
61
|
+
glesprofile: string;
|
|
62
|
+
glesextensions: string;
|
|
63
|
+
avx512: string;
|
|
64
|
+
threadceiling: number;
|
|
65
|
+
threadnote: string;
|
|
66
|
+
};
|
|
67
|
+
/** valid values for gallium_override_cpu_caps (docs.mesa3d.org/envvars).
|
|
68
|
+
* no avx2/avx512 value exists: avx-512 is detected at runtime by gallivm. */
|
|
69
|
+
declare const cpucapsdomain: readonly ['nosse', 'sse', 'sse2', 'sse3', 'ssse3', 'sse4.1', 'avx'];
|
|
70
|
+
type cpucaps = (typeof cpucapsdomain)[number];
|
|
71
|
+
/** valid stages for lp_perf selective no-ops (docs: "see the source code"). */
|
|
72
|
+
declare const lpperfdomain: readonly ['no_blend', 'no_depth', 'no_alphatest', 'no_tex', 'no_linear', 'no_mipmaps', 'no_mip_linear', 'tex_mem'];
|
|
73
|
+
type lpperfstage = (typeof lpperfdomain)[number];
|
|
74
|
+
declare const lavapipe: {
|
|
75
|
+
vulkan: string;
|
|
76
|
+
conformance: string;
|
|
77
|
+
icdmanifest: string;
|
|
78
|
+
icdenv: string;
|
|
79
|
+
deprecatedicdenv: string;
|
|
80
|
+
extensions: string;
|
|
81
|
+
};
|
|
82
|
+
declare const rusticl: {
|
|
83
|
+
opencl: string;
|
|
84
|
+
clovernote: string;
|
|
85
|
+
fp16note: string;
|
|
86
|
+
features: string;
|
|
87
|
+
devicetype: string;
|
|
88
|
+
};
|
|
89
|
+
/** default xvfb geometry documented in the project research. */
|
|
90
|
+
declare const defaultgeometry = "1920x1080x24";
|
|
91
|
+
/** builds the validated headless glx argv for xvfb (man xvfb(1)). */
|
|
92
|
+
declare function xvfbargs(display: string, geometry: string): readonly string[];
|
|
93
|
+
/** picks a random x display number in the 90-99 range; the documented
|
|
94
|
+
* example uses :99, so the random pick avoids colliding with it. */
|
|
95
|
+
declare function randomdisplay(): string;
|
|
96
|
+
/** gpu identity used for spoofing; every field comes from vendor pages,
|
|
97
|
+
* techpowerup and the pci id databases confirmed in the project research.
|
|
98
|
+
* physical passthrough identities live in virtualgpu.ts; this table only
|
|
99
|
+
* feeds the software identity stack (the smi adapter and friends). */
|
|
100
|
+
interface gpuspoof {
|
|
101
|
+
readonly name: string;
|
|
102
|
+
readonly vendor: 'nvidia' | 'amd';
|
|
103
|
+
readonly pcivendor: string;
|
|
104
|
+
readonly pcidevice: string;
|
|
105
|
+
readonly vrammib: number;
|
|
106
|
+
readonly memtype: string;
|
|
107
|
+
readonly bandwidthgbs: number;
|
|
108
|
+
readonly tdpw: number;
|
|
109
|
+
readonly arch: string;
|
|
110
|
+
readonly driver: string;
|
|
111
|
+
readonly cuda: string | null;
|
|
112
|
+
}
|
|
113
|
+
declare const gpuspoofdata: {
|
|
114
|
+
rtx5090: {
|
|
115
|
+
name: string;
|
|
116
|
+
vendor: "nvidia";
|
|
117
|
+
pcivendor: string;
|
|
118
|
+
pcidevice: string;
|
|
119
|
+
vrammib: number;
|
|
120
|
+
memtype: string;
|
|
121
|
+
bandwidthgbs: number;
|
|
122
|
+
tdpw: number;
|
|
123
|
+
arch: string;
|
|
124
|
+
driver: string;
|
|
125
|
+
cuda: string;
|
|
126
|
+
};
|
|
127
|
+
rtxpro6000: {
|
|
128
|
+
name: string;
|
|
129
|
+
vendor: "nvidia";
|
|
130
|
+
pcivendor: string;
|
|
131
|
+
pcidevice: string;
|
|
132
|
+
vrammib: number;
|
|
133
|
+
memtype: string;
|
|
134
|
+
bandwidthgbs: number;
|
|
135
|
+
tdpw: number;
|
|
136
|
+
arch: string;
|
|
137
|
+
driver: string;
|
|
138
|
+
cuda: string;
|
|
139
|
+
};
|
|
140
|
+
b200: {
|
|
141
|
+
name: string;
|
|
142
|
+
vendor: "nvidia";
|
|
143
|
+
pcivendor: string;
|
|
144
|
+
pcidevice: string;
|
|
145
|
+
vrammib: number;
|
|
146
|
+
memtype: string;
|
|
147
|
+
bandwidthgbs: number;
|
|
148
|
+
tdpw: number;
|
|
149
|
+
arch: string;
|
|
150
|
+
driver: string;
|
|
151
|
+
cuda: string;
|
|
152
|
+
};
|
|
153
|
+
rx9070xt: {
|
|
154
|
+
name: string;
|
|
155
|
+
vendor: "amd";
|
|
156
|
+
pcivendor: string;
|
|
157
|
+
pcidevice: string;
|
|
158
|
+
vrammib: number;
|
|
159
|
+
memtype: string;
|
|
160
|
+
bandwidthgbs: number;
|
|
161
|
+
tdpw: number;
|
|
162
|
+
arch: string;
|
|
163
|
+
driver: string;
|
|
164
|
+
cuda: any;
|
|
165
|
+
};
|
|
166
|
+
mi350x: {
|
|
167
|
+
name: string;
|
|
168
|
+
vendor: "amd";
|
|
169
|
+
pcivendor: string;
|
|
170
|
+
pcidevice: string;
|
|
171
|
+
vrammib: number;
|
|
172
|
+
memtype: string;
|
|
173
|
+
bandwidthgbs: number;
|
|
174
|
+
tdpw: number;
|
|
175
|
+
arch: string;
|
|
176
|
+
driver: string;
|
|
177
|
+
cuda: any;
|
|
178
|
+
};
|
|
179
|
+
};
|
|
180
|
+
/** renders the canonical "vendor:device" pci id of a virtual identity profile. */
|
|
181
|
+
declare function pciid(profile: gpuspoof): string;
|
|
182
|
+
/** registry of named gpu profiles; the whole engine resolves virtual identity
|
|
183
|
+
* identities exclusively through this registry. */
|
|
184
|
+
declare class gpuregistry {
|
|
185
|
+
#private;
|
|
186
|
+
/** registers a profile under a name; returns the registry for chaining. */
|
|
187
|
+
register(name: string, profile: gpuspoof): this;
|
|
188
|
+
/** lists every registered profile name. */
|
|
189
|
+
names(): readonly string[];
|
|
190
|
+
/** resolves a profile or undefined when absent. */
|
|
191
|
+
get(name: string): gpuspoof | undefined;
|
|
192
|
+
/** resolves a profile or throws with the list of known names. */
|
|
193
|
+
require(name: string): gpuspoof;
|
|
194
|
+
}
|
|
195
|
+
/** default registry seeded with the five verified gpu identities. */
|
|
196
|
+
declare const defaultgpuregistry: gpuregistry;
|
|
197
|
+
/** fluent builder for custom virtual identity profiles; defaults mirror the rtx 5090. */
|
|
198
|
+
declare class gpuprofilebuilder {
|
|
199
|
+
#private;
|
|
200
|
+
withname(name: string): this;
|
|
201
|
+
withvendor(vendor: gpuspoof['vendor']): this;
|
|
202
|
+
withpcidevice(device: string): this;
|
|
203
|
+
withvram(mib: number): this;
|
|
204
|
+
withmemtype(memtype: string): this;
|
|
205
|
+
withbandwidth(gbs: number): this;
|
|
206
|
+
withtdp(w: number): this;
|
|
207
|
+
witharch(arch: string): this;
|
|
208
|
+
withdriver(driver: string, cuda: string | null): this;
|
|
209
|
+
/** validates the profile shape and freezes it into a gpuspoof. */
|
|
210
|
+
build(): gpuspoof;
|
|
211
|
+
}
|
|
212
|
+
/** fluent builder that assembles the complete validated mesa environment;
|
|
213
|
+
* every variable below is documented at docs.mesa3d.org/envvars.html. */
|
|
214
|
+
declare class mesaenvbuilder {
|
|
215
|
+
#private;
|
|
216
|
+
/** forces the software path: llvmpipe through the gallium loader. */
|
|
217
|
+
software(): this;
|
|
218
|
+
/** spoofs glgetstring(gl_version); 4.6 is the llvmpipe maximum. */
|
|
219
|
+
glversion(version?: string): this;
|
|
220
|
+
/** spoofs gl_shading_language_version (460 matches gl 4.6). */
|
|
221
|
+
glslversion(version?: string): this;
|
|
222
|
+
/** spoofs the gles version reported by the software driver. */
|
|
223
|
+
glesversion(version?: string): this;
|
|
224
|
+
/** spoofs the vulkan apiversion; cannot exceed the driver instance version. */
|
|
225
|
+
vulkanversion(version?: string): this;
|
|
226
|
+
/** sets lp_num_threads; 0 lets llvmpipe use every core up to the
|
|
227
|
+
* lp_max_threads=32 ceiling, 1..32 pins an explicit thread count. */
|
|
228
|
+
threads(count?: number): this;
|
|
229
|
+
/** sets lp_native_vector_width; 512 exercises the avx-512 paths even
|
|
230
|
+
* though gallivm picks avx-512 automatically at runtime. */
|
|
231
|
+
vectorwidth(width: 128 | 256 | 512): this;
|
|
232
|
+
/** overrides reported cpu caps; avx is the highest documented value
|
|
233
|
+
* (there is no avx2/avx512 entry in the envvars documentation). */
|
|
234
|
+
cpucaps(caps: cpucaps): this;
|
|
235
|
+
/** adds one lp_perf selective no-op stage (benchmarking aid). */
|
|
236
|
+
perf(stage: lpperfstage): this;
|
|
237
|
+
/** disables gl error checking (gl_khr_no_error) to cut cpu overhead. */
|
|
238
|
+
noerror(enabled?: boolean): this;
|
|
239
|
+
/** pins lavapipe through vk_driver_files and enables the headless wsi
|
|
240
|
+
* swapchain; vk_icd_filenames is deprecated and never emitted. */
|
|
241
|
+
lavapipe(icd?: string): this;
|
|
242
|
+
/** enables rusticl on llvmpipe with the gpu device type virtual identity, opencl
|
|
243
|
+
* 3.1 and the fp64 feature (fp16 is default since mesa 25.2). */
|
|
244
|
+
rusticl(): this;
|
|
245
|
+
/** escape hatch for extra variables; caller keeps full choice. */
|
|
246
|
+
set(key: string, value: string): this;
|
|
247
|
+
/** freezes the environment into a plain record (lp_perf joined last). */
|
|
248
|
+
build(): Record<string, string>;
|
|
249
|
+
}
|
|
250
|
+
/** render target selector used by the factory and the presets. */
|
|
251
|
+
type rendertarget = 'opengl' | 'gles' | 'vulkan' | 'opencl' | 'xvfb';
|
|
252
|
+
/** one-call environment assembly per render target. */
|
|
253
|
+
declare function renderenv(target: rendertarget): Record<string, string>;
|
|
254
|
+
/** advisory thread count: one rasterizer thread per host core bounded by
|
|
255
|
+
* the compile-time lp_max_threads=32 ceiling. */
|
|
256
|
+
declare function advisethreads(hostcores?: number): number;
|
|
257
|
+
/** process row of the nvidia-smi processes table. */
|
|
258
|
+
interface smiprocess {
|
|
259
|
+
readonly gpu: number;
|
|
260
|
+
readonly gi: number;
|
|
261
|
+
readonly ci: number;
|
|
262
|
+
readonly pid: number;
|
|
263
|
+
readonly type: 'C' | 'G' | 'C+G';
|
|
264
|
+
readonly name: string;
|
|
265
|
+
readonly memorymib: number;
|
|
266
|
+
}
|
|
267
|
+
/** builds a full virtual nvidia-smi adapter report; the header pins driver
|
|
268
|
+
* 575.57.08 and cuda 12.9 exactly as verified in the project research.
|
|
269
|
+
* notes: perf states span p0-p12, compute modes are default or exclusive
|
|
270
|
+
* process, mig is reported as n/a when disabled and fan speed may legally
|
|
271
|
+
* exceed 100% per the nvidia-smi documentation. */
|
|
272
|
+
declare class smiadapterbuilder {
|
|
273
|
+
#private;
|
|
274
|
+
constructor(profile: gpuspoof, index?: number);
|
|
275
|
+
withmemused(mib: number): this;
|
|
276
|
+
withutil(percent: number): this;
|
|
277
|
+
withtemperature(celsius: number): this;
|
|
278
|
+
withfanspeed(percent: number): this;
|
|
279
|
+
withpower(watts: number): this;
|
|
280
|
+
withecc(text: string): this;
|
|
281
|
+
withcomputemode(mode: 'Default' | 'Exclusive Process'): this;
|
|
282
|
+
withprocess(entry: smiprocess): this;
|
|
283
|
+
/** renders the complete report; the summary table is exactly 89 chars. */
|
|
284
|
+
build(): string;
|
|
285
|
+
}
|
|
286
|
+
/** result of a completed child process. */
|
|
287
|
+
interface runresult {
|
|
288
|
+
readonly code: number;
|
|
289
|
+
readonly stdout: string;
|
|
290
|
+
readonly stderr: string;
|
|
291
|
+
}
|
|
292
|
+
/** runs a command to completion under a merged environment; every spawn
|
|
293
|
+
* path is wrapped in a try/catch catcher for later tracing. */
|
|
294
|
+
declare function run(command: string, args: readonly string[], env?: Record<string, string>): Promise<runresult>;
|
|
295
|
+
/** shared renderer state: environment, optional child process and a
|
|
296
|
+
* trace buffer used as the embedded debugger for later tracing. */
|
|
297
|
+
declare abstract class rendererbase {
|
|
298
|
+
#private;
|
|
299
|
+
protected constructor(label: string, vars: Record<string, string>);
|
|
300
|
+
get label(): string;
|
|
301
|
+
/** environment copy for the render target. */
|
|
302
|
+
get env(): Record<string, string>;
|
|
303
|
+
/** whether the owned helper process is alive. */
|
|
304
|
+
get running(): boolean;
|
|
305
|
+
/** accumulated trace entries (error catcher output). */
|
|
306
|
+
get traces(): readonly string[];
|
|
307
|
+
/** records a trace entry; never throws. */
|
|
308
|
+
protected note(message: string): void;
|
|
309
|
+
/** spawns a long-lived helper under the renderer environment. */
|
|
310
|
+
protected launch(command: string, args: readonly string[]): ChildProcess;
|
|
311
|
+
/** verifies the virtualized context with the target-specific info tool. */
|
|
312
|
+
abstract verify(): Promise<string>;
|
|
313
|
+
/** terminates the helper; escalates to SIGKILL after a grace period. */
|
|
314
|
+
stop(): Promise<void>;
|
|
315
|
+
/** `using` disposal hook: stops the helper without awaiting. */
|
|
316
|
+
[Symbol.dispose](): void;
|
|
317
|
+
}
|
|
318
|
+
/** options for the xvfb headless display server. */
|
|
319
|
+
interface xvfboptions {
|
|
320
|
+
readonly display?: string;
|
|
321
|
+
readonly geometry?: string;
|
|
322
|
+
readonly env?: Record<string, string>;
|
|
323
|
+
}
|
|
324
|
+
/** headless glx display server; the child is terminated on dispose. */
|
|
325
|
+
declare class xvfbdisplay extends rendererbase {
|
|
326
|
+
#private;
|
|
327
|
+
constructor(options?: xvfboptions);
|
|
328
|
+
/** display number without the leading colon (for example "94"). */
|
|
329
|
+
get displaynumber(): string;
|
|
330
|
+
/** geometry string in the widthxheightxdepth form. */
|
|
331
|
+
get geometry(): string;
|
|
332
|
+
/** boots xvfb and waits for the socket grace period. */
|
|
333
|
+
start(): Promise<void>;
|
|
334
|
+
/** reports the served display. */
|
|
335
|
+
verify(): Promise<string>;
|
|
336
|
+
}
|
|
337
|
+
/** creates concrete renderers per target; the preset environment can be
|
|
338
|
+
* overridden per call (user choice), for example to merge an xvfb display. */
|
|
339
|
+
declare class rendererfactory {
|
|
340
|
+
#private;
|
|
341
|
+
constructor();
|
|
342
|
+
/** registers a custom builder for a target (extensibility hook). */
|
|
343
|
+
register(target: rendertarget, builder: (env?: Record<string, string>) => rendererbase): this;
|
|
344
|
+
/** instantiates the renderer for a target. */
|
|
345
|
+
create(target: rendertarget, env?: Record<string, string>): rendererbase;
|
|
346
|
+
}
|
|
347
|
+
/** proxy that guards the renderer environment, keeps an audit trail and
|
|
348
|
+
* delegates lifecycle calls to the wrapped renderer. */
|
|
349
|
+
declare class rendererproxy {
|
|
350
|
+
#private;
|
|
351
|
+
constructor(inner: rendererbase, frozen?: readonly string[]);
|
|
352
|
+
get label(): string;
|
|
353
|
+
/** environment copy; reads are recorded in the audit trail. */
|
|
354
|
+
get env(): Record<string, string>;
|
|
355
|
+
/** accumulated audit entries. */
|
|
356
|
+
get audit(): readonly string[];
|
|
357
|
+
/** merges overrides over the renderer environment while refusing to
|
|
358
|
+
* clobber the frozen virtual identity keys; returns the merged copy. */
|
|
359
|
+
patchenv(overrides: Record<string, string>): Record<string, string>;
|
|
360
|
+
/** delegates verification. */
|
|
361
|
+
verify(): Promise<string>;
|
|
362
|
+
/** delegates disposal. */
|
|
363
|
+
[Symbol.dispose](): void;
|
|
364
|
+
}
|
|
365
|
+
/** probe report across the three software apis. */
|
|
366
|
+
interface probereport {
|
|
367
|
+
readonly opengl: string;
|
|
368
|
+
readonly vulkan: string;
|
|
369
|
+
readonly opencl: string;
|
|
370
|
+
readonly notes: readonly string[];
|
|
371
|
+
}
|
|
372
|
+
/** probes glxinfo, vulkaninfo and clinfo under the given environment and
|
|
373
|
+
* parses the virtualized version strings; failures degrade into notes. */
|
|
374
|
+
declare function renderprobe(env: Record<string, string>): Promise<probereport>;
|
|
375
|
+
/** boots xvfb, assembles the full software environment (opengl + vulkan +
|
|
376
|
+
* opencl presets) and probes all three apis; every resource is released
|
|
377
|
+
* through the `using` disposal at scope exit. */
|
|
378
|
+
export declare function renderdemo(profilename?: string): Promise<probereport>;
|
|
379
|
+
export type { cpucaps, gpuspoof, lpperfstage, probereport, rendertarget, runresult, smiprocess, xvfboptions, };
|
|
380
|
+
export { advisethreads, cpucapsdomain, defaultgeometry, defaultgpuregistry, gpuprofilebuilder, gpuregistry, gpuspoofdata, lavapipe, llvmpipe, mesaenvbuilder, mesastack, pciid, randomdisplay, renderenv, rendererfactory, rendererproxy, renderprobe, run, rusticl, smiadapterbuilder, xvfbargs, xvfbdisplay, };
|