@mysten-incubation/devstack 0.0.1 → 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 (838) hide show
  1. package/README.md +7 -3
  2. package/dashboard-ui/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  3. package/dashboard-ui/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  4. package/dashboard-ui/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  5. package/dashboard-ui/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  6. package/dashboard-ui/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
  7. package/dashboard-ui/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
  8. package/dashboard-ui/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
  9. package/dashboard-ui/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
  10. package/dashboard-ui/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
  11. package/dashboard-ui/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
  12. package/dashboard-ui/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  13. package/dashboard-ui/assets/index-Bmi1UtAg.js +1356 -0
  14. package/dashboard-ui/assets/index-D5EShVt4.js +3 -0
  15. package/dashboard-ui/assets/index-Deml9drg.css +1 -0
  16. package/dashboard-ui/index.html +13 -0
  17. package/dist/api/define-capabilities.d.mts +14 -3
  18. package/dist/api/define-capabilities.mjs +18 -1
  19. package/dist/api/define-capabilities.mjs.map +1 -1
  20. package/dist/api/define-devstack.d.mts +1 -1
  21. package/dist/api/define-devstack.mjs +6 -26
  22. package/dist/api/define-devstack.mjs.map +1 -1
  23. package/dist/api/define-plugin.d.mts +1 -0
  24. package/dist/api/define-plugin.mjs +2 -0
  25. package/dist/api/inference-network.d.mts +132 -0
  26. package/dist/api/inference-network.mjs +105 -16
  27. package/dist/api/inference-network.mjs.map +1 -1
  28. package/dist/api/plugin-errors.d.mts +7 -0
  29. package/dist/api/run-stack.d.mts +20 -9
  30. package/dist/api/run-stack.mjs +56 -29
  31. package/dist/api/run-stack.mjs.map +1 -1
  32. package/dist/build-integrations/playwright/config.d.mts +6 -4
  33. package/dist/build-integrations/playwright/config.mjs +5 -3
  34. package/dist/build-integrations/playwright/config.mjs.map +1 -1
  35. package/dist/build-integrations/playwright/errors.d.mts +1 -1
  36. package/dist/build-integrations/playwright/global-setup.d.mts +43 -17
  37. package/dist/build-integrations/playwright/global-setup.mjs +250 -13
  38. package/dist/build-integrations/playwright/global-setup.mjs.map +1 -1
  39. package/dist/build-integrations/playwright/index.d.mts +5 -3
  40. package/dist/build-integrations/playwright/index.mjs +4 -2
  41. package/dist/build-integrations/playwright/stack-context.d.mts +0 -1
  42. package/dist/build-integrations/playwright/stack-context.mjs +24 -63
  43. package/dist/build-integrations/playwright/stack-context.mjs.map +1 -1
  44. package/dist/build-integrations/playwright/wallet-context.d.mts +7 -10
  45. package/dist/build-integrations/playwright/wallet-context.mjs +8 -13
  46. package/dist/build-integrations/playwright/wallet-context.mjs.map +1 -1
  47. package/dist/build-integrations/runtime/cold-start-url.d.mts +5 -0
  48. package/dist/build-integrations/runtime/cold-start-url.mjs +4 -3
  49. package/dist/build-integrations/runtime/cold-start-url.mjs.map +1 -1
  50. package/dist/build-integrations/runtime/conventional-routes.d.mts +51 -0
  51. package/dist/build-integrations/runtime/conventional-routes.mjs +92 -0
  52. package/dist/build-integrations/runtime/conventional-routes.mjs.map +1 -0
  53. package/dist/build-integrations/runtime/discover.d.mts +38 -30
  54. package/dist/build-integrations/runtime/discover.mjs +73 -70
  55. package/dist/build-integrations/runtime/discover.mjs.map +1 -1
  56. package/dist/build-integrations/runtime/endpoint-registry.d.mts +3 -1
  57. package/dist/build-integrations/runtime/endpoint-registry.mjs +3 -1
  58. package/dist/build-integrations/runtime/endpoint-registry.mjs.map +1 -1
  59. package/dist/build-integrations/runtime/index.d.mts +7 -2
  60. package/dist/build-integrations/runtime/index.mjs +9 -2
  61. package/dist/build-integrations/runtime/manifest-types.d.mts +2 -0
  62. package/dist/build-integrations/runtime/manifest-types.mjs +3 -0
  63. package/dist/build-integrations/runtime/playwright-stack-context-slot.d.mts +29 -0
  64. package/dist/build-integrations/runtime/playwright-stack-context-slot.mjs +10 -0
  65. package/dist/build-integrations/runtime/playwright-stack-context-slot.mjs.map +1 -0
  66. package/dist/build-integrations/runtime/read-stack-context.d.mts +1 -1
  67. package/dist/build-integrations/runtime/read-stack-context.mjs +10 -4
  68. package/dist/build-integrations/runtime/read-stack-context.mjs.map +1 -1
  69. package/dist/build-integrations/runtime/resolve-discovery-env.d.mts +48 -0
  70. package/dist/build-integrations/runtime/resolve-discovery-env.mjs +42 -0
  71. package/dist/build-integrations/runtime/resolve-discovery-env.mjs.map +1 -0
  72. package/dist/build-integrations/runtime/stack-context.d.mts +1 -1
  73. package/dist/build-integrations/runtime/wallet-paths.mjs +2 -0
  74. package/dist/build-integrations/vite/index.d.mts +51 -0
  75. package/dist/build-integrations/vite/index.mjs +73 -0
  76. package/dist/build-integrations/vite/index.mjs.map +1 -0
  77. package/dist/build-integrations/vitest/env.d.mts +4 -3
  78. package/dist/build-integrations/vitest/env.mjs +6 -4
  79. package/dist/build-integrations/vitest/env.mjs.map +1 -1
  80. package/dist/build-integrations/vitest/errors.d.mts +25 -4
  81. package/dist/build-integrations/vitest/errors.mjs +15 -2
  82. package/dist/build-integrations/vitest/errors.mjs.map +1 -1
  83. package/dist/build-integrations/vitest/index.d.mts +2 -2
  84. package/dist/build-integrations/vitest/index.mjs +3 -3
  85. package/dist/build-integrations/vitest/setup.d.mts +4 -2
  86. package/dist/build-integrations/vitest/setup.mjs +2 -2
  87. package/dist/build-integrations/vitest/setup.mjs.map +1 -1
  88. package/dist/build-integrations/vitest/stack-context.d.mts +0 -1
  89. package/dist/build-integrations/vitest/stack-context.mjs +33 -13
  90. package/dist/build-integrations/vitest/stack-context.mjs.map +1 -1
  91. package/dist/cli/bail.mjs +23 -0
  92. package/dist/cli/bail.mjs.map +1 -0
  93. package/dist/{surfaces/cli/commands → cli}/doctor-probes.mjs +26 -16
  94. package/dist/cli/doctor-probes.mjs.map +1 -0
  95. package/dist/cli/main.d.mts +15 -1
  96. package/dist/cli/main.mjs +166 -482
  97. package/dist/cli/main.mjs.map +1 -1
  98. package/dist/cli/prune-direct.mjs +31 -201
  99. package/dist/cli/prune-direct.mjs.map +1 -1
  100. package/dist/cli/snapshot-reader.mjs +14 -11
  101. package/dist/cli/snapshot-reader.mjs.map +1 -1
  102. package/dist/cli/up-lifecycle.mjs +4 -1
  103. package/dist/cli/up-lifecycle.mjs.map +1 -1
  104. package/dist/cli/wirings/apply.mjs +95 -0
  105. package/dist/cli/wirings/apply.mjs.map +1 -0
  106. package/dist/cli/wirings/build-verb-layers.mjs +42 -0
  107. package/dist/cli/wirings/build-verb-layers.mjs.map +1 -0
  108. package/dist/cli/wirings/config-loader.mjs +69 -0
  109. package/dist/cli/wirings/config-loader.mjs.map +1 -0
  110. package/dist/cli/wirings/engine-command.mjs +30 -0
  111. package/dist/cli/wirings/engine-command.mjs.map +1 -0
  112. package/dist/cli/wirings/identity.mjs +72 -0
  113. package/dist/cli/wirings/identity.mjs.map +1 -0
  114. package/dist/cli/wirings/provide-file-system.mjs +7 -0
  115. package/dist/cli/wirings/provide-file-system.mjs.map +1 -0
  116. package/dist/cli/wirings/snapshot.mjs +177 -0
  117. package/dist/cli/wirings/snapshot.mjs.map +1 -0
  118. package/dist/cli/wirings/up.mjs +287 -0
  119. package/dist/cli/wirings/up.mjs.map +1 -0
  120. package/dist/cli/wirings/wipe.mjs +40 -0
  121. package/dist/cli/wirings/wipe.mjs.map +1 -0
  122. package/dist/contracts/capability-decl.d.mts +0 -2
  123. package/dist/contracts/codegenable.d.mts +43 -0
  124. package/dist/contracts/container-runtime.d.mts +26 -1
  125. package/dist/contracts/faucet-strategy.d.mts +25 -0
  126. package/dist/contracts/funding-strategy.d.mts +42 -0
  127. package/dist/contracts/plugin-expander.mjs +60 -0
  128. package/dist/contracts/plugin-expander.mjs.map +1 -0
  129. package/dist/contracts/projection.d.mts +5 -3
  130. package/dist/contracts/renderer.d.mts +23 -0
  131. package/dist/contracts/routable.d.mts +14 -1
  132. package/dist/contracts/snapshotable.d.mts +25 -3
  133. package/dist/contracts/wallet-protocol.d.mts +52 -0
  134. package/dist/contracts/wallet-protocol.mjs +52 -0
  135. package/dist/contracts/wallet-protocol.mjs.map +1 -0
  136. package/dist/index.d.mts +26 -25
  137. package/dist/index.mjs +20 -13
  138. package/dist/{runtime → orchestrators}/built-in-plugin-layers.mjs +10 -5
  139. package/dist/orchestrators/built-in-plugin-layers.mjs.map +1 -0
  140. package/dist/orchestrators/codegen/bindings.d.mts +1 -2
  141. package/dist/orchestrators/codegen/bindings.mjs +52 -186
  142. package/dist/orchestrators/codegen/bindings.mjs.map +1 -1
  143. package/dist/orchestrators/codegen/emit.mjs +19 -1
  144. package/dist/orchestrators/codegen/emit.mjs.map +1 -1
  145. package/dist/orchestrators/codegen/errors.mjs +8 -3
  146. package/dist/orchestrators/codegen/errors.mjs.map +1 -1
  147. package/dist/orchestrators/codegen/format.mjs +47 -39
  148. package/dist/orchestrators/codegen/format.mjs.map +1 -1
  149. package/dist/orchestrators/codegen/gitignore.mjs +3 -1
  150. package/dist/orchestrators/codegen/gitignore.mjs.map +1 -1
  151. package/dist/orchestrators/codegen/output-location.mjs +40 -0
  152. package/dist/orchestrators/codegen/output-location.mjs.map +1 -0
  153. package/dist/orchestrators/codegen/paths.d.mts +1 -1
  154. package/dist/orchestrators/codegen/paths.mjs +40 -14
  155. package/dist/orchestrators/codegen/paths.mjs.map +1 -1
  156. package/dist/orchestrators/codegen/permissions.mjs +3 -1
  157. package/dist/orchestrators/codegen/permissions.mjs.map +1 -1
  158. package/dist/orchestrators/codegen/service.mjs +157 -105
  159. package/dist/orchestrators/codegen/service.mjs.map +1 -1
  160. package/dist/orchestrators/lifecycle-prune/errors.mjs +31 -0
  161. package/dist/orchestrators/lifecycle-prune/errors.mjs.map +1 -0
  162. package/dist/orchestrators/lifecycle-prune/index.mjs +350 -0
  163. package/dist/orchestrators/lifecycle-prune/index.mjs.map +1 -0
  164. package/dist/orchestrators/router/cleanup.mjs +26 -27
  165. package/dist/orchestrators/router/cleanup.mjs.map +1 -1
  166. package/dist/orchestrators/router/entrypoints.mjs +2 -2
  167. package/dist/orchestrators/router/entrypoints.mjs.map +1 -1
  168. package/dist/orchestrators/router/file-provider.mjs +14 -5
  169. package/dist/orchestrators/router/file-provider.mjs.map +1 -1
  170. package/dist/orchestrators/router/hostname.mjs +19 -55
  171. package/dist/orchestrators/router/hostname.mjs.map +1 -1
  172. package/dist/orchestrators/router/index.mjs +11 -0
  173. package/dist/orchestrators/router/profile.mjs +2 -2
  174. package/dist/orchestrators/router/sentinels.mjs +26 -0
  175. package/dist/orchestrators/router/sentinels.mjs.map +1 -0
  176. package/dist/orchestrators/router/service.mjs +40 -37
  177. package/dist/orchestrators/router/service.mjs.map +1 -1
  178. package/dist/orchestrators/router/traefik-container.mjs +27 -16
  179. package/dist/orchestrators/router/traefik-container.mjs.map +1 -1
  180. package/dist/{substrate/runtime → orchestrators}/run.mjs +26 -21
  181. package/dist/orchestrators/run.mjs.map +1 -0
  182. package/dist/orchestrators/runtime-composition.d.mts +1 -1
  183. package/dist/orchestrators/runtime-composition.mjs +123 -39
  184. package/dist/orchestrators/runtime-composition.mjs.map +1 -1
  185. package/dist/orchestrators/snapshot/capture-command.d.mts +1 -0
  186. package/dist/orchestrators/snapshot/capture-command.mjs +25 -0
  187. package/dist/orchestrators/snapshot/capture-command.mjs.map +1 -0
  188. package/dist/orchestrators/snapshot/capture.mjs +42 -28
  189. package/dist/orchestrators/snapshot/capture.mjs.map +1 -1
  190. package/dist/orchestrators/snapshot/descriptor.mjs +35 -10
  191. package/dist/orchestrators/snapshot/descriptor.mjs.map +1 -1
  192. package/dist/orchestrators/snapshot/identity-guard.mjs +1 -1
  193. package/dist/orchestrators/snapshot/index.mjs +13 -0
  194. package/dist/orchestrators/snapshot/integrity.d.mts +1 -1
  195. package/dist/orchestrators/snapshot/integrity.mjs +73 -17
  196. package/dist/orchestrators/snapshot/integrity.mjs.map +1 -1
  197. package/dist/orchestrators/snapshot/pending-marker.d.mts +1 -0
  198. package/dist/orchestrators/snapshot/pending-marker.mjs +99 -0
  199. package/dist/orchestrators/snapshot/pending-marker.mjs.map +1 -0
  200. package/dist/orchestrators/snapshot/phase-error.mjs +23 -0
  201. package/dist/orchestrators/snapshot/phase-error.mjs.map +1 -0
  202. package/dist/orchestrators/snapshot/prune.mjs +20 -55
  203. package/dist/orchestrators/snapshot/prune.mjs.map +1 -1
  204. package/dist/orchestrators/snapshot/recover-pending.d.mts +1 -0
  205. package/dist/orchestrators/snapshot/recover-pending.mjs +223 -0
  206. package/dist/orchestrators/snapshot/recover-pending.mjs.map +1 -0
  207. package/dist/orchestrators/snapshot/restore.mjs +118 -84
  208. package/dist/orchestrators/snapshot/restore.mjs.map +1 -1
  209. package/dist/orchestrators/snapshot/service.mjs +53 -56
  210. package/dist/orchestrators/snapshot/service.mjs.map +1 -1
  211. package/dist/orchestrators/snapshot/state-document.d.mts +1 -0
  212. package/dist/orchestrators/snapshot/state-document.mjs +47 -7
  213. package/dist/orchestrators/snapshot/state-document.mjs.map +1 -1
  214. package/dist/orchestrators/snapshot/wipe.mjs +67 -10
  215. package/dist/orchestrators/snapshot/wipe.mjs.map +1 -1
  216. package/dist/plugins/account/codegen.mjs +9 -8
  217. package/dist/plugins/account/codegen.mjs.map +1 -1
  218. package/dist/plugins/account/errors.d.mts +33 -6
  219. package/dist/plugins/account/errors.mjs.map +1 -1
  220. package/dist/plugins/account/funding.d.mts +29 -19
  221. package/dist/plugins/account/funding.mjs +84 -66
  222. package/dist/plugins/account/funding.mjs.map +1 -1
  223. package/dist/plugins/account/index.d.mts +2 -4
  224. package/dist/plugins/account/index.mjs +64 -31
  225. package/dist/plugins/account/index.mjs.map +1 -1
  226. package/dist/plugins/account/keypair.mjs +6 -9
  227. package/dist/plugins/account/keypair.mjs.map +1 -1
  228. package/dist/plugins/account/lease.mjs +1 -0
  229. package/dist/plugins/account/lease.mjs.map +1 -1
  230. package/dist/plugins/account/registry.d.mts +14 -1
  231. package/dist/plugins/account/registry.mjs +18 -18
  232. package/dist/plugins/account/registry.mjs.map +1 -1
  233. package/dist/plugins/account/service.d.mts +23 -4
  234. package/dist/plugins/account/service.mjs +83 -45
  235. package/dist/plugins/account/service.mjs.map +1 -1
  236. package/dist/plugins/account/snapshot.mjs +2 -5
  237. package/dist/plugins/account/snapshot.mjs.map +1 -1
  238. package/dist/plugins/account/spans.mjs +16 -0
  239. package/dist/plugins/account/spans.mjs.map +1 -0
  240. package/dist/plugins/account/variants/keystore.mjs +6 -8
  241. package/dist/plugins/account/variants/keystore.mjs.map +1 -1
  242. package/dist/plugins/action/build-context.d.mts +3 -2
  243. package/dist/plugins/action/errors.d.mts +16 -12
  244. package/dist/plugins/action/errors.mjs.map +1 -1
  245. package/dist/plugins/action/execute.mjs +65 -103
  246. package/dist/plugins/action/execute.mjs.map +1 -1
  247. package/dist/plugins/action/index.d.mts +0 -2
  248. package/dist/plugins/action/index.mjs +17 -13
  249. package/dist/plugins/action/index.mjs.map +1 -1
  250. package/dist/plugins/action/service.mjs +38 -35
  251. package/dist/plugins/action/service.mjs.map +1 -1
  252. package/dist/plugins/action/spans.mjs +11 -0
  253. package/dist/plugins/action/spans.mjs.map +1 -0
  254. package/dist/plugins/coin/codegen.mjs +9 -8
  255. package/dist/plugins/coin/codegen.mjs.map +1 -1
  256. package/dist/plugins/coin/discovery.mjs +8 -4
  257. package/dist/plugins/coin/discovery.mjs.map +1 -1
  258. package/dist/plugins/coin/index.d.mts +11 -29
  259. package/dist/plugins/coin/index.mjs +56 -27
  260. package/dist/plugins/coin/index.mjs.map +1 -1
  261. package/dist/plugins/coin/metadata.mjs +8 -15
  262. package/dist/plugins/coin/metadata.mjs.map +1 -1
  263. package/dist/plugins/coin/mint.d.mts +30 -11
  264. package/dist/plugins/coin/mint.mjs +78 -74
  265. package/dist/plugins/coin/mint.mjs.map +1 -1
  266. package/dist/plugins/coin/registry.mjs +4 -7
  267. package/dist/plugins/coin/registry.mjs.map +1 -1
  268. package/dist/plugins/coin/service.d.mts +39 -1
  269. package/dist/plugins/coin/service.mjs +11 -4
  270. package/dist/plugins/coin/service.mjs.map +1 -1
  271. package/dist/plugins/coin/spans.mjs +20 -0
  272. package/dist/plugins/coin/spans.mjs.map +1 -0
  273. package/dist/plugins/dashboard/domain.mjs +402 -0
  274. package/dist/plugins/dashboard/domain.mjs.map +1 -0
  275. package/dist/plugins/dashboard/index.d.mts +29 -0
  276. package/dist/plugins/dashboard/index.mjs +91 -0
  277. package/dist/plugins/dashboard/index.mjs.map +1 -0
  278. package/dist/plugins/dashboard/origin-policy.mjs +36 -0
  279. package/dist/plugins/dashboard/origin-policy.mjs.map +1 -0
  280. package/dist/plugins/dashboard/routable.mjs +27 -0
  281. package/dist/plugins/dashboard/routable.mjs.map +1 -0
  282. package/dist/plugins/dashboard/schema/builder.mjs +21 -0
  283. package/dist/plugins/dashboard/schema/builder.mjs.map +1 -0
  284. package/dist/plugins/dashboard/schema/enums.mjs +72 -0
  285. package/dist/plugins/dashboard/schema/enums.mjs.map +1 -0
  286. package/dist/plugins/dashboard/schema/root.mjs +351 -0
  287. package/dist/plugins/dashboard/schema/root.mjs.map +1 -0
  288. package/dist/plugins/dashboard/schema/types.mjs +508 -0
  289. package/dist/plugins/dashboard/schema/types.mjs.map +1 -0
  290. package/dist/plugins/dashboard/schema.mjs +11 -0
  291. package/dist/plugins/dashboard/schema.mjs.map +1 -0
  292. package/dist/plugins/dashboard/server.mjs +166 -0
  293. package/dist/plugins/dashboard/server.mjs.map +1 -0
  294. package/dist/plugins/deepbook/deploy.mjs +53 -115
  295. package/dist/plugins/deepbook/deploy.mjs.map +1 -1
  296. package/dist/plugins/deepbook/errors.mjs +1 -0
  297. package/dist/plugins/deepbook/errors.mjs.map +1 -1
  298. package/dist/plugins/deepbook/faucet-strategy.mjs +47 -34
  299. package/dist/plugins/deepbook/faucet-strategy.mjs.map +1 -1
  300. package/dist/plugins/deepbook/hash.mjs +9 -0
  301. package/dist/plugins/deepbook/hash.mjs.map +1 -0
  302. package/dist/plugins/deepbook/index.d.mts +1 -10
  303. package/dist/plugins/deepbook/index.mjs +25 -22
  304. package/dist/plugins/deepbook/index.mjs.map +1 -1
  305. package/dist/plugins/deepbook/pyth/index.mjs +26 -55
  306. package/dist/plugins/deepbook/pyth/index.mjs.map +1 -1
  307. package/dist/plugins/deepbook/snapshot.mjs +17 -29
  308. package/dist/plugins/deepbook/snapshot.mjs.map +1 -1
  309. package/dist/plugins/deepbook/spans.mjs +18 -0
  310. package/dist/plugins/deepbook/spans.mjs.map +1 -0
  311. package/dist/plugins/deepbook/type-strings.mjs +65 -0
  312. package/dist/plugins/deepbook/type-strings.mjs.map +1 -0
  313. package/dist/plugins/deepbook/types.d.mts +2 -3
  314. package/dist/plugins/deepbook/types.mjs.map +1 -1
  315. package/dist/plugins/faucet/dispatcher.d.mts +21 -2
  316. package/dist/plugins/faucet/dispatcher.mjs +1 -2
  317. package/dist/plugins/faucet/dispatcher.mjs.map +1 -1
  318. package/dist/plugins/faucet/errors.d.mts +11 -24
  319. package/dist/plugins/faucet/errors.mjs.map +1 -1
  320. package/dist/plugins/faucet/http.mjs +33 -14
  321. package/dist/plugins/faucet/http.mjs.map +1 -1
  322. package/dist/plugins/faucet/index.d.mts +15 -5
  323. package/dist/plugins/faucet/index.mjs +3 -0
  324. package/dist/plugins/faucet/index.mjs.map +1 -1
  325. package/dist/plugins/faucet/spans.mjs +12 -0
  326. package/dist/plugins/faucet/spans.mjs.map +1 -0
  327. package/dist/plugins/host-service/errors.d.mts +1 -1
  328. package/dist/plugins/host-service/index.mjs +34 -8
  329. package/dist/plugins/host-service/index.mjs.map +1 -1
  330. package/dist/plugins/host-service/routable.mjs +2 -1
  331. package/dist/plugins/host-service/routable.mjs.map +1 -1
  332. package/dist/plugins/host-service/service.d.mts +21 -0
  333. package/dist/plugins/host-service/service.mjs +136 -81
  334. package/dist/plugins/host-service/service.mjs.map +1 -1
  335. package/dist/plugins/internal/acquire-on-chain-artifact.mjs +23 -0
  336. package/dist/plugins/internal/acquire-on-chain-artifact.mjs.map +1 -0
  337. package/dist/plugins/internal/codegen-helpers.mjs +18 -0
  338. package/dist/plugins/internal/codegen-helpers.mjs.map +1 -0
  339. package/dist/plugins/internal/funding-failure-error.mjs +32 -0
  340. package/dist/plugins/internal/funding-failure-error.mjs.map +1 -0
  341. package/dist/plugins/package/build.mjs +1 -1
  342. package/dist/plugins/package/build.mjs.map +1 -1
  343. package/dist/plugins/package/codegen.mjs +26 -0
  344. package/dist/plugins/package/codegen.mjs.map +1 -1
  345. package/dist/plugins/package/errors.d.mts +16 -6
  346. package/dist/plugins/package/errors.mjs.map +1 -1
  347. package/dist/plugins/package/index.d.mts +0 -4
  348. package/dist/plugins/package/index.mjs +27 -21
  349. package/dist/plugins/package/index.mjs.map +1 -1
  350. package/dist/plugins/package/mode-known.mjs +26 -12
  351. package/dist/plugins/package/mode-known.mjs.map +1 -1
  352. package/dist/plugins/package/mode-local.mjs +47 -41
  353. package/dist/plugins/package/mode-local.mjs.map +1 -1
  354. package/dist/plugins/package/publish-executor.mjs +55 -114
  355. package/dist/plugins/package/publish-executor.mjs.map +1 -1
  356. package/dist/plugins/package/registry.mjs +2 -1
  357. package/dist/plugins/package/registry.mjs.map +1 -1
  358. package/dist/plugins/package/service.mjs.map +1 -1
  359. package/dist/plugins/package/spans.mjs +14 -0
  360. package/dist/plugins/package/spans.mjs.map +1 -0
  361. package/dist/plugins/postgres/db-ensure.mjs +19 -12
  362. package/dist/plugins/postgres/db-ensure.mjs.map +1 -1
  363. package/dist/plugins/postgres/errors.d.mts +5 -0
  364. package/dist/plugins/postgres/errors.mjs.map +1 -1
  365. package/dist/plugins/postgres/index.mjs +10 -17
  366. package/dist/plugins/postgres/index.mjs.map +1 -1
  367. package/dist/plugins/postgres/service.mjs +58 -24
  368. package/dist/plugins/postgres/service.mjs.map +1 -1
  369. package/dist/plugins/postgres/snapshot.mjs.map +1 -1
  370. package/dist/plugins/postgres/spans.mjs +11 -0
  371. package/dist/plugins/postgres/spans.mjs.map +1 -0
  372. package/dist/plugins/router-entrypoints.mjs +4 -4
  373. package/dist/plugins/router-entrypoints.mjs.map +1 -1
  374. package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs +15 -13
  375. package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs.map +1 -1
  376. package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs +15 -19
  377. package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs.map +1 -1
  378. package/dist/plugins/seal/codegen.d.mts +2 -3
  379. package/dist/plugins/seal/codegen.mjs.map +1 -1
  380. package/dist/plugins/seal/config-render.mjs +35 -8
  381. package/dist/plugins/seal/config-render.mjs.map +1 -1
  382. package/dist/plugins/seal/deploy.mjs +31 -39
  383. package/dist/plugins/seal/deploy.mjs.map +1 -1
  384. package/dist/plugins/seal/errors.d.mts +1 -3
  385. package/dist/plugins/seal/errors.mjs +7 -1
  386. package/dist/plugins/seal/errors.mjs.map +1 -1
  387. package/dist/plugins/seal/index.d.mts +1 -6
  388. package/dist/plugins/seal/index.mjs +40 -14
  389. package/dist/plugins/seal/index.mjs.map +1 -1
  390. package/dist/plugins/seal/key-manager.d.mts +1 -9
  391. package/dist/plugins/seal/key-manager.mjs +2 -18
  392. package/dist/plugins/seal/key-manager.mjs.map +1 -1
  393. package/dist/plugins/seal/key-server.mjs +37 -36
  394. package/dist/plugins/seal/key-server.mjs.map +1 -1
  395. package/dist/plugins/seal/keygen.mjs +16 -17
  396. package/dist/plugins/seal/keygen.mjs.map +1 -1
  397. package/dist/plugins/seal/mode/fork-known.mjs +36 -14
  398. package/dist/plugins/seal/mode/fork-known.mjs.map +1 -1
  399. package/dist/plugins/seal/mode/live.d.mts +6 -4
  400. package/dist/plugins/seal/mode/live.mjs +14 -21
  401. package/dist/plugins/seal/mode/live.mjs.map +1 -1
  402. package/dist/plugins/seal/mode/local-keygen.mjs +57 -21
  403. package/dist/plugins/seal/mode/local-keygen.mjs.map +1 -1
  404. package/dist/plugins/seal/registry-publish.mjs +1 -0
  405. package/dist/plugins/seal/registry-publish.mjs.map +1 -1
  406. package/dist/plugins/seal/routable.mjs.map +1 -1
  407. package/dist/plugins/seal/service.mjs.map +1 -1
  408. package/dist/plugins/seal/spans.mjs +18 -0
  409. package/dist/plugins/seal/spans.mjs.map +1 -0
  410. package/dist/plugins/sui/auto-tick.mjs +17 -23
  411. package/dist/plugins/sui/auto-tick.mjs.map +1 -1
  412. package/dist/plugins/sui/chain-build-container.mjs +18 -0
  413. package/dist/plugins/sui/chain-build-container.mjs.map +1 -0
  414. package/dist/plugins/sui/chain-probe.d.mts +5 -5
  415. package/dist/plugins/sui/chain-probe.mjs +28 -58
  416. package/dist/plugins/sui/chain-probe.mjs.map +1 -1
  417. package/dist/plugins/sui/codegen.mjs +26 -0
  418. package/dist/plugins/sui/codegen.mjs.map +1 -1
  419. package/dist/plugins/sui/errors.d.mts +2 -29
  420. package/dist/plugins/sui/errors.mjs +1 -3
  421. package/dist/plugins/sui/errors.mjs.map +1 -1
  422. package/dist/plugins/sui/fork-faucet-strategy.d.mts +1 -0
  423. package/dist/plugins/sui/fork-faucet-strategy.mjs +55 -0
  424. package/dist/plugins/sui/fork-faucet-strategy.mjs.map +1 -0
  425. package/dist/plugins/sui/fork-orchestration.d.mts +1 -0
  426. package/dist/plugins/sui/fork-orchestration.mjs +170 -2
  427. package/dist/plugins/sui/fork-orchestration.mjs.map +1 -1
  428. package/dist/plugins/sui/fork-transaction.d.mts +2 -0
  429. package/dist/plugins/sui/fork-transaction.mjs +92 -28
  430. package/dist/plugins/sui/fork-transaction.mjs.map +1 -1
  431. package/dist/plugins/sui/index.d.mts +33 -70
  432. package/dist/plugins/sui/index.mjs +58 -35
  433. package/dist/plugins/sui/index.mjs.map +1 -1
  434. package/dist/plugins/{faucet/strategies/sui-local.mjs → sui/local-faucet-strategy.mjs} +10 -7
  435. package/dist/plugins/sui/local-faucet-strategy.mjs.map +1 -0
  436. package/dist/plugins/sui/mode/external.mjs +7 -13
  437. package/dist/plugins/sui/mode/external.mjs.map +1 -1
  438. package/dist/plugins/sui/mode/fork.mjs +136 -59
  439. package/dist/plugins/sui/mode/fork.mjs.map +1 -1
  440. package/dist/plugins/sui/mode/live.mjs +10 -16
  441. package/dist/plugins/sui/mode/live.mjs.map +1 -1
  442. package/dist/plugins/sui/mode/local.mjs +37 -36
  443. package/dist/plugins/sui/mode/local.mjs.map +1 -1
  444. package/dist/plugins/sui/mode/shared-boot.mjs +38 -115
  445. package/dist/plugins/sui/mode/shared-boot.mjs.map +1 -1
  446. package/dist/plugins/sui/mode/shared.d.mts +1 -5
  447. package/dist/plugins/sui/mode/shared.mjs.map +1 -1
  448. package/dist/plugins/sui/mode/spec.d.mts +18 -0
  449. package/dist/plugins/sui/move-summary-runner.mjs +207 -0
  450. package/dist/plugins/sui/move-summary-runner.mjs.map +1 -0
  451. package/dist/plugins/sui/network-resolver.d.mts +4 -3
  452. package/dist/plugins/sui/service.mjs.map +1 -1
  453. package/dist/plugins/sui/snapshot.mjs +3 -0
  454. package/dist/plugins/sui/snapshot.mjs.map +1 -1
  455. package/dist/plugins/sui/spans.mjs +17 -0
  456. package/dist/plugins/sui/spans.mjs.map +1 -0
  457. package/dist/plugins/wallet/codegen.d.mts +0 -1
  458. package/dist/plugins/wallet/codegen.mjs +8 -9
  459. package/dist/plugins/wallet/codegen.mjs.map +1 -1
  460. package/dist/plugins/wallet/index.d.mts +6 -8
  461. package/dist/plugins/wallet/index.mjs +46 -35
  462. package/dist/plugins/wallet/index.mjs.map +1 -1
  463. package/dist/plugins/wallet/origin-policy.mjs +12 -28
  464. package/dist/plugins/wallet/origin-policy.mjs.map +1 -1
  465. package/dist/plugins/wallet/pairing.mjs +6 -4
  466. package/dist/plugins/wallet/pairing.mjs.map +1 -1
  467. package/dist/plugins/wallet/protocol.d.mts +1 -0
  468. package/dist/plugins/wallet/protocol.mjs +5 -44
  469. package/dist/plugins/wallet/protocol.mjs.map +1 -1
  470. package/dist/plugins/wallet/routable.mjs +2 -8
  471. package/dist/plugins/wallet/routable.mjs.map +1 -1
  472. package/dist/plugins/wallet/server.mjs +36 -44
  473. package/dist/plugins/wallet/server.mjs.map +1 -1
  474. package/dist/plugins/wallet/service.d.mts +1 -5
  475. package/dist/plugins/wallet/service.mjs +22 -18
  476. package/dist/plugins/wallet/service.mjs.map +1 -1
  477. package/dist/plugins/wallet/spans.mjs +22 -0
  478. package/dist/plugins/wallet/spans.mjs.map +1 -0
  479. package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs +33 -8
  480. package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs.map +1 -1
  481. package/dist/plugins/walrus/codegen.d.mts +3 -3
  482. package/dist/plugins/walrus/codegen.mjs.map +1 -1
  483. package/dist/plugins/walrus/deploy-paths.mjs +21 -5
  484. package/dist/plugins/walrus/deploy-paths.mjs.map +1 -1
  485. package/dist/plugins/walrus/deploy.mjs +67 -69
  486. package/dist/plugins/walrus/deploy.mjs.map +1 -1
  487. package/dist/plugins/walrus/errors.mjs +1 -0
  488. package/dist/plugins/walrus/errors.mjs.map +1 -1
  489. package/dist/plugins/walrus/faucet-strategy.mjs +12 -7
  490. package/dist/plugins/walrus/faucet-strategy.mjs.map +1 -1
  491. package/dist/plugins/walrus/index.d.mts +2 -13
  492. package/dist/plugins/walrus/index.mjs +18 -23
  493. package/dist/plugins/walrus/index.mjs.map +1 -1
  494. package/dist/plugins/walrus/mode/known-deploy.mjs +7 -5
  495. package/dist/plugins/walrus/mode/known-deploy.mjs.map +1 -1
  496. package/dist/plugins/walrus/mode/local-cluster.mjs +26 -7
  497. package/dist/plugins/walrus/mode/local-cluster.mjs.map +1 -1
  498. package/dist/plugins/walrus/registry-publish.mjs.map +1 -1
  499. package/dist/plugins/walrus/routable.mjs +7 -23
  500. package/dist/plugins/walrus/routable.mjs.map +1 -1
  501. package/dist/plugins/walrus/service.mjs.map +1 -1
  502. package/dist/plugins/walrus/spans.mjs +18 -0
  503. package/dist/plugins/walrus/spans.mjs.map +1 -0
  504. package/dist/plugins/walrus/storage-nodes.d.mts +6 -2
  505. package/dist/plugins/walrus/storage-nodes.mjs +15 -8
  506. package/dist/plugins/walrus/storage-nodes.mjs.map +1 -1
  507. package/dist/plugins/walrus/wal-swap.mjs +58 -15
  508. package/dist/plugins/walrus/wal-swap.mjs.map +1 -1
  509. package/dist/primitives/artifact-publisher.d.mts +1 -1
  510. package/dist/primitives/artifact-publisher.mjs +15 -0
  511. package/dist/primitives/artifact-publisher.mjs.map +1 -0
  512. package/dist/runtime/docker/client.mjs +17 -4
  513. package/dist/runtime/docker/client.mjs.map +1 -1
  514. package/dist/runtime/docker/container.mjs +219 -132
  515. package/dist/runtime/docker/container.mjs.map +1 -1
  516. package/dist/runtime/docker/errors.mjs +0 -6
  517. package/dist/runtime/docker/errors.mjs.map +1 -1
  518. package/dist/runtime/docker/exec.mjs +21 -18
  519. package/dist/runtime/docker/exec.mjs.map +1 -1
  520. package/dist/runtime/docker/image.mjs +36 -13
  521. package/dist/runtime/docker/image.mjs.map +1 -1
  522. package/dist/runtime/docker/index.mjs +14 -0
  523. package/dist/runtime/docker/inspect-and-decode.mjs +51 -0
  524. package/dist/runtime/docker/inspect-and-decode.mjs.map +1 -0
  525. package/dist/runtime/docker/inventory.mjs +14 -11
  526. package/dist/runtime/docker/inventory.mjs.map +1 -1
  527. package/dist/runtime/docker/labels.mjs +38 -5
  528. package/dist/runtime/docker/labels.mjs.map +1 -1
  529. package/dist/runtime/docker/logs.d.mts +1 -1
  530. package/dist/runtime/docker/logs.mjs.map +1 -1
  531. package/dist/runtime/docker/network.mjs +83 -47
  532. package/dist/runtime/docker/network.mjs.map +1 -1
  533. package/dist/runtime/docker/render-run-args.mjs +82 -0
  534. package/dist/runtime/docker/render-run-args.mjs.map +1 -0
  535. package/dist/runtime/docker/service.d.mts +1 -1
  536. package/dist/runtime/docker/service.mjs +12 -7
  537. package/dist/runtime/docker/service.mjs.map +1 -1
  538. package/dist/runtime/docker/sweep.mjs +118 -43
  539. package/dist/runtime/docker/sweep.mjs.map +1 -1
  540. package/dist/runtime/docker/volume.mjs +2 -0
  541. package/dist/runtime/docker/volume.mjs.map +1 -1
  542. package/dist/runtime/docker/wrap.mjs +30 -1
  543. package/dist/runtime/docker/wrap.mjs.map +1 -1
  544. package/dist/substrate/cross-process.mjs +14 -8
  545. package/dist/substrate/cross-process.mjs.map +1 -1
  546. package/dist/substrate/event-time.mjs +33 -0
  547. package/dist/substrate/event-time.mjs.map +1 -0
  548. package/dist/substrate/events.d.mts +28 -8
  549. package/dist/substrate/identity.d.mts +2 -1
  550. package/dist/substrate/manifest.d.mts +68 -5
  551. package/dist/substrate/manifest.mjs +34 -5
  552. package/dist/substrate/manifest.mjs.map +1 -1
  553. package/dist/substrate/network.d.mts +3 -5
  554. package/dist/substrate/options.d.mts +0 -2
  555. package/dist/substrate/plugin.d.mts +13 -0
  556. package/dist/substrate/plugin.mjs +4 -2
  557. package/dist/substrate/plugin.mjs.map +1 -1
  558. package/dist/substrate/projection.d.mts +35 -3
  559. package/dist/substrate/runtime/artifact-publisher/index.mjs +19 -9
  560. package/dist/substrate/runtime/artifact-publisher/index.mjs.map +1 -1
  561. package/dist/substrate/runtime/atomic-write.mjs +97 -32
  562. package/dist/substrate/runtime/atomic-write.mjs.map +1 -1
  563. package/dist/substrate/runtime/cache/index.mjs +3 -0
  564. package/dist/substrate/runtime/cache/schema.mjs +2 -2
  565. package/dist/substrate/runtime/cache/schema.mjs.map +1 -1
  566. package/dist/substrate/runtime/cache/service.mjs +9 -7
  567. package/dist/substrate/runtime/cache/service.mjs.map +1 -1
  568. package/dist/substrate/runtime/capability-sinks/index.d.mts +1 -1
  569. package/dist/substrate/runtime/capability-sinks/index.mjs +3 -0
  570. package/dist/substrate/runtime/capability-sinks/layer.mjs +1 -1
  571. package/dist/substrate/runtime/capability-sinks/service.d.mts +61 -2
  572. package/dist/substrate/runtime/capability-sinks/service.mjs +21 -26
  573. package/dist/substrate/runtime/capability-sinks/service.mjs.map +1 -1
  574. package/dist/substrate/runtime/config-validation.d.mts +1 -13
  575. package/dist/substrate/runtime/config-validation.mjs +2 -91
  576. package/dist/substrate/runtime/config-validation.mjs.map +1 -1
  577. package/dist/substrate/runtime/container-runtime.d.mts +1 -0
  578. package/dist/substrate/runtime/container-runtime.mjs +2 -0
  579. package/dist/substrate/runtime/control-plane/domain.mjs +101 -0
  580. package/dist/substrate/runtime/control-plane/domain.mjs.map +1 -0
  581. package/dist/substrate/runtime/control-plane/service.mjs +7 -0
  582. package/dist/substrate/runtime/control-plane/service.mjs.map +1 -0
  583. package/dist/substrate/runtime/cross-process/command-channel/channel.mjs +46 -19
  584. package/dist/substrate/runtime/cross-process/command-channel/channel.mjs.map +1 -1
  585. package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs +30 -12
  586. package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs.map +1 -1
  587. package/dist/substrate/runtime/cross-process/command-channel/index.mjs +5 -0
  588. package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs +11 -2
  589. package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs.map +1 -1
  590. package/dist/substrate/runtime/cross-process/command-channel/runtime-control-lock.mjs +1 -1
  591. package/dist/substrate/runtime/cross-process/index.mjs +11 -0
  592. package/dist/substrate/runtime/cross-process/live-clock.mjs +34 -0
  593. package/dist/substrate/runtime/cross-process/live-clock.mjs.map +1 -0
  594. package/dist/substrate/runtime/cross-process/liveness.mjs +52 -10
  595. package/dist/substrate/runtime/cross-process/liveness.mjs.map +1 -1
  596. package/dist/substrate/runtime/cross-process/lock.d.mts +1 -0
  597. package/dist/substrate/runtime/cross-process/lock.mjs +23 -0
  598. package/dist/substrate/runtime/cross-process/lock.mjs.map +1 -0
  599. package/dist/substrate/runtime/cross-process/reclaim-stale-file.mjs +64 -0
  600. package/dist/substrate/runtime/cross-process/reclaim-stale-file.mjs.map +1 -0
  601. package/dist/substrate/runtime/cross-process/roster.mjs +97 -83
  602. package/dist/substrate/runtime/cross-process/roster.mjs.map +1 -1
  603. package/dist/substrate/runtime/cross-process/self-pid.mjs +8 -0
  604. package/dist/substrate/runtime/cross-process/self-pid.mjs.map +1 -0
  605. package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs +24 -28
  606. package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs.map +1 -1
  607. package/dist/substrate/runtime/cross-process/stack-lock.mjs +41 -20
  608. package/dist/substrate/runtime/cross-process/stack-lock.mjs.map +1 -1
  609. package/dist/substrate/runtime/current-plugin.mjs +2 -2
  610. package/dist/substrate/runtime/current-plugin.mjs.map +1 -1
  611. package/dist/substrate/runtime/errors.mjs +12 -6
  612. package/dist/substrate/runtime/errors.mjs.map +1 -1
  613. package/dist/substrate/runtime/format-unknown-error.mjs +30 -0
  614. package/dist/substrate/runtime/format-unknown-error.mjs.map +1 -0
  615. package/dist/substrate/runtime/host-bind-mount-owner.mjs +10 -0
  616. package/dist/substrate/runtime/host-bind-mount-owner.mjs.map +1 -0
  617. package/dist/substrate/runtime/host-gateway.mjs +20 -0
  618. package/dist/substrate/runtime/host-gateway.mjs.map +1 -0
  619. package/dist/substrate/runtime/host-tree-tar/index.mjs +61 -50
  620. package/dist/substrate/runtime/host-tree-tar/index.mjs.map +1 -1
  621. package/dist/substrate/runtime/http-probe.d.mts +1 -1
  622. package/dist/substrate/runtime/index.mjs +14 -0
  623. package/dist/substrate/runtime/lease-broker/index.d.mts +1 -1
  624. package/dist/substrate/runtime/lease-broker/index.mjs +2 -0
  625. package/dist/substrate/runtime/lease-broker/service.d.mts +1 -64
  626. package/dist/substrate/runtime/lease-broker/service.mjs +1 -1
  627. package/dist/substrate/runtime/lease-broker/service.mjs.map +1 -1
  628. package/dist/substrate/runtime/lifecycle/dep-graph.mjs +22 -3
  629. package/dist/substrate/runtime/lifecycle/dep-graph.mjs.map +1 -1
  630. package/dist/substrate/runtime/lifecycle/index.mjs +9 -0
  631. package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs.map +1 -1
  632. package/dist/substrate/runtime/lifecycle/plugin-registry.mjs +20 -3
  633. package/dist/substrate/runtime/lifecycle/plugin-registry.mjs.map +1 -1
  634. package/dist/substrate/runtime/lifecycle/selective-restart.mjs +1 -1
  635. package/dist/substrate/runtime/lifecycle/signals.mjs +5 -5
  636. package/dist/substrate/runtime/lifecycle/signals.mjs.map +1 -1
  637. package/dist/substrate/runtime/lifecycle/state-machine.mjs +1 -1
  638. package/dist/substrate/runtime/managed-container.d.mts +19 -1
  639. package/dist/substrate/runtime/managed-container.mjs +20 -1
  640. package/dist/substrate/runtime/managed-container.mjs.map +1 -1
  641. package/dist/substrate/runtime/manifest/index.mjs +3 -0
  642. package/dist/substrate/runtime/manifest/manifest.mjs +15 -11
  643. package/dist/substrate/runtime/manifest/manifest.mjs.map +1 -1
  644. package/dist/substrate/runtime/mode-errors.mjs +20 -0
  645. package/dist/substrate/runtime/mode-errors.mjs.map +1 -0
  646. package/dist/substrate/runtime/observability/cascade-formatter.mjs +9 -13
  647. package/dist/substrate/runtime/observability/cascade-formatter.mjs.map +1 -1
  648. package/dist/substrate/runtime/observability/formatter-registry.mjs +19 -36
  649. package/dist/substrate/runtime/observability/formatter-registry.mjs.map +1 -1
  650. package/dist/substrate/runtime/observability/ignore-with-log.d.mts +1 -0
  651. package/dist/substrate/runtime/observability/ignore-with-log.mjs +17 -0
  652. package/dist/substrate/runtime/observability/ignore-with-log.mjs.map +1 -0
  653. package/dist/substrate/runtime/observability/index.d.mts +1 -1
  654. package/dist/substrate/runtime/observability/index.mjs +13 -0
  655. package/dist/substrate/runtime/observability/log-store.d.mts +1 -0
  656. package/dist/substrate/runtime/observability/log-store.mjs +175 -0
  657. package/dist/substrate/runtime/observability/log-store.mjs.map +1 -0
  658. package/dist/substrate/runtime/observability/logger.d.mts +2 -1
  659. package/dist/substrate/runtime/observability/logger.mjs +5 -9
  660. package/dist/substrate/runtime/observability/logger.mjs.map +1 -1
  661. package/dist/substrate/runtime/observability/output-truncate.mjs +35 -0
  662. package/dist/substrate/runtime/observability/output-truncate.mjs.map +1 -0
  663. package/dist/substrate/runtime/observability/pretty-error.mjs +9 -12
  664. package/dist/substrate/runtime/observability/pretty-error.mjs.map +1 -1
  665. package/dist/substrate/runtime/observability/redaction.d.mts +2 -13
  666. package/dist/substrate/runtime/observability/redaction.mjs +8 -14
  667. package/dist/substrate/runtime/observability/redaction.mjs.map +1 -1
  668. package/dist/substrate/runtime/observability/span-store.d.mts +1 -0
  669. package/dist/substrate/runtime/observability/span-store.mjs +110 -0
  670. package/dist/substrate/runtime/observability/span-store.mjs.map +1 -0
  671. package/dist/substrate/runtime/observability/spans.mjs +14 -14
  672. package/dist/substrate/runtime/observability/spans.mjs.map +1 -1
  673. package/dist/substrate/runtime/observability/subprocess-capture.mjs +1 -1
  674. package/dist/substrate/runtime/passthrough-or-wrap.mjs +33 -0
  675. package/dist/substrate/runtime/passthrough-or-wrap.mjs.map +1 -0
  676. package/dist/substrate/runtime/paths.d.mts +1 -1
  677. package/dist/substrate/runtime/paths.mjs +4 -3
  678. package/dist/substrate/runtime/paths.mjs.map +1 -1
  679. package/dist/substrate/runtime/phase-preserving-produce.mjs +40 -0
  680. package/dist/substrate/runtime/phase-preserving-produce.mjs.map +1 -0
  681. package/dist/substrate/runtime/port-broker/index.mjs +3 -0
  682. package/dist/substrate/runtime/port-broker/service.mjs +170 -126
  683. package/dist/substrate/runtime/port-broker/service.mjs.map +1 -1
  684. package/dist/substrate/runtime/post-acquire-tasks.mjs +1 -1
  685. package/dist/substrate/runtime/post-acquire-tasks.mjs.map +1 -1
  686. package/dist/substrate/runtime/probes.d.mts +7 -5
  687. package/dist/substrate/runtime/probes.mjs +3 -1
  688. package/dist/substrate/runtime/probes.mjs.map +1 -1
  689. package/dist/substrate/runtime/projection/index.mjs +4 -0
  690. package/dist/substrate/runtime/projection/operational-endpoints.mjs +1 -2
  691. package/dist/substrate/runtime/projection/operational-endpoints.mjs.map +1 -1
  692. package/dist/substrate/runtime/projection/persisted.mjs +33 -15
  693. package/dist/substrate/runtime/projection/persisted.mjs.map +1 -1
  694. package/dist/substrate/runtime/projection/state-ref.mjs +26 -2
  695. package/dist/substrate/runtime/projection/state-ref.mjs.map +1 -1
  696. package/dist/substrate/runtime/projection/update.mjs +88 -24
  697. package/dist/substrate/runtime/projection/update.mjs.map +1 -1
  698. package/dist/substrate/runtime/random-suffix.mjs +11 -0
  699. package/dist/substrate/runtime/random-suffix.mjs.map +1 -0
  700. package/dist/substrate/runtime/retry-policy.d.mts +59 -1
  701. package/dist/substrate/runtime/retry-policy.mjs +66 -1
  702. package/dist/substrate/runtime/retry-policy.mjs.map +1 -1
  703. package/dist/substrate/runtime/routed-url.d.mts +1 -0
  704. package/dist/substrate/runtime/routed-url.mjs +79 -0
  705. package/dist/substrate/runtime/routed-url.mjs.map +1 -0
  706. package/dist/substrate/runtime/runtime-decode.d.mts +1 -1
  707. package/dist/substrate/runtime/runtime-decode.mjs.map +1 -1
  708. package/dist/substrate/runtime/scoped-http-server.mjs +2 -3
  709. package/dist/substrate/runtime/scoped-http-server.mjs.map +1 -1
  710. package/dist/substrate/runtime/scoped-multimap/index.mjs +2 -0
  711. package/dist/substrate/runtime/scoped-multimap/service.mjs +52 -0
  712. package/dist/substrate/runtime/scoped-multimap/service.mjs.map +1 -0
  713. package/dist/substrate/runtime/scoped-ref-map/index.mjs +2 -0
  714. package/dist/substrate/runtime/scoped-ref-map/service.mjs +2 -2
  715. package/dist/substrate/runtime/scoped-ref-map/service.mjs.map +1 -1
  716. package/dist/substrate/runtime/stage-and-swap/index.mjs +72 -4
  717. package/dist/substrate/runtime/stage-and-swap/index.mjs.map +1 -1
  718. package/dist/substrate/runtime/state-store/index.d.mts +1 -0
  719. package/dist/substrate/runtime/state-store/index.mjs +3 -0
  720. package/dist/substrate/runtime/state-store/schema.d.mts +1 -0
  721. package/dist/substrate/runtime/state-store/schema.mjs +19 -14
  722. package/dist/substrate/runtime/state-store/schema.mjs.map +1 -1
  723. package/dist/substrate/runtime/state-store/service.d.mts +1 -0
  724. package/dist/substrate/runtime/state-store/service.mjs +145 -0
  725. package/dist/substrate/runtime/state-store/service.mjs.map +1 -0
  726. package/dist/substrate/runtime/strategy-registry/chain-keyed-strategy-for.d.mts +1 -0
  727. package/dist/substrate/runtime/strategy-registry/chain-keyed-strategy-for.mjs +33 -0
  728. package/dist/substrate/runtime/strategy-registry/chain-keyed-strategy-for.mjs.map +1 -0
  729. package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs +1 -1
  730. package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs.map +1 -1
  731. package/dist/substrate/runtime/strategy-registry/index.mjs +4 -0
  732. package/dist/substrate/runtime/strategy-registry/service.mjs +19 -33
  733. package/dist/substrate/runtime/strategy-registry/service.mjs.map +1 -1
  734. package/dist/substrate/runtime/subnet-broker.mjs +60 -0
  735. package/dist/substrate/runtime/subnet-broker.mjs.map +1 -0
  736. package/dist/substrate/runtime/sui-execute/index.d.mts +21 -1
  737. package/dist/substrate/runtime/sui-execute/index.mjs +84 -20
  738. package/dist/substrate/runtime/sui-execute/index.mjs.map +1 -1
  739. package/dist/substrate/runtime/sui-execute/sign-and-dispatch.d.mts +1 -0
  740. package/dist/substrate/runtime/sui-execute/sign-and-dispatch.mjs +32 -0
  741. package/dist/substrate/runtime/sui-execute/sign-and-dispatch.mjs.map +1 -0
  742. package/dist/substrate/runtime/sui-ledger/object-ref.mjs +32 -0
  743. package/dist/substrate/runtime/sui-ledger/object-ref.mjs.map +1 -0
  744. package/dist/substrate/runtime/sui-move-build/index.mjs +93 -19
  745. package/dist/substrate/runtime/sui-move-build/index.mjs.map +1 -1
  746. package/dist/substrate/runtime/supervisor/acquire-node.mjs +181 -0
  747. package/dist/substrate/runtime/supervisor/acquire-node.mjs.map +1 -0
  748. package/dist/substrate/runtime/supervisor/background-tasks.mjs +144 -0
  749. package/dist/substrate/runtime/supervisor/background-tasks.mjs.map +1 -0
  750. package/dist/substrate/runtime/supervisor/command-loop.mjs +68 -0
  751. package/dist/substrate/runtime/supervisor/command-loop.mjs.map +1 -0
  752. package/dist/substrate/runtime/supervisor/dispatch-contributions.mjs +151 -0
  753. package/dist/substrate/runtime/supervisor/dispatch-contributions.mjs.map +1 -0
  754. package/dist/substrate/runtime/supervisor/errors.d.mts +1 -0
  755. package/dist/substrate/runtime/supervisor/errors.mjs +9 -0
  756. package/dist/substrate/runtime/supervisor/errors.mjs.map +1 -0
  757. package/dist/substrate/runtime/supervisor/index.d.mts +1 -0
  758. package/dist/substrate/runtime/supervisor/index.mjs +3 -0
  759. package/dist/substrate/runtime/supervisor/shutdown.mjs +51 -0
  760. package/dist/substrate/runtime/supervisor/shutdown.mjs.map +1 -0
  761. package/dist/substrate/runtime/supervisor/start-supervisor.d.mts +1 -0
  762. package/dist/substrate/runtime/supervisor/start-supervisor.mjs +250 -0
  763. package/dist/substrate/runtime/supervisor/start-supervisor.mjs.map +1 -0
  764. package/dist/substrate/runtime/supervisor/state.d.mts +1 -0
  765. package/dist/substrate/runtime/supervisor/state.mjs +22 -0
  766. package/dist/substrate/runtime/supervisor/state.mjs.map +1 -0
  767. package/dist/substrate/runtime/supervisor/teardown.mjs +57 -0
  768. package/dist/substrate/runtime/supervisor/teardown.mjs.map +1 -0
  769. package/dist/substrate/runtime/supervisor/types.d.mts +1 -0
  770. package/dist/substrate/runtime/supervisor/wiring.mjs +133 -0
  771. package/dist/substrate/runtime/supervisor/wiring.mjs.map +1 -0
  772. package/dist/substrate/runtime/typed-env.mjs +8 -0
  773. package/dist/substrate/runtime/typed-env.mjs.map +1 -0
  774. package/dist/substrate/state-store.d.mts +1 -0
  775. package/dist/substrate/versioned-doc-schema.mjs +17 -0
  776. package/dist/substrate/versioned-doc-schema.mjs.map +1 -0
  777. package/dist/substrate/versioned-doc-sync.mjs +94 -0
  778. package/dist/substrate/versioned-doc-sync.mjs.map +1 -0
  779. package/dist/surfaces/cli/command-tree.mjs.map +1 -1
  780. package/dist/surfaces/cli/commands/index.mjs +9 -0
  781. package/dist/surfaces/cli/commands/prune-picker-entry.mjs +13 -0
  782. package/dist/surfaces/cli/commands/prune-picker-entry.mjs.map +1 -0
  783. package/dist/surfaces/cli/commands/prune-picker.mjs +3 -2
  784. package/dist/surfaces/cli/commands/prune-picker.mjs.map +1 -1
  785. package/dist/surfaces/cli/commands/prune.mjs +34 -17
  786. package/dist/surfaces/cli/commands/prune.mjs.map +1 -1
  787. package/dist/surfaces/cli/commands/status.mjs +2 -2
  788. package/dist/surfaces/cli/commands/status.mjs.map +1 -1
  789. package/dist/surfaces/cli/commands/supervisor-presence.mjs +5 -3
  790. package/dist/surfaces/cli/commands/supervisor-presence.mjs.map +1 -1
  791. package/dist/surfaces/cli/commands/wipe.mjs +38 -4
  792. package/dist/surfaces/cli/commands/wipe.mjs.map +1 -1
  793. package/dist/surfaces/cli/errors.mjs +1 -1
  794. package/dist/surfaces/cli/errors.mjs.map +1 -1
  795. package/dist/surfaces/cli/flags.mjs +0 -1
  796. package/dist/surfaces/cli/flags.mjs.map +1 -1
  797. package/dist/surfaces/cli/index.mjs +98 -18
  798. package/dist/surfaces/cli/index.mjs.map +1 -1
  799. package/dist/surfaces/cli/output.mjs +1 -0
  800. package/dist/surfaces/cli/output.mjs.map +1 -1
  801. package/dist/surfaces/cli/sysexits.mjs +2 -1
  802. package/dist/surfaces/cli/sysexits.mjs.map +1 -1
  803. package/dist/surfaces/tui/app.mjs +25 -3
  804. package/dist/surfaces/tui/app.mjs.map +1 -1
  805. package/dist/surfaces/tui/display-derivation.mjs +23 -74
  806. package/dist/surfaces/tui/display-derivation.mjs.map +1 -1
  807. package/dist/surfaces/tui/event-log.mjs +35 -23
  808. package/dist/surfaces/tui/event-log.mjs.map +1 -1
  809. package/dist/surfaces/tui/input.mjs +5 -1
  810. package/dist/surfaces/tui/input.mjs.map +1 -1
  811. package/dist/surfaces/tui/plain-renderer.mjs +70 -34
  812. package/dist/surfaces/tui/plain-renderer.mjs.map +1 -1
  813. package/package.json +24 -4
  814. package/dist/contracts/liveness-classifier.d.mts +0 -19
  815. package/dist/contracts/network-resolver.d.mts +0 -15
  816. package/dist/contracts/network-resolver.mjs +0 -7
  817. package/dist/contracts/network-resolver.mjs.map +0 -1
  818. package/dist/orchestrators/codegen/extras.mjs +0 -16
  819. package/dist/orchestrators/codegen/extras.mjs.map +0 -1
  820. package/dist/plugins/deepbook/routable.mjs +0 -21
  821. package/dist/plugins/deepbook/routable.mjs.map +0 -1
  822. package/dist/plugins/faucet/service.d.mts +0 -20
  823. package/dist/plugins/faucet/strategies/sui-local.d.mts +0 -23
  824. package/dist/plugins/faucet/strategies/sui-local.mjs.map +0 -1
  825. package/dist/plugins/sui/seed-objects.d.mts +0 -18
  826. package/dist/plugins/sui/seed-objects.mjs +0 -25
  827. package/dist/plugins/sui/seed-objects.mjs.map +0 -1
  828. package/dist/runtime/built-in-plugin-layers.mjs.map +0 -1
  829. package/dist/substrate/runtime/context-helpers.mjs +0 -32
  830. package/dist/substrate/runtime/context-helpers.mjs.map +0 -1
  831. package/dist/substrate/runtime/run.mjs.map +0 -1
  832. package/dist/substrate/runtime/strategy-registry/faucet-capability-for.mjs +0 -30
  833. package/dist/substrate/runtime/strategy-registry/faucet-capability-for.mjs.map +0 -1
  834. package/dist/substrate/runtime/supervisor.d.mts +0 -1
  835. package/dist/substrate/runtime/supervisor.mjs +0 -831
  836. package/dist/substrate/runtime/supervisor.mjs.map +0 -1
  837. package/dist/surfaces/cli/commands/doctor-probes.mjs.map +0 -1
  838. /package/dist/{substrate/runtime/strategy-registry/faucet-capability-for.d.mts → plugins/faucet/http.d.mts} +0 -0
