@mostra/protocol 0.0.0-stage → 0.1.0

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 (439) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +38 -2
  3. package/dist/actions.d.ts +273 -0
  4. package/dist/actions.d.ts.map +1 -0
  5. package/dist/actions.js +154 -0
  6. package/dist/actions.js.map +1 -0
  7. package/dist/artifact.d.ts +113 -0
  8. package/dist/artifact.d.ts.map +1 -0
  9. package/dist/artifact.js +79 -0
  10. package/dist/artifact.js.map +1 -0
  11. package/dist/bridge.d.ts +295 -0
  12. package/dist/bridge.d.ts.map +1 -0
  13. package/dist/bridge.js +343 -0
  14. package/dist/bridge.js.map +1 -0
  15. package/dist/browser.d.ts +195 -0
  16. package/dist/browser.d.ts.map +1 -0
  17. package/dist/browser.js +156 -0
  18. package/dist/browser.js.map +1 -0
  19. package/dist/bundle.d.ts +155 -0
  20. package/dist/bundle.d.ts.map +1 -0
  21. package/dist/bundle.js +130 -0
  22. package/dist/bundle.js.map +1 -0
  23. package/dist/canonical.d.ts +23 -0
  24. package/dist/canonical.d.ts.map +1 -0
  25. package/dist/canonical.js +45 -0
  26. package/dist/canonical.js.map +1 -0
  27. package/dist/capability.d.ts +38 -0
  28. package/dist/capability.d.ts.map +1 -0
  29. package/dist/capability.js +61 -0
  30. package/dist/capability.js.map +1 -0
  31. package/dist/diagnostics/codes/a11y.d.ts +8 -0
  32. package/dist/diagnostics/codes/a11y.d.ts.map +1 -0
  33. package/dist/diagnostics/codes/a11y.js +30 -0
  34. package/dist/diagnostics/codes/a11y.js.map +1 -0
  35. package/dist/diagnostics/codes/action.d.ts +8 -0
  36. package/dist/diagnostics/codes/action.d.ts.map +1 -0
  37. package/dist/diagnostics/codes/action.js +110 -0
  38. package/dist/diagnostics/codes/action.js.map +1 -0
  39. package/dist/diagnostics/codes/artifact.d.ts +8 -0
  40. package/dist/diagnostics/codes/artifact.d.ts.map +1 -0
  41. package/dist/diagnostics/codes/artifact.js +121 -0
  42. package/dist/diagnostics/codes/artifact.js.map +1 -0
  43. package/dist/diagnostics/codes/build.d.ts +8 -0
  44. package/dist/diagnostics/codes/build.d.ts.map +1 -0
  45. package/dist/diagnostics/codes/build.js +55 -0
  46. package/dist/diagnostics/codes/build.js.map +1 -0
  47. package/dist/diagnostics/codes/cli.d.ts +8 -0
  48. package/dist/diagnostics/codes/cli.d.ts.map +1 -0
  49. package/dist/diagnostics/codes/cli.js +44 -0
  50. package/dist/diagnostics/codes/cli.js.map +1 -0
  51. package/dist/diagnostics/codes/console.d.ts +8 -0
  52. package/dist/diagnostics/codes/console.d.ts.map +1 -0
  53. package/dist/diagnostics/codes/console.js +30 -0
  54. package/dist/diagnostics/codes/console.js.map +1 -0
  55. package/dist/diagnostics/codes/dep.d.ts +8 -0
  56. package/dist/diagnostics/codes/dep.d.ts.map +1 -0
  57. package/dist/diagnostics/codes/dep.js +88 -0
  58. package/dist/diagnostics/codes/dep.js.map +1 -0
  59. package/dist/diagnostics/codes/env.d.ts +8 -0
  60. package/dist/diagnostics/codes/env.d.ts.map +1 -0
  61. package/dist/diagnostics/codes/env.js +132 -0
  62. package/dist/diagnostics/codes/env.js.map +1 -0
  63. package/dist/diagnostics/codes/field.d.ts +8 -0
  64. package/dist/diagnostics/codes/field.d.ts.map +1 -0
  65. package/dist/diagnostics/codes/field.js +99 -0
  66. package/dist/diagnostics/codes/field.js.map +1 -0
  67. package/dist/diagnostics/codes/home.d.ts +8 -0
  68. package/dist/diagnostics/codes/home.d.ts.map +1 -0
  69. package/dist/diagnostics/codes/home.js +132 -0
  70. package/dist/diagnostics/codes/home.js.map +1 -0
  71. package/dist/diagnostics/codes/host.d.ts +8 -0
  72. package/dist/diagnostics/codes/host.d.ts.map +1 -0
  73. package/dist/diagnostics/codes/host.js +176 -0
  74. package/dist/diagnostics/codes/host.js.map +1 -0
  75. package/dist/diagnostics/codes/hygiene.d.ts +8 -0
  76. package/dist/diagnostics/codes/hygiene.d.ts.map +1 -0
  77. package/dist/diagnostics/codes/hygiene.js +154 -0
  78. package/dist/diagnostics/codes/hygiene.js.map +1 -0
  79. package/dist/diagnostics/codes/index.d.ts +51 -0
  80. package/dist/diagnostics/codes/index.d.ts.map +1 -0
  81. package/dist/diagnostics/codes/index.js +72 -0
  82. package/dist/diagnostics/codes/index.js.map +1 -0
  83. package/dist/diagnostics/codes/live.d.ts +8 -0
  84. package/dist/diagnostics/codes/live.d.ts.map +1 -0
  85. package/dist/diagnostics/codes/live.js +30 -0
  86. package/dist/diagnostics/codes/live.js.map +1 -0
  87. package/dist/diagnostics/codes/manifest.d.ts +8 -0
  88. package/dist/diagnostics/codes/manifest.d.ts.map +1 -0
  89. package/dist/diagnostics/codes/manifest.js +44 -0
  90. package/dist/diagnostics/codes/manifest.js.map +1 -0
  91. package/dist/diagnostics/codes/network.d.ts +8 -0
  92. package/dist/diagnostics/codes/network.d.ts.map +1 -0
  93. package/dist/diagnostics/codes/network.js +30 -0
  94. package/dist/diagnostics/codes/network.js.map +1 -0
  95. package/dist/diagnostics/codes/platform.d.ts +8 -0
  96. package/dist/diagnostics/codes/platform.d.ts.map +1 -0
  97. package/dist/diagnostics/codes/platform.js +18 -0
  98. package/dist/diagnostics/codes/platform.js.map +1 -0
  99. package/dist/diagnostics/codes/publish.d.ts +8 -0
  100. package/dist/diagnostics/codes/publish.d.ts.map +1 -0
  101. package/dist/diagnostics/codes/publish.js +44 -0
  102. package/dist/diagnostics/codes/publish.js.map +1 -0
  103. package/dist/diagnostics/codes/regression.d.ts +8 -0
  104. package/dist/diagnostics/codes/regression.d.ts.map +1 -0
  105. package/dist/diagnostics/codes/regression.js +77 -0
  106. package/dist/diagnostics/codes/regression.js.map +1 -0
  107. package/dist/diagnostics/codes/runtime.d.ts +8 -0
  108. package/dist/diagnostics/codes/runtime.d.ts.map +1 -0
  109. package/dist/diagnostics/codes/runtime.js +66 -0
  110. package/dist/diagnostics/codes/runtime.js.map +1 -0
  111. package/dist/diagnostics/codes/secret.d.ts +8 -0
  112. package/dist/diagnostics/codes/secret.d.ts.map +1 -0
  113. package/dist/diagnostics/codes/secret.js +18 -0
  114. package/dist/diagnostics/codes/secret.js.map +1 -0
  115. package/dist/diagnostics/codes/smoke.d.ts +8 -0
  116. package/dist/diagnostics/codes/smoke.d.ts.map +1 -0
  117. package/dist/diagnostics/codes/smoke.js +30 -0
  118. package/dist/diagnostics/codes/smoke.js.map +1 -0
  119. package/dist/diagnostics/codes/submit.d.ts +8 -0
  120. package/dist/diagnostics/codes/submit.d.ts.map +1 -0
  121. package/dist/diagnostics/codes/submit.js +99 -0
  122. package/dist/diagnostics/codes/submit.js.map +1 -0
  123. package/dist/diagnostics/codes/target.d.ts +8 -0
  124. package/dist/diagnostics/codes/target.d.ts.map +1 -0
  125. package/dist/diagnostics/codes/target.js +18 -0
  126. package/dist/diagnostics/codes/target.js.map +1 -0
  127. package/dist/diagnostics/codes/type.d.ts +8 -0
  128. package/dist/diagnostics/codes/type.d.ts.map +1 -0
  129. package/dist/diagnostics/codes/type.js +30 -0
  130. package/dist/diagnostics/codes/type.js.map +1 -0
  131. package/dist/diagnostics/codes/verify.d.ts +8 -0
  132. package/dist/diagnostics/codes/verify.d.ts.map +1 -0
  133. package/dist/diagnostics/codes/verify.js +99 -0
  134. package/dist/diagnostics/codes/verify.js.map +1 -0
  135. package/dist/diagnostics/diagnostic.d.ts +79 -0
  136. package/dist/diagnostics/diagnostic.d.ts.map +1 -0
  137. package/dist/diagnostics/diagnostic.js +131 -0
  138. package/dist/diagnostics/diagnostic.js.map +1 -0
  139. package/dist/diagnostics/spec.d.ts +49 -0
  140. package/dist/diagnostics/spec.d.ts.map +1 -0
  141. package/dist/diagnostics/spec.js +31 -0
  142. package/dist/diagnostics/spec.js.map +1 -0
  143. package/dist/hygiene.d.ts +66 -0
  144. package/dist/hygiene.d.ts.map +1 -0
  145. package/dist/hygiene.js +134 -0
  146. package/dist/hygiene.js.map +1 -0
  147. package/dist/ids.d.ts +119 -0
  148. package/dist/ids.d.ts.map +1 -0
  149. package/dist/ids.js +135 -0
  150. package/dist/ids.js.map +1 -0
  151. package/dist/index.d.ts +86 -0
  152. package/dist/index.js +86 -0
  153. package/dist/interaction.d.ts +391 -0
  154. package/dist/interaction.d.ts.map +1 -0
  155. package/dist/interaction.js +306 -0
  156. package/dist/interaction.js.map +1 -0
  157. package/dist/manifest.d.ts +97 -0
  158. package/dist/manifest.d.ts.map +1 -0
  159. package/dist/manifest.js +101 -0
  160. package/dist/manifest.js.map +1 -0
  161. package/dist/method.d.ts +26 -0
  162. package/dist/method.d.ts.map +1 -0
  163. package/dist/method.js +10 -0
  164. package/dist/method.js.map +1 -0
  165. package/dist/methods/artifact/create.d.ts +29 -0
  166. package/dist/methods/artifact/create.d.ts.map +1 -0
  167. package/dist/methods/artifact/create.js +31 -0
  168. package/dist/methods/artifact/create.js.map +1 -0
  169. package/dist/methods/artifact/get.d.ts +17 -0
  170. package/dist/methods/artifact/get.d.ts.map +1 -0
  171. package/dist/methods/artifact/get.js +21 -0
  172. package/dist/methods/artifact/get.js.map +1 -0
  173. package/dist/methods/artifact/list.d.ts +22 -0
  174. package/dist/methods/artifact/list.d.ts.map +1 -0
  175. package/dist/methods/artifact/list.js +19 -0
  176. package/dist/methods/artifact/list.js.map +1 -0
  177. package/dist/methods/artifact/publish.d.ts +28 -0
  178. package/dist/methods/artifact/publish.d.ts.map +1 -0
  179. package/dist/methods/artifact/publish.js +28 -0
  180. package/dist/methods/artifact/publish.js.map +1 -0
  181. package/dist/methods/artifact/verify.d.ts +29 -0
  182. package/dist/methods/artifact/verify.d.ts.map +1 -0
  183. package/dist/methods/artifact/verify.js +27 -0
  184. package/dist/methods/artifact/verify.js.map +1 -0
  185. package/dist/methods/deps/add.d.ts +43 -0
  186. package/dist/methods/deps/add.d.ts.map +1 -0
  187. package/dist/methods/deps/add.js +40 -0
  188. package/dist/methods/deps/add.js.map +1 -0
  189. package/dist/methods/dev/start.d.ts +52 -0
  190. package/dist/methods/dev/start.d.ts.map +1 -0
  191. package/dist/methods/dev/start.js +56 -0
  192. package/dist/methods/dev/start.js.map +1 -0
  193. package/dist/methods/dev/stop.d.ts +16 -0
  194. package/dist/methods/dev/stop.d.ts.map +1 -0
  195. package/dist/methods/dev/stop.js +21 -0
  196. package/dist/methods/dev/stop.js.map +1 -0
  197. package/dist/methods/events/ack.d.ts +20 -0
  198. package/dist/methods/events/ack.d.ts.map +1 -0
  199. package/dist/methods/events/ack.js +26 -0
  200. package/dist/methods/events/ack.js.map +1 -0
  201. package/dist/methods/events/read.d.ts +40 -0
  202. package/dist/methods/events/read.d.ts.map +1 -0
  203. package/dist/methods/events/read.js +35 -0
  204. package/dist/methods/events/read.js.map +1 -0
  205. package/dist/methods/events/subscribe.d.ts +54 -0
  206. package/dist/methods/events/subscribe.d.ts.map +1 -0
  207. package/dist/methods/events/subscribe.js +44 -0
  208. package/dist/methods/events/subscribe.js.map +1 -0
  209. package/dist/methods/events/unsubscribe.d.ts +16 -0
  210. package/dist/methods/events/unsubscribe.d.ts.map +1 -0
  211. package/dist/methods/events/unsubscribe.js +21 -0
  212. package/dist/methods/events/unsubscribe.js.map +1 -0
  213. package/dist/methods/gc/run.d.ts +76 -0
  214. package/dist/methods/gc/run.d.ts.map +1 -0
  215. package/dist/methods/gc/run.js +56 -0
  216. package/dist/methods/gc/run.js.map +1 -0
  217. package/dist/methods/index.d.ts +6 -0
  218. package/dist/methods/index.d.ts.map +1 -0
  219. package/dist/methods/index.js +78 -0
  220. package/dist/methods/index.js.map +1 -0
  221. package/dist/methods/instance/check.d.ts +30 -0
  222. package/dist/methods/instance/check.d.ts.map +1 -0
  223. package/dist/methods/instance/check.js +34 -0
  224. package/dist/methods/instance/check.js.map +1 -0
  225. package/dist/methods/instance/status.d.ts +102 -0
  226. package/dist/methods/instance/status.d.ts.map +1 -0
  227. package/dist/methods/instance/status.js +83 -0
  228. package/dist/methods/instance/status.js.map +1 -0
  229. package/dist/methods/live/push.d.ts +28 -0
  230. package/dist/methods/live/push.d.ts.map +1 -0
  231. package/dist/methods/live/push.js +35 -0
  232. package/dist/methods/live/push.js.map +1 -0
  233. package/dist/methods/mostra/initialize.d.ts +143 -0
  234. package/dist/methods/mostra/initialize.d.ts.map +1 -0
  235. package/dist/methods/mostra/initialize.js +97 -0
  236. package/dist/methods/mostra/initialize.js.map +1 -0
  237. package/dist/methods/mostra/shutdown.d.ts +14 -0
  238. package/dist/methods/mostra/shutdown.d.ts.map +1 -0
  239. package/dist/methods/mostra/shutdown.js +22 -0
  240. package/dist/methods/mostra/shutdown.js.map +1 -0
  241. package/dist/methods/port/drafts-mirror.d.ts +30 -0
  242. package/dist/methods/port/drafts-mirror.d.ts.map +1 -0
  243. package/dist/methods/port/drafts-mirror.js +33 -0
  244. package/dist/methods/port/drafts-mirror.js.map +1 -0
  245. package/dist/methods/port/secrets-get.d.ts +19 -0
  246. package/dist/methods/port/secrets-get.d.ts.map +1 -0
  247. package/dist/methods/port/secrets-get.js +31 -0
  248. package/dist/methods/port/secrets-get.js.map +1 -0
  249. package/dist/methods/port/submissions-deliver.d.ts +38 -0
  250. package/dist/methods/port/submissions-deliver.d.ts.map +1 -0
  251. package/dist/methods/port/submissions-deliver.js +38 -0
  252. package/dist/methods/port/submissions-deliver.js.map +1 -0
  253. package/dist/methods/port/trusted-controls-activated.d.ts +27 -0
  254. package/dist/methods/port/trusted-controls-activated.d.ts.map +1 -0
  255. package/dist/methods/port/trusted-controls-activated.js +33 -0
  256. package/dist/methods/port/trusted-controls-activated.js.map +1 -0
  257. package/dist/methods/port/trusted-controls-policy.d.ts +21 -0
  258. package/dist/methods/port/trusted-controls-policy.d.ts.map +1 -0
  259. package/dist/methods/port/trusted-controls-policy.js +27 -0
  260. package/dist/methods/port/trusted-controls-policy.js.map +1 -0
  261. package/dist/methods/results/get.d.ts +32 -0
  262. package/dist/methods/results/get.d.ts.map +1 -0
  263. package/dist/methods/results/get.js +36 -0
  264. package/dist/methods/results/get.js.map +1 -0
  265. package/dist/methods/secret/delete.d.ts +22 -0
  266. package/dist/methods/secret/delete.d.ts.map +1 -0
  267. package/dist/methods/secret/delete.js +32 -0
  268. package/dist/methods/secret/delete.js.map +1 -0
  269. package/dist/methods/secret/list.d.ts +21 -0
  270. package/dist/methods/secret/list.d.ts.map +1 -0
  271. package/dist/methods/secret/list.js +29 -0
  272. package/dist/methods/secret/list.js.map +1 -0
  273. package/dist/methods/secret/set.d.ts +37 -0
  274. package/dist/methods/secret/set.d.ts.map +1 -0
  275. package/dist/methods/secret/set.js +41 -0
  276. package/dist/methods/secret/set.js.map +1 -0
  277. package/dist/methods/state/get.d.ts +25 -0
  278. package/dist/methods/state/get.d.ts.map +1 -0
  279. package/dist/methods/state/get.js +29 -0
  280. package/dist/methods/state/get.js.map +1 -0
  281. package/dist/methods/state/patch.d.ts +32 -0
  282. package/dist/methods/state/patch.d.ts.map +1 -0
  283. package/dist/methods/state/patch.js +29 -0
  284. package/dist/methods/state/patch.js.map +1 -0
  285. package/dist/methods/view/default.d.ts +19 -0
  286. package/dist/methods/view/default.d.ts.map +1 -0
  287. package/dist/methods/view/default.js +23 -0
  288. package/dist/methods/view/default.js.map +1 -0
  289. package/dist/methods/view/launch.d.ts +27 -0
  290. package/dist/methods/view/launch.d.ts.map +1 -0
  291. package/dist/methods/view/launch.js +30 -0
  292. package/dist/methods/view/launch.js.map +1 -0
  293. package/dist/methods/view/revoke.d.ts +19 -0
  294. package/dist/methods/view/revoke.d.ts.map +1 -0
  295. package/dist/methods/view/revoke.js +26 -0
  296. package/dist/methods/view/revoke.js.map +1 -0
  297. package/dist/methods/view/rotate.d.ts +21 -0
  298. package/dist/methods/view/rotate.d.ts.map +1 -0
  299. package/dist/methods/view/rotate.js +27 -0
  300. package/dist/methods/view/rotate.js.map +1 -0
  301. package/dist/methods/view/url.d.ts +52 -0
  302. package/dist/methods/view/url.d.ts.map +1 -0
  303. package/dist/methods/view/url.js +43 -0
  304. package/dist/methods/view/url.js.map +1 -0
  305. package/dist/methods/wait/wait.d.ts +37 -0
  306. package/dist/methods/wait/wait.d.ts.map +1 -0
  307. package/dist/methods/wait/wait.js +39 -0
  308. package/dist/methods/wait/wait.js.map +1 -0
  309. package/dist/revision.d.ts +43 -0
  310. package/dist/revision.d.ts.map +1 -0
  311. package/dist/revision.js +69 -0
  312. package/dist/revision.js.map +1 -0
  313. package/dist/rpc/error.d.ts +47 -0
  314. package/dist/rpc/error.d.ts.map +1 -0
  315. package/dist/rpc/error.js +77 -0
  316. package/dist/rpc/error.js.map +1 -0
  317. package/dist/rpc/lines.d.ts +30 -0
  318. package/dist/rpc/lines.d.ts.map +1 -0
  319. package/dist/rpc/lines.js +63 -0
  320. package/dist/rpc/lines.js.map +1 -0
  321. package/dist/rpc/messages.d.ts +92 -0
  322. package/dist/rpc/messages.d.ts.map +1 -0
  323. package/dist/rpc/messages.js +133 -0
  324. package/dist/rpc/messages.js.map +1 -0
  325. package/dist/rpc/peer.d.ts +81 -0
  326. package/dist/rpc/peer.d.ts.map +1 -0
  327. package/dist/rpc/peer.js +208 -0
  328. package/dist/rpc/peer.js.map +1 -0
  329. package/dist/serializer.d.ts +178 -0
  330. package/dist/serializer.d.ts.map +1 -0
  331. package/dist/serializer.js +929 -0
  332. package/dist/serializer.js.map +1 -0
  333. package/dist/verify.d.ts +254 -0
  334. package/dist/verify.d.ts.map +1 -0
  335. package/dist/verify.js +243 -0
  336. package/dist/verify.js.map +1 -0
  337. package/dist/view.d.ts +103 -0
  338. package/dist/view.d.ts.map +1 -0
  339. package/dist/view.js +110 -0
  340. package/dist/view.js.map +1 -0
  341. package/dist/wire-registry.js +11 -0
  342. package/dist/wire-registry.js.map +1 -0
  343. package/dist/worker.d.ts +249 -0
  344. package/dist/worker.d.ts.map +1 -0
  345. package/dist/worker.js +158 -0
  346. package/dist/worker.js.map +1 -0
  347. package/package.json +114 -3
  348. package/schemas/protocol.draft-07.json +5120 -0
  349. package/schemas/protocol.schema.json +4964 -0
  350. package/src/actions.ts +418 -0
  351. package/src/artifact.ts +187 -0
  352. package/src/bridge.ts +618 -0
  353. package/src/browser.ts +374 -0
  354. package/src/bundle.ts +264 -0
  355. package/src/canonical.ts +49 -0
  356. package/src/capability.ts +92 -0
  357. package/src/diagnostics/codes/a11y.ts +41 -0
  358. package/src/diagnostics/codes/action.ts +125 -0
  359. package/src/diagnostics/codes/artifact.ts +137 -0
  360. package/src/diagnostics/codes/build.ts +65 -0
  361. package/src/diagnostics/codes/cli.ts +53 -0
  362. package/src/diagnostics/codes/console.ts +41 -0
  363. package/src/diagnostics/codes/dep.ts +101 -0
  364. package/src/diagnostics/codes/env.ts +149 -0
  365. package/src/diagnostics/codes/field.ts +113 -0
  366. package/src/diagnostics/codes/home.ts +150 -0
  367. package/src/diagnostics/codes/host.ts +197 -0
  368. package/src/diagnostics/codes/hygiene.ts +175 -0
  369. package/src/diagnostics/codes/index.ts +142 -0
  370. package/src/diagnostics/codes/live.ts +41 -0
  371. package/src/diagnostics/codes/manifest.ts +53 -0
  372. package/src/diagnostics/codes/network.ts +41 -0
  373. package/src/diagnostics/codes/platform.ts +30 -0
  374. package/src/diagnostics/codes/publish.ts +53 -0
  375. package/src/diagnostics/codes/regression.ts +89 -0
  376. package/src/diagnostics/codes/runtime.ts +77 -0
  377. package/src/diagnostics/codes/secret.ts +29 -0
  378. package/src/diagnostics/codes/smoke.ts +41 -0
  379. package/src/diagnostics/codes/submit.ts +113 -0
  380. package/src/diagnostics/codes/target.ts +29 -0
  381. package/src/diagnostics/codes/type.ts +41 -0
  382. package/src/diagnostics/codes/verify.ts +113 -0
  383. package/src/diagnostics/diagnostic.ts +240 -0
  384. package/src/diagnostics/spec.ts +90 -0
  385. package/src/hygiene.ts +224 -0
  386. package/src/ids.ts +279 -0
  387. package/src/index.ts +576 -0
  388. package/src/interaction.ts +728 -0
  389. package/src/manifest.ts +206 -0
  390. package/src/method.ts +42 -0
  391. package/src/methods/artifact/create.ts +56 -0
  392. package/src/methods/artifact/get.ts +30 -0
  393. package/src/methods/artifact/list.ts +42 -0
  394. package/src/methods/artifact/publish.ts +46 -0
  395. package/src/methods/artifact/verify.ts +46 -0
  396. package/src/methods/deps/add.ts +72 -0
  397. package/src/methods/dev/start.ts +84 -0
  398. package/src/methods/dev/stop.ts +32 -0
  399. package/src/methods/events/ack.ts +41 -0
  400. package/src/methods/events/read.ts +67 -0
  401. package/src/methods/events/subscribe.ts +91 -0
  402. package/src/methods/events/unsubscribe.ts +35 -0
  403. package/src/methods/gc/run.ts +125 -0
  404. package/src/methods/index.ts +81 -0
  405. package/src/methods/instance/check.ts +61 -0
  406. package/src/methods/instance/status.ts +172 -0
  407. package/src/methods/live/push.ts +54 -0
  408. package/src/methods/mostra/initialize.ts +249 -0
  409. package/src/methods/mostra/shutdown.ts +31 -0
  410. package/src/methods/port/drafts-mirror.ts +52 -0
  411. package/src/methods/port/secrets-get.ts +40 -0
  412. package/src/methods/port/submissions-deliver.ts +70 -0
  413. package/src/methods/port/trusted-controls-activated.ts +51 -0
  414. package/src/methods/port/trusted-controls-policy.ts +38 -0
  415. package/src/methods/results/get.ts +59 -0
  416. package/src/methods/secret/delete.ts +43 -0
  417. package/src/methods/secret/list.ts +40 -0
  418. package/src/methods/secret/set.ts +69 -0
  419. package/src/methods/state/get.ts +44 -0
  420. package/src/methods/state/patch.ts +51 -0
  421. package/src/methods/view/default.ts +32 -0
  422. package/src/methods/view/launch.ts +47 -0
  423. package/src/methods/view/revoke.ts +39 -0
  424. package/src/methods/view/rotate.ts +37 -0
  425. package/src/methods/view/url.ts +84 -0
  426. package/src/methods/wait/wait.ts +58 -0
  427. package/src/revision.ts +101 -0
  428. package/src/rpc/error.ts +107 -0
  429. package/src/rpc/lines.ts +70 -0
  430. package/src/rpc/messages.ts +188 -0
  431. package/src/rpc/peer.ts +341 -0
  432. package/src/serializer.ts +1217 -0
  433. package/src/timers.d.ts +8 -0
  434. package/src/verify.ts +458 -0
  435. package/src/view.ts +200 -0
  436. package/src/web-crypto.d.ts +9 -0
  437. package/src/web-platform.d.ts +35 -0
  438. package/src/wire-registry.ts +14 -0
  439. package/src/worker.ts +374 -0
