@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/modalityregistry.ts
CHANGED
|
@@ -1,18 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
/**
|
|
2
|
+
* modalityregistry — the catalog of the ninety sandbox modalities the
|
|
3
|
+
* saddle virtualization engine opens (the exclusive master engine of the
|
|
4
|
+
* family: the vm, the sandbox, the microvm, the runner and the hardware
|
|
5
|
+
* virtual seats — every workload rides the self-hosted edge, nothing
|
|
6
|
+
* touches the visitor machine). One record per modality: the keyword id
|
|
7
|
+
* (no hyphens), the display label, the category block, the driver
|
|
8
|
+
* requirements it mounts, the boot cost class, the hardening gates it
|
|
9
|
+
* carries, the mime contract it answers and the honest state of its
|
|
10
|
+
* wiring. The registry is the spine of the ninety modality plan (the
|
|
11
|
+
* owner's law: the ninety modalities of saddle act for the system,
|
|
12
|
+
* nothing touches the visitor machine): the workload never chooses by
|
|
13
|
+
* name — the join resolver reads the request (isolation, gpu, network,
|
|
14
|
+
* boot budget) and answers the modality set that satisfies it, so the
|
|
15
|
+
* person chooses none and the platform resolves the join of all (the
|
|
16
|
+
* nuclear modality law). Every record declares its binding — live (a
|
|
17
|
+
* platform lane executes through it today), host (the lane probes the
|
|
18
|
+
* host runtime and reports availability) or planned (the documented
|
|
19
|
+
* edge-binding path the catalog promises) — so the report never lies:
|
|
20
|
+
* a lane that does not wire a modality says so instead of pretending.
|
|
21
|
+
* Pure data and pure functions: zero storage, zero node-only imports,
|
|
22
|
+
* the browser-pure bundle keeps carrying it.
|
|
23
|
+
*
|
|
24
|
+
* the fold law of the virtual wave: the orphan modalityregistrytypes.ts —
|
|
25
|
+
* the declare-only mirror of this registry the v2 wave left at the root
|
|
26
|
+
* with zero importers (the devthink os reads its own ambient
|
|
27
|
+
* modalitytypes.ts bridge, never the saddle mirror) — absorbed into this
|
|
28
|
+
* seat: every declaration it carried (BootClass, ModalityFamily,
|
|
29
|
+
* ModalityState, ModalityRecord, BOOTLADDER, MODALITYPLANCOUNT,
|
|
30
|
+
* MODALITIES, ModalityPlanReport, planreport, BaseProfile, JoinRequest,
|
|
31
|
+
* resolvejoin, getmodality) already rides this file with its real
|
|
32
|
+
* implementation, so the mirror retired without one new line of code.
|
|
33
|
+
*
|
|
34
|
+
* @module saddle/modalityregistry
|
|
35
|
+
* @family wave/saddlemod2
|
|
36
|
+
* @token modality
|
|
37
|
+
* @token ninety
|
|
38
|
+
* @flag join-resolver
|
|
39
|
+
* @flag visitor-law
|
|
40
|
+
* @binding MODALITY_COUNT is derived from the records' real length —
|
|
41
|
+
* never a hardcoded count — and MODALITYPLANCOUNT pins the plan line
|
|
42
|
+
* the owner charged; the tests assert both stay equal at ninety.
|
|
43
|
+
*/
|
|
16
44
|
|
|
17
45
|
/** The boot cost classes the ladder measures. */
|
|
18
46
|
export type BootClass = "hot" | "warm" | "cold";
|
|
@@ -100,9 +128,10 @@ export const MODALITYPLANCOUNT = 90;
|
|
|
100
128
|
|
|
101
129
|
/** The modality records: the catalog the join resolver reads. */
|
|
102
130
|
export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
103
|
-
|
|
131
|
+
/* ===== block: vm modalities — the virtual family (5) ===== */
|
|
132
|
+
// the full machine with the virtual drivers
|
|
104
133
|
{
|
|
105
|
-
id: "
|
|
134
|
+
id: "virtualfull",
|
|
106
135
|
label: "complete virtual",
|
|
107
136
|
family: "virtual",
|
|
108
137
|
isolation: "hardware",
|
|
@@ -116,7 +145,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
116
145
|
mime: "application/vnd.devthink.sandbox+json",
|
|
117
146
|
},
|
|
118
147
|
{
|
|
119
|
-
id: "
|
|
148
|
+
id: "virtualvgpu",
|
|
120
149
|
label: "vgpu slice",
|
|
121
150
|
family: "virtual",
|
|
122
151
|
isolation: "hardware",
|
|
@@ -130,7 +159,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
130
159
|
mime: "application/vnd.devthink.sandbox+json",
|
|
131
160
|
},
|
|
132
161
|
{
|
|
133
|
-
id: "
|
|
162
|
+
id: "virtualscreen",
|
|
134
163
|
label: "vm plus vnc",
|
|
135
164
|
family: "screen",
|
|
136
165
|
isolation: "vm",
|
|
@@ -144,7 +173,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
144
173
|
mime: "application/vnd.devthink.screen+json",
|
|
145
174
|
},
|
|
146
175
|
{
|
|
147
|
-
id: "
|
|
176
|
+
id: "virtualdrivers",
|
|
148
177
|
label: "virtual drivers",
|
|
149
178
|
family: "virtual",
|
|
150
179
|
isolation: "vm",
|
|
@@ -158,7 +187,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
158
187
|
mime: "application/vnd.devthink.sandbox+json",
|
|
159
188
|
},
|
|
160
189
|
{
|
|
161
|
-
id: "
|
|
190
|
+
id: "virtualkvm",
|
|
162
191
|
label: "kvm machine",
|
|
163
192
|
family: "virtual",
|
|
164
193
|
isolation: "hardware",
|
|
@@ -171,9 +200,10 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
171
200
|
network: true,
|
|
172
201
|
mime: "application/vnd.devthink.sandbox+json",
|
|
173
202
|
},
|
|
174
|
-
|
|
203
|
+
/* ===== block: runner modalities — the universal binary and the package runtimes (8) ===== */
|
|
204
|
+
// the universal binary runner
|
|
175
205
|
{
|
|
176
|
-
id: "
|
|
206
|
+
id: "runneruniversal",
|
|
177
207
|
label: "universal runner",
|
|
178
208
|
family: "runner",
|
|
179
209
|
isolation: "namespace",
|
|
@@ -187,7 +217,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
187
217
|
mime: "application/vnd.devthink.run+json",
|
|
188
218
|
},
|
|
189
219
|
{
|
|
190
|
-
id: "
|
|
220
|
+
id: "runnernode",
|
|
191
221
|
label: "node packages",
|
|
192
222
|
family: "packages",
|
|
193
223
|
isolation: "process",
|
|
@@ -201,7 +231,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
201
231
|
mime: "application/vnd.devthink.run+json",
|
|
202
232
|
},
|
|
203
233
|
{
|
|
204
|
-
id: "
|
|
234
|
+
id: "runnerbun",
|
|
205
235
|
label: "bun runtime",
|
|
206
236
|
family: "packages",
|
|
207
237
|
isolation: "process",
|
|
@@ -215,7 +245,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
215
245
|
mime: "application/vnd.devthink.run+json",
|
|
216
246
|
},
|
|
217
247
|
{
|
|
218
|
-
id: "
|
|
248
|
+
id: "runnerdeno",
|
|
219
249
|
label: "deno runtime",
|
|
220
250
|
family: "packages",
|
|
221
251
|
isolation: "process",
|
|
@@ -229,7 +259,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
229
259
|
mime: "application/vnd.devthink.run+json",
|
|
230
260
|
},
|
|
231
261
|
{
|
|
232
|
-
id: "
|
|
262
|
+
id: "runnerwebpack",
|
|
233
263
|
label: "webpack bundle",
|
|
234
264
|
family: "packages",
|
|
235
265
|
isolation: "process",
|
|
@@ -243,7 +273,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
243
273
|
mime: "application/vnd.devthink.run+json",
|
|
244
274
|
},
|
|
245
275
|
{
|
|
246
|
-
id: "
|
|
276
|
+
id: "runnerbabel",
|
|
247
277
|
label: "babel transpile",
|
|
248
278
|
family: "packages",
|
|
249
279
|
isolation: "process",
|
|
@@ -257,7 +287,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
257
287
|
mime: "application/vnd.devthink.run+json",
|
|
258
288
|
},
|
|
259
289
|
{
|
|
260
|
-
id: "
|
|
290
|
+
id: "runnerwasm",
|
|
261
291
|
label: "wasm and wasi",
|
|
262
292
|
family: "wasm",
|
|
263
293
|
isolation: "process",
|
|
@@ -271,7 +301,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
271
301
|
mime: "application/wasm",
|
|
272
302
|
},
|
|
273
303
|
{
|
|
274
|
-
id: "
|
|
304
|
+
id: "runnerserverless",
|
|
275
305
|
label: "v8 isolates",
|
|
276
306
|
family: "runner",
|
|
277
307
|
isolation: "process",
|
|
@@ -284,11 +314,12 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
284
314
|
network: true,
|
|
285
315
|
mime: "application/vnd.devthink.run+json",
|
|
286
316
|
},
|
|
287
|
-
|
|
288
|
-
// the
|
|
289
|
-
//
|
|
317
|
+
/* ===== block: runner modalities — the language toolchains (12) ===== */
|
|
318
|
+
// the polyglot toolchains the engine mounts inside the sandbox (every
|
|
319
|
+
// runner documented by its driver set — the exec lane drives each
|
|
320
|
+
// through the host runtime, the honest probe answers per host)
|
|
290
321
|
{
|
|
291
|
-
id: "
|
|
322
|
+
id: "languagepython",
|
|
292
323
|
label: "cpython runtime",
|
|
293
324
|
family: "language",
|
|
294
325
|
isolation: "process",
|
|
@@ -302,7 +333,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
302
333
|
mime: "application/vnd.devthink.run+json",
|
|
303
334
|
},
|
|
304
335
|
{
|
|
305
|
-
id: "
|
|
336
|
+
id: "languagego",
|
|
306
337
|
label: "golang toolchain",
|
|
307
338
|
family: "language",
|
|
308
339
|
isolation: "process",
|
|
@@ -316,7 +347,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
316
347
|
mime: "application/vnd.devthink.run+json",
|
|
317
348
|
},
|
|
318
349
|
{
|
|
319
|
-
id: "
|
|
350
|
+
id: "languagerust",
|
|
320
351
|
label: "rustc toolchain",
|
|
321
352
|
family: "language",
|
|
322
353
|
isolation: "process",
|
|
@@ -330,7 +361,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
330
361
|
mime: "application/vnd.devthink.run+json",
|
|
331
362
|
},
|
|
332
363
|
{
|
|
333
|
-
id: "
|
|
364
|
+
id: "languagecargo",
|
|
334
365
|
label: "cargo builds",
|
|
335
366
|
family: "language",
|
|
336
367
|
isolation: "process",
|
|
@@ -344,7 +375,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
344
375
|
mime: "application/vnd.devthink.run+json",
|
|
345
376
|
},
|
|
346
377
|
{
|
|
347
|
-
id: "
|
|
378
|
+
id: "languagev",
|
|
348
379
|
label: "v compiler",
|
|
349
380
|
family: "language",
|
|
350
381
|
isolation: "process",
|
|
@@ -358,7 +389,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
358
389
|
mime: "application/vnd.devthink.run+json",
|
|
359
390
|
},
|
|
360
391
|
{
|
|
361
|
-
id: "
|
|
392
|
+
id: "languagejava",
|
|
362
393
|
label: "jdk runtime",
|
|
363
394
|
family: "language",
|
|
364
395
|
isolation: "process",
|
|
@@ -372,7 +403,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
372
403
|
mime: "application/vnd.devthink.run+json",
|
|
373
404
|
},
|
|
374
405
|
{
|
|
375
|
-
id: "
|
|
406
|
+
id: "languagedotnet",
|
|
376
407
|
label: "dotnet runtime",
|
|
377
408
|
family: "language",
|
|
378
409
|
isolation: "process",
|
|
@@ -386,7 +417,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
386
417
|
mime: "application/vnd.devthink.run+json",
|
|
387
418
|
},
|
|
388
419
|
{
|
|
389
|
-
id: "
|
|
420
|
+
id: "languageruby",
|
|
390
421
|
label: "ruby interpreter",
|
|
391
422
|
family: "language",
|
|
392
423
|
isolation: "process",
|
|
@@ -400,7 +431,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
400
431
|
mime: "application/vnd.devthink.run+json",
|
|
401
432
|
},
|
|
402
433
|
{
|
|
403
|
-
id: "
|
|
434
|
+
id: "languagephp",
|
|
404
435
|
label: "php interpreter",
|
|
405
436
|
family: "language",
|
|
406
437
|
isolation: "process",
|
|
@@ -414,7 +445,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
414
445
|
mime: "application/vnd.devthink.run+json",
|
|
415
446
|
},
|
|
416
447
|
{
|
|
417
|
-
id: "
|
|
448
|
+
id: "languagelua",
|
|
418
449
|
label: "lua interpreter",
|
|
419
450
|
family: "language",
|
|
420
451
|
isolation: "process",
|
|
@@ -428,7 +459,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
428
459
|
mime: "application/vnd.devthink.run+json",
|
|
429
460
|
},
|
|
430
461
|
{
|
|
431
|
-
id: "
|
|
462
|
+
id: "languagezig",
|
|
432
463
|
label: "zig toolchain",
|
|
433
464
|
family: "language",
|
|
434
465
|
isolation: "process",
|
|
@@ -442,7 +473,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
442
473
|
mime: "application/vnd.devthink.run+json",
|
|
443
474
|
},
|
|
444
475
|
{
|
|
445
|
-
id: "
|
|
476
|
+
id: "languagenim",
|
|
446
477
|
label: "nim compiler",
|
|
447
478
|
family: "language",
|
|
448
479
|
isolation: "process",
|
|
@@ -455,10 +486,11 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
455
486
|
network: true,
|
|
456
487
|
mime: "application/vnd.devthink.run+json",
|
|
457
488
|
},
|
|
489
|
+
/* ===== block: runner modalities — the heavyweight runtimes and wasi (4) ===== */
|
|
458
490
|
// the runtime extensions of the runner family: the heavyweight virtual
|
|
459
491
|
// machines and the edge runtimes the join resolves beside the v8 isolate
|
|
460
492
|
{
|
|
461
|
-
id: "
|
|
493
|
+
id: "runtimejvm",
|
|
462
494
|
label: "jvm hotspot",
|
|
463
495
|
family: "runner",
|
|
464
496
|
isolation: "process",
|
|
@@ -472,7 +504,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
472
504
|
mime: "application/vnd.devthink.run+json",
|
|
473
505
|
},
|
|
474
506
|
{
|
|
475
|
-
id: "
|
|
507
|
+
id: "runtimeclr",
|
|
476
508
|
label: "clr runtime",
|
|
477
509
|
family: "runner",
|
|
478
510
|
isolation: "process",
|
|
@@ -486,7 +518,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
486
518
|
mime: "application/vnd.devthink.run+json",
|
|
487
519
|
},
|
|
488
520
|
{
|
|
489
|
-
id: "
|
|
521
|
+
id: "runtimeworkerd",
|
|
490
522
|
label: "workerd runtime",
|
|
491
523
|
family: "runner",
|
|
492
524
|
isolation: "process",
|
|
@@ -500,7 +532,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
500
532
|
mime: "application/vnd.devthink.run+json",
|
|
501
533
|
},
|
|
502
534
|
{
|
|
503
|
-
id: "
|
|
535
|
+
id: "runnerwasi",
|
|
504
536
|
label: "wasi preview",
|
|
505
537
|
family: "wasm",
|
|
506
538
|
isolation: "process",
|
|
@@ -513,9 +545,10 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
513
545
|
network: false,
|
|
514
546
|
mime: "application/wasm",
|
|
515
547
|
},
|
|
516
|
-
|
|
548
|
+
/* ===== block: sandbox modalities — the container family, docker hardened (5) ===== */
|
|
549
|
+
// the profile pair and ghcr immutable
|
|
517
550
|
{
|
|
518
|
-
id: "
|
|
551
|
+
id: "containerdocker",
|
|
519
552
|
label: "docker hardened",
|
|
520
553
|
family: "container",
|
|
521
554
|
isolation: "namespace",
|
|
@@ -529,7 +562,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
529
562
|
mime: "application/vnd.devthink.container+json",
|
|
530
563
|
},
|
|
531
564
|
{
|
|
532
|
-
id: "
|
|
565
|
+
id: "containermax",
|
|
533
566
|
label: "docker max profile",
|
|
534
567
|
family: "container",
|
|
535
568
|
isolation: "namespace",
|
|
@@ -543,7 +576,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
543
576
|
mime: "application/vnd.devthink.container+json",
|
|
544
577
|
},
|
|
545
578
|
{
|
|
546
|
-
id: "
|
|
579
|
+
id: "containerlite",
|
|
547
580
|
label: "docker lite profile",
|
|
548
581
|
family: "container",
|
|
549
582
|
isolation: "namespace",
|
|
@@ -557,7 +590,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
557
590
|
mime: "application/vnd.devthink.container+json",
|
|
558
591
|
},
|
|
559
592
|
{
|
|
560
|
-
id: "
|
|
593
|
+
id: "containerghcr",
|
|
561
594
|
label: "ghcr immutable",
|
|
562
595
|
family: "container",
|
|
563
596
|
isolation: "namespace",
|
|
@@ -571,7 +604,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
571
604
|
mime: "application/vnd.devthink.container+json",
|
|
572
605
|
},
|
|
573
606
|
{
|
|
574
|
-
id: "
|
|
607
|
+
id: "containerrunsc",
|
|
575
608
|
label: "gvisor sandboxed",
|
|
576
609
|
family: "container",
|
|
577
610
|
isolation: "namespace",
|
|
@@ -584,10 +617,11 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
584
617
|
network: true,
|
|
585
618
|
mime: "application/vnd.devthink.container+json",
|
|
586
619
|
},
|
|
587
|
-
|
|
588
|
-
// isolation ladder the engine walks below the
|
|
620
|
+
/* ===== block: sandbox modalities — the os jails (3) ===== */
|
|
621
|
+
// the isolation ladder the engine walks below the container daemon,
|
|
622
|
+
// short of a container daemon and below the microvm
|
|
589
623
|
{
|
|
590
|
-
id: "
|
|
624
|
+
id: "sandboxbubblewrap",
|
|
591
625
|
label: "bubblewrap jail",
|
|
592
626
|
family: "sandbox",
|
|
593
627
|
isolation: "namespace",
|
|
@@ -601,7 +635,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
601
635
|
mime: "application/vnd.devthink.sandbox+json",
|
|
602
636
|
},
|
|
603
637
|
{
|
|
604
|
-
id: "
|
|
638
|
+
id: "sandboxnsjail",
|
|
605
639
|
label: "nsjail cell",
|
|
606
640
|
family: "sandbox",
|
|
607
641
|
isolation: "namespace",
|
|
@@ -615,7 +649,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
615
649
|
mime: "application/vnd.devthink.sandbox+json",
|
|
616
650
|
},
|
|
617
651
|
{
|
|
618
|
-
id: "
|
|
652
|
+
id: "sandboxchroot",
|
|
619
653
|
label: "chroot root",
|
|
620
654
|
family: "sandbox",
|
|
621
655
|
isolation: "process",
|
|
@@ -628,10 +662,11 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
628
662
|
network: false,
|
|
629
663
|
mime: "application/vnd.devthink.sandbox+json",
|
|
630
664
|
},
|
|
631
|
-
|
|
632
|
-
// can drive beside the docker
|
|
665
|
+
/* ===== block: sandbox modalities — the rootless and oci container extensions (4) ===== */
|
|
666
|
+
// the rootless and the oci runtimes the lane can drive beside the docker
|
|
667
|
+
// daemon
|
|
633
668
|
{
|
|
634
|
-
id: "
|
|
669
|
+
id: "containerpodman",
|
|
635
670
|
label: "podman rootless",
|
|
636
671
|
family: "container",
|
|
637
672
|
isolation: "namespace",
|
|
@@ -645,7 +680,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
645
680
|
mime: "application/vnd.devthink.container+json",
|
|
646
681
|
},
|
|
647
682
|
{
|
|
648
|
-
id: "
|
|
683
|
+
id: "containercontainerd",
|
|
649
684
|
label: "containerd supervisor",
|
|
650
685
|
family: "container",
|
|
651
686
|
isolation: "namespace",
|
|
@@ -659,7 +694,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
659
694
|
mime: "application/vnd.devthink.container+json",
|
|
660
695
|
},
|
|
661
696
|
{
|
|
662
|
-
id: "
|
|
697
|
+
id: "containerrunc",
|
|
663
698
|
label: "runc process",
|
|
664
699
|
family: "container",
|
|
665
700
|
isolation: "namespace",
|
|
@@ -673,7 +708,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
673
708
|
mime: "application/vnd.devthink.container+json",
|
|
674
709
|
},
|
|
675
710
|
{
|
|
676
|
-
id: "
|
|
711
|
+
id: "containercrun",
|
|
677
712
|
label: "crun process",
|
|
678
713
|
family: "container",
|
|
679
714
|
isolation: "namespace",
|
|
@@ -686,9 +721,9 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
686
721
|
network: false,
|
|
687
722
|
mime: "application/vnd.devthink.container+json",
|
|
688
723
|
},
|
|
689
|
-
|
|
724
|
+
/* ===== block: microvm modalities — per workflow, the e2b form (2) ===== */
|
|
690
725
|
{
|
|
691
|
-
id: "
|
|
726
|
+
id: "microvmfirecracker",
|
|
692
727
|
label: "firecracker microvm",
|
|
693
728
|
family: "microvm",
|
|
694
729
|
isolation: "vm",
|
|
@@ -702,7 +737,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
702
737
|
mime: "application/vnd.devthink.microvm+json",
|
|
703
738
|
},
|
|
704
739
|
{
|
|
705
|
-
id: "
|
|
740
|
+
id: "microvmgpuless",
|
|
706
741
|
label: "gpuless render",
|
|
707
742
|
family: "microvm",
|
|
708
743
|
isolation: "vm",
|
|
@@ -715,9 +750,10 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
715
750
|
network: true,
|
|
716
751
|
mime: "application/vnd.devthink.microvm+json",
|
|
717
752
|
},
|
|
718
|
-
|
|
753
|
+
/* ===== block: sandbox modalities — the pod family, one pod per session (1) ===== */
|
|
754
|
+
// the competitor recipe
|
|
719
755
|
{
|
|
720
|
-
id: "
|
|
756
|
+
id: "podsession",
|
|
721
757
|
label: "pod per session",
|
|
722
758
|
family: "pod",
|
|
723
759
|
isolation: "namespace",
|
|
@@ -730,9 +766,10 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
730
766
|
network: true,
|
|
731
767
|
mime: "application/vnd.devthink.pod+json",
|
|
732
768
|
},
|
|
733
|
-
|
|
769
|
+
/* ===== block: hardware modalities — the confidential compute (2) ===== */
|
|
770
|
+
// attested compute
|
|
734
771
|
{
|
|
735
|
-
id: "
|
|
772
|
+
id: "confidentialsevsnp",
|
|
736
773
|
label: "sev snp",
|
|
737
774
|
family: "confidential",
|
|
738
775
|
isolation: "hardware",
|
|
@@ -746,7 +783,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
746
783
|
mime: "application/vnd.devthink.confidential+json",
|
|
747
784
|
},
|
|
748
785
|
{
|
|
749
|
-
id: "
|
|
786
|
+
id: "confidentialtdx",
|
|
750
787
|
label: "tdx",
|
|
751
788
|
family: "confidential",
|
|
752
789
|
isolation: "hardware",
|
|
@@ -759,9 +796,9 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
759
796
|
network: true,
|
|
760
797
|
mime: "application/vnd.devthink.confidential+json",
|
|
761
798
|
},
|
|
762
|
-
|
|
799
|
+
/* ===== block: vm modalities — the emulator family, qemu full emulation (1) ===== */
|
|
763
800
|
{
|
|
764
|
-
id: "
|
|
801
|
+
id: "emulatorqemu",
|
|
765
802
|
label: "qemu",
|
|
766
803
|
family: "emulator",
|
|
767
804
|
isolation: "vm",
|
|
@@ -774,9 +811,9 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
774
811
|
network: true,
|
|
775
812
|
mime: "application/vnd.devthink.emulator+json",
|
|
776
813
|
},
|
|
777
|
-
|
|
814
|
+
/* ===== block: browser modalities — the sandbox-side browser, never the person's (2) ===== */
|
|
778
815
|
{
|
|
779
|
-
id: "
|
|
816
|
+
id: "browserserver",
|
|
780
817
|
label: "virtual browser",
|
|
781
818
|
family: "browser",
|
|
782
819
|
isolation: "namespace",
|
|
@@ -790,7 +827,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
790
827
|
mime: "application/vnd.devthink.browser+json",
|
|
791
828
|
},
|
|
792
829
|
{
|
|
793
|
-
id: "
|
|
830
|
+
id: "browserwebcontainer",
|
|
794
831
|
label: "webcontainer server side",
|
|
795
832
|
family: "browser",
|
|
796
833
|
isolation: "namespace",
|
|
@@ -803,10 +840,10 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
803
840
|
network: true,
|
|
804
841
|
mime: "application/vnd.devthink.browser+json",
|
|
805
842
|
},
|
|
806
|
-
|
|
807
|
-
// renders through (never the visitor display)
|
|
843
|
+
/* ===== block: hardware modalities — the virtual displays (2) ===== */
|
|
844
|
+
// the displays the sandboxed ui renders through (never the visitor display)
|
|
808
845
|
{
|
|
809
|
-
id: "
|
|
846
|
+
id: "screenxvfb",
|
|
810
847
|
label: "xvfb display",
|
|
811
848
|
family: "screen",
|
|
812
849
|
isolation: "process",
|
|
@@ -820,7 +857,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
820
857
|
mime: "application/vnd.devthink.screen+json",
|
|
821
858
|
},
|
|
822
859
|
{
|
|
823
|
-
id: "
|
|
860
|
+
id: "screenwayland",
|
|
824
861
|
label: "wayland compositor",
|
|
825
862
|
family: "screen",
|
|
826
863
|
isolation: "process",
|
|
@@ -833,9 +870,9 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
833
870
|
network: false,
|
|
834
871
|
mime: "application/vnd.devthink.screen+json",
|
|
835
872
|
},
|
|
836
|
-
|
|
873
|
+
/* ===== block: mobile modalities — the os images of the mobile lane (3) ===== */
|
|
837
874
|
{
|
|
838
|
-
id: "
|
|
875
|
+
id: "mobilecapacitor",
|
|
839
876
|
label: "capacitor",
|
|
840
877
|
family: "mobile",
|
|
841
878
|
isolation: "namespace",
|
|
@@ -849,7 +886,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
849
886
|
mime: "application/vnd.devthink.mobile+json",
|
|
850
887
|
},
|
|
851
888
|
{
|
|
852
|
-
id: "
|
|
889
|
+
id: "mobiletermux",
|
|
853
890
|
label: "termux",
|
|
854
891
|
family: "mobile",
|
|
855
892
|
isolation: "namespace",
|
|
@@ -863,7 +900,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
863
900
|
mime: "application/vnd.devthink.mobile+json",
|
|
864
901
|
},
|
|
865
902
|
{
|
|
866
|
-
id: "
|
|
903
|
+
id: "mobilepostmarketos",
|
|
867
904
|
label: "postmarketos",
|
|
868
905
|
family: "mobile",
|
|
869
906
|
isolation: "vm",
|
|
@@ -876,9 +913,9 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
876
913
|
network: true,
|
|
877
914
|
mime: "application/vnd.devthink.mobile+json",
|
|
878
915
|
},
|
|
879
|
-
|
|
916
|
+
/* ===== block: fs modalities — the vfs, the git objects and the cdn lane (3) ===== */
|
|
880
917
|
{
|
|
881
|
-
id: "
|
|
918
|
+
id: "fsvfs",
|
|
882
919
|
label: "vfs",
|
|
883
920
|
family: "fs",
|
|
884
921
|
isolation: "process",
|
|
@@ -892,7 +929,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
892
929
|
mime: "application/vnd.devthink.vfs+json",
|
|
893
930
|
},
|
|
894
931
|
{
|
|
895
|
-
id: "
|
|
932
|
+
id: "fsgitobjects",
|
|
896
933
|
label: "git objects vfs",
|
|
897
934
|
family: "fs",
|
|
898
935
|
isolation: "process",
|
|
@@ -906,7 +943,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
906
943
|
mime: "application/vnd.devthink.vfs+json",
|
|
907
944
|
},
|
|
908
945
|
{
|
|
909
|
-
id: "
|
|
946
|
+
id: "deliverycdn",
|
|
910
947
|
label: "cdn mirror",
|
|
911
948
|
family: "delivery",
|
|
912
949
|
isolation: "process",
|
|
@@ -919,10 +956,11 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
919
956
|
network: true,
|
|
920
957
|
mime: "application/vnd.devthink.cdn+json",
|
|
921
958
|
},
|
|
922
|
-
|
|
923
|
-
//
|
|
959
|
+
/* ===== block: delivery modalities — the wire protocols (4) ===== */
|
|
960
|
+
// the socket surface the self-hosted engine speaks, the lanes the
|
|
961
|
+
// streamed answer rides
|
|
924
962
|
{
|
|
925
|
-
id: "
|
|
963
|
+
id: "deliverywss",
|
|
926
964
|
label: "websocket streams",
|
|
927
965
|
family: "delivery",
|
|
928
966
|
isolation: "process",
|
|
@@ -936,7 +974,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
936
974
|
mime: "application/vnd.devthink.cdn+json",
|
|
937
975
|
},
|
|
938
976
|
{
|
|
939
|
-
id: "
|
|
977
|
+
id: "deliverywebtransport",
|
|
940
978
|
label: "webtransport lane",
|
|
941
979
|
family: "delivery",
|
|
942
980
|
isolation: "process",
|
|
@@ -950,7 +988,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
950
988
|
mime: "application/vnd.devthink.cdn+json",
|
|
951
989
|
},
|
|
952
990
|
{
|
|
953
|
-
id: "
|
|
991
|
+
id: "deliverygrpc",
|
|
954
992
|
label: "grpc lane",
|
|
955
993
|
family: "delivery",
|
|
956
994
|
isolation: "process",
|
|
@@ -964,7 +1002,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
964
1002
|
mime: "application/vnd.devthink.cdn+json",
|
|
965
1003
|
},
|
|
966
1004
|
{
|
|
967
|
-
id: "
|
|
1005
|
+
id: "deliverycapnproto",
|
|
968
1006
|
label: "capnproto lane",
|
|
969
1007
|
family: "delivery",
|
|
970
1008
|
isolation: "process",
|
|
@@ -977,11 +1015,12 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
977
1015
|
network: true,
|
|
978
1016
|
mime: "application/vnd.devthink.cdn+json",
|
|
979
1017
|
},
|
|
980
|
-
|
|
981
|
-
// recipe of the hosted buckets — sqlite and the wire
|
|
982
|
-
// s3-compatible daemons, every one a lane may mount
|
|
1018
|
+
/* ===== block: storage modalities — the self-hosted vault backends (7) ===== */
|
|
1019
|
+
// the competitor recipe of the hosted buckets — sqlite and the wire
|
|
1020
|
+
// protocols and the s3-compatible daemons, every one a lane may mount
|
|
1021
|
+
// behind the vault
|
|
983
1022
|
{
|
|
984
|
-
id: "
|
|
1023
|
+
id: "storagesqlite",
|
|
985
1024
|
label: "sqlite vault",
|
|
986
1025
|
family: "storage",
|
|
987
1026
|
isolation: "process",
|
|
@@ -995,7 +1034,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
995
1034
|
mime: "application/vnd.devthink.storage+json",
|
|
996
1035
|
},
|
|
997
1036
|
{
|
|
998
|
-
id: "
|
|
1037
|
+
id: "storagelibsql",
|
|
999
1038
|
label: "libsql vault",
|
|
1000
1039
|
family: "storage",
|
|
1001
1040
|
isolation: "process",
|
|
@@ -1009,7 +1048,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1009
1048
|
mime: "application/vnd.devthink.storage+json",
|
|
1010
1049
|
},
|
|
1011
1050
|
{
|
|
1012
|
-
id: "
|
|
1051
|
+
id: "storagemysql",
|
|
1013
1052
|
label: "mysql wire vault",
|
|
1014
1053
|
family: "storage",
|
|
1015
1054
|
isolation: "process",
|
|
@@ -1023,7 +1062,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1023
1062
|
mime: "application/vnd.devthink.storage+json",
|
|
1024
1063
|
},
|
|
1025
1064
|
{
|
|
1026
|
-
id: "
|
|
1065
|
+
id: "storagepostgres",
|
|
1027
1066
|
label: "postgres wire vault",
|
|
1028
1067
|
family: "storage",
|
|
1029
1068
|
isolation: "process",
|
|
@@ -1037,7 +1076,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1037
1076
|
mime: "application/vnd.devthink.storage+json",
|
|
1038
1077
|
},
|
|
1039
1078
|
{
|
|
1040
|
-
id: "
|
|
1079
|
+
id: "storages3",
|
|
1041
1080
|
label: "s3 compatible vault",
|
|
1042
1081
|
family: "storage",
|
|
1043
1082
|
isolation: "process",
|
|
@@ -1051,7 +1090,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1051
1090
|
mime: "application/vnd.devthink.storage+json",
|
|
1052
1091
|
},
|
|
1053
1092
|
{
|
|
1054
|
-
id: "
|
|
1093
|
+
id: "storageminio",
|
|
1055
1094
|
label: "minio vault",
|
|
1056
1095
|
family: "storage",
|
|
1057
1096
|
isolation: "process",
|
|
@@ -1065,7 +1104,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1065
1104
|
mime: "application/vnd.devthink.storage+json",
|
|
1066
1105
|
},
|
|
1067
1106
|
{
|
|
1068
|
-
id: "
|
|
1107
|
+
id: "storagegarage",
|
|
1069
1108
|
label: "garage vault",
|
|
1070
1109
|
family: "storage",
|
|
1071
1110
|
isolation: "process",
|
|
@@ -1078,11 +1117,10 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1078
1117
|
network: true,
|
|
1079
1118
|
mime: "application/vnd.devthink.storage+json",
|
|
1080
1119
|
},
|
|
1081
|
-
|
|
1082
|
-
//
|
|
1083
|
-
// asks)
|
|
1120
|
+
/* ===== block: network modalities — the resolvers and the private tunnels (5) ===== */
|
|
1121
|
+
// the hardened default stays off until a lane asks
|
|
1084
1122
|
{
|
|
1085
|
-
id: "
|
|
1123
|
+
id: "networkdns",
|
|
1086
1124
|
label: "dns resolver",
|
|
1087
1125
|
family: "network",
|
|
1088
1126
|
isolation: "process",
|
|
@@ -1096,7 +1134,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1096
1134
|
mime: "application/vnd.devthink.net+json",
|
|
1097
1135
|
},
|
|
1098
1136
|
{
|
|
1099
|
-
id: "
|
|
1137
|
+
id: "networkdoh",
|
|
1100
1138
|
label: "dns over https",
|
|
1101
1139
|
family: "network",
|
|
1102
1140
|
isolation: "process",
|
|
@@ -1110,7 +1148,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1110
1148
|
mime: "application/vnd.devthink.net+json",
|
|
1111
1149
|
},
|
|
1112
1150
|
{
|
|
1113
|
-
id: "
|
|
1151
|
+
id: "networktor",
|
|
1114
1152
|
label: "tor onion lane",
|
|
1115
1153
|
family: "network",
|
|
1116
1154
|
isolation: "process",
|
|
@@ -1124,7 +1162,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1124
1162
|
mime: "application/vnd.devthink.net+json",
|
|
1125
1163
|
},
|
|
1126
1164
|
{
|
|
1127
|
-
id: "
|
|
1165
|
+
id: "networki2p",
|
|
1128
1166
|
label: "i2p tunnel",
|
|
1129
1167
|
family: "network",
|
|
1130
1168
|
isolation: "process",
|
|
@@ -1138,7 +1176,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1138
1176
|
mime: "application/vnd.devthink.net+json",
|
|
1139
1177
|
},
|
|
1140
1178
|
{
|
|
1141
|
-
id: "
|
|
1179
|
+
id: "networkwireguard",
|
|
1142
1180
|
label: "wireguard tunnel",
|
|
1143
1181
|
family: "network",
|
|
1144
1182
|
isolation: "process",
|
|
@@ -1151,12 +1189,12 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1151
1189
|
network: true,
|
|
1152
1190
|
mime: "application/vnd.devthink.net+json",
|
|
1153
1191
|
},
|
|
1154
|
-
|
|
1155
|
-
// map and overlay the same bytes between
|
|
1156
|
-
//
|
|
1157
|
-
// the compressed ram at five hundred)
|
|
1192
|
+
/* ===== block: ram modalities — the storage-to-ram bridge (8) ===== */
|
|
1193
|
+
// the kernel recipes that swap, map and overlay the same bytes between
|
|
1194
|
+
// use flags (the memory ladder the corpus records: the tmpfs at the
|
|
1195
|
+
// microsecond, the memory map at five, the compressed ram at five hundred)
|
|
1158
1196
|
{
|
|
1159
|
-
id: "
|
|
1197
|
+
id: "ramtmpfs",
|
|
1160
1198
|
label: "tmpfs",
|
|
1161
1199
|
family: "ram",
|
|
1162
1200
|
isolation: "process",
|
|
@@ -1170,7 +1208,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1170
1208
|
mime: "application/vnd.devthink.ram+json",
|
|
1171
1209
|
},
|
|
1172
1210
|
{
|
|
1173
|
-
id: "
|
|
1211
|
+
id: "rammmap",
|
|
1174
1212
|
label: "zero copy map",
|
|
1175
1213
|
family: "ram",
|
|
1176
1214
|
isolation: "process",
|
|
@@ -1184,7 +1222,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1184
1222
|
mime: "application/vnd.devthink.ram+json",
|
|
1185
1223
|
},
|
|
1186
1224
|
{
|
|
1187
|
-
id: "
|
|
1225
|
+
id: "ramoverlayfs",
|
|
1188
1226
|
label: "overlayfs",
|
|
1189
1227
|
family: "ram",
|
|
1190
1228
|
isolation: "process",
|
|
@@ -1198,7 +1236,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1198
1236
|
mime: "application/vnd.devthink.ram+json",
|
|
1199
1237
|
},
|
|
1200
1238
|
{
|
|
1201
|
-
id: "
|
|
1239
|
+
id: "ramloopram",
|
|
1202
1240
|
label: "loop ram disk",
|
|
1203
1241
|
family: "ram",
|
|
1204
1242
|
isolation: "process",
|
|
@@ -1212,7 +1250,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1212
1250
|
mime: "application/vnd.devthink.ram+json",
|
|
1213
1251
|
},
|
|
1214
1252
|
{
|
|
1215
|
-
id: "
|
|
1253
|
+
id: "ramgitram",
|
|
1216
1254
|
label: "git in ram",
|
|
1217
1255
|
family: "ram",
|
|
1218
1256
|
isolation: "process",
|
|
@@ -1226,7 +1264,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1226
1264
|
mime: "application/vnd.devthink.ram+json",
|
|
1227
1265
|
},
|
|
1228
1266
|
{
|
|
1229
|
-
id: "
|
|
1267
|
+
id: "ramzram",
|
|
1230
1268
|
label: "zram zstd",
|
|
1231
1269
|
family: "ram",
|
|
1232
1270
|
isolation: "process",
|
|
@@ -1240,7 +1278,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1240
1278
|
mime: "application/vnd.devthink.ram+json",
|
|
1241
1279
|
},
|
|
1242
1280
|
{
|
|
1243
|
-
id: "
|
|
1281
|
+
id: "ramzswap",
|
|
1244
1282
|
label: "zswap",
|
|
1245
1283
|
family: "ram",
|
|
1246
1284
|
isolation: "process",
|
|
@@ -1254,7 +1292,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1254
1292
|
mime: "application/vnd.devthink.ram+json",
|
|
1255
1293
|
},
|
|
1256
1294
|
{
|
|
1257
|
-
id: "
|
|
1295
|
+
id: "ramswapfile",
|
|
1258
1296
|
label: "swapfile",
|
|
1259
1297
|
family: "ram",
|
|
1260
1298
|
isolation: "process",
|
|
@@ -1267,10 +1305,10 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1267
1305
|
network: false,
|
|
1268
1306
|
mime: "application/vnd.devthink.ram+json",
|
|
1269
1307
|
},
|
|
1270
|
-
|
|
1271
|
-
//
|
|
1308
|
+
/* ===== block: build modalities — the build graphs (5) ===== */
|
|
1309
|
+
// the artifact lane the repositories compile through, inside the sandbox
|
|
1272
1310
|
{
|
|
1273
|
-
id: "
|
|
1311
|
+
id: "buildmake",
|
|
1274
1312
|
label: "make builds",
|
|
1275
1313
|
family: "build",
|
|
1276
1314
|
isolation: "process",
|
|
@@ -1284,7 +1322,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1284
1322
|
mime: "application/vnd.devthink.build+json",
|
|
1285
1323
|
},
|
|
1286
1324
|
{
|
|
1287
|
-
id: "
|
|
1325
|
+
id: "buildbazel",
|
|
1288
1326
|
label: "bazel builds",
|
|
1289
1327
|
family: "build",
|
|
1290
1328
|
isolation: "process",
|
|
@@ -1298,7 +1336,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1298
1336
|
mime: "application/vnd.devthink.build+json",
|
|
1299
1337
|
},
|
|
1300
1338
|
{
|
|
1301
|
-
id: "
|
|
1339
|
+
id: "buildbuck",
|
|
1302
1340
|
label: "buck builds",
|
|
1303
1341
|
family: "build",
|
|
1304
1342
|
isolation: "process",
|
|
@@ -1312,7 +1350,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1312
1350
|
mime: "application/vnd.devthink.build+json",
|
|
1313
1351
|
},
|
|
1314
1352
|
{
|
|
1315
|
-
id: "
|
|
1353
|
+
id: "buildninja",
|
|
1316
1354
|
label: "ninja builds",
|
|
1317
1355
|
family: "build",
|
|
1318
1356
|
isolation: "process",
|
|
@@ -1326,7 +1364,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1326
1364
|
mime: "application/vnd.devthink.build+json",
|
|
1327
1365
|
},
|
|
1328
1366
|
{
|
|
1329
|
-
id: "
|
|
1367
|
+
id: "buildturborepo",
|
|
1330
1368
|
label: "turborepo builds",
|
|
1331
1369
|
family: "build",
|
|
1332
1370
|
isolation: "process",
|
|
@@ -1339,11 +1377,11 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1339
1377
|
network: true,
|
|
1340
1378
|
mime: "application/vnd.devthink.build+json",
|
|
1341
1379
|
},
|
|
1342
|
-
|
|
1343
|
-
// repository pipelines (no hosted ci dependency —
|
|
1344
|
-
// same self-hosted law)
|
|
1380
|
+
/* ===== block: ci modalities — the self-hosted runners (2) ===== */
|
|
1381
|
+
// the repository pipelines the engine drives (no hosted ci dependency —
|
|
1382
|
+
// the runner rides the same self-hosted law)
|
|
1345
1383
|
{
|
|
1346
|
-
id: "
|
|
1384
|
+
id: "ciactions",
|
|
1347
1385
|
label: "actions runner",
|
|
1348
1386
|
family: "ci",
|
|
1349
1387
|
isolation: "process",
|
|
@@ -1357,7 +1395,7 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1357
1395
|
mime: "application/vnd.devthink.ci+json",
|
|
1358
1396
|
},
|
|
1359
1397
|
{
|
|
1360
|
-
id: "
|
|
1398
|
+
id: "cigitlab",
|
|
1361
1399
|
label: "gitlab runner",
|
|
1362
1400
|
family: "ci",
|
|
1363
1401
|
isolation: "process",
|
|
@@ -1370,10 +1408,10 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1370
1408
|
network: true,
|
|
1371
1409
|
mime: "application/vnd.devthink.ci+json",
|
|
1372
1410
|
},
|
|
1373
|
-
|
|
1374
|
-
// declared slice — the record never claims a host gpu it does not mount
|
|
1411
|
+
/* ===== block: hardware modalities — the virtual graphics (1) ===== */
|
|
1412
|
+
// the declared slice — the record never claims a host gpu it does not mount
|
|
1375
1413
|
{
|
|
1376
|
-
id: "
|
|
1414
|
+
id: "gpuvirgl",
|
|
1377
1415
|
label: "virgl render",
|
|
1378
1416
|
family: "gpu",
|
|
1379
1417
|
isolation: "vm",
|
|
@@ -1386,10 +1424,11 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1386
1424
|
network: true,
|
|
1387
1425
|
mime: "application/vnd.devthink.gpu+json",
|
|
1388
1426
|
},
|
|
1389
|
-
|
|
1390
|
-
// visitor machine, and only under
|
|
1427
|
+
/* ===== block: local modalities — the explicit opt-in (1) ===== */
|
|
1428
|
+
// the only lane that may touch the visitor machine, and only under
|
|
1429
|
+
// declared consent
|
|
1391
1430
|
{
|
|
1392
|
-
id: "
|
|
1431
|
+
id: "localoptin",
|
|
1393
1432
|
label: "local opt in",
|
|
1394
1433
|
family: "local",
|
|
1395
1434
|
isolation: "process",
|
|
@@ -1404,6 +1443,11 @@ export const MODALITIES: readonly ModalityRecord[] = Object.freeze([
|
|
|
1404
1443
|
},
|
|
1405
1444
|
]);
|
|
1406
1445
|
|
|
1446
|
+
/** The count the catalog answers — derived from the records' real length
|
|
1447
|
+
* (never a hardcoded line, so the count cannot drift from the array) and
|
|
1448
|
+
* the line the tests pin against the plan the owner charged. */
|
|
1449
|
+
export const MODALITY_COUNT = MODALITIES.length;
|
|
1450
|
+
|
|
1407
1451
|
/** The honest plan report: what the catalog holds against the ninety
|
|
1408
1452
|
* plan —
|
|
1409
1453
|
* the counts per state and whether the plan is answered. The report is the
|