@@ -0,0 +1,508 @@
1
+ import { builder } from "./builder.mjs";
2
+ import { AccountScheme, AccountSource, DeepbookMode, ErrorSeverity, FundingStatus, Health, LifecycleStatus, LogLevel, PackageKind, PluginRole, RowSection, WireProtocol } from "./enums.mjs";
3
+ import { Effect, SubscriptionRef } from "effect";
4
+ //#region src/plugins/dashboard/schema/types.ts
5
+ /** Compute the stack health summary from the projection rows. `active`
6
+ * counts rows mid-flight (acquiring/stopping); `waiting` counts rows that
7
+ * have not started (pending). Overall `health` is `failed`→blocked,
8
+ * any-active→active, all-ready (with ≥1 row)→ready, otherwise empty. */
9
+ const computeHealthSummary = (rows) => {
10
+ let ready = 0;
11
+ let active = 0;
12
+ let failed = 0;
13
+ let waiting = 0;
14
+ for (const row of rows) switch (row.status) {
15
+ case "ready":
16
+ case "done":
17
+ case "stopped":
18
+ ready += 1;
19
+ break;
20
+ case "acquiring":
21
+ case "stopping":
22
+ active += 1;
23
+ break;
24
+ case "failed":
25
+ failed += 1;
26
+ break;
27
+ case "pending":
28
+ waiting += 1;
29
+ break;
30
+ }
31
+ const total = rows.length;
32
+ return {
33
+ total,
34
+ ready,
35
+ active,
36
+ failed,
37
+ waiting,
38
+ health: failed > 0 ? "blocked" : active > 0 ? "active" : total > 0 && ready === total ? "ready" : "empty"
39
+ };
40
+ };
41
+ const readSnapshot = (ref) => Effect.runPromise(SubscriptionRef.get(ref));
42
+ const Identity = builder.objectRef("Identity").implement({
43
+ description: "Stack identity triple (app/stack/network).",
44
+ fields: (t) => ({
45
+ app: t.exposeString("app"),
46
+ stack: t.exposeString("stack"),
47
+ network: t.exposeString("network")
48
+ })
49
+ });
50
+ const Cycle = builder.objectRef("Cycle").implement({
51
+ description: "The current boot/restart cycle.",
52
+ fields: (t) => ({
53
+ id: t.exposeInt("id"),
54
+ startedAt: t.exposeFloat("startedAt"),
55
+ phase: t.field({
56
+ type: "String",
57
+ resolve: (c) => c.phase
58
+ })
59
+ })
60
+ });
61
+ const Endpoint = builder.objectRef("Endpoint");
62
+ builder.node(Endpoint, {
63
+ description: "A routed endpoint contributed by a plugin.",
64
+ id: { resolve: (e) => e.endpointKey },
65
+ loadOne: async (id, ctx) => {
66
+ return (await readSnapshot(ctx.state)).endpoints.find((e) => e.endpointKey === id) ?? null;
67
+ },
68
+ fields: (t) => ({
69
+ endpointKey: t.exposeString("endpointKey"),
70
+ pluginKey: t.exposeString("pluginKey"),
71
+ name: t.exposeString("name"),
72
+ url: t.exposeString("url"),
73
+ displayUrl: t.exposeString("displayUrl", { nullable: true }),
74
+ wireProtocol: t.field({
75
+ type: WireProtocol,
76
+ resolve: (e) => e.wireProtocol
77
+ }),
78
+ registeredAt: t.exposeFloat("registeredAt")
79
+ })
80
+ });
81
+ const LogTail = builder.objectRef("LogTail").implement({
82
+ description: "The tail of a plugin log stream.",
83
+ fields: (t) => ({
84
+ lines: t.exposeStringList("lines"),
85
+ level: t.field({
86
+ type: LogLevel,
87
+ resolve: (l) => l.level
88
+ }),
89
+ truncated: t.exposeBoolean("truncated")
90
+ })
91
+ });
92
+ const StackError = builder.objectRef("StackError").implement({
93
+ description: "A structured error reported by a plugin or the engine.",
94
+ fields: (t) => ({
95
+ at: t.exposeFloat("at"),
96
+ pluginKey: t.exposeString("pluginKey", { nullable: true }),
97
+ tag: t.exposeString("tag"),
98
+ summary: t.exposeString("summary"),
99
+ chain: t.exposeStringList("chain"),
100
+ severity: t.field({
101
+ type: ErrorSeverity,
102
+ resolve: (e) => e.severity
103
+ })
104
+ })
105
+ });
106
+ const Service = builder.objectRef("Service");
107
+ builder.node(Service, {
108
+ description: "A visible plugin instance (one projection row).",
109
+ id: { resolve: (s) => s.row.key },
110
+ loadOne: async (id, ctx) => {
111
+ const snapshot = await readSnapshot(ctx.state);
112
+ const row = snapshot.rows.find((r) => r.key === id);
113
+ return row ? {
114
+ row,
115
+ snapshot
116
+ } : null;
117
+ },
118
+ fields: (t) => ({
119
+ key: t.string({ resolve: (s) => s.row.key }),
120
+ role: t.field({
121
+ type: PluginRole,
122
+ resolve: (s) => s.row.role
123
+ }),
124
+ status: t.field({
125
+ type: LifecycleStatus,
126
+ resolve: (s) => s.row.status
127
+ }),
128
+ section: t.field({
129
+ type: RowSection,
130
+ resolve: (s) => s.row.section
131
+ }),
132
+ endpointSection: t.field({
133
+ type: RowSection,
134
+ resolve: (s) => s.row.endpointSection
135
+ }),
136
+ phase: t.string({
137
+ nullable: true,
138
+ resolve: (s) => s.row.phase
139
+ }),
140
+ selectiveRestartHighlight: t.boolean({ resolve: (s) => s.row.selectiveRestartHighlight }),
141
+ lastError: t.field({
142
+ type: StackError,
143
+ nullable: true,
144
+ resolve: (s) => s.row.lastError
145
+ }),
146
+ logTail: t.field({
147
+ type: LogTail,
148
+ resolve: (s) => s.row.logTail
149
+ }),
150
+ endpoints: t.field({
151
+ type: [Endpoint],
152
+ description: "The row's endpoints, joined from the snapshot by key + pluginKey.",
153
+ resolve: (s) => {
154
+ const keys = new Set(s.row.endpoints);
155
+ return s.snapshot.endpoints.filter((e) => keys.has(e.endpointKey) && e.pluginKey === s.row.key);
156
+ }
157
+ })
158
+ })
159
+ });
160
+ const FundingEntry = builder.objectRef("FundingEntry").implement({
161
+ description: "One coin-type funding outcome for an account.",
162
+ fields: (t) => ({
163
+ coin: t.exposeString("coin"),
164
+ fullCoinType: t.exposeString("fullCoinType"),
165
+ amount: t.exposeString("amount"),
166
+ status: t.field({
167
+ type: "String",
168
+ resolve: (e) => e.status
169
+ })
170
+ })
171
+ });
172
+ const AccountFunding = builder.objectRef("AccountFunding").implement({
173
+ description: "Funding state for an account.",
174
+ fields: (t) => ({
175
+ status: t.field({
176
+ type: FundingStatus,
177
+ resolve: (f) => f.status
178
+ }),
179
+ balanceMist: t.exposeString("balanceMist", { nullable: true }),
180
+ requestedMist: t.exposeString("requestedMist", { nullable: true }),
181
+ entries: t.field({
182
+ type: [FundingEntry],
183
+ resolve: (f) => f.entries ?? []
184
+ })
185
+ })
186
+ });
187
+ const Account = builder.objectRef("Account");
188
+ builder.node(Account, {
189
+ description: "A managed or impersonated account.",
190
+ id: { resolve: (a) => a.key },
191
+ loadOne: async (id, ctx) => {
192
+ return (await readSnapshot(ctx.state)).accounts.find((a) => a.key === id) ?? null;
193
+ },
194
+ fields: (t) => ({
195
+ key: t.exposeString("key"),
196
+ rowKey: t.exposeString("rowKey", { nullable: true }),
197
+ name: t.exposeString("name"),
198
+ address: t.exposeString("address", { nullable: true }),
199
+ scheme: t.field({
200
+ type: AccountScheme,
201
+ nullable: true,
202
+ resolve: (a) => a.scheme
203
+ }),
204
+ source: t.field({
205
+ type: AccountSource,
206
+ nullable: true,
207
+ resolve: (a) => a.source
208
+ }),
209
+ walletVisible: t.exposeBoolean("walletVisible"),
210
+ updatedAt: t.exposeFloat("updatedAt"),
211
+ funding: t.field({
212
+ type: AccountFunding,
213
+ resolve: (a) => a.funding
214
+ })
215
+ })
216
+ });
217
+ const Package = builder.objectRef("Package");
218
+ builder.node(Package, {
219
+ description: "A local or known on-chain package.",
220
+ id: { resolve: (p) => p.key },
221
+ loadOne: async (id, ctx) => {
222
+ return (await readSnapshot(ctx.state)).packages.find((p) => p.key === id) ?? null;
223
+ },
224
+ fields: (t) => ({
225
+ key: t.exposeString("key"),
226
+ rowKey: t.exposeString("rowKey", { nullable: true }),
227
+ name: t.exposeString("name"),
228
+ kind: t.field({
229
+ type: PackageKind,
230
+ resolve: (p) => p.kind
231
+ }),
232
+ packageId: t.exposeString("packageId"),
233
+ upgradeCapId: t.exposeString("upgradeCapId", { nullable: true }),
234
+ mvrPlaceholder: t.exposeString("mvrPlaceholder"),
235
+ sourcePath: t.exposeString("sourcePath", { nullable: true }),
236
+ updatedAt: t.exposeFloat("updatedAt")
237
+ })
238
+ });
239
+ const BuildEntry = builder.objectRef("BuildEntry").implement({
240
+ description: "A stack build progress entry.",
241
+ fields: (t) => ({
242
+ pluginKey: t.exposeString("pluginKey", { nullable: true }),
243
+ phase: t.exposeString("phase"),
244
+ progress: t.exposeString("progress"),
245
+ startedAt: t.exposeFloat("startedAt")
246
+ })
247
+ });
248
+ const LastEvent = builder.objectRef("LastEvent").implement({
249
+ description: "The most recent event seq/timestamp the engine emitted.",
250
+ fields: (t) => ({
251
+ seq: t.exposeInt("seq"),
252
+ at: t.exposeFloat("at")
253
+ })
254
+ });
255
+ const HealthSummary = builder.objectRef("HealthSummary").implement({
256
+ description: "Derived stack health counts.",
257
+ fields: (t) => ({
258
+ total: t.exposeInt("total"),
259
+ ready: t.exposeInt("ready"),
260
+ active: t.exposeInt("active"),
261
+ failed: t.exposeInt("failed"),
262
+ waiting: t.exposeInt("waiting"),
263
+ health: t.field({
264
+ type: Health,
265
+ resolve: (h) => h.health
266
+ })
267
+ })
268
+ });
269
+ const SnapshotEntry = builder.objectRef("SnapshotEntry").implement({
270
+ description: "A snapshot catalog entry (orchestrator `list`).",
271
+ fields: (t) => ({
272
+ id: t.exposeString("id"),
273
+ label: t.exposeString("label", { nullable: true }),
274
+ createdAt: t.exposeFloat("createdAt", { nullable: true }),
275
+ app: t.exposeString("app", { nullable: true }),
276
+ stack: t.exposeString("stack", { nullable: true }),
277
+ network: t.exposeString("network", { nullable: true }),
278
+ participants: t.exposeStringList("participants"),
279
+ containerCount: t.exposeInt("containerCount"),
280
+ subtreeCount: t.exposeInt("subtreeCount"),
281
+ corrupt: t.exposeBoolean("corrupt")
282
+ })
283
+ });
284
+ const DeepbookPool = builder.objectRef("DeepbookPool").implement({
285
+ description: "A DeepBook pool object id + coin types (prices are chain-direct).",
286
+ fields: (t) => ({
287
+ name: t.exposeString("name"),
288
+ poolId: t.exposeString("poolId"),
289
+ baseCoinType: t.exposeString("baseCoinType"),
290
+ quoteCoinType: t.exposeString("quoteCoinType")
291
+ })
292
+ });
293
+ const DeepbookInfo = builder.objectRef("DeepbookInfo").implement({
294
+ description: "A DeepBook deployment: registry/admin/pool ids + market-maker state.",
295
+ fields: (t) => ({
296
+ pluginKey: t.exposeString("pluginKey"),
297
+ name: t.exposeString("name"),
298
+ mode: t.field({
299
+ type: DeepbookMode,
300
+ resolve: (d) => d.mode
301
+ }),
302
+ chain: t.exposeString("chain"),
303
+ packageId: t.exposeString("packageId"),
304
+ registryId: t.exposeString("registryId"),
305
+ adminCapId: t.exposeString("adminCapId", { nullable: true }),
306
+ deepTreasuryId: t.exposeString("deepTreasuryId", { nullable: true }),
307
+ pools: t.field({
308
+ type: [DeepbookPool],
309
+ resolve: (d) => d.pools
310
+ }),
311
+ marketMakerRunning: t.exposeBoolean("marketMakerRunning"),
312
+ serverUrl: t.exposeString("serverUrl", { nullable: true }),
313
+ indexerUrl: t.exposeString("indexerUrl", { nullable: true })
314
+ })
315
+ });
316
+ const SealKeyServer = builder.objectRef("SealKeyServer").implement({
317
+ description: "One Seal key-server config (objectId + weight).",
318
+ fields: (t) => ({
319
+ objectId: t.exposeString("objectId"),
320
+ weight: t.exposeInt("weight")
321
+ })
322
+ });
323
+ const SealInfo = builder.objectRef("SealInfo").implement({
324
+ description: "A Seal key-server deployment (objectId/threshold/mode/keyServers).",
325
+ fields: (t) => ({
326
+ pluginKey: t.exposeString("pluginKey"),
327
+ mode: t.field({
328
+ type: "String",
329
+ resolve: (s) => s.mode
330
+ }),
331
+ objectId: t.exposeString("objectId"),
332
+ keyServerUrl: t.exposeString("keyServerUrl"),
333
+ keyServers: t.field({
334
+ type: [SealKeyServer],
335
+ resolve: (s) => s.keyServers
336
+ }),
337
+ threshold: t.exposeInt("threshold")
338
+ })
339
+ });
340
+ const CoinCap = builder.objectRef("CoinCap").implement({
341
+ description: "A coin's treasury-cap id (drives Mint) + addressing facts.",
342
+ fields: (t) => ({
343
+ pluginKey: t.exposeString("pluginKey"),
344
+ symbol: t.exposeString("symbol", { nullable: true }),
345
+ fullCoinType: t.exposeString("fullCoinType"),
346
+ decimals: t.exposeInt("decimals"),
347
+ source: t.field({
348
+ type: "String",
349
+ resolve: (c) => c.source
350
+ }),
351
+ treasuryCapId: t.exposeString("treasuryCapId", { nullable: true }),
352
+ packageId: t.exposeString("packageId", { nullable: true })
353
+ })
354
+ });
355
+ const FundableCoin = builder.objectRef("FundableCoin").implement({
356
+ description: "A coin the dashboard faucet can fund right now. SUI is fixed-amount; WAL/DEEP honor an amount and require the recipient to be a resolved account.",
357
+ fields: (t) => ({
358
+ symbol: t.exposeString("symbol"),
359
+ coinType: t.exposeString("coinType"),
360
+ /** True when the underlying strategy honors a caller-supplied amount
361
+ * (WAL/DEEP swaps). SUI is fixed-amount (false). */
362
+ honorsAmount: t.exposeBoolean("honorsAmount"),
363
+ /** True when funding requires the recipient to BE a resolved account
364
+ * (the swap spends that account's own SUI). SUI is false. */
365
+ requiresAccountSigner: t.exposeBoolean("requiresAccountSigner")
366
+ })
367
+ });
368
+ const PostgresTable = builder.objectRef("PostgresTable").implement({
369
+ description: "Per-table row estimate + total size (bytes).",
370
+ fields: (t) => ({
371
+ schema: t.exposeString("schema"),
372
+ name: t.exposeString("name"),
373
+ rowEstimate: t.exposeFloat("rowEstimate"),
374
+ totalBytes: t.exposeFloat("totalBytes")
375
+ })
376
+ });
377
+ const PostgresStats = builder.objectRef("PostgresStats").implement({
378
+ description: "Postgres wire-protocol stats (db size, connections, per-table). Gathered by exec; the browser cannot speak the PG protocol.",
379
+ fields: (t) => ({
380
+ pluginKey: t.exposeString("pluginKey"),
381
+ database: t.exposeString("database"),
382
+ plainUrl: t.exposeString("plainUrl"),
383
+ databaseBytes: t.exposeFloat("databaseBytes"),
384
+ connectionCount: t.exposeInt("connectionCount"),
385
+ tables: t.field({
386
+ type: [PostgresTable],
387
+ resolve: (p) => p.tables
388
+ }),
389
+ available: t.exposeBoolean("available"),
390
+ detail: t.exposeString("detail", { nullable: true })
391
+ })
392
+ });
393
+ const fieldsJson = (fields) => {
394
+ try {
395
+ return JSON.stringify(fields);
396
+ } catch {
397
+ return "{}";
398
+ }
399
+ };
400
+ const LogRecordType = builder.objectRef("LogRecord").implement({
401
+ description: "One cross-service log record (queryable Console \"Logs\" tab). Fed off the same logger path as the per-row projection tail.",
402
+ fields: (t) => ({
403
+ seq: t.exposeFloat("seq"),
404
+ timestampMillis: t.exposeFloat("timestampMillis"),
405
+ level: t.field({
406
+ type: "String",
407
+ resolve: (r) => r.level
408
+ }),
409
+ service: t.exposeString("service"),
410
+ message: t.exposeString("message"),
411
+ /** Structured fields as a JSON string (no JSON scalar in this schema). */
412
+ fieldsJson: t.field({
413
+ type: "String",
414
+ resolve: (r) => fieldsJson(r.fields)
415
+ })
416
+ })
417
+ });
418
+ const SpanRecordType = builder.objectRef("SpanRecord").implement({
419
+ description: "One completed span (queryable Console \"Traces\" tab). Recorded by the supervisor's recording Tracer.",
420
+ fields: (t) => ({
421
+ traceId: t.exposeString("traceId"),
422
+ spanId: t.exposeString("spanId"),
423
+ parentId: t.exposeString("parentId", { nullable: true }),
424
+ name: t.exposeString("name"),
425
+ service: t.exposeString("service", { nullable: true }),
426
+ startMillis: t.exposeFloat("startMillis"),
427
+ durationMillis: t.exposeFloat("durationMillis"),
428
+ status: t.field({
429
+ type: "String",
430
+ resolve: (r) => r.status
431
+ }),
432
+ /** Flattened span attributes as a JSON string. */
433
+ attributesJson: t.field({
434
+ type: "String",
435
+ resolve: (r) => fieldsJson(r.attributes)
436
+ })
437
+ })
438
+ });
439
+ const LogFilterInput = builder.inputType("LogFilter", { fields: (t) => ({
440
+ services: t.stringList({ required: false }),
441
+ /** Levels (trace/debug/info/warn/error/fatal). Strings, not an enum
442
+ * (the level vocabulary is wider than the row-tail LogLevel enum). */
443
+ levels: t.stringList({ required: false }),
444
+ search: t.string({ required: false }),
445
+ sinceMillis: t.float({ required: false }),
446
+ limit: t.int({ required: false })
447
+ }) });
448
+ const SpanFilterInput = builder.inputType("SpanFilter", { fields: (t) => ({
449
+ services: t.stringList({ required: false }),
450
+ /** Statuses ('ok' / 'error'). Strings, not an enum. */
451
+ statuses: t.stringList({ required: false }),
452
+ search: t.string({ required: false }),
453
+ sinceMillis: t.float({ required: false }),
454
+ limit: t.int({ required: false })
455
+ }) });
456
+ const StackState = builder.objectRef("StackState").implement({
457
+ description: "A full live projection snapshot.",
458
+ fields: (t) => ({
459
+ identity: t.field({
460
+ type: Identity,
461
+ resolve: (s) => s.identity
462
+ }),
463
+ cycle: t.field({
464
+ type: Cycle,
465
+ resolve: (s) => s.cycle
466
+ }),
467
+ summary: t.field({
468
+ type: HealthSummary,
469
+ resolve: (s) => computeHealthSummary(s.rows)
470
+ }),
471
+ services: t.field({
472
+ type: [Service],
473
+ resolve: (s) => s.rows.map((row) => ({
474
+ row,
475
+ snapshot: s
476
+ }))
477
+ }),
478
+ endpoints: t.field({
479
+ type: [Endpoint],
480
+ resolve: (s) => s.endpoints
481
+ }),
482
+ accounts: t.field({
483
+ type: [Account],
484
+ resolve: (s) => s.accounts
485
+ }),
486
+ packages: t.field({
487
+ type: [Package],
488
+ resolve: (s) => s.packages
489
+ }),
490
+ errors: t.field({
491
+ type: [StackError],
492
+ resolve: (s) => s.errors
493
+ }),
494
+ stackBuild: t.field({
495
+ type: [BuildEntry],
496
+ resolve: (s) => s.stackBuild
497
+ }),
498
+ lastEvent: t.field({
499
+ type: LastEvent,
500
+ nullable: true,
501
+ resolve: (s) => s.lastEvent
502
+ })
503
+ })
504
+ });
505
+ //#endregion
506
+ export { Account, CoinCap, DeepbookInfo, FundableCoin, LogFilterInput, LogRecordType, Package, PostgresStats, SealInfo, Service, SnapshotEntry, SpanFilterInput, SpanRecordType, StackState };
507
+
508
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","names":["HealthEnum"],"sources":["../../../../src/plugins/dashboard/schema/types.ts"],"sourcesContent":["// Dashboard object types — real Pothos object refs over the projection.\n//\n// Sources are the substrate projection shapes (Row, Endpoint,\n// AccountProjection, …). Service/Endpoint/Account/Package are registered\n// as relay Nodes via `builder.node`, with an opaque global id derived from\n// their natural key and a `loadOne` that re-finds them in the current\n// snapshot (read from the request's `ctx.state`) so the auto-generated\n// `node`/`nodes` queries resolve.\n//\n// `StackState` and `HealthSummary` are computed views over a snapshot —\n// `StackState` carries the snapshot itself as its source so nested\n// resolvers (e.g. Service.endpoints) can join against sibling arrays.\n\nimport { Effect, SubscriptionRef } from 'effect';\nimport { builder } from './builder.ts';\nimport {\n\tAccountScheme,\n\tAccountSource,\n\tDeepbookMode,\n\tErrorSeverity,\n\tFundingStatus,\n\tHealth as HealthEnum,\n\tLifecycleStatus,\n\tLogLevel,\n\tPackageKind,\n\tPluginRole,\n\tRowSection,\n\tWireProtocol,\n} from './enums.ts';\nimport type { Health } from './enums.ts';\nimport type { ControlPlaneSnapshotEntry } from '../../../substrate/runtime/control-plane/service.ts';\nimport type {\n\tDashboardCoinCap,\n\tDashboardDeepbookInfo,\n\tDashboardDeepbookPool,\n\tDashboardFundableCoin,\n\tDashboardPostgresStats,\n\tDashboardPostgresTable,\n\tDashboardSealInfo,\n\tDashboardSealKeyServer,\n} from '../domain.ts';\nimport type { LogRecord, SpanRecord } from '../../../substrate/runtime/observability/index.ts';\nimport type {\n\tAccountProjection,\n\tBuildEntry as BuildEntryShape,\n\tEndpoint as EndpointShape,\n\tLogTail as LogTailShape,\n\tPackageProjection,\n\tRow,\n\tStructuredError,\n\tSubscribableState,\n} from '../../../substrate/projection.ts';\n\n/** A snapshot-carrying service row. The snapshot lets `endpoints` join the\n * row's endpoint keys against the projection's endpoint array. */\nexport interface ServiceSource {\n\treadonly row: Row;\n\treadonly snapshot: SubscribableState;\n}\n\ntype FundingEntrySource = NonNullable<AccountProjection['funding']['entries']>[number];\n\nexport interface HealthSummarySource {\n\treadonly total: number;\n\treadonly ready: number;\n\treadonly active: number;\n\treadonly failed: number;\n\treadonly waiting: number;\n\treadonly health: Health;\n}\n\n/** Compute the stack health summary from the projection rows. `active`\n * counts rows mid-flight (acquiring/stopping); `waiting` counts rows that\n * have not started (pending). Overall `health` is `failed`→blocked,\n * any-active→active, all-ready (with ≥1 row)→ready, otherwise empty. */\nexport const computeHealthSummary = (rows: ReadonlyArray<Row>): HealthSummarySource => {\n\tlet ready = 0;\n\tlet active = 0;\n\tlet failed = 0;\n\tlet waiting = 0;\n\tfor (const row of rows) {\n\t\tswitch (row.status) {\n\t\t\tcase 'ready':\n\t\t\tcase 'done':\n\t\t\tcase 'stopped':\n\t\t\t\tready += 1;\n\t\t\t\tbreak;\n\t\t\tcase 'acquiring':\n\t\t\tcase 'stopping':\n\t\t\t\tactive += 1;\n\t\t\t\tbreak;\n\t\t\tcase 'failed':\n\t\t\t\tfailed += 1;\n\t\t\t\tbreak;\n\t\t\tcase 'pending':\n\t\t\t\twaiting += 1;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tconst total = rows.length;\n\tconst health: Health =\n\t\tfailed > 0\n\t\t\t? 'blocked'\n\t\t\t: active > 0\n\t\t\t\t? 'active'\n\t\t\t\t: total > 0 && ready === total\n\t\t\t\t\t? 'ready'\n\t\t\t\t\t: 'empty';\n\treturn { total, ready, active, failed, waiting, health };\n};\n\nconst readSnapshot = (\n\tref: SubscriptionRef.SubscriptionRef<SubscribableState>,\n): Promise<SubscribableState> => Effect.runPromise(SubscriptionRef.get(ref));\n\n// --- Identity / Cycle ---------------------------------------------------\nexport const Identity = builder.objectRef<SubscribableState['identity']>('Identity').implement({\n\tdescription: 'Stack identity triple (app/stack/network).',\n\tfields: (t) => ({\n\t\tapp: t.exposeString('app'),\n\t\tstack: t.exposeString('stack'),\n\t\tnetwork: t.exposeString('network'),\n\t}),\n});\n\nexport const Cycle = builder.objectRef<SubscribableState['cycle']>('Cycle').implement({\n\tdescription: 'The current boot/restart cycle.',\n\tfields: (t) => ({\n\t\tid: t.exposeInt('id'),\n\t\tstartedAt: t.exposeFloat('startedAt'),\n\t\t// Carried as String: the raw union ('booting'|…|'shutting-down') is the\n\t\t// wire contract, and 'shutting-down' is not a valid GraphQL enum name.\n\t\tphase: t.field({ type: 'String', resolve: (c) => c.phase }),\n\t}),\n});\n\n// --- Endpoint (Node) ----------------------------------------------------\nexport const Endpoint = builder.objectRef<EndpointShape>('Endpoint');\nbuilder.node(Endpoint, {\n\tdescription: 'A routed endpoint contributed by a plugin.',\n\tid: { resolve: (e) => e.endpointKey },\n\tloadOne: async (id, ctx) => {\n\t\tconst snapshot = await readSnapshot(ctx.state);\n\t\treturn snapshot.endpoints.find((e) => e.endpointKey === id) ?? null;\n\t},\n\tfields: (t) => ({\n\t\tendpointKey: t.exposeString('endpointKey'),\n\t\tpluginKey: t.exposeString('pluginKey'),\n\t\tname: t.exposeString('name'),\n\t\turl: t.exposeString('url'),\n\t\tdisplayUrl: t.exposeString('displayUrl', { nullable: true }),\n\t\twireProtocol: t.field({ type: WireProtocol, resolve: (e) => e.wireProtocol }),\n\t\tregisteredAt: t.exposeFloat('registeredAt'),\n\t}),\n});\n\n// --- LogTail / StackError ----------------------------------------------\nexport const LogTail = builder.objectRef<LogTailShape>('LogTail').implement({\n\tdescription: 'The tail of a plugin log stream.',\n\tfields: (t) => ({\n\t\tlines: t.exposeStringList('lines'),\n\t\tlevel: t.field({ type: LogLevel, resolve: (l) => l.level }),\n\t\ttruncated: t.exposeBoolean('truncated'),\n\t}),\n});\n\nexport const StackError = builder.objectRef<StructuredError>('StackError').implement({\n\tdescription: 'A structured error reported by a plugin or the engine.',\n\tfields: (t) => ({\n\t\tat: t.exposeFloat('at'),\n\t\tpluginKey: t.exposeString('pluginKey', { nullable: true }),\n\t\ttag: t.exposeString('tag'),\n\t\tsummary: t.exposeString('summary'),\n\t\tchain: t.exposeStringList('chain'),\n\t\tseverity: t.field({ type: ErrorSeverity, resolve: (e) => e.severity }),\n\t}),\n});\n\n// --- Service (Node, wraps a Row) ---------------------------------------\nexport const Service = builder.objectRef<ServiceSource>('Service');\nbuilder.node(Service, {\n\tdescription: 'A visible plugin instance (one projection row).',\n\tid: { resolve: (s) => s.row.key },\n\tloadOne: async (id, ctx) => {\n\t\tconst snapshot = await readSnapshot(ctx.state);\n\t\tconst row = snapshot.rows.find((r) => r.key === id);\n\t\treturn row ? { row, snapshot } : null;\n\t},\n\tfields: (t) => ({\n\t\tkey: t.string({ resolve: (s) => s.row.key }),\n\t\trole: t.field({ type: PluginRole, resolve: (s) => s.row.role }),\n\t\tstatus: t.field({ type: LifecycleStatus, resolve: (s) => s.row.status }),\n\t\tsection: t.field({ type: RowSection, resolve: (s) => s.row.section }),\n\t\tendpointSection: t.field({ type: RowSection, resolve: (s) => s.row.endpointSection }),\n\t\tphase: t.string({ nullable: true, resolve: (s) => s.row.phase }),\n\t\tselectiveRestartHighlight: t.boolean({\n\t\t\tresolve: (s) => s.row.selectiveRestartHighlight,\n\t\t}),\n\t\tlastError: t.field({\n\t\t\ttype: StackError,\n\t\t\tnullable: true,\n\t\t\tresolve: (s) => s.row.lastError,\n\t\t}),\n\t\tlogTail: t.field({ type: LogTail, resolve: (s) => s.row.logTail }),\n\t\tendpoints: t.field({\n\t\t\ttype: [Endpoint],\n\t\t\tdescription: \"The row's endpoints, joined from the snapshot by key + pluginKey.\",\n\t\t\tresolve: (s) => {\n\t\t\t\tconst keys = new Set<string>(s.row.endpoints);\n\t\t\t\treturn s.snapshot.endpoints.filter(\n\t\t\t\t\t(e) => keys.has(e.endpointKey) && e.pluginKey === s.row.key,\n\t\t\t\t);\n\t\t\t},\n\t\t}),\n\t}),\n});\n\n// --- Funding ------------------------------------------------------------\nexport const FundingEntry = builder.objectRef<FundingEntrySource>('FundingEntry').implement({\n\tdescription: 'One coin-type funding outcome for an account.',\n\tfields: (t) => ({\n\t\tcoin: t.exposeString('coin'),\n\t\tfullCoinType: t.exposeString('fullCoinType'),\n\t\tamount: t.exposeString('amount'),\n\t\t// String for the same reason as Cycle.phase: 'already-satisfied' is not\n\t\t// a valid GraphQL enum name; the raw union string is the wire contract.\n\t\tstatus: t.field({ type: 'String', resolve: (e) => e.status }),\n\t}),\n});\n\nexport const AccountFunding = builder\n\t.objectRef<AccountProjection['funding']>('AccountFunding')\n\t.implement({\n\t\tdescription: 'Funding state for an account.',\n\t\tfields: (t) => ({\n\t\t\tstatus: t.field({ type: FundingStatus, resolve: (f) => f.status }),\n\t\t\tbalanceMist: t.exposeString('balanceMist', { nullable: true }),\n\t\t\trequestedMist: t.exposeString('requestedMist', { nullable: true }),\n\t\t\tentries: t.field({\n\t\t\t\ttype: [FundingEntry],\n\t\t\t\tresolve: (f) => f.entries ?? [],\n\t\t\t}),\n\t\t}),\n\t});\n\n// --- Account (Node) -----------------------------------------------------\nexport const Account = builder.objectRef<AccountProjection>('Account');\nbuilder.node(Account, {\n\tdescription: 'A managed or impersonated account.',\n\tid: { resolve: (a) => a.key },\n\tloadOne: async (id, ctx) => {\n\t\tconst snapshot = await readSnapshot(ctx.state);\n\t\treturn snapshot.accounts.find((a) => a.key === id) ?? null;\n\t},\n\tfields: (t) => ({\n\t\tkey: t.exposeString('key'),\n\t\trowKey: t.exposeString('rowKey', { nullable: true }),\n\t\tname: t.exposeString('name'),\n\t\taddress: t.exposeString('address', { nullable: true }),\n\t\tscheme: t.field({ type: AccountScheme, nullable: true, resolve: (a) => a.scheme }),\n\t\tsource: t.field({ type: AccountSource, nullable: true, resolve: (a) => a.source }),\n\t\twalletVisible: t.exposeBoolean('walletVisible'),\n\t\tupdatedAt: t.exposeFloat('updatedAt'),\n\t\tfunding: t.field({ type: AccountFunding, resolve: (a) => a.funding }),\n\t}),\n});\n\n// --- Package (Node) -----------------------------------------------------\nexport const Package = builder.objectRef<PackageProjection>('Package');\nbuilder.node(Package, {\n\tdescription: 'A local or known on-chain package.',\n\tid: { resolve: (p) => p.key },\n\tloadOne: async (id, ctx) => {\n\t\tconst snapshot = await readSnapshot(ctx.state);\n\t\treturn snapshot.packages.find((p) => p.key === id) ?? null;\n\t},\n\tfields: (t) => ({\n\t\tkey: t.exposeString('key'),\n\t\trowKey: t.exposeString('rowKey', { nullable: true }),\n\t\tname: t.exposeString('name'),\n\t\tkind: t.field({ type: PackageKind, resolve: (p) => p.kind }),\n\t\tpackageId: t.exposeString('packageId'),\n\t\tupgradeCapId: t.exposeString('upgradeCapId', { nullable: true }),\n\t\tmvrPlaceholder: t.exposeString('mvrPlaceholder'),\n\t\tsourcePath: t.exposeString('sourcePath', { nullable: true }),\n\t\tupdatedAt: t.exposeFloat('updatedAt'),\n\t}),\n});\n\n// --- BuildEntry / LastEvent --------------------------------------------\nexport const BuildEntry = builder.objectRef<BuildEntryShape>('BuildEntry').implement({\n\tdescription: 'A stack build progress entry.',\n\tfields: (t) => ({\n\t\tpluginKey: t.exposeString('pluginKey', { nullable: true }),\n\t\tphase: t.exposeString('phase'),\n\t\tprogress: t.exposeString('progress'),\n\t\tstartedAt: t.exposeFloat('startedAt'),\n\t}),\n});\n\nexport const LastEvent = builder.objectRef<SubscribableState['lastEvent']>('LastEvent').implement({\n\tdescription: 'The most recent event seq/timestamp the engine emitted.',\n\tfields: (t) => ({\n\t\tseq: t.exposeInt('seq'),\n\t\tat: t.exposeFloat('at'),\n\t}),\n});\n\n// --- HealthSummary ------------------------------------------------------\nexport const HealthSummary = builder.objectRef<HealthSummarySource>('HealthSummary').implement({\n\tdescription: 'Derived stack health counts.',\n\tfields: (t) => ({\n\t\ttotal: t.exposeInt('total'),\n\t\tready: t.exposeInt('ready'),\n\t\tactive: t.exposeInt('active'),\n\t\tfailed: t.exposeInt('failed'),\n\t\twaiting: t.exposeInt('waiting'),\n\t\thealth: t.field({ type: HealthEnum, resolve: (h) => h.health }),\n\t}),\n});\n\n// --- Plugin-domain object types ----------------------------------------\n//\n// Sources are the app-agnostic `ControlPlane*` shapes the supervisor\n// populates from resolved plugin values. These cover only what the browser\n// cannot reach directly: codegen capability ids, in-process plugin state,\n// the snapshot catalog, and PG wire-protocol stats. Numeric counts/sizes\n// are carried as Float (GraphQL Int caps at 2^31; pg sizes can exceed it).\n\nexport const SnapshotEntry = builder\n\t.objectRef<ControlPlaneSnapshotEntry>('SnapshotEntry')\n\t.implement({\n\t\tdescription: 'A snapshot catalog entry (orchestrator `list`).',\n\t\tfields: (t) => ({\n\t\t\tid: t.exposeString('id'),\n\t\t\tlabel: t.exposeString('label', { nullable: true }),\n\t\t\tcreatedAt: t.exposeFloat('createdAt', { nullable: true }),\n\t\t\tapp: t.exposeString('app', { nullable: true }),\n\t\t\tstack: t.exposeString('stack', { nullable: true }),\n\t\t\tnetwork: t.exposeString('network', { nullable: true }),\n\t\t\tparticipants: t.exposeStringList('participants'),\n\t\t\tcontainerCount: t.exposeInt('containerCount'),\n\t\t\tsubtreeCount: t.exposeInt('subtreeCount'),\n\t\t\tcorrupt: t.exposeBoolean('corrupt'),\n\t\t}),\n\t});\n\nexport const DeepbookPool = builder.objectRef<DashboardDeepbookPool>('DeepbookPool').implement({\n\tdescription: 'A DeepBook pool object id + coin types (prices are chain-direct).',\n\tfields: (t) => ({\n\t\tname: t.exposeString('name'),\n\t\tpoolId: t.exposeString('poolId'),\n\t\tbaseCoinType: t.exposeString('baseCoinType'),\n\t\tquoteCoinType: t.exposeString('quoteCoinType'),\n\t}),\n});\n\nexport const DeepbookInfo = builder.objectRef<DashboardDeepbookInfo>('DeepbookInfo').implement({\n\tdescription: 'A DeepBook deployment: registry/admin/pool ids + market-maker state.',\n\tfields: (t) => ({\n\t\tpluginKey: t.exposeString('pluginKey'),\n\t\tname: t.exposeString('name'),\n\t\tmode: t.field({ type: DeepbookMode, resolve: (d) => d.mode }),\n\t\tchain: t.exposeString('chain'),\n\t\tpackageId: t.exposeString('packageId'),\n\t\tregistryId: t.exposeString('registryId'),\n\t\tadminCapId: t.exposeString('adminCapId', { nullable: true }),\n\t\tdeepTreasuryId: t.exposeString('deepTreasuryId', { nullable: true }),\n\t\tpools: t.field({ type: [DeepbookPool], resolve: (d) => d.pools }),\n\t\tmarketMakerRunning: t.exposeBoolean('marketMakerRunning'),\n\t\tserverUrl: t.exposeString('serverUrl', { nullable: true }),\n\t\tindexerUrl: t.exposeString('indexerUrl', { nullable: true }),\n\t}),\n});\n\nexport const SealKeyServer = builder.objectRef<DashboardSealKeyServer>('SealKeyServer').implement({\n\tdescription: 'One Seal key-server config (objectId + weight).',\n\tfields: (t) => ({\n\t\tobjectId: t.exposeString('objectId'),\n\t\tweight: t.exposeInt('weight'),\n\t}),\n});\n\nexport const SealInfo = builder.objectRef<DashboardSealInfo>('SealInfo').implement({\n\tdescription: 'A Seal key-server deployment (objectId/threshold/mode/keyServers).',\n\tfields: (t) => ({\n\t\tpluginKey: t.exposeString('pluginKey'),\n\t\t// String, not enum: 'local-keygen'/'fork-known' are illegal GraphQL\n\t\t// enum value names (hyphens). The raw union string is the wire contract.\n\t\tmode: t.field({ type: 'String', resolve: (s) => s.mode }),\n\t\tobjectId: t.exposeString('objectId'),\n\t\tkeyServerUrl: t.exposeString('keyServerUrl'),\n\t\tkeyServers: t.field({ type: [SealKeyServer], resolve: (s) => s.keyServers }),\n\t\tthreshold: t.exposeInt('threshold'),\n\t}),\n});\n\nexport const CoinCap = builder.objectRef<DashboardCoinCap>('CoinCap').implement({\n\tdescription: \"A coin's treasury-cap id (drives Mint) + addressing facts.\",\n\tfields: (t) => ({\n\t\tpluginKey: t.exposeString('pluginKey'),\n\t\tsymbol: t.exposeString('symbol', { nullable: true }),\n\t\tfullCoinType: t.exposeString('fullCoinType'),\n\t\tdecimals: t.exposeInt('decimals'),\n\t\t// String, not enum: 'on-chain' is an illegal GraphQL enum value name.\n\t\tsource: t.field({ type: 'String', resolve: (c) => c.source }),\n\t\ttreasuryCapId: t.exposeString('treasuryCapId', { nullable: true }),\n\t\tpackageId: t.exposeString('packageId', { nullable: true }),\n\t}),\n});\n\nexport const FundableCoin = builder.objectRef<DashboardFundableCoin>('FundableCoin').implement({\n\tdescription:\n\t\t'A coin the dashboard faucet can fund right now. SUI is fixed-amount; ' +\n\t\t'WAL/DEEP honor an amount and require the recipient to be a resolved account.',\n\tfields: (t) => ({\n\t\tsymbol: t.exposeString('symbol'),\n\t\tcoinType: t.exposeString('coinType'),\n\t\t/** True when the underlying strategy honors a caller-supplied amount\n\t\t * (WAL/DEEP swaps). SUI is fixed-amount (false). */\n\t\thonorsAmount: t.exposeBoolean('honorsAmount'),\n\t\t/** True when funding requires the recipient to BE a resolved account\n\t\t * (the swap spends that account's own SUI). SUI is false. */\n\t\trequiresAccountSigner: t.exposeBoolean('requiresAccountSigner'),\n\t}),\n});\n\nexport const PostgresTable = builder.objectRef<DashboardPostgresTable>('PostgresTable').implement({\n\tdescription: 'Per-table row estimate + total size (bytes).',\n\tfields: (t) => ({\n\t\tschema: t.exposeString('schema'),\n\t\tname: t.exposeString('name'),\n\t\trowEstimate: t.exposeFloat('rowEstimate'),\n\t\ttotalBytes: t.exposeFloat('totalBytes'),\n\t}),\n});\n\nexport const PostgresStats = builder.objectRef<DashboardPostgresStats>('PostgresStats').implement({\n\tdescription:\n\t\t'Postgres wire-protocol stats (db size, connections, per-table). Gathered by exec; the browser cannot speak the PG protocol.',\n\tfields: (t) => ({\n\t\tpluginKey: t.exposeString('pluginKey'),\n\t\tdatabase: t.exposeString('database'),\n\t\t// Plain (password-less) DSN only — the credentialed form never leaves\n\t\t// the backend.\n\t\tplainUrl: t.exposeString('plainUrl'),\n\t\tdatabaseBytes: t.exposeFloat('databaseBytes'),\n\t\tconnectionCount: t.exposeInt('connectionCount'),\n\t\ttables: t.field({ type: [PostgresTable], resolve: (p) => p.tables }),\n\t\tavailable: t.exposeBoolean('available'),\n\t\tdetail: t.exposeString('detail', { nullable: true }),\n\t}),\n});\n\n// --- Observability: LogRecord / SpanRecord -----------------------------\n//\n// Sources are the substrate observability ring records. `level` (logs) and\n// `status` (spans) are carried as String, not GraphQL enums: the log level\n// vocabulary (trace/debug/info/warn/error/fatal) is wider than the\n// projection's row-tail LogLevel enum, and keeping it String decouples the\n// queryable surface from the row-tail enum (same hyphen/illegal-enum-safe\n// String pattern used by SealMode/CoinSource above). Structured `fields` /\n// `attributes` are serialized to a JSON string — the schema has no JSON\n// scalar and the console renders them as a detail blob.\n\nconst fieldsJson = (fields: Readonly<Record<string, unknown>>): string => {\n\ttry {\n\t\treturn JSON.stringify(fields);\n\t} catch {\n\t\treturn '{}';\n\t}\n};\n\nexport const LogRecordType = builder.objectRef<LogRecord>('LogRecord').implement({\n\tdescription:\n\t\t'One cross-service log record (queryable Console \"Logs\" tab). Fed off the same logger path as the per-row projection tail.',\n\tfields: (t) => ({\n\t\tseq: t.exposeFloat('seq'),\n\t\ttimestampMillis: t.exposeFloat('timestampMillis'),\n\t\t// String: wider than the row-tail LogLevel enum (trace/debug/fatal).\n\t\tlevel: t.field({ type: 'String', resolve: (r) => r.level }),\n\t\tservice: t.exposeString('service'),\n\t\tmessage: t.exposeString('message'),\n\t\t/** Structured fields as a JSON string (no JSON scalar in this schema). */\n\t\tfieldsJson: t.field({ type: 'String', resolve: (r) => fieldsJson(r.fields) }),\n\t}),\n});\n\nexport const SpanRecordType = builder.objectRef<SpanRecord>('SpanRecord').implement({\n\tdescription:\n\t\t'One completed span (queryable Console \"Traces\" tab). Recorded by the supervisor\\'s recording Tracer.',\n\tfields: (t) => ({\n\t\ttraceId: t.exposeString('traceId'),\n\t\tspanId: t.exposeString('spanId'),\n\t\tparentId: t.exposeString('parentId', { nullable: true }),\n\t\tname: t.exposeString('name'),\n\t\tservice: t.exposeString('service', { nullable: true }),\n\t\tstartMillis: t.exposeFloat('startMillis'),\n\t\tdurationMillis: t.exposeFloat('durationMillis'),\n\t\t// String: 'ok'/'error' kept as the raw wire contract.\n\t\tstatus: t.field({ type: 'String', resolve: (r) => r.status }),\n\t\t/** Flattened span attributes as a JSON string. */\n\t\tattributesJson: t.field({ type: 'String', resolve: (r) => fieldsJson(r.attributes) }),\n\t}),\n});\n\n// --- Observability filter inputs ---------------------------------------\n\nexport const LogFilterInput = builder.inputType('LogFilter', {\n\tfields: (t) => ({\n\t\tservices: t.stringList({ required: false }),\n\t\t/** Levels (trace/debug/info/warn/error/fatal). Strings, not an enum\n\t\t * (the level vocabulary is wider than the row-tail LogLevel enum). */\n\t\tlevels: t.stringList({ required: false }),\n\t\tsearch: t.string({ required: false }),\n\t\tsinceMillis: t.float({ required: false }),\n\t\tlimit: t.int({ required: false }),\n\t}),\n});\n\nexport const SpanFilterInput = builder.inputType('SpanFilter', {\n\tfields: (t) => ({\n\t\tservices: t.stringList({ required: false }),\n\t\t/** Statuses ('ok' / 'error'). Strings, not an enum. */\n\t\tstatuses: t.stringList({ required: false }),\n\t\tsearch: t.string({ required: false }),\n\t\tsinceMillis: t.float({ required: false }),\n\t\tlimit: t.int({ required: false }),\n\t}),\n});\n\n// --- StackState (source = the snapshot itself) -------------------------\nexport const StackState = builder.objectRef<SubscribableState>('StackState').implement({\n\tdescription: 'A full live projection snapshot.',\n\tfields: (t) => ({\n\t\tidentity: t.field({ type: Identity, resolve: (s) => s.identity }),\n\t\tcycle: t.field({ type: Cycle, resolve: (s) => s.cycle }),\n\t\tsummary: t.field({ type: HealthSummary, resolve: (s) => computeHealthSummary(s.rows) }),\n\t\tservices: t.field({\n\t\t\ttype: [Service],\n\t\t\tresolve: (s) => s.rows.map((row) => ({ row, snapshot: s })),\n\t\t}),\n\t\tendpoints: t.field({ type: [Endpoint], resolve: (s) => s.endpoints }),\n\t\taccounts: t.field({ type: [Account], resolve: (s) => s.accounts }),\n\t\tpackages: t.field({ type: [Package], resolve: (s) => s.packages }),\n\t\terrors: t.field({ type: [StackError], resolve: (s) => s.errors }),\n\t\tstackBuild: t.field({ type: [BuildEntry], resolve: (s) => s.stackBuild }),\n\t\tlastEvent: t.field({ type: LastEvent, nullable: true, resolve: (s) => s.lastEvent }),\n\t}),\n});\n"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { builder } from "./schema/builder.mjs";
2
+ import "./schema/enums.mjs";
3
+ import "./schema/types.mjs";
4
+ import "./schema/root.mjs";
5
+ //#region src/plugins/dashboard/schema.ts
6
+ /** The dashboard control-plane GraphQL schema. */
7
+ const dashboardSchema = builder.toSchema();
8
+ //#endregion
9
+ export { dashboardSchema };
10
+
11
+ //# sourceMappingURL=schema.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.mjs","names":[],"sources":["../../../src/plugins/dashboard/schema.ts"],"sourcesContent":["// Dashboard GraphQL schema (Pothos, code-first) — assembly entry.\n//\n// One typed schema covers the control plane:\n// - queries: `state` (full projection snapshot, real object types),\n// relay node/connection access, and a `ping` probe.\n// - mutations: map to `EngineCommand`s (restart, snapshot, apply, …),\n// each returning a typed `CommandResult`.\n// - subscriptions: `state` streams projection changes over SSE (yoga).\n//\n// The schema is defined at module level across `./schema/{builder,enums,\n// types,root}.ts`; importing those modules registers their enums/types/root\n// fields on the shared `builder`. The package is marked `sideEffects: true`, so\n// these registration imports are preserved through the bundler. Per-request\n// dependencies (the `state` ref + `publishCommand`) flow through the GraphQL\n// context (`DashboardContext`).\n\nimport { builder } from './schema/builder.ts';\nimport './schema/enums.ts';\nimport './schema/types.ts';\nimport './schema/root.ts';\n\nexport type { DashboardContext } from './schema/builder.ts';\n\n/** The dashboard control-plane GraphQL schema. */\nexport const dashboardSchema = builder.toSchema();\n"],"mappings":";;;;;;AAwBA,MAAa,kBAAkB,QAAQ,UAAU"}