package/src/ids.ts ADDED
@@ -0,0 +1,279 @@
1
+ /**
2
+ * Prefixed, opaque identifiers (INTERFACES §1, DATA_MODEL §2).
3
+ *
4
+ * Every Mostra entity is named by a string of the form `<prefix>_<body>`. Callers treat IDs as
5
+ * opaque: they validate the form at a boundary and never read meaning out of the body. Each ID
6
+ * kind below is both a type and a value with the same name:
7
+ *
8
+ * ```ts
9
+ * const artifact: ArtifactId = ArtifactId.parse(input);
10
+ * const mutation: MutationId = MutationId.create();
11
+ * const Params = z.object({ artifactId: ArtifactId.schema });
12
+ * ```
13
+ *
14
+ * @packageDocumentation
15
+ */
16
+ import * as z from "zod";
17
+ import { wireRegistry } from "./wire-registry.ts";
18
+
19
+ /** The prefixes INTERFACES §1 assigns, one per entity. */
20
+ export type IdPrefix =
21
+ | "art"
22
+ | "ver"
23
+ | "vw"
24
+ | "vwr"
25
+ | "sub"
26
+ | "dlv"
27
+ | "run"
28
+ | "thr"
29
+ | "cmt"
30
+ | "tok"
31
+ | "mut";
32
+
33
+ /**
34
+ * A branded ID string. The brand exists only at the type level, so an `Id<"art">` is a plain
35
+ * string at run time and on the wire.
36
+ */
37
+ export type Id<P extends IdPrefix> = `${P}_${string}` & { readonly __mostraIdPrefix: P };
38
+
39
+ /** How an ID kind's body is formed. */
40
+ export type IdBody = "ulid" | "sha256-base32";
41
+
42
+ /** One ID kind: its prefix, validation and schema. */
43
+ export interface IdKind<P extends IdPrefix> {
44
+ /** The prefix, without the underscore. */
45
+ readonly prefix: P;
46
+ /** The entity the ID names, in the PRODUCT vocabulary. */
47
+ readonly entity: string;
48
+ /** How the body is formed. */
49
+ readonly body: IdBody;
50
+ /** The exact form, anchored at both ends. */
51
+ readonly pattern: RegExp;
52
+ /** The Zod schema for this ID, registered for JSON Schema output under the kind's type name. */
53
+ readonly schema: z.ZodType<Id<P>, string>;
54
+ /** Whether `value` is an ID of this kind. */
55
+ is(value: unknown): value is Id<P>;
56
+ /**
57
+ * Returns `value` as an ID of this kind.
58
+ *
59
+ * @throws TypeError when `value` is not of this kind's form. The message names the expected
60
+ * form and never echoes the input.
61
+ */
62
+ parse(value: string): Id<P>;
63
+ }
64
+
65
+ /** An ID kind whose body is a ULID that the creator generates. */
66
+ export interface GeneratedIdKind<P extends IdPrefix> extends IdKind<P> {
67
+ /** Generates a new ID from the current time and 80 bits of Web Crypto randomness. */
68
+ create(): Id<P>;
69
+ }
70
+
71
+ /** Crockford's base32 alphabet, used by ULIDs and by content-addressed version IDs. */
72
+ const CROCKFORD = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
73
+ const BODY_LENGTH = 26;
74
+ /** A ULID's first character encodes at most 3 bits (48-bit time in 26 × 5 = 130 bits). */
75
+ const ULID_BODY = "[0-7][0-9A-HJKMNP-TV-Z]{25}";
76
+ const BASE32_BODY = "[0-9A-HJKMNP-TV-Z]{26}";
77
+
78
+ function defineKind<P extends IdPrefix>(
79
+ prefix: P,
80
+ entity: string,
81
+ body: IdBody,
82
+ typeName: string,
83
+ ): IdKind<P> {
84
+ const pattern = new RegExp(`^${prefix}_${body === "ulid" ? ULID_BODY : BASE32_BODY}$`);
85
+ const form = body === "ulid" ? "a 26-character ULID" : "26 characters of Crockford base32";
86
+ const is = (value: unknown): value is Id<P> => typeof value === "string" && pattern.test(value);
87
+ const schema = z
88
+ .string()
89
+ .regex(pattern)
90
+ .register(wireRegistry, {
91
+ id: typeName,
92
+ description: `${entity[0]?.toUpperCase()}${entity.slice(1)} ID: "${prefix}_" followed by ${form}.`,
93
+ }) as unknown as z.ZodType<Id<P>, string>;
94
+ return {
95
+ prefix,
96
+ entity,
97
+ body,
98
+ pattern,
99
+ schema,
100
+ is,
101
+ parse(value: string): Id<P> {
102
+ if (is(value)) return value;
103
+ throw new TypeError(`Expected ${entity} ID "${prefix}_" followed by ${form}.`);
104
+ },
105
+ };
106
+ }
107
+
108
+ function generated<P extends IdPrefix>(kind: IdKind<P>): GeneratedIdKind<P> {
109
+ return { ...kind, create: () => kind.parse(`${kind.prefix}_${ulidBody(Date.now())}`) };
110
+ }
111
+
112
+ /**
113
+ * Encodes a ULID body: 48 bits of milliseconds since the Unix epoch, then 80 random bits, as 26
114
+ * Crockford base32 characters.
115
+ */
116
+ function ulidBody(now: number): string {
117
+ if (!Number.isSafeInteger(now) || now < 0 || now > 0xffff_ffff_ffff) {
118
+ throw new RangeError("ULID time must be a millisecond timestamp between 0 and 2^48 - 1.");
119
+ }
120
+ let time = "";
121
+ let rest = now;
122
+ for (let i = 0; i < 10; i++) {
123
+ time = CROCKFORD.charAt(rest % 32) + time;
124
+ rest = Math.floor(rest / 32);
125
+ }
126
+ const random = new Uint8Array(10);
127
+ globalThis.crypto.getRandomValues(random);
128
+ return time + base32(random).slice(0, 16);
129
+ }
130
+
131
+ /** Encodes bytes as Crockford base32, most significant bit first, padding the last group with 0. */
132
+ function base32(bytes: Uint8Array): string {
133
+ let out = "";
134
+ let buffer = 0;
135
+ let bits = 0;
136
+ for (const byte of bytes) {
137
+ buffer = (buffer << 8) | byte;
138
+ bits += 8;
139
+ while (bits >= 5) {
140
+ out += CROCKFORD.charAt((buffer >>> (bits - 5)) & 31);
141
+ bits -= 5;
142
+ }
143
+ buffer &= (1 << bits) - 1;
144
+ }
145
+ if (bits > 0) out += CROCKFORD.charAt((buffer << (5 - bits)) & 31);
146
+ return out;
147
+ }
148
+
149
+ /** An artifact ID (`art_` + ULID). */
150
+ export type ArtifactId = Id<"art">;
151
+ /** Artifact IDs. */
152
+ export const ArtifactId: GeneratedIdKind<"art"> = generated(
153
+ defineKind("art", "artifact", "ulid", "ArtifactId"),
154
+ );
155
+
156
+ /** A version ID (`ver_` + 26 characters of base32 SHA-256): content-addressed, never generated. */
157
+ export type VersionId = Id<"ver">;
158
+ /** The version ID kind, with the content-addressed constructor DATA_MODEL §2 defines. */
159
+ export interface VersionIdKind extends IdKind<"ver"> {
160
+ /**
161
+ * Returns the version ID for a SHA-256 digest: `ver_` plus the first 26 characters of the
162
+ * digest in Crockford base32 (130 bits). The caller computes the digest of the artifact ID's
163
+ * UTF-8 bytes, a `0x00` byte, and the 32-byte `sourceDigest` and `envDigest` (DATA_MODEL §2,
164
+ * D89).
165
+ *
166
+ * @throws RangeError when `digest` is not 32 bytes long.
167
+ */
168
+ fromSha256(digest: Uint8Array): VersionId;
169
+ }
170
+ /** Version IDs. */
171
+ export const VersionId: VersionIdKind = {
172
+ ...defineKind("ver", "version", "sha256-base32", "VersionId"),
173
+ fromSha256(digest: Uint8Array): VersionId {
174
+ if (digest.length !== 32) {
175
+ throw new RangeError(`A SHA-256 digest is 32 bytes, got ${digest.length}.`);
176
+ }
177
+ return VersionId.parse(`ver_${base32(digest).slice(0, BODY_LENGTH)}`);
178
+ },
179
+ };
180
+
181
+ /** A view ID (`vw_` + ULID). */
182
+ export type ViewId = Id<"vw">;
183
+ /** View IDs. */
184
+ export const ViewId: GeneratedIdKind<"vw"> = generated(defineKind("vw", "view", "ulid", "ViewId"));
185
+
186
+ /** A viewer ID (`vwr_` + ULID). */
187
+ export type ViewerId = Id<"vwr">;
188
+ /** Viewer IDs. */
189
+ export const ViewerId: GeneratedIdKind<"vwr"> = generated(
190
+ defineKind("vwr", "viewer", "ulid", "ViewerId"),
191
+ );
192
+
193
+ /** A submission ID (`sub_` + ULID). */
194
+ export type SubmissionId = Id<"sub">;
195
+ /** Submission IDs. */
196
+ export const SubmissionId: GeneratedIdKind<"sub"> = generated(
197
+ defineKind("sub", "submission", "ulid", "SubmissionId"),
198
+ );
199
+
200
+ /**
201
+ * A delivery ID (`dlv_` + ULID): one submission's delivery to one host (D105). A redelivery after a
202
+ * crash repeats it, so a host can treat deliveries idempotently.
203
+ */
204
+ export type DeliveryId = Id<"dlv">;
205
+ /** Delivery IDs. */
206
+ export const DeliveryId: GeneratedIdKind<"dlv"> = generated(
207
+ defineKind("dlv", "delivery", "ulid", "DeliveryId"),
208
+ );
209
+
210
+ /** An action run ID (`run_` + ULID). */
211
+ export type RunId = Id<"run">;
212
+ /** Action run IDs. */
213
+ export const RunId: GeneratedIdKind<"run"> = generated(
214
+ defineKind("run", "action run", "ulid", "RunId"),
215
+ );
216
+
217
+ /** A review thread ID (`thr_` + ULID). */
218
+ export type ThreadId = Id<"thr">;
219
+ /** Review thread IDs. */
220
+ export const ThreadId: GeneratedIdKind<"thr"> = generated(
221
+ defineKind("thr", "thread", "ulid", "ThreadId"),
222
+ );
223
+
224
+ /** A comment ID (`cmt_` + ULID). */
225
+ export type CommentId = Id<"cmt">;
226
+ /** Comment IDs. */
227
+ export const CommentId: GeneratedIdKind<"cmt"> = generated(
228
+ defineKind("cmt", "comment", "ulid", "CommentId"),
229
+ );
230
+
231
+ /** A capability token ID (`tok_` + ULID). The token's secret is separate and never an ID. */
232
+ export type TokenId = Id<"tok">;
233
+ /** Capability token IDs. */
234
+ export const TokenId: GeneratedIdKind<"tok"> = generated(
235
+ defineKind("tok", "capability token", "ulid", "TokenId"),
236
+ );
237
+
238
+ /** A mutation ID (`mut_` + ULID), generated by the client that sends the mutation. */
239
+ export type MutationId = Id<"mut">;
240
+ /** Mutation IDs. */
241
+ export const MutationId: GeneratedIdKind<"mut"> = generated(
242
+ defineKind("mut", "mutation", "ulid", "MutationId"),
243
+ );
244
+
245
+ /**
246
+ * An event cursor: the decimal string of a home-wide event position (INTERFACES §1). Decimal
247
+ * strings keep 64-bit positions exact in JavaScript.
248
+ */
249
+ export type Cursor = string & { readonly __mostraCursor: true };
250
+
251
+ /** Event cursors. */
252
+ export const Cursor: {
253
+ /** The exact form: a non-negative decimal integer without leading zeros, at most 19 digits. */
254
+ readonly pattern: RegExp;
255
+ readonly schema: z.ZodType<Cursor, string>;
256
+ is(value: unknown): value is Cursor;
257
+ /** @throws TypeError when `value` is not a cursor. */
258
+ parse(value: string): Cursor;
259
+ /** Orders two cursors: negative when `a` comes first, zero when equal, positive otherwise. */
260
+ compare(a: Cursor, b: Cursor): number;
261
+ } = (() => {
262
+ const pattern = /^(0|[1-9][0-9]{0,18})$/;
263
+ const is = (value: unknown): value is Cursor => typeof value === "string" && pattern.test(value);
264
+ return {
265
+ pattern,
266
+ schema: z.string().regex(pattern).register(wireRegistry, {
267
+ id: "Cursor",
268
+ description: "Event cursor: the decimal string of a home-wide event position.",
269
+ }) as unknown as z.ZodType<Cursor, string>,
270
+ is,
271
+ parse(value: string): Cursor {
272
+ if (is(value)) return value;
273
+ throw new TypeError("Expected an event cursor: a non-negative decimal integer string.");
274
+ },
275
+ compare(a: Cursor, b: Cursor): number {
276
+ return a.length === b.length ? (a < b ? -1 : a > b ? 1 : 0) : a.length - b.length;
277
+ },
278
+ };
279
+ })();