@wenathlan/saddle 2.0.154 → 2.0.159
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/Dockerfile +167 -1334
- package/README.md +59 -60
- package/biome.jsonc +3 -3
- package/browser.ts +482 -0
- package/cli.ts +274 -0
- package/distribution.ts +731 -0
- package/docker.config +29 -8
- package/docs/{architecture.1.8.19.mmd → architecture1819.md} +6 -0
- package/docs/artifactavailability.md +2 -2
- package/docs/browser.md +18 -1
- package/docs/{containerplatforms.2.1.0.md → containerplatforms210.md} +1 -1
- package/docs/{documentmap.1.8.12.md → documentmap1812.md} +1 -1
- package/docs/extension.md +13 -2
- package/docs/features.md +5 -0
- package/docs/libraryapi.md +1 -1
- package/docs/{ninety.modalities.md → ninetymodalities.md} +87 -4
- package/docs/{planning.ninety.md → planningninety.md} +6 -6
- package/docs/{releasenotes.1.8.13.md → releasenotes1813.md} +2 -2
- package/docs/{releasenotes.1.8.14.md → releasenotes1814.md} +1 -1
- package/docs/{repo.synthesis.1.8.16.md → reposynthesis1816.md} +1 -1
- package/docs/todo.md +2 -2
- package/docs/{todo.1.8.15.md → todo1815.md} +1 -1
- package/docs/{todo.1.8.16.md → todo1816.md} +5 -5
- package/execution.ts +677 -0
- package/foundation.ts +314 -0
- package/index.ts +36 -34
- package/isolation.ts +84 -0
- package/modalityregistry.ts +189 -145
- package/modes.ts +170 -0
- package/mttg.config +1 -1
- package/orchestrator.ts +49 -15
- package/package.json +105 -89
- package/qemu.config +2 -2
- package/sandbox.ts +3279 -0
- package/scheduler.ts +1 -1
- package/server.ts +52 -0
- package/tsconfig.json +12 -13
- package/virtual.ts +7528 -0
- package/workloadlaw.ts +293 -0
- package/dist/App.d.ts +0 -5
- package/dist/App.js +0 -52
- package/dist/Sol/Sol.d.ts +0 -3
- package/dist/Sol/Sol.js +0 -46
- package/dist/Sol/agentbrowser/agentbrowser.d.ts +0 -9
- package/dist/Sol/agentbrowser/agentbrowser.js +0 -121
- package/dist/Sol/architecture/architecture.d.ts +0 -9
- package/dist/Sol/architecture/architecture.js +0 -93
- package/dist/Sol/compute/compute.d.ts +0 -9
- package/dist/Sol/compute/compute.js +0 -22
- package/dist/Sol/console/console.d.ts +0 -15
- package/dist/Sol/console/console.js +0 -292
- package/dist/Sol/dashboard/dashboard.d.ts +0 -10
- package/dist/Sol/dashboard/dashboard.js +0 -181
- package/dist/Sol/docs/docs.d.ts +0 -9
- package/dist/Sol/docs/docs.js +0 -28
- package/dist/Sol/home/home.d.ts +0 -35
- package/dist/Sol/home/home.js +0 -239
- package/dist/Sol/integrations/integrations.d.ts +0 -9
- package/dist/Sol/integrations/integrations.js +0 -83
- package/dist/Sol/intro/intro.d.ts +0 -7
- package/dist/Sol/intro/intro.js +0 -102
- package/dist/Sol/login/login.d.ts +0 -16
- package/dist/Sol/login/login.js +0 -49
- package/dist/Sol/notfound/notfound.d.ts +0 -9
- package/dist/Sol/notfound/notfound.js +0 -15
- package/dist/Sol/onboarding/onboarding.d.ts +0 -25
- package/dist/Sol/onboarding/onboarding.js +0 -60
- package/dist/Sol/playground/playground.d.ts +0 -9
- package/dist/Sol/playground/playground.js +0 -127
- package/dist/Sol/register/register.d.ts +0 -16
- package/dist/Sol/register/register.js +0 -193
- package/dist/Sol/shell/Shell.d.ts +0 -124
- package/dist/Sol/shell/Shell.js +0 -335
- package/dist/Sol/wingets/ComputeBootladder.d.ts +0 -6
- package/dist/Sol/wingets/ComputeBootladder.js +0 -71
- package/dist/Sol/wingets/ComputeModalitycatalog.d.ts +0 -7
- package/dist/Sol/wingets/ComputeModalitycatalog.js +0 -71
- package/dist/Sol/wingets/ConsoleApibadge.d.ts +0 -7
- package/dist/Sol/wingets/ConsoleApibadge.js +0 -5
- package/dist/Sol/wingets/ConsoleEdgelaw.d.ts +0 -6
- package/dist/Sol/wingets/ConsoleEdgelaw.js +0 -36
- package/dist/Sol/wingets/ConsoleEventstimeline.d.ts +0 -19
- package/dist/Sol/wingets/ConsoleEventstimeline.js +0 -12
- package/dist/Sol/wingets/ConsoleSnapshotcontrols.d.ts +0 -8
- package/dist/Sol/wingets/ConsoleSnapshotcontrols.js +0 -8
- package/dist/Sol/wingets/ConsoleSpecpanel.d.ts +0 -21
- package/dist/Sol/wingets/ConsoleSpecpanel.js +0 -75
- package/dist/Sol/wingets/ConsoleTerminal.d.ts +0 -22
- package/dist/Sol/wingets/ConsoleTerminal.js +0 -77
- package/dist/Sol/wingets/DashboardAccountpanel.d.ts +0 -18
- package/dist/Sol/wingets/DashboardAccountpanel.js +0 -65
- package/dist/Sol/wingets/DashboardAdminpanel.d.ts +0 -6
- package/dist/Sol/wingets/DashboardAdminpanel.js +0 -90
- package/dist/Sol/wingets/DashboardAuditlog.d.ts +0 -8
- package/dist/Sol/wingets/DashboardAuditlog.js +0 -50
- package/dist/Sol/wingets/DashboardCreatesandboxform.d.ts +0 -10
- package/dist/Sol/wingets/DashboardCreatesandboxform.js +0 -71
- package/dist/Sol/wingets/DashboardEventstimeline.d.ts +0 -8
- package/dist/Sol/wingets/DashboardEventstimeline.js +0 -83
- package/dist/Sol/wingets/DashboardGlobalsandboxestable.d.ts +0 -8
- package/dist/Sol/wingets/DashboardGlobalsandboxestable.js +0 -57
- package/dist/Sol/wingets/DashboardMeshnodestable.d.ts +0 -8
- package/dist/Sol/wingets/DashboardMeshnodestable.js +0 -103
- package/dist/Sol/wingets/DashboardSandboxlist.d.ts +0 -10
- package/dist/Sol/wingets/DashboardSandboxlist.js +0 -163
- package/dist/Sol/wingets/DashboardUserstable.d.ts +0 -8
- package/dist/Sol/wingets/DashboardUserstable.js +0 -78
- package/dist/Sol/wingets/HomeEntrygate.d.ts +0 -23
- package/dist/Sol/wingets/HomeEntrygate.js +0 -73
- package/dist/Sol/wingets/HomeMetricstrip.d.ts +0 -9
- package/dist/Sol/wingets/HomeMetricstrip.js +0 -4
- package/dist/Sol/wingets/HomeRuntimediagram.d.ts +0 -1
- package/dist/Sol/wingets/HomeRuntimediagram.js +0 -22
- package/dist/Sol/wingets/LoginForm.d.ts +0 -19
- package/dist/Sol/wingets/LoginForm.js +0 -141
- package/dist/Sol/wingets/RegisterPasswordconfirm.d.ts +0 -13
- package/dist/Sol/wingets/RegisterPasswordconfirm.js +0 -16
- package/dist/Sol/wingets/RegisterPasswordmeter.d.ts +0 -19
- package/dist/Sol/wingets/RegisterPasswordmeter.js +0 -65
- package/dist/Sol/wingets/RegisterUsernamerules.d.ts +0 -11
- package/dist/Sol/wingets/RegisterUsernamerules.js +0 -16
- package/dist/Sol/wingets/index.d.ts +0 -39
- package/dist/Sol/wingets/index.js +0 -39
- package/dist/alternatives.d.ts +0 -508
- package/dist/alternatives.js +0 -950
- package/dist/api.d.ts +0 -154
- package/dist/api.js +0 -174
- package/dist/auth.d.ts +0 -268
- package/dist/auth.js +0 -476
- package/dist/automation.d.ts +0 -425
- package/dist/automation.js +0 -566
- package/dist/browser.d.ts +0 -561
- package/dist/browser.js +0 -1058
- package/dist/capacitor.config.d.ts +0 -45
- package/dist/capacitor.config.js +0 -48
- package/dist/catalog.d.ts +0 -43
- package/dist/catalog.js +0 -44
- package/dist/cli.d.ts +0 -16
- package/dist/cli.js +0 -168
- package/dist/communication.d.ts +0 -181
- package/dist/communication.js +0 -376
- package/dist/compute.d.ts +0 -1160
- package/dist/compute.js +0 -2272
- package/dist/dashboardlib.d.ts +0 -58
- package/dist/dashboardlib.js +0 -161
- package/dist/db.d.ts +0 -569
- package/dist/db.js +0 -1080
- package/dist/distribution.d.ts +0 -528
- package/dist/distribution.js +0 -810
- package/dist/drizzle.config.d.ts +0 -20
- package/dist/drizzle.config.js +0 -18
- package/dist/edgelandes.d.ts +0 -70
- package/dist/edgelandes.host.d.ts +0 -26
- package/dist/edgelandes.host.js +0 -1089
- package/dist/edgelandes.inproc.d.ts +0 -27
- package/dist/edgelandes.inproc.js +0 -952
- package/dist/edgelandes.js +0 -1133
- package/dist/edgelandes.ninety.d.ts +0 -31
- package/dist/edgelandes.ninety.js +0 -174
- package/dist/edgelandes.virtual.d.ts +0 -25
- package/dist/edgelandes.virtual.js +0 -629
- package/dist/edgeplane.d.ts +0 -121
- package/dist/edgeplane.js +0 -341
- package/dist/examplelocaljob.d.ts +0 -1
- package/dist/examplelocaljob.js +0 -14
- package/dist/execution.d.ts +0 -529
- package/dist/execution.js +0 -760
- package/dist/family.d.ts +0 -16
- package/dist/family.js +0 -42
- package/dist/familyurl.d.ts +0 -21
- package/dist/familyurl.js +0 -24
- package/dist/format.d.ts +0 -18
- package/dist/format.js +0 -59
- package/dist/foundation.d.ts +0 -172
- package/dist/foundation.js +0 -312
- package/dist/index.d.ts +0 -735
- package/dist/index.js +0 -1020
- package/dist/integration.d.ts +0 -235
- package/dist/integration.js +0 -228
- package/dist/intelligence.d.ts +0 -93
- package/dist/intelligence.js +0 -144
- package/dist/isolation.d.ts +0 -128
- package/dist/isolation.js +0 -95
- package/dist/labels.d.ts +0 -665
- package/dist/labels.js +0 -707
- package/dist/localauth.d.ts +0 -127
- package/dist/localauth.js +0 -413
- package/dist/media.d.ts +0 -343
- package/dist/media.js +0 -985
- package/dist/mesh.d.ts +0 -177
- package/dist/mesh.js +0 -468
- package/dist/modalityregistry.d.ts +0 -109
- package/dist/modalityregistry.js +0 -1386
- package/dist/modes.d.ts +0 -358
- package/dist/modes.js +0 -133
- package/dist/onboardingstate.d.ts +0 -79
- package/dist/onboardingstate.js +0 -282
- package/dist/orchestrator.d.ts +0 -1338
- package/dist/orchestrator.js +0 -4310
- package/dist/packager/targetcli.js +0 -4
- package/dist/paths.d.ts +0 -2
- package/dist/paths.js +0 -14
- package/dist/performance.d.ts +0 -415
- package/dist/performance.js +0 -826
- package/dist/quantum.d.ts +0 -809
- package/dist/quantum.js +0 -2072
- package/dist/render.d.ts +0 -380
- package/dist/render.js +0 -1072
- package/dist/runall.d.ts +0 -2
- package/dist/runall.js +0 -39
- package/dist/runtimeprobe.d.ts +0 -4
- package/dist/runtimeprobe.js +0 -8
- package/dist/sandbox.d.ts +0 -355
- package/dist/sandbox.js +0 -1721
- package/dist/sandboxenvprofile.d.ts +0 -29
- package/dist/sandboxenvprofile.js +0 -89
- package/dist/sandboxprofile.d.ts +0 -137
- package/dist/sandboxprofile.js +0 -241
- package/dist/sandboxqueue.d.ts +0 -108
- package/dist/sandboxqueue.js +0 -201
- package/dist/sandboxquota.d.ts +0 -121
- package/dist/sandboxquota.js +0 -236
- package/dist/scheduler.d.ts +0 -595
- package/dist/scheduler.js +0 -1258
- package/dist/scriptlanes.d.ts +0 -182
- package/dist/scriptlanes.js +0 -660
- package/dist/scripts.buildengine.d.ts +0 -1
- package/dist/scripts.buildengine.js +0 -39
- package/dist/scripts.securitygate.d.ts +0 -1
- package/dist/scripts.securitygate.js +0 -68
- package/dist/scripts.validateflatnative.d.ts +0 -1
- package/dist/scripts.validateflatnative.js +0 -72
- package/dist/security.d.ts +0 -500
- package/dist/security.js +0 -1169
- package/dist/seedcatalog.d.ts +0 -13
- package/dist/seedcatalog.js +0 -46
- package/dist/server.d.ts +0 -20
- package/dist/server.js +0 -53
- package/dist/speccatalog.d.ts +0 -31
- package/dist/speccatalog.js +0 -163
- package/dist/tiers.d.ts +0 -1001
- package/dist/tiers.js +0 -2169
- package/dist/utils.d.ts +0 -2
- package/dist/utils.js +0 -5
- package/dist/vaulthandoff.d.ts +0 -141
- package/dist/vaulthandoff.js +0 -444
- package/dist/virtual.d.ts +0 -640
- package/dist/virtual.js +0 -1284
- package/dist/virtualcpu.d.ts +0 -315
- package/dist/virtualcpu.js +0 -1180
- package/dist/virtualgpu.d.ts +0 -344
- package/dist/virtualgpu.js +0 -1000
- package/dist/virtualization.d.ts +0 -606
- package/dist/virtualization.js +0 -1186
- package/dist/virtualmemory.d.ts +0 -817
- package/dist/virtualmemory.js +0 -1795
- package/dist/vite.config.d.ts +0 -3
- package/dist/vite.config.js +0 -48
- package/dist/vitest.config.d.ts +0 -2
- package/dist/vitest.config.js +0 -25
- package/dist/webserver.d.ts +0 -166
- package/dist/webserver.js +0 -2226
- package/dist/workloadlaw.d.ts +0 -133
- package/dist/workloadlaw.js +0 -193
- package/docs/.gitkeep +0 -0
- package/docs/architecture.1.8.19.md +0 -76
- package/docs/logs/examplesession.json +0 -54
- package/docs/repo.analysis.1.8.21.json +0 -2617
- package/docs/repo.candidates.1.8.21.jsonl +0 -666
- package/docs/repo.selected.1.8.21.json +0 -786
- package/manifest.json +0 -20
- package/media.ts +0 -1337
- package/virtualcpu.ts +0 -1274
- package/virtualgpu.ts +0 -1182
- package/virtualization.ts +0 -1628
- package/virtualmemory.ts +0 -2303
- /package/docs/{artifactresearch.1.8.9.md → artifactresearch189.md} +0 -0
- /package/docs/{batches.1816.to.1820.md → batches1816to1820.md} +0 -0
- /package/docs/{brancharchive.2026.08.18.md → brancharchive20260818.md} +0 -0
- /package/docs/{containerplatforms.1.8.17.md → containerplatforms1817.md} +0 -0
- /package/docs/{e2ugh.engine.md → e2ughengine.md} +0 -0
- /package/docs/{flatbuildresearch.1.8.11.md → flatbuildresearch1811.md} +0 -0
- /package/docs/{licenseaudit.1.8.12.md → licenseaudit1812.md} +0 -0
- /package/docs/{mobileconversionresearch.1.8.10.md → mobileconversionresearch1810.md} +0 -0
- /package/docs/{nativeidentityresearch.1.8.11.md → nativeidentityresearch1811.md} +0 -0
- /package/docs/{native.wrappers.md → nativewrappers.md} +0 -0
- /package/docs/{planning.1.8.18.md → planning1818.md} +0 -0
- /package/docs/{planning.1.8.19.md → planning1819.md} +0 -0
- /package/docs/{planning.engine.md → planningengine.md} +0 -0
- /package/docs/{releasenotes.1.8.12.md → releasenotes1812.md} +0 -0
- /package/docs/{releasenotes.1.8.15.md → releasenotes1815.md} +0 -0
- /package/docs/{releasenotes.1.8.16.md → releasenotes1816.md} +0 -0
- /package/docs/{releasenotes.1.8.17.md → releasenotes1817.md} +0 -0
- /package/docs/{releasenotes.1.8.18.md → releasenotes1818.md} +0 -0
- /package/docs/{releasenotes.1.8.19.md → releasenotes1819.md} +0 -0
- /package/docs/{reorganization.1.8.8.md → reorganization188.md} +0 -0
- /package/docs/{reorganization.1.8.9.md → reorganization189.md} +0 -0
- /package/docs/{repo.research.1.8.16.md → reporesearch1816.md} +0 -0
- /package/docs/{repo.research.1.8.21.md → reporesearch1821.md} +0 -0
- /package/docs/{repo.synthesis.1.8.21.md → reposynthesis1821.md} +0 -0
- /package/docs/{research.1.8.18.isolation.md → research1818isolation.md} +0 -0
- /package/docs/{research.1.8.19.virtual.browser.md → research1819virtualbrowser.md} +0 -0
- /package/docs/{scanningresearch.1.8.11.md → scanningresearch1811.md} +0 -0
- /package/docs/{securityaudit.1.8.7.md → securityaudit187.md} +0 -0
- /package/docs/{securityreferences.1.8.11.md → securityreferences1811.md} +0 -0
- /package/docs/{securityresearch.1.8.11.md → securityresearch1811.md} +0 -0
- /package/docs/{signingresearch.1.8.12.md → signingresearch1812.md} +0 -0
- /package/docs/{tauri.glib.risk.1.8.11.md → tauriglibrisk1811.md} +0 -0
- /package/docs/{todo.1.8.18.md → todo1818.md} +0 -0
- /package/docs/{todo.1.8.19.md → todo1819.md} +0 -0
- /package/docs/{toolchainresearch.1.8.9.md → toolchainresearch189.md} +0 -0
- /package/docs/{web.duplicatecleanup.md → webduplicatecleanup.md} +0 -0
- /package/docs/{web.ideas.md → webideas.md} +0 -0
- /package/docs/{workflowimprovements.2026.08.19.md → workflowimprovements20260819.md} +0 -0
package/dist/runall.d.ts
DELETED
package/dist/runall.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { spawn } from 'node:child_process';
|
|
3
|
-
import { fileURLToPath } from 'node:url';
|
|
4
|
-
import { join, dirname } from 'node:path';
|
|
5
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
6
|
-
const WS_ROOT = join(__dirname, '.');
|
|
7
|
-
let passed = 0;
|
|
8
|
-
let failed = 0;
|
|
9
|
-
async function run(label, cmd, args, opts = {}) {
|
|
10
|
-
return new Promise((resolve) => {
|
|
11
|
-
console.log(`\n── ${label} ──\n`);
|
|
12
|
-
const proc = spawn(cmd, args, {
|
|
13
|
-
cwd: WS_ROOT,
|
|
14
|
-
stdio: ['ignore', 'inherit', 'inherit'],
|
|
15
|
-
env: { ...process.env },
|
|
16
|
-
...opts,
|
|
17
|
-
});
|
|
18
|
-
proc.on('close', (code) => {
|
|
19
|
-
if (code === 0)
|
|
20
|
-
passed++;
|
|
21
|
-
else
|
|
22
|
-
failed++;
|
|
23
|
-
resolve(code === 0);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
console.log('='.repeat(55));
|
|
28
|
-
console.log(' DevThink Saddle — the sandbox engine test runner');
|
|
29
|
-
console.log('='.repeat(55));
|
|
30
|
-
console.log(` CWD: ${WS_ROOT}`);
|
|
31
|
-
console.log('='.repeat(55));
|
|
32
|
-
const start = Date.now();
|
|
33
|
-
await run('Vitest (the engine suites)', 'npx', ['vitest', 'run']);
|
|
34
|
-
const elapsed = ((Date.now() - start) / 1000).toFixed(1);
|
|
35
|
-
console.log();
|
|
36
|
-
console.log('='.repeat(55));
|
|
37
|
-
console.log(` Results: ${passed} passed, ${failed} failed, ${elapsed}s`);
|
|
38
|
-
console.log('='.repeat(55));
|
|
39
|
-
process.exit(failed > 0 ? 1 : 0);
|
package/dist/runtimeprobe.d.ts
DELETED
package/dist/runtimeprobe.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* runtime probe exercises only root-safe contracts and produces serializable evidence for CI matrices.
|
|
3
|
-
*/
|
|
4
|
-
import { memorystorage, runtimecontract, sha256 } from "./dist/index.js";
|
|
5
|
-
const storage = memorystorage({ maxbytes: 1024 });
|
|
6
|
-
await storage.put({ key: "probe.txt", data: new TextEncoder().encode("saddle") });
|
|
7
|
-
const value = await storage.get("probe.txt");
|
|
8
|
-
console.log(JSON.stringify({ contract: runtimecontract(), digest: sha256("saddle"), text: new TextDecoder().decode(value), head: await storage.head("probe.txt") }));
|
package/dist/sandbox.d.ts
DELETED
|
@@ -1,355 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* sandbox.ts — browser-pure port of the saddle virtual hardware engine.
|
|
3
|
-
*
|
|
4
|
-
* this module is a lightweight rewrite of the engine generators
|
|
5
|
-
* (virtualcpu.ts, virtualmemory.ts, virtualgpu.ts and render.ts) that runs
|
|
6
|
-
* unchanged in the browser and in node: it imports nothing, touches no
|
|
7
|
-
* node:* builtin and no dom api at module scope, and produces the exact
|
|
8
|
-
* same procfs payloads, the 89-character nvidia-smi summary table, the
|
|
9
|
-
* mesa software-stack summaries (rusticl opencl 3.1, lavapipe vulkan 1.4,
|
|
10
|
-
* llvmpipe opengl 4.6) and the boot dmesg sequence the native engine emits.
|
|
11
|
-
*
|
|
12
|
-
* contexts (22): cpudata, gpudata, migprofiles, vendortables, topology,
|
|
13
|
-
* cpuinfo, lscpu, pagealign, meminfo, freeh, smiformat, smitable, smilist,
|
|
14
|
-
* clinfo, vulkaninfo, glxinfo, mesaenv, bootsequence, sandboxstate,
|
|
15
|
-
* virtualfs, dispatcher, commands.
|
|
16
|
-
*
|
|
17
|
-
* rules: lowercase identifiers, english jsdoc in third person, no emoji,
|
|
18
|
-
* zero dependencies, and deterministic fallbacks when crypto randomness
|
|
19
|
-
* is unavailable.
|
|
20
|
-
*/
|
|
21
|
-
/** reviewed processor catalog entry (mirrors the vendor pages). */
|
|
22
|
-
export type CpuSpec = {
|
|
23
|
-
model: string;
|
|
24
|
-
displayname: string;
|
|
25
|
-
vendor: string;
|
|
26
|
-
arch: string;
|
|
27
|
-
cores: number;
|
|
28
|
-
threads: number;
|
|
29
|
-
baseclockmhz: number;
|
|
30
|
-
boostclockmhz: number;
|
|
31
|
-
allcoreclockmhz: number;
|
|
32
|
-
l3mb: number;
|
|
33
|
-
l2mb: number;
|
|
34
|
-
socket: string;
|
|
35
|
-
tdpwatts: number;
|
|
36
|
-
pcie: string;
|
|
37
|
-
maxmemorygb: number;
|
|
38
|
-
memorytype: string;
|
|
39
|
-
memorychannels: number;
|
|
40
|
-
microarch: string;
|
|
41
|
-
cpufamily: number;
|
|
42
|
-
cpumodel: number;
|
|
43
|
-
stepping: number;
|
|
44
|
-
physicalline: string;
|
|
45
|
-
virtualline: string;
|
|
46
|
-
launch: string;
|
|
47
|
-
};
|
|
48
|
-
/** reviewed virtual gpu catalog entry. */
|
|
49
|
-
export type GpuSpec = {
|
|
50
|
-
id: string;
|
|
51
|
-
name: string;
|
|
52
|
-
vendor: string;
|
|
53
|
-
pcivendor: string;
|
|
54
|
-
pcidevice: string;
|
|
55
|
-
vrammib: number;
|
|
56
|
-
smireportedmib: number;
|
|
57
|
-
memtype: string;
|
|
58
|
-
busbits: number;
|
|
59
|
-
bandwidthgbs: number;
|
|
60
|
-
tdpwatts: number;
|
|
61
|
-
arch: string;
|
|
62
|
-
smarch: string;
|
|
63
|
-
smcount: number;
|
|
64
|
-
mig: boolean;
|
|
65
|
-
driver: string;
|
|
66
|
-
cuda: string | null;
|
|
67
|
-
};
|
|
68
|
-
/** one mig slicing profile of the 96 gb-class device. */
|
|
69
|
-
export type MigProfile = {
|
|
70
|
-
id: string;
|
|
71
|
-
slicegb: number;
|
|
72
|
-
maxinstances: number;
|
|
73
|
-
};
|
|
74
|
-
/** sandbox specification accepted by createSandboxState. */
|
|
75
|
-
export type SandboxSpec = {
|
|
76
|
-
model: string;
|
|
77
|
-
vcpus?: number;
|
|
78
|
-
ramgb?: number;
|
|
79
|
-
gpu: string;
|
|
80
|
-
mig?: string;
|
|
81
|
-
id?: string;
|
|
82
|
-
};
|
|
83
|
-
/** resolved smp topology for a virtual cpu spec. */
|
|
84
|
-
export type CpuTopology = {
|
|
85
|
-
threadspercore: number;
|
|
86
|
-
coresonline: number;
|
|
87
|
-
vcpus: number;
|
|
88
|
-
siblings: number;
|
|
89
|
-
sockets: number;
|
|
90
|
-
fullypopulated: boolean;
|
|
91
|
-
};
|
|
92
|
-
/** one persistent workspace file entry. */
|
|
93
|
-
export type SandboxFile = {
|
|
94
|
-
content: string;
|
|
95
|
-
size: number;
|
|
96
|
-
updatedat: string;
|
|
97
|
-
};
|
|
98
|
-
/** the filesystem contract shared by the api host and the memoryfs. */
|
|
99
|
-
export type SandboxFs = {
|
|
100
|
-
write: (path: string, content: string) => {
|
|
101
|
-
path: string;
|
|
102
|
-
size: number;
|
|
103
|
-
updatedat: string;
|
|
104
|
-
};
|
|
105
|
-
read: (path: string) => (SandboxFile & {
|
|
106
|
-
path: string;
|
|
107
|
-
}) | null;
|
|
108
|
-
list: () => Array<{
|
|
109
|
-
path: string;
|
|
110
|
-
size: number;
|
|
111
|
-
updatedat: string;
|
|
112
|
-
}>;
|
|
113
|
-
del: (path: string) => boolean;
|
|
114
|
-
};
|
|
115
|
-
/** state object shared by the browser terminal and the api exec endpoint. */
|
|
116
|
-
export type SandboxState = {
|
|
117
|
-
model: string;
|
|
118
|
-
cpuspec: CpuSpec;
|
|
119
|
-
gpuspec: GpuSpec;
|
|
120
|
-
vcpus: number;
|
|
121
|
-
ramgb: number;
|
|
122
|
-
gpu: string;
|
|
123
|
-
mig: string;
|
|
124
|
-
id: string;
|
|
125
|
-
hostname: string;
|
|
126
|
-
boottime: number;
|
|
127
|
-
kernel: string;
|
|
128
|
-
memsnapshot: string;
|
|
129
|
-
history: string[];
|
|
130
|
-
files: Map<string, SandboxFile>;
|
|
131
|
-
};
|
|
132
|
-
/** command result matching the api exec contract; clear is set by the
|
|
133
|
-
* clear command so the terminal can wipe the screen. */
|
|
134
|
-
export type DispatchResult = {
|
|
135
|
-
output: string;
|
|
136
|
-
exitCode: number;
|
|
137
|
-
clear?: boolean;
|
|
138
|
-
};
|
|
139
|
-
/** optional exec context provided by the api host. */
|
|
140
|
-
export type DispatchContext = {
|
|
141
|
-
fs?: SandboxFs;
|
|
142
|
-
quota?: number;
|
|
143
|
-
};
|
|
144
|
-
/**
|
|
145
|
-
* cpudata carries the six engine-bank processors (amd epyc 9965, ryzen 9
|
|
146
|
-
* 9950x3d, threadripper pro 9995wx, threadripper 7980x, core ultra 9
|
|
147
|
-
* 285k, epyc 9955) plus the two web showcase additions intel xeon 6980p
|
|
148
|
-
* granite rapids and apple m3 ultra. every field mirrors the vendor pages
|
|
149
|
-
* and the techpowerup database as pinned by best_virtual_processors.
|
|
150
|
-
*/
|
|
151
|
-
export declare const cpudata: CpuSpec[];
|
|
152
|
-
/** resolves a processor spec by model name, case-insensitive; returns
|
|
153
|
-
* undefined for unknown models so callers can shape friendly errors. */
|
|
154
|
-
export declare function getcpu(model: string): CpuSpec | undefined;
|
|
155
|
-
/**
|
|
156
|
-
* resolves a catalog entry by its slug id (epyc-9965) as served by the
|
|
157
|
-
* /api/v1/specs/cpus endpoint; returns undefined for unknown ids.
|
|
158
|
-
* @param {string} id the catalog id.
|
|
159
|
-
* @returns {object | undefined} the matching cpu entry.
|
|
160
|
-
*/
|
|
161
|
-
export declare function getcpubyid(id: string): CpuSpec | undefined;
|
|
162
|
-
/**
|
|
163
|
-
* solves the package topology for a vcpu count against a spec; mirrors
|
|
164
|
-
* solvetopology from virtualcpu.ts (smt parts round core counts up,
|
|
165
|
-
* heterogeneous parts report one thread per core and the count is clamped
|
|
166
|
-
* to the model thread ceiling).
|
|
167
|
-
*/
|
|
168
|
-
export declare function solvetopology(spec: CpuSpec, vcpus: number): CpuTopology;
|
|
169
|
-
/**
|
|
170
|
-
* generates a complete /proc/cpuinfo text for a bank model with an
|
|
171
|
-
* arbitrary vcpu count; x86_64 models render the full zen 5 / intel flag
|
|
172
|
-
* set per logical processor and the apple model renders the arm64 cpuinfo
|
|
173
|
-
* block shape instead.
|
|
174
|
-
*
|
|
175
|
-
* @param {string} model model name present in cpudata.
|
|
176
|
-
* @param {number} vcpus number of logical processors to render.
|
|
177
|
-
* @returns {string} the full procfs payload.
|
|
178
|
-
*/
|
|
179
|
-
export declare function cpuinfo(model: string, vcpus: number): string;
|
|
180
|
-
/**
|
|
181
|
-
* generates the util-linux lscpu summary for a bank model with numa node
|
|
182
|
-
* ranges and vulnerability lines, mirroring generatevirtuallscpu.
|
|
183
|
-
*
|
|
184
|
-
* @param {string} model model name present in cpudata.
|
|
185
|
-
* @param {number} vcpus logical processor count.
|
|
186
|
-
* @param {number} [numanodes=1] number of numa nodes to spread over.
|
|
187
|
-
* @returns {string} the lscpu text block.
|
|
188
|
-
*/
|
|
189
|
-
export declare function lscpu(model: string, vcpus: number, numanodes?: number): string;
|
|
190
|
-
/**
|
|
191
|
-
* gpudata mirrors the verified gpu_bank: seven real identities with
|
|
192
|
-
* vrammib (physical capacity) and smireportedmib (the value after the
|
|
193
|
-
* firmware carveout) cross-checked on 2026-08-22.
|
|
194
|
-
*/
|
|
195
|
-
export declare const gpudata: GpuSpec[];
|
|
196
|
-
/** resolves a gpu spec by id or name, case-insensitive. */
|
|
197
|
-
export declare function getgpu(gpu: string): GpuSpec | undefined;
|
|
198
|
-
/**
|
|
199
|
-
* migprofiles mirrors the mig catalog of the 96 gb-class virtual device:
|
|
200
|
-
* 1g.24gb exposes 24 gb slices (4 instances), 2g.48gb 48 gb slices (2
|
|
201
|
-
* instances) and 4g.96gb dedicates the full device to one instance.
|
|
202
|
-
*/
|
|
203
|
-
export declare const migprofiles: MigProfile[];
|
|
204
|
-
/** resolves a mig profile by id; null for 'off' and unknown names. */
|
|
205
|
-
export declare function getmig(id: string | null | undefined): MigProfile | null;
|
|
206
|
-
/** rounds a kb value down to the nearest 4 kb page boundary. */
|
|
207
|
-
export declare function pagealign(kb: number): number;
|
|
208
|
-
/**
|
|
209
|
-
* generates a complete /proc/meminfo text for the requested total ram in
|
|
210
|
-
* gb, mirroring generatevirtualmeminfo: memtotal, memfree, memavailable,
|
|
211
|
-
* buffers, cached, the anon/file split, swap, slab, commit accounting
|
|
212
|
-
* under vm.overcommit_memory=2 semantics and the direct map breakdown.
|
|
213
|
-
*
|
|
214
|
-
* @param {number} ramgb total guest ram in gb (positive number).
|
|
215
|
-
* @param {{swapgb?: number, vcpus?: number, freefraction?: number,
|
|
216
|
-
* availablefraction?: number}} [options] optional overrides.
|
|
217
|
-
* @returns {string} the full meminfo payload.
|
|
218
|
-
*/
|
|
219
|
-
export declare function meminfo(ramgb: number, options?: {
|
|
220
|
-
swapgb?: number;
|
|
221
|
-
vcpus?: number;
|
|
222
|
-
freefraction?: number;
|
|
223
|
-
availablefraction?: number;
|
|
224
|
-
}): string;
|
|
225
|
-
/**
|
|
226
|
-
* renders the free -h table derived from a memoized meminfo snapshot so
|
|
227
|
-
* cat /proc/meminfo and free -h always agree inside one sandbox.
|
|
228
|
-
*
|
|
229
|
-
* @param {string} meminfotext a payload previously returned by meminfo().
|
|
230
|
-
* @returns {string} the free -h table.
|
|
231
|
-
*/
|
|
232
|
-
export declare function freeh(meminfotext: string): string;
|
|
233
|
-
/**
|
|
234
|
-
* renders the complete virtual nvidia-smi adapter report; the summary
|
|
235
|
-
* table is exactly 89 characters wide and the header pins driver
|
|
236
|
-
* 575.57.08 and cuda 12.9 exactly as the native smiadapterbuilder does.
|
|
237
|
-
* when a mig profile is active the memory column reflects the slice size
|
|
238
|
-
* and a mig line joins the table.
|
|
239
|
-
*
|
|
240
|
-
* @param {string} gpu gpu id or name present in gpudata.
|
|
241
|
-
* @param {string} [migprofile='off'] one of 1g.24gb, 2g.48gb, 4g.96gb or off.
|
|
242
|
-
* @returns {string} the full report text.
|
|
243
|
-
*/
|
|
244
|
-
export declare function nvidiaSmiTable(gpu: string, migprofile?: string): string;
|
|
245
|
-
/**
|
|
246
|
-
* renders the nvidia-smi -l device listing; with an active mig profile
|
|
247
|
-
* the mig device lines follow the parent gpu line.
|
|
248
|
-
*
|
|
249
|
-
* @param {string} gpu gpu id or name present in gpudata.
|
|
250
|
-
* @param {string} [migprofile='off'] mig profile id or off.
|
|
251
|
-
* @returns {string} the -l listing.
|
|
252
|
-
*/
|
|
253
|
-
export declare function nvidiaSmiList(gpu: string, migprofile?: string): string;
|
|
254
|
-
/**
|
|
255
|
-
* renders the clinfo summary for the rusticl platform on llvmpipe: opencl
|
|
256
|
-
* 3.1 (same-day spec support in mesa 26.2), fp16 default since 25.2 and
|
|
257
|
-
* fp64 through rusticl_features.
|
|
258
|
-
*
|
|
259
|
-
* @param {number} [vcpus=8] vcpu count reported as compute units.
|
|
260
|
-
* @returns {string} the clinfo summary block.
|
|
261
|
-
*/
|
|
262
|
-
export declare function clinfoSummary(vcpus?: number): string;
|
|
263
|
-
/**
|
|
264
|
-
* renders the vulkaninfo --summary block for lavapipe: vulkan 1.4 surface
|
|
265
|
-
* since mesa 25.1, khronos-conformant on the vulkan 1.3 cts, selected
|
|
266
|
-
* through vk_driver_files (vk_icd_filenames is deprecated).
|
|
267
|
-
*
|
|
268
|
-
* @returns {string} the vulkan summary block.
|
|
269
|
-
*/
|
|
270
|
-
export declare function vulkanSummary(): string;
|
|
271
|
-
/**
|
|
272
|
-
* renders the glxinfo header block for llvmpipe: opengl 4.6 core profile
|
|
273
|
-
* 100% (161/161 extensions tracked by mesamatrix) and the llvmpipe
|
|
274
|
-
* renderer string with the llvm version.
|
|
275
|
-
*
|
|
276
|
-
* @returns {string} the glxinfo block.
|
|
277
|
-
*/
|
|
278
|
-
export declare function glxinfoSummary(): string;
|
|
279
|
-
/**
|
|
280
|
-
* assembles the validated mesa environment exactly as mesaenvbuilder +
|
|
281
|
-
* renderenv('opengl') do: llvmpipe forced, gl 4.6, glsl 460, vector width
|
|
282
|
-
* 512 to exercise the avx-512 paths, lavapipe through vk_driver_files and
|
|
283
|
-
* rusticl opencl 3.1 with the fp64 feature.
|
|
284
|
-
*
|
|
285
|
-
* @param {number} [vcpus=8] vcpu count used for lp_num_threads (0 uses
|
|
286
|
-
* every core up to the lp_max_threads=32 ceiling).
|
|
287
|
-
* @returns {Record<string, string>} the environment record.
|
|
288
|
-
*/
|
|
289
|
-
export declare function mesaenv(vcpus?: number): Record<string, string>;
|
|
290
|
-
/**
|
|
291
|
-
* renders the firecracker-style boot log for a sandbox: kernel banner,
|
|
292
|
-
* 125 ms microvm bring-up, memory sizing, vcpu online lines, the mesa
|
|
293
|
-
* software stack bring-up and the virtual gpu identity binding. every
|
|
294
|
-
* line carries the kernel [ 0.000000] timestamp style.
|
|
295
|
-
*
|
|
296
|
-
* @param {string} model cpu model name present in cpudata.
|
|
297
|
-
* @param {number} vcpus logical processor count.
|
|
298
|
-
* @param {number} [ramgb=32] guest ram in gb.
|
|
299
|
-
* @param {string} [gpu='rtx5090'] gpu id present in gpudata.
|
|
300
|
-
* @param {number} [quota=16777216] persistent workspace quota in bytes.
|
|
301
|
-
* @returns {string[]} ordered dmesg lines.
|
|
302
|
-
*/
|
|
303
|
-
export declare function bootSequence(model: string, vcpus: number, ramgb?: number, gpu?: string, quota?: number): string[];
|
|
304
|
-
/**
|
|
305
|
-
* creates the state object shared by the browser terminal and the api
|
|
306
|
-
* exec endpoint: resolved specs, a stable hostname, the boot timestamp and
|
|
307
|
-
* a memoized meminfo snapshot so memory reports stay consistent within
|
|
308
|
-
* one sandbox session.
|
|
309
|
-
*
|
|
310
|
-
* @param {{model: string, vcpus: number, ramgb: number, gpu: string,
|
|
311
|
-
* mig?: string, id?: string}} spec the sandbox specification.
|
|
312
|
-
* @returns {object} the sandbox state consumed by dispatch.
|
|
313
|
-
*/
|
|
314
|
-
export declare function createSandboxState(spec: SandboxSpec): SandboxState;
|
|
315
|
-
/** the supported command list, reused by help and the terminal. */
|
|
316
|
-
export declare const commands: string[];
|
|
317
|
-
/**
|
|
318
|
-
* dispatches one shell command against a sandbox state; the return shape
|
|
319
|
-
* matches the api exec contract {output, exitCode}. the optional context
|
|
320
|
-
* carries the persistent filesystem callbacks {write, read, list, del}
|
|
321
|
-
* bound to the sandbox id by the api host; without a context the same
|
|
322
|
-
* commands run on the per-session in-memory workspace so the browser
|
|
323
|
-
* terminal keeps working unchanged.
|
|
324
|
-
*
|
|
325
|
-
* @param {string} command the raw command line typed by the user.
|
|
326
|
-
* @param {object} state a state built by createsandboxstate.
|
|
327
|
-
* @param {{fs?: {write: Function, read: Function, list: Function,
|
|
328
|
-
* del: Function}, quota?: number}} [context] the optional filesystem
|
|
329
|
-
* context provided by the api host.
|
|
330
|
-
* @returns {{output: string, exitCode: number, clear?: boolean}} the result.
|
|
331
|
-
*/
|
|
332
|
-
export declare function dispatch(command: string, state: SandboxState, context?: DispatchContext): DispatchResult;
|
|
333
|
-
/**
|
|
334
|
-
* renders the streaming plan for a workload larger than any host: the
|
|
335
|
-
* demo the terminal shows for "how does a 1.5 tb model run here" - layers
|
|
336
|
-
* stream through a fixed window, the workload size is unbounded.
|
|
337
|
-
* @param {number} totalbytes workload size in bytes.
|
|
338
|
-
* @param {number} windowbytes hot-set budget in bytes.
|
|
339
|
-
* @returns {string} the plan summary lines.
|
|
340
|
-
*/
|
|
341
|
-
/**
|
|
342
|
-
* renders the layered virtual memory architecture: everything is vram and
|
|
343
|
-
* the only physical layer is the free pool (github, npm cdn and friends -
|
|
344
|
-
* the saddle storage doctrine applied to this engine).
|
|
345
|
-
* @returns {string} the tier summary lines.
|
|
346
|
-
*/
|
|
347
|
-
/**
|
|
348
|
-
* renders the quantum layer summary: a classical statevector simulator
|
|
349
|
-
* (1-20 qubits), the bb84/e91 key exchange, grover search, dna and 5d
|
|
350
|
-
* optical storage planners - every "quantum" capability is software.
|
|
351
|
-
* @returns {string} the quantum summary lines.
|
|
352
|
-
*/
|
|
353
|
-
export declare function quantumdemo(): string;
|
|
354
|
-
export declare function tiersdemo(): string;
|
|
355
|
-
export declare function streamingdemo(totalbytes?: number, windowbytes?: number): string;
|