@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.
Files changed (314) hide show
  1. package/Dockerfile +167 -1334
  2. package/README.md +59 -60
  3. package/biome.jsonc +3 -3
  4. package/browser.ts +482 -0
  5. package/cli.ts +274 -0
  6. package/distribution.ts +731 -0
  7. package/docker.config +29 -8
  8. package/docs/{architecture.1.8.19.mmd → architecture1819.md} +6 -0
  9. package/docs/artifactavailability.md +2 -2
  10. package/docs/browser.md +18 -1
  11. package/docs/{containerplatforms.2.1.0.md → containerplatforms210.md} +1 -1
  12. package/docs/{documentmap.1.8.12.md → documentmap1812.md} +1 -1
  13. package/docs/extension.md +13 -2
  14. package/docs/features.md +5 -0
  15. package/docs/libraryapi.md +1 -1
  16. package/docs/{ninety.modalities.md → ninetymodalities.md} +87 -4
  17. package/docs/{planning.ninety.md → planningninety.md} +6 -6
  18. package/docs/{releasenotes.1.8.13.md → releasenotes1813.md} +2 -2
  19. package/docs/{releasenotes.1.8.14.md → releasenotes1814.md} +1 -1
  20. package/docs/{repo.synthesis.1.8.16.md → reposynthesis1816.md} +1 -1
  21. package/docs/todo.md +2 -2
  22. package/docs/{todo.1.8.15.md → todo1815.md} +1 -1
  23. package/docs/{todo.1.8.16.md → todo1816.md} +5 -5
  24. package/execution.ts +677 -0
  25. package/foundation.ts +314 -0
  26. package/index.ts +36 -34
  27. package/isolation.ts +84 -0
  28. package/modalityregistry.ts +189 -145
  29. package/modes.ts +170 -0
  30. package/mttg.config +1 -1
  31. package/orchestrator.ts +49 -15
  32. package/package.json +105 -89
  33. package/qemu.config +2 -2
  34. package/sandbox.ts +3279 -0
  35. package/scheduler.ts +1 -1
  36. package/server.ts +52 -0
  37. package/tsconfig.json +12 -13
  38. package/virtual.ts +7528 -0
  39. package/workloadlaw.ts +293 -0
  40. package/dist/App.d.ts +0 -5
  41. package/dist/App.js +0 -52
  42. package/dist/Sol/Sol.d.ts +0 -3
  43. package/dist/Sol/Sol.js +0 -46
  44. package/dist/Sol/agentbrowser/agentbrowser.d.ts +0 -9
  45. package/dist/Sol/agentbrowser/agentbrowser.js +0 -121
  46. package/dist/Sol/architecture/architecture.d.ts +0 -9
  47. package/dist/Sol/architecture/architecture.js +0 -93
  48. package/dist/Sol/compute/compute.d.ts +0 -9
  49. package/dist/Sol/compute/compute.js +0 -22
  50. package/dist/Sol/console/console.d.ts +0 -15
  51. package/dist/Sol/console/console.js +0 -292
  52. package/dist/Sol/dashboard/dashboard.d.ts +0 -10
  53. package/dist/Sol/dashboard/dashboard.js +0 -181
  54. package/dist/Sol/docs/docs.d.ts +0 -9
  55. package/dist/Sol/docs/docs.js +0 -28
  56. package/dist/Sol/home/home.d.ts +0 -35
  57. package/dist/Sol/home/home.js +0 -239
  58. package/dist/Sol/integrations/integrations.d.ts +0 -9
  59. package/dist/Sol/integrations/integrations.js +0 -83
  60. package/dist/Sol/intro/intro.d.ts +0 -7
  61. package/dist/Sol/intro/intro.js +0 -102
  62. package/dist/Sol/login/login.d.ts +0 -16
  63. package/dist/Sol/login/login.js +0 -49
  64. package/dist/Sol/notfound/notfound.d.ts +0 -9
  65. package/dist/Sol/notfound/notfound.js +0 -15
  66. package/dist/Sol/onboarding/onboarding.d.ts +0 -25
  67. package/dist/Sol/onboarding/onboarding.js +0 -60
  68. package/dist/Sol/playground/playground.d.ts +0 -9
  69. package/dist/Sol/playground/playground.js +0 -127
  70. package/dist/Sol/register/register.d.ts +0 -16
  71. package/dist/Sol/register/register.js +0 -193
  72. package/dist/Sol/shell/Shell.d.ts +0 -124
  73. package/dist/Sol/shell/Shell.js +0 -335
  74. package/dist/Sol/wingets/ComputeBootladder.d.ts +0 -6
  75. package/dist/Sol/wingets/ComputeBootladder.js +0 -71
  76. package/dist/Sol/wingets/ComputeModalitycatalog.d.ts +0 -7
  77. package/dist/Sol/wingets/ComputeModalitycatalog.js +0 -71
  78. package/dist/Sol/wingets/ConsoleApibadge.d.ts +0 -7
  79. package/dist/Sol/wingets/ConsoleApibadge.js +0 -5
  80. package/dist/Sol/wingets/ConsoleEdgelaw.d.ts +0 -6
  81. package/dist/Sol/wingets/ConsoleEdgelaw.js +0 -36
  82. package/dist/Sol/wingets/ConsoleEventstimeline.d.ts +0 -19
  83. package/dist/Sol/wingets/ConsoleEventstimeline.js +0 -12
  84. package/dist/Sol/wingets/ConsoleSnapshotcontrols.d.ts +0 -8
  85. package/dist/Sol/wingets/ConsoleSnapshotcontrols.js +0 -8
  86. package/dist/Sol/wingets/ConsoleSpecpanel.d.ts +0 -21
  87. package/dist/Sol/wingets/ConsoleSpecpanel.js +0 -75
  88. package/dist/Sol/wingets/ConsoleTerminal.d.ts +0 -22
  89. package/dist/Sol/wingets/ConsoleTerminal.js +0 -77
  90. package/dist/Sol/wingets/DashboardAccountpanel.d.ts +0 -18
  91. package/dist/Sol/wingets/DashboardAccountpanel.js +0 -65
  92. package/dist/Sol/wingets/DashboardAdminpanel.d.ts +0 -6
  93. package/dist/Sol/wingets/DashboardAdminpanel.js +0 -90
  94. package/dist/Sol/wingets/DashboardAuditlog.d.ts +0 -8
  95. package/dist/Sol/wingets/DashboardAuditlog.js +0 -50
  96. package/dist/Sol/wingets/DashboardCreatesandboxform.d.ts +0 -10
  97. package/dist/Sol/wingets/DashboardCreatesandboxform.js +0 -71
  98. package/dist/Sol/wingets/DashboardEventstimeline.d.ts +0 -8
  99. package/dist/Sol/wingets/DashboardEventstimeline.js +0 -83
  100. package/dist/Sol/wingets/DashboardGlobalsandboxestable.d.ts +0 -8
  101. package/dist/Sol/wingets/DashboardGlobalsandboxestable.js +0 -57
  102. package/dist/Sol/wingets/DashboardMeshnodestable.d.ts +0 -8
  103. package/dist/Sol/wingets/DashboardMeshnodestable.js +0 -103
  104. package/dist/Sol/wingets/DashboardSandboxlist.d.ts +0 -10
  105. package/dist/Sol/wingets/DashboardSandboxlist.js +0 -163
  106. package/dist/Sol/wingets/DashboardUserstable.d.ts +0 -8
  107. package/dist/Sol/wingets/DashboardUserstable.js +0 -78
  108. package/dist/Sol/wingets/HomeEntrygate.d.ts +0 -23
  109. package/dist/Sol/wingets/HomeEntrygate.js +0 -73
  110. package/dist/Sol/wingets/HomeMetricstrip.d.ts +0 -9
  111. package/dist/Sol/wingets/HomeMetricstrip.js +0 -4
  112. package/dist/Sol/wingets/HomeRuntimediagram.d.ts +0 -1
  113. package/dist/Sol/wingets/HomeRuntimediagram.js +0 -22
  114. package/dist/Sol/wingets/LoginForm.d.ts +0 -19
  115. package/dist/Sol/wingets/LoginForm.js +0 -141
  116. package/dist/Sol/wingets/RegisterPasswordconfirm.d.ts +0 -13
  117. package/dist/Sol/wingets/RegisterPasswordconfirm.js +0 -16
  118. package/dist/Sol/wingets/RegisterPasswordmeter.d.ts +0 -19
  119. package/dist/Sol/wingets/RegisterPasswordmeter.js +0 -65
  120. package/dist/Sol/wingets/RegisterUsernamerules.d.ts +0 -11
  121. package/dist/Sol/wingets/RegisterUsernamerules.js +0 -16
  122. package/dist/Sol/wingets/index.d.ts +0 -39
  123. package/dist/Sol/wingets/index.js +0 -39
  124. package/dist/alternatives.d.ts +0 -508
  125. package/dist/alternatives.js +0 -950
  126. package/dist/api.d.ts +0 -154
  127. package/dist/api.js +0 -174
  128. package/dist/auth.d.ts +0 -268
  129. package/dist/auth.js +0 -476
  130. package/dist/automation.d.ts +0 -425
  131. package/dist/automation.js +0 -566
  132. package/dist/browser.d.ts +0 -561
  133. package/dist/browser.js +0 -1058
  134. package/dist/capacitor.config.d.ts +0 -45
  135. package/dist/capacitor.config.js +0 -48
  136. package/dist/catalog.d.ts +0 -43
  137. package/dist/catalog.js +0 -44
  138. package/dist/cli.d.ts +0 -16
  139. package/dist/cli.js +0 -168
  140. package/dist/communication.d.ts +0 -181
  141. package/dist/communication.js +0 -376
  142. package/dist/compute.d.ts +0 -1160
  143. package/dist/compute.js +0 -2272
  144. package/dist/dashboardlib.d.ts +0 -58
  145. package/dist/dashboardlib.js +0 -161
  146. package/dist/db.d.ts +0 -569
  147. package/dist/db.js +0 -1080
  148. package/dist/distribution.d.ts +0 -528
  149. package/dist/distribution.js +0 -810
  150. package/dist/drizzle.config.d.ts +0 -20
  151. package/dist/drizzle.config.js +0 -18
  152. package/dist/edgelandes.d.ts +0 -70
  153. package/dist/edgelandes.host.d.ts +0 -26
  154. package/dist/edgelandes.host.js +0 -1089
  155. package/dist/edgelandes.inproc.d.ts +0 -27
  156. package/dist/edgelandes.inproc.js +0 -952
  157. package/dist/edgelandes.js +0 -1133
  158. package/dist/edgelandes.ninety.d.ts +0 -31
  159. package/dist/edgelandes.ninety.js +0 -174
  160. package/dist/edgelandes.virtual.d.ts +0 -25
  161. package/dist/edgelandes.virtual.js +0 -629
  162. package/dist/edgeplane.d.ts +0 -121
  163. package/dist/edgeplane.js +0 -341
  164. package/dist/examplelocaljob.d.ts +0 -1
  165. package/dist/examplelocaljob.js +0 -14
  166. package/dist/execution.d.ts +0 -529
  167. package/dist/execution.js +0 -760
  168. package/dist/family.d.ts +0 -16
  169. package/dist/family.js +0 -42
  170. package/dist/familyurl.d.ts +0 -21
  171. package/dist/familyurl.js +0 -24
  172. package/dist/format.d.ts +0 -18
  173. package/dist/format.js +0 -59
  174. package/dist/foundation.d.ts +0 -172
  175. package/dist/foundation.js +0 -312
  176. package/dist/index.d.ts +0 -735
  177. package/dist/index.js +0 -1020
  178. package/dist/integration.d.ts +0 -235
  179. package/dist/integration.js +0 -228
  180. package/dist/intelligence.d.ts +0 -93
  181. package/dist/intelligence.js +0 -144
  182. package/dist/isolation.d.ts +0 -128
  183. package/dist/isolation.js +0 -95
  184. package/dist/labels.d.ts +0 -665
  185. package/dist/labels.js +0 -707
  186. package/dist/localauth.d.ts +0 -127
  187. package/dist/localauth.js +0 -413
  188. package/dist/media.d.ts +0 -343
  189. package/dist/media.js +0 -985
  190. package/dist/mesh.d.ts +0 -177
  191. package/dist/mesh.js +0 -468
  192. package/dist/modalityregistry.d.ts +0 -109
  193. package/dist/modalityregistry.js +0 -1386
  194. package/dist/modes.d.ts +0 -358
  195. package/dist/modes.js +0 -133
  196. package/dist/onboardingstate.d.ts +0 -79
  197. package/dist/onboardingstate.js +0 -282
  198. package/dist/orchestrator.d.ts +0 -1338
  199. package/dist/orchestrator.js +0 -4310
  200. package/dist/packager/targetcli.js +0 -4
  201. package/dist/paths.d.ts +0 -2
  202. package/dist/paths.js +0 -14
  203. package/dist/performance.d.ts +0 -415
  204. package/dist/performance.js +0 -826
  205. package/dist/quantum.d.ts +0 -809
  206. package/dist/quantum.js +0 -2072
  207. package/dist/render.d.ts +0 -380
  208. package/dist/render.js +0 -1072
  209. package/dist/runall.d.ts +0 -2
  210. package/dist/runall.js +0 -39
  211. package/dist/runtimeprobe.d.ts +0 -4
  212. package/dist/runtimeprobe.js +0 -8
  213. package/dist/sandbox.d.ts +0 -355
  214. package/dist/sandbox.js +0 -1721
  215. package/dist/sandboxenvprofile.d.ts +0 -29
  216. package/dist/sandboxenvprofile.js +0 -89
  217. package/dist/sandboxprofile.d.ts +0 -137
  218. package/dist/sandboxprofile.js +0 -241
  219. package/dist/sandboxqueue.d.ts +0 -108
  220. package/dist/sandboxqueue.js +0 -201
  221. package/dist/sandboxquota.d.ts +0 -121
  222. package/dist/sandboxquota.js +0 -236
  223. package/dist/scheduler.d.ts +0 -595
  224. package/dist/scheduler.js +0 -1258
  225. package/dist/scriptlanes.d.ts +0 -182
  226. package/dist/scriptlanes.js +0 -660
  227. package/dist/scripts.buildengine.d.ts +0 -1
  228. package/dist/scripts.buildengine.js +0 -39
  229. package/dist/scripts.securitygate.d.ts +0 -1
  230. package/dist/scripts.securitygate.js +0 -68
  231. package/dist/scripts.validateflatnative.d.ts +0 -1
  232. package/dist/scripts.validateflatnative.js +0 -72
  233. package/dist/security.d.ts +0 -500
  234. package/dist/security.js +0 -1169
  235. package/dist/seedcatalog.d.ts +0 -13
  236. package/dist/seedcatalog.js +0 -46
  237. package/dist/server.d.ts +0 -20
  238. package/dist/server.js +0 -53
  239. package/dist/speccatalog.d.ts +0 -31
  240. package/dist/speccatalog.js +0 -163
  241. package/dist/tiers.d.ts +0 -1001
  242. package/dist/tiers.js +0 -2169
  243. package/dist/utils.d.ts +0 -2
  244. package/dist/utils.js +0 -5
  245. package/dist/vaulthandoff.d.ts +0 -141
  246. package/dist/vaulthandoff.js +0 -444
  247. package/dist/virtual.d.ts +0 -640
  248. package/dist/virtual.js +0 -1284
  249. package/dist/virtualcpu.d.ts +0 -315
  250. package/dist/virtualcpu.js +0 -1180
  251. package/dist/virtualgpu.d.ts +0 -344
  252. package/dist/virtualgpu.js +0 -1000
  253. package/dist/virtualization.d.ts +0 -606
  254. package/dist/virtualization.js +0 -1186
  255. package/dist/virtualmemory.d.ts +0 -817
  256. package/dist/virtualmemory.js +0 -1795
  257. package/dist/vite.config.d.ts +0 -3
  258. package/dist/vite.config.js +0 -48
  259. package/dist/vitest.config.d.ts +0 -2
  260. package/dist/vitest.config.js +0 -25
  261. package/dist/webserver.d.ts +0 -166
  262. package/dist/webserver.js +0 -2226
  263. package/dist/workloadlaw.d.ts +0 -133
  264. package/dist/workloadlaw.js +0 -193
  265. package/docs/.gitkeep +0 -0
  266. package/docs/architecture.1.8.19.md +0 -76
  267. package/docs/logs/examplesession.json +0 -54
  268. package/docs/repo.analysis.1.8.21.json +0 -2617
  269. package/docs/repo.candidates.1.8.21.jsonl +0 -666
  270. package/docs/repo.selected.1.8.21.json +0 -786
  271. package/manifest.json +0 -20
  272. package/media.ts +0 -1337
  273. package/virtualcpu.ts +0 -1274
  274. package/virtualgpu.ts +0 -1182
  275. package/virtualization.ts +0 -1628
  276. package/virtualmemory.ts +0 -2303
  277. /package/docs/{artifactresearch.1.8.9.md → artifactresearch189.md} +0 -0
  278. /package/docs/{batches.1816.to.1820.md → batches1816to1820.md} +0 -0
  279. /package/docs/{brancharchive.2026.08.18.md → brancharchive20260818.md} +0 -0
  280. /package/docs/{containerplatforms.1.8.17.md → containerplatforms1817.md} +0 -0
  281. /package/docs/{e2ugh.engine.md → e2ughengine.md} +0 -0
  282. /package/docs/{flatbuildresearch.1.8.11.md → flatbuildresearch1811.md} +0 -0
  283. /package/docs/{licenseaudit.1.8.12.md → licenseaudit1812.md} +0 -0
  284. /package/docs/{mobileconversionresearch.1.8.10.md → mobileconversionresearch1810.md} +0 -0
  285. /package/docs/{nativeidentityresearch.1.8.11.md → nativeidentityresearch1811.md} +0 -0
  286. /package/docs/{native.wrappers.md → nativewrappers.md} +0 -0
  287. /package/docs/{planning.1.8.18.md → planning1818.md} +0 -0
  288. /package/docs/{planning.1.8.19.md → planning1819.md} +0 -0
  289. /package/docs/{planning.engine.md → planningengine.md} +0 -0
  290. /package/docs/{releasenotes.1.8.12.md → releasenotes1812.md} +0 -0
  291. /package/docs/{releasenotes.1.8.15.md → releasenotes1815.md} +0 -0
  292. /package/docs/{releasenotes.1.8.16.md → releasenotes1816.md} +0 -0
  293. /package/docs/{releasenotes.1.8.17.md → releasenotes1817.md} +0 -0
  294. /package/docs/{releasenotes.1.8.18.md → releasenotes1818.md} +0 -0
  295. /package/docs/{releasenotes.1.8.19.md → releasenotes1819.md} +0 -0
  296. /package/docs/{reorganization.1.8.8.md → reorganization188.md} +0 -0
  297. /package/docs/{reorganization.1.8.9.md → reorganization189.md} +0 -0
  298. /package/docs/{repo.research.1.8.16.md → reporesearch1816.md} +0 -0
  299. /package/docs/{repo.research.1.8.21.md → reporesearch1821.md} +0 -0
  300. /package/docs/{repo.synthesis.1.8.21.md → reposynthesis1821.md} +0 -0
  301. /package/docs/{research.1.8.18.isolation.md → research1818isolation.md} +0 -0
  302. /package/docs/{research.1.8.19.virtual.browser.md → research1819virtualbrowser.md} +0 -0
  303. /package/docs/{scanningresearch.1.8.11.md → scanningresearch1811.md} +0 -0
  304. /package/docs/{securityaudit.1.8.7.md → securityaudit187.md} +0 -0
  305. /package/docs/{securityreferences.1.8.11.md → securityreferences1811.md} +0 -0
  306. /package/docs/{securityresearch.1.8.11.md → securityresearch1811.md} +0 -0
  307. /package/docs/{signingresearch.1.8.12.md → signingresearch1812.md} +0 -0
  308. /package/docs/{tauri.glib.risk.1.8.11.md → tauriglibrisk1811.md} +0 -0
  309. /package/docs/{todo.1.8.18.md → todo1818.md} +0 -0
  310. /package/docs/{todo.1.8.19.md → todo1819.md} +0 -0
  311. /package/docs/{toolchainresearch.1.8.9.md → toolchainresearch189.md} +0 -0
  312. /package/docs/{web.duplicatecleanup.md → webduplicatecleanup.md} +0 -0
  313. /package/docs/{web.ideas.md → webideas.md} +0 -0
  314. /package/docs/{workflowimprovements.2026.08.19.md → workflowimprovements20260819.md} +0 -0
