@wenathlan/saddle 2.0.154 → 2.0.155
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 +112 -41
- package/README.md +58 -59
- package/browser.ts +482 -0
- package/cli.ts +274 -0
- package/distribution.ts +731 -0
- package/docker.config +29 -8
- 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/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 +35 -27
- package/isolation.ts +84 -0
- package/modes.ts +170 -0
- package/mttg.config +1 -1
- package/orchestrator.ts +49 -15
- package/package.json +90 -75
- package/qemu.config +2 -2
- package/sandbox.ts +2094 -0
- package/scheduler.ts +1 -1
- package/server.ts +52 -0
- package/tsconfig.json +11 -12
- package/virtual.ts +1105 -0
- package/virtualgpu.ts +1 -1
- package/virtualization.ts +1 -1
- 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/manifest.json +0 -20
- package/media.ts +0 -1337
- /package/docs/{architecture.1.8.19.md → architecture1819.md} +0 -0
- /package/docs/{architecture.1.8.19.mmd → architecture1819.mmd} +0 -0
- /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.analysis.1.8.21.json → repoanalysis1821.json} +0 -0
- /package/docs/{repo.candidates.1.8.21.jsonl → repocandidates1821.jsonl} +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.selected.1.8.21.json → reposelected1821.json} +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
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { EdgeLaneExecutor } from "./edgelandes.ts";
|
|
2
|
-
/** one heavyweight lane declaration: the modality id, the host kind
|
|
3
|
-
* (every heavyweight lane probes, the execution wiring is the next
|
|
4
|
-
* rung), the runtime surface it names and the synchronous probe. */
|
|
5
|
-
export interface HeavyweightLaneSpec {
|
|
6
|
-
modality: string;
|
|
7
|
-
kind: "live" | "host";
|
|
8
|
-
runtime: string;
|
|
9
|
-
present: () => boolean;
|
|
10
|
-
}
|
|
11
|
-
/** the six heavyweight lanes of the ninety modalities wave: the browser
|
|
12
|
-
* server, the two mobile seats, the pod session and the two confidential
|
|
13
|
-
* compute surfaces — every one kind host (the probe law). */
|
|
14
|
-
export declare const heavyweightlanespecs: readonly HeavyweightLaneSpec[];
|
|
15
|
-
/** the executor table of the heavyweight lanes, keyed by modality id. */
|
|
16
|
-
export declare const edgelaneexecutorsheavy: Readonly<Record<string, EdgeLaneExecutor>>;
|
|
17
|
-
/** the heavyweight lane ids in spec order. */
|
|
18
|
-
export declare const heavyweightlaneids: readonly string[];
|
|
19
|
-
/** the merged lane spec table of the plane: the sixteen base lanes, the
|
|
20
|
-
* twenty-five host binary lanes, the nineteen in-process lanes, the seven
|
|
21
|
-
* virtual hardware lanes and the six heavyweight probes — sixty-three
|
|
22
|
-
* lanes, every modality the ninety plan wires through the plane. the
|
|
23
|
-
* order pins the base lanes first (the contract the existing tests read),
|
|
24
|
-
* then the groups in their file order, then the heavyweight probes. */
|
|
25
|
-
export declare const edgelanespecsall: readonly (HeavyweightLaneSpec & {
|
|
26
|
-
kind: "live" | "host";
|
|
27
|
-
})[];
|
|
28
|
-
/** the merged executor table of the plane: the base executors plus the
|
|
29
|
-
* three group tables plus the heavyweight probes — the dispatch law
|
|
30
|
-
* demands an executor for every lane and this table answers it. */
|
|
31
|
-
export declare const edgelaneexecutorsall: Readonly<Record<string, EdgeLaneExecutor>>;
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
// # edgelandes.ninety — the merge seat of the ninety modalities wave: the
|
|
2
|
-
// six heavyweight host lanes the plane probes (the browser server, the
|
|
3
|
-
// mobile seats, the pod session and the confidential compute — every one
|
|
4
|
-
// an honest probe lane that names its runtime and never fakes a boot) and
|
|
5
|
-
// the merged lane tables the dispatch plane reads. the three lane groups
|
|
6
|
-
// of the wave (edgelandes.host.ts — the host binary lanes, edgelandes.inproc.ts
|
|
7
|
-
// — the in-process lanes and edgelandes.virtual.ts — the virtual hardware
|
|
8
|
-
// composition lanes) each own their executors; this file only wires the
|
|
9
|
-
// heavyweight probes and answers the one merged surface the plane law
|
|
10
|
-
// demands: every lane in the table carries an executor, the wiring
|
|
11
|
-
// self-check never loads a gap. the visitor law holds everywhere: the
|
|
12
|
-
// heavyweight lanes probe server-side surfaces only, the visitor browser,
|
|
13
|
-
// gpu, cpu and storage are never touched.
|
|
14
|
-
import { existsSync } from "node:fs";
|
|
15
|
-
import { createRequire } from "node:module";
|
|
16
|
-
import { edgelaneexecutorshost, hostlanespecs } from "./edgelandes.host.ts";
|
|
17
|
-
import { edgelaneexecutorsinproc, inproclanespecs } from "./edgelandes.inproc.ts";
|
|
18
|
-
import { edgelaneerror, edgelaneexecutors, probehostbinary } from "./edgelandes.ts";
|
|
19
|
-
import { edgelaneexecutorsvirtual, virtuallanespecs } from "./edgelandes.virtual.ts";
|
|
20
|
-
/* ════════════════════════════════════════════════════════════════════ */
|
|
21
|
-
/* Section 2: the heavyweight presence probes — server-side only. */
|
|
22
|
-
/* ════════════════════════════════════════════════════════════════════ */
|
|
23
|
-
/** probes the sandbox-side browser surface: any of the headless chromium
|
|
24
|
-
* binaries on PATH or the playwright module through the node resolver —
|
|
25
|
-
* the browser the lane drives lives inside the sandbox, never on the
|
|
26
|
-
* visitor machine. */
|
|
27
|
-
function probebrowserserver() {
|
|
28
|
-
return (probehostbinary("chromium") ||
|
|
29
|
-
probehostbinary("chromium-browser") ||
|
|
30
|
-
probehostbinary("google-chrome") ||
|
|
31
|
-
probemoduleseat("playwright"));
|
|
32
|
-
}
|
|
33
|
-
/** probes the capacitor seat: the @capacitor/core module through the node
|
|
34
|
-
* resolver (the mobile packaging surface the engine may carry). */
|
|
35
|
-
function probecapacitor() {
|
|
36
|
-
return probemoduleseat("@capacitor/core");
|
|
37
|
-
}
|
|
38
|
-
/** probes the qemu machine the postmarketos image boots through (the
|
|
39
|
-
* emulator runtime the mobile lane rides — the image law lives with the
|
|
40
|
-
* deploy, the probe only names the runtime). */
|
|
41
|
-
function probepostmarketos() {
|
|
42
|
-
return probehostbinary("qemu-system-x86_64");
|
|
43
|
-
}
|
|
44
|
-
/** probes the kubernetes client the pod session lane names. */
|
|
45
|
-
function probekubectl() {
|
|
46
|
-
return probehostbinary("kubectl");
|
|
47
|
-
}
|
|
48
|
-
/** probes the amd sev-snp confidential compute surface: the /dev/sev
|
|
49
|
-
* device node the attested guest mounts through. */
|
|
50
|
-
function probesevsnp() {
|
|
51
|
-
return existsSync("/dev/sev");
|
|
52
|
-
}
|
|
53
|
-
/** probes the intel tdx confidential compute surface: the /dev/tdx device
|
|
54
|
-
* node (the tdx module names it /dev/tdx on the hosts that carry it). */
|
|
55
|
-
function probetdx() {
|
|
56
|
-
return existsSync("/dev/tdx") || existsSync("/dev/tdx-tdi");
|
|
57
|
-
}
|
|
58
|
-
/** resolves one engine module through the node resolver without loading
|
|
59
|
-
* it — the honest seat check for the optional module surfaces. */
|
|
60
|
-
function probemoduleseat(specifier) {
|
|
61
|
-
try {
|
|
62
|
-
createRequire(import.meta.url).resolve(specifier);
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
catch {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/* ════════════════════════════════════════════════════════════════════ */
|
|
70
|
-
/* Section 3: the heavyweight probe executors — honest refusals only. */
|
|
71
|
-
/* ════════════════════════════════════════════════════════════════════ */
|
|
72
|
-
/** the honest probe executor of one heavyweight lane: the lane answers
|
|
73
|
-
* HOST_RUNTIME_ABSENT when its surface is absent and the probe document
|
|
74
|
-
* (the runtime it found and where) when present — the execution wiring
|
|
75
|
-
* is the next rung and the lane never fakes a run. */
|
|
76
|
-
function heavyweightprobelane(modality, runtime, present) {
|
|
77
|
-
return async () => {
|
|
78
|
-
if (!present()) {
|
|
79
|
-
throw edgelaneerror("HOST_RUNTIME_ABSENT", `the host runtime ${runtime} is absent from the engine host (the ${modality} lane probes and never fakes)`);
|
|
80
|
-
}
|
|
81
|
-
return { stdout: `${runtime} probed for the ${modality} lane — the execution wiring is the next rung` };
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
/* ════════════════════════════════════════════════════════════════════ */
|
|
85
|
-
/* Section 4: the heavyweight lane table — the six probes of the wave. */
|
|
86
|
-
/* ════════════════════════════════════════════════════════════════════ */
|
|
87
|
-
/** the six heavyweight lanes of the ninety modalities wave: the browser
|
|
88
|
-
* server, the two mobile seats, the pod session and the two confidential
|
|
89
|
-
* compute surfaces — every one kind host (the probe law). */
|
|
90
|
-
export const heavyweightlanespecs = Object.freeze([
|
|
91
|
-
{ modality: "browser-server", kind: "host", runtime: "chromium-headless", present: probebrowserserver },
|
|
92
|
-
{ modality: "mobile-capacitor", kind: "host", runtime: "capacitor", present: probecapacitor },
|
|
93
|
-
{ modality: "mobile-postmarketos", kind: "host", runtime: "qemu-system-x86_64", present: probepostmarketos },
|
|
94
|
-
{ modality: "pod-session", kind: "host", runtime: "kubectl", present: probekubectl },
|
|
95
|
-
{ modality: "confidential-sevsnp", kind: "host", runtime: "sev-snp", present: probesevsnp },
|
|
96
|
-
{ modality: "confidential-tdx", kind: "host", runtime: "tdx", present: probetdx },
|
|
97
|
-
]);
|
|
98
|
-
/** the executor table of the heavyweight lanes, keyed by modality id. */
|
|
99
|
-
export const edgelaneexecutorsheavy = Object.freeze({
|
|
100
|
-
"browser-server": heavyweightprobelane("browser-server", "chromium-headless", probebrowserserver),
|
|
101
|
-
"mobile-capacitor": heavyweightprobelane("mobile-capacitor", "capacitor", probecapacitor),
|
|
102
|
-
"mobile-postmarketos": heavyweightprobelane("mobile-postmarketos", "qemu-system-x86_64", probepostmarketos),
|
|
103
|
-
"pod-session": heavyweightprobelane("pod-session", "kubectl", probekubectl),
|
|
104
|
-
"confidential-sevsnp": heavyweightprobelane("confidential-sevsnp", "sev-snp", probesevsnp),
|
|
105
|
-
"confidential-tdx": heavyweightprobelane("confidential-tdx", "tdx", probetdx),
|
|
106
|
-
});
|
|
107
|
-
/** the heavyweight lane ids in spec order. */
|
|
108
|
-
export const heavyweightlaneids = Object.freeze(heavyweightlanespecs.map((lane) => lane.modality));
|
|
109
|
-
/* ════════════════════════════════════════════════════════════════════ */
|
|
110
|
-
/* Section 5: the merged tables — the one surface the plane reads. */
|
|
111
|
-
/* ════════════════════════════════════════════════════════════════════ */
|
|
112
|
-
/** the merged lane spec table of the plane: the sixteen base lanes, the
|
|
113
|
-
* twenty-five host binary lanes, the nineteen in-process lanes, the seven
|
|
114
|
-
* virtual hardware lanes and the six heavyweight probes — sixty-three
|
|
115
|
-
* lanes, every modality the ninety plan wires through the plane. the
|
|
116
|
-
* order pins the base lanes first (the contract the existing tests read),
|
|
117
|
-
* then the groups in their file order, then the heavyweight probes. */
|
|
118
|
-
export const edgelanespecsall = Object.freeze([
|
|
119
|
-
...hostlanespecs,
|
|
120
|
-
...inproclanespecs,
|
|
121
|
-
...virtuallanespecs,
|
|
122
|
-
...heavyweightlanespecs,
|
|
123
|
-
]);
|
|
124
|
-
/** the merged executor table of the plane: the base executors plus the
|
|
125
|
-
* three group tables plus the heavyweight probes — the dispatch law
|
|
126
|
-
* demands an executor for every lane and this table answers it. */
|
|
127
|
-
export const edgelaneexecutorsall = Object.freeze({
|
|
128
|
-
...edgelaneexecutors,
|
|
129
|
-
...edgelaneexecutorshost,
|
|
130
|
-
...edgelaneexecutorsinproc,
|
|
131
|
-
...edgelaneexecutorsvirtual,
|
|
132
|
-
...edgelaneexecutorsheavy,
|
|
133
|
-
});
|
|
134
|
-
/** the base lane ids of the plane contract (the sixteen lanes the base
|
|
135
|
-
* edgeplane table wires directly — the merged executor table carries
|
|
136
|
-
* their executors, so the reverse wiring check reads them too). */
|
|
137
|
-
const BASELANEIDS = Object.freeze([
|
|
138
|
-
"container-docker",
|
|
139
|
-
"fs-vfs",
|
|
140
|
-
"runner-node",
|
|
141
|
-
"runner-bun",
|
|
142
|
-
"runner-wasm",
|
|
143
|
-
"runner-babel",
|
|
144
|
-
"runner-webpack",
|
|
145
|
-
"runner-universal",
|
|
146
|
-
"language-python",
|
|
147
|
-
"language-java",
|
|
148
|
-
"container-runsc",
|
|
149
|
-
"emulator-qemu",
|
|
150
|
-
"microvm-firecracker",
|
|
151
|
-
"runtime-jvm",
|
|
152
|
-
"language-go",
|
|
153
|
-
"language-ruby",
|
|
154
|
-
]);
|
|
155
|
-
/** the wiring self-check of the merge: the plane refuses to load over a
|
|
156
|
-
* lane it cannot wire (a table entry without an executor is a miswired
|
|
157
|
-
* plane, and miswiring must fail loud at boot, never silently at run
|
|
158
|
-
* time) — and over a duplicate id (two lanes claiming one modality is a
|
|
159
|
-
* miswired catalog). */
|
|
160
|
-
const seenids = new Set();
|
|
161
|
-
for (const lane of edgelanespecsall) {
|
|
162
|
-
if (seenids.has(lane.modality)) {
|
|
163
|
-
throw new Error(`the ninety plane is miswired: the modality ${lane.modality} is declared twice`);
|
|
164
|
-
}
|
|
165
|
-
seenids.add(lane.modality);
|
|
166
|
-
if (edgelaneexecutorsall[lane.modality] === undefined) {
|
|
167
|
-
throw new Error(`the ninety plane is miswired: no executor for the lane ${lane.modality}`);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
for (const key of Object.keys(edgelaneexecutorsall)) {
|
|
171
|
-
if (!seenids.has(key) && !BASELANEIDS.includes(key)) {
|
|
172
|
-
throw new Error(`the ninety plane is miswired: the executor ${key} wires no lane in the table`);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { type EdgeLaneExecutor } from "./edgelandes.ts";
|
|
2
|
-
/** the declaration of one virtual lane: the modality id, the wiring
|
|
3
|
-
* kind, the runtime surface and the synchronous presence probe. */
|
|
4
|
-
export interface VirtualLaneSpec {
|
|
5
|
-
/** the modality id the registry and the dispatch plane read. */
|
|
6
|
-
modality: string;
|
|
7
|
-
/** the wiring kind: the virtual lanes compose in process today. */
|
|
8
|
-
kind: "live" | "host";
|
|
9
|
-
/** the runtime surface the lane composes from. */
|
|
10
|
-
runtime: string;
|
|
11
|
-
/** the honest presence probe: the composed engine surface really loads. */
|
|
12
|
-
present: () => boolean;
|
|
13
|
-
}
|
|
14
|
-
/** the seven virtual lane specs (kind live — the lanes compose the
|
|
15
|
-
* engine's own payloads in process; the present probes guard the
|
|
16
|
-
* imported surfaces by typeof so a module graph that cannot load one
|
|
17
|
-
* surface answers absent for that lane, never a fake presence). */
|
|
18
|
-
export declare const virtuallanespecs: readonly VirtualLaneSpec[];
|
|
19
|
-
/** the lane executor table of the virtual lanes, keyed by modality id:
|
|
20
|
-
* the dispatch plane refuses to boot over a lane it cannot wire. */
|
|
21
|
-
export declare const edgelaneexecutorsvirtual: Readonly<Record<string, EdgeLaneExecutor>>;
|
|
22
|
-
/** the seven virtual lane ids derived from the spec table (the order is
|
|
23
|
-
* the spec order; the ids are pinned — the orchestrator's edge plane and
|
|
24
|
-
* the api routes read them exactly). */
|
|
25
|
-
export declare const virtuallaneids: readonly string[];
|