@@ -1,18 +1,46 @@
1
- // # modalityregistry — the catalog of the sandbox modalities the saddle
2
- // engine opens (root layer, wave SV1). One record per modality: the
3
- // isolation family, the driver requirements it mounts, the boot cost class,
4
- // the hardening gates it carries, the mime contract it answers and the
5
- // honest state of its wiring. The registry is the spine of the ninety
6
- // modality plan (the owner's law: the ninety modalities of saddle act for
7
- // the system, nothing touches the visitor machine): the workload never
8
- // chooses by name — the join resolver reads the request (isolation, gpu,
9
- // network, boot budget) and answers the modality set that satisfies it, so
10
- // the person chooses none and the platform resolves the join of all (the
11
- // nuclear modality law). Every record declares its state — live, host or
12
- // planned — so the report never lies: a lane that does not wire a modality
13
- // says so instead of pretending. Pure data and pure functions: zero
14
- // storage, zero node-only imports, the browser-pure bundle keeps carrying
15
- // it.
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
- // the virtual family: the full machine with the virtual drivers
131
+ /* ===== block: vm modalities — the virtual family (5) ===== */
132
+ // the full machine with the virtual drivers
104
133
  {
105
- id: "virtual-full",
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: "virtual-vgpu",
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: "virtual-screen",
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: "virtual-drivers",
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: "virtual-kvm",
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
- // the runner family: the universal binary runner
203
+ /* ===== block: runner modalities — the universal binary and the package runtimes (8) ===== */
204
+ // the universal binary runner
175
205
  {
176
- id: "runner-universal",
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: "runner-node",
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: "runner-bun",
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: "runner-deno",
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: "runner-webpack",
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: "runner-babel",
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: "runner-wasm",
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: "runner-serverless",
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
- // the language family: the polyglot toolchains the engine mounts inside
288
- // the sandbox (every runner documented by its driver set — the exec lane
289
- // drives each through the host runtime, the honest probe answers per host)
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: "language-python",
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: "language-go",
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: "language-rust",
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: "language-cargo",
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: "language-v",
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: "language-java",
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: "language-dotnet",
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: "language-ruby",
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: "language-php",
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: "language-lua",
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: "language-zig",
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: "language-nim",
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: "runtime-jvm",
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: "runtime-clr",
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: "runtime-workerd",
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: "runner-wasi",
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
- // the container family: docker hardened, the profile pair and ghcr immutable
548
+ /* ===== block: sandbox modalities — the container family, docker hardened (5) ===== */
549
+ // the profile pair and ghcr immutable
517
550
  {
518
- id: "container-docker",
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: "container-max",
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: "container-lite",
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: "container-ghcr",
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: "container-runsc",
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
- // the sandbox family: the os jails short of a container daemon (the
588
- // isolation ladder the engine walks below the microvm)
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: "sandbox-bubblewrap",
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: "sandbox-nsjail",
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: "sandbox-chroot",
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
- // the container extensions: the rootless and the oci runtimes the lane
632
- // can drive beside the docker daemon
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: "container-podman",
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: "container-containerd",
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: "container-runc",
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: "container-crun",
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
- // the microvm family: per workflow, the e2b form
724
+ /* ===== block: microvm modalities — per workflow, the e2b form (2) ===== */
690
725
  {
691
- id: "microvm-firecracker",
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: "microvm-gpuless",
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
- // the pod family: one pod per session (the competitor recipe)
753
+ /* ===== block: sandbox modalities — the pod family, one pod per session (1) ===== */
754
+ // the competitor recipe
719
755
  {
720
- id: "pod-session",
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
- // the confidential family: attested compute
769
+ /* ===== block: hardware modalities — the confidential compute (2) ===== */
770
+ // attested compute
734
771
  {
735
- id: "confidential-sevsnp",
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: "confidential-tdx",
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
- // the emulator family: qemu full emulation
799
+ /* ===== block: vm modalities — the emulator family, qemu full emulation (1) ===== */
763
800
  {
764
- id: "emulator-qemu",
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
- // the browser family: the sandbox-side browser (never the person's)
814
+ /* ===== block: browser modalities — the sandbox-side browser, never the person's (2) ===== */
778
815
  {
779
- id: "browser-server",
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: "browser-webcontainer",
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
- // the screen family extensions: the virtual displays the sandboxed ui
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: "screen-xvfb",
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: "screen-wayland",
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
- // the mobile family: the os images of the mobile lane
873
+ /* ===== block: mobile modalities — the os images of the mobile lane (3) ===== */
837
874
  {
838
- id: "mobile-capacitor",
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: "mobile-termux",
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: "mobile-postmarketos",
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
- // the fs and delivery families: the vfs, the git objects and the cdn lane
916
+ /* ===== block: fs modalities — the vfs, the git objects and the cdn lane (3) ===== */
880
917
  {
881
- id: "fs-vfs",
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: "fs-gitobjects",
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: "delivery-cdn",
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
- // the delivery protocol extensions: the wire lanes the streamed answer
923
- // rides (the socket surface the self-hosted engine speaks)
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: "delivery-wss",
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: "delivery-webtransport",
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: "delivery-grpc",
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: "delivery-capnproto",
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
- // the storage family: the self-hosted vault backends (the competitor
981
- // recipe of the hosted buckets — sqlite and the wire protocols and the
982
- // s3-compatible daemons, every one a lane may mount behind the vault)
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: "storage-sqlite",
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: "storage-libsql",
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: "storage-mysql",
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: "storage-postgres",
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: "storage-s3",
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: "storage-minio",
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: "storage-garage",
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
- // the network family: the resolution and the private tunnels the engine
1082
- // opens for the sandbox (the hardened default stays off until a lane
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: "network-dns",
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: "network-doh",
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: "network-tor",
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: "network-i2p",
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: "network-wireguard",
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
- // the ram family: the storage-to-ram bridge, the kernel recipes that swap,
1155
- // map and overlay the same bytes between use flags (the memory ladder the
1156
- // corpus records: the tmpfs at the microsecond, the memory map at five,
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: "ram-tmpfs",
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: "ram-mmap",
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: "ram-overlayfs",
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: "ram-loopram",
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: "ram-gitram",
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: "ram-zram",
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: "ram-zswap",
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: "ram-swapfile",
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
- // the build family: the build graphs the engine runs inside the sandbox
1271
- // (the artifact lane the repositories compile through)
1308
+ /* ===== block: build modalities — the build graphs (5) ===== */
1309
+ // the artifact lane the repositories compile through, inside the sandbox
1272
1310
  {
1273
- id: "build-make",
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: "build-bazel",
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: "build-buck",
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: "build-ninja",
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: "build-turborepo",
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
- // the ci family: the self-hosted runners the engine drives for the
1343
- // repository pipelines (no hosted ci dependency — the runner rides the
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: "ci-actions",
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: "ci-gitlab",
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
- // the gpu family: the virtual graphics the machine may present (the
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: "gpu-virgl",
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
- // the local family: the explicit opt-in (the only lane that may touch the
1390
- // visitor machine, and only under declared consent)
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: "local-optin",
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