@mysten-incubation/devstack 0.0.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 (833) hide show
  1. package/LICENSE +189 -0
  2. package/README.md +94 -0
  3. package/dist/_virtual/_rolldown/runtime.mjs +13 -0
  4. package/dist/api/define-capabilities.d.mts +25 -0
  5. package/dist/api/define-capabilities.mjs +19 -0
  6. package/dist/api/define-capabilities.mjs.map +1 -0
  7. package/dist/api/define-devstack-with.d.mts +41 -0
  8. package/dist/api/define-devstack-with.mjs +24 -0
  9. package/dist/api/define-devstack-with.mjs.map +1 -0
  10. package/dist/api/define-devstack.d.mts +62 -0
  11. package/dist/api/define-devstack.mjs +108 -0
  12. package/dist/api/define-devstack.mjs.map +1 -0
  13. package/dist/api/define-plugin.d.mts +1 -0
  14. package/dist/api/inference-network.mjs +122 -0
  15. package/dist/api/inference-network.mjs.map +1 -0
  16. package/dist/api/mode-narrowed-factory.d.mts +26 -0
  17. package/dist/api/mode-narrowed-factory.mjs +8 -0
  18. package/dist/api/mode-narrowed-factory.mjs.map +1 -0
  19. package/dist/api/plugin-errors.mjs +10 -0
  20. package/dist/api/plugin-errors.mjs.map +1 -0
  21. package/dist/api/run-stack.d.mts +82 -0
  22. package/dist/api/run-stack.mjs +127 -0
  23. package/dist/api/run-stack.mjs.map +1 -0
  24. package/dist/build-integrations/playwright/config.d.mts +92 -0
  25. package/dist/build-integrations/playwright/config.mjs +71 -0
  26. package/dist/build-integrations/playwright/config.mjs.map +1 -0
  27. package/dist/build-integrations/playwright/errors.d.mts +82 -0
  28. package/dist/build-integrations/playwright/errors.mjs +43 -0
  29. package/dist/build-integrations/playwright/errors.mjs.map +1 -0
  30. package/dist/build-integrations/playwright/global-setup.d.mts +64 -0
  31. package/dist/build-integrations/playwright/global-setup.mjs +44 -0
  32. package/dist/build-integrations/playwright/global-setup.mjs.map +1 -0
  33. package/dist/build-integrations/playwright/index.d.mts +6 -0
  34. package/dist/build-integrations/playwright/index.mjs +6 -0
  35. package/dist/build-integrations/playwright/stack-context.d.mts +95 -0
  36. package/dist/build-integrations/playwright/stack-context.mjs +277 -0
  37. package/dist/build-integrations/playwright/stack-context.mjs.map +1 -0
  38. package/dist/build-integrations/playwright/wallet-context.d.mts +87 -0
  39. package/dist/build-integrations/playwright/wallet-context.mjs +148 -0
  40. package/dist/build-integrations/playwright/wallet-context.mjs.map +1 -0
  41. package/dist/build-integrations/runtime/cold-start-url.d.mts +67 -0
  42. package/dist/build-integrations/runtime/cold-start-url.mjs +56 -0
  43. package/dist/build-integrations/runtime/cold-start-url.mjs.map +1 -0
  44. package/dist/build-integrations/runtime/dapp-kit-slot.mjs +10 -0
  45. package/dist/build-integrations/runtime/dapp-kit-slot.mjs.map +1 -0
  46. package/dist/build-integrations/runtime/discover.d.mts +78 -0
  47. package/dist/build-integrations/runtime/discover.mjs +124 -0
  48. package/dist/build-integrations/runtime/discover.mjs.map +1 -0
  49. package/dist/build-integrations/runtime/endpoint-registry.d.mts +26 -0
  50. package/dist/build-integrations/runtime/endpoint-registry.mjs +41 -0
  51. package/dist/build-integrations/runtime/endpoint-registry.mjs.map +1 -0
  52. package/dist/build-integrations/runtime/errors.d.mts +64 -0
  53. package/dist/build-integrations/runtime/errors.mjs +51 -0
  54. package/dist/build-integrations/runtime/errors.mjs.map +1 -0
  55. package/dist/build-integrations/runtime/index.d.mts +7 -0
  56. package/dist/build-integrations/runtime/index.mjs +6 -0
  57. package/dist/build-integrations/runtime/read-stack-context.d.mts +38 -0
  58. package/dist/build-integrations/runtime/read-stack-context.mjs +130 -0
  59. package/dist/build-integrations/runtime/read-stack-context.mjs.map +1 -0
  60. package/dist/build-integrations/runtime/stack-context.d.mts +53 -0
  61. package/dist/build-integrations/vitest/config.d.mts +62 -0
  62. package/dist/build-integrations/vitest/config.mjs +80 -0
  63. package/dist/build-integrations/vitest/config.mjs.map +1 -0
  64. package/dist/build-integrations/vitest/env.d.mts +48 -0
  65. package/dist/build-integrations/vitest/env.mjs +50 -0
  66. package/dist/build-integrations/vitest/env.mjs.map +1 -0
  67. package/dist/build-integrations/vitest/errors.d.mts +44 -0
  68. package/dist/build-integrations/vitest/errors.mjs +18 -0
  69. package/dist/build-integrations/vitest/errors.mjs.map +1 -0
  70. package/dist/build-integrations/vitest/index.d.mts +6 -0
  71. package/dist/build-integrations/vitest/index.mjs +6 -0
  72. package/dist/build-integrations/vitest/setup.d.mts +53 -0
  73. package/dist/build-integrations/vitest/setup.mjs +56 -0
  74. package/dist/build-integrations/vitest/setup.mjs.map +1 -0
  75. package/dist/build-integrations/vitest/stack-context.d.mts +58 -0
  76. package/dist/build-integrations/vitest/stack-context.mjs +67 -0
  77. package/dist/build-integrations/vitest/stack-context.mjs.map +1 -0
  78. package/dist/cli/main.d.mts +5 -0
  79. package/dist/cli/main.mjs +586 -0
  80. package/dist/cli/main.mjs.map +1 -0
  81. package/dist/cli/prune-direct.mjs +216 -0
  82. package/dist/cli/prune-direct.mjs.map +1 -0
  83. package/dist/cli/snapshot-reader.mjs +73 -0
  84. package/dist/cli/snapshot-reader.mjs.map +1 -0
  85. package/dist/cli/up-lifecycle.mjs +28 -0
  86. package/dist/cli/up-lifecycle.mjs.map +1 -0
  87. package/dist/contracts/capability-decl.d.mts +42 -0
  88. package/dist/contracts/chain-probe.d.mts +26 -0
  89. package/dist/contracts/chain-probe.mjs +8 -0
  90. package/dist/contracts/chain-probe.mjs.map +1 -0
  91. package/dist/contracts/codegenable.d.mts +43 -0
  92. package/dist/contracts/container-runtime.d.mts +245 -0
  93. package/dist/contracts/liveness-classifier.d.mts +19 -0
  94. package/dist/contracts/network-resolver.d.mts +15 -0
  95. package/dist/contracts/network-resolver.mjs +7 -0
  96. package/dist/contracts/network-resolver.mjs.map +1 -0
  97. package/dist/contracts/projection.d.mts +15 -0
  98. package/dist/contracts/routable.d.mts +53 -0
  99. package/dist/contracts/snapshotable.d.mts +39 -0
  100. package/dist/contracts/strategy-contributor.d.mts +26 -0
  101. package/dist/index.d.mts +89 -0
  102. package/dist/index.mjs +37 -0
  103. package/dist/orchestrators/codegen/bindings.d.mts +2 -0
  104. package/dist/orchestrators/codegen/bindings.mjs +340 -0
  105. package/dist/orchestrators/codegen/bindings.mjs.map +1 -0
  106. package/dist/orchestrators/codegen/emit.mjs +56 -0
  107. package/dist/orchestrators/codegen/emit.mjs.map +1 -0
  108. package/dist/orchestrators/codegen/errors.d.mts +1 -0
  109. package/dist/orchestrators/codegen/errors.mjs +66 -0
  110. package/dist/orchestrators/codegen/errors.mjs.map +1 -0
  111. package/dist/orchestrators/codegen/extras.mjs +16 -0
  112. package/dist/orchestrators/codegen/extras.mjs.map +1 -0
  113. package/dist/orchestrators/codegen/format.mjs +109 -0
  114. package/dist/orchestrators/codegen/format.mjs.map +1 -0
  115. package/dist/orchestrators/codegen/gitignore.mjs +67 -0
  116. package/dist/orchestrators/codegen/gitignore.mjs.map +1 -0
  117. package/dist/orchestrators/codegen/paths.d.mts +1 -0
  118. package/dist/orchestrators/codegen/paths.mjs +33 -0
  119. package/dist/orchestrators/codegen/paths.mjs.map +1 -0
  120. package/dist/orchestrators/codegen/permissions.mjs +6 -0
  121. package/dist/orchestrators/codegen/permissions.mjs.map +1 -0
  122. package/dist/orchestrators/codegen/service.d.mts +1 -0
  123. package/dist/orchestrators/codegen/service.mjs +276 -0
  124. package/dist/orchestrators/codegen/service.mjs.map +1 -0
  125. package/dist/orchestrators/router/cleanup.mjs +58 -0
  126. package/dist/orchestrators/router/cleanup.mjs.map +1 -0
  127. package/dist/orchestrators/router/cors.mjs +31 -0
  128. package/dist/orchestrators/router/cors.mjs.map +1 -0
  129. package/dist/orchestrators/router/entrypoints.d.mts +1 -0
  130. package/dist/orchestrators/router/entrypoints.mjs +80 -0
  131. package/dist/orchestrators/router/entrypoints.mjs.map +1 -0
  132. package/dist/orchestrators/router/errors.d.mts +1 -0
  133. package/dist/orchestrators/router/errors.mjs +103 -0
  134. package/dist/orchestrators/router/errors.mjs.map +1 -0
  135. package/dist/orchestrators/router/file-provider.d.mts +1 -0
  136. package/dist/orchestrators/router/file-provider.mjs +320 -0
  137. package/dist/orchestrators/router/file-provider.mjs.map +1 -0
  138. package/dist/orchestrators/router/hostname.d.mts +1 -0
  139. package/dist/orchestrators/router/hostname.mjs +107 -0
  140. package/dist/orchestrators/router/hostname.mjs.map +1 -0
  141. package/dist/orchestrators/router/index.d.mts +1 -0
  142. package/dist/orchestrators/router/profile.d.mts +1 -0
  143. package/dist/orchestrators/router/profile.mjs +109 -0
  144. package/dist/orchestrators/router/profile.mjs.map +1 -0
  145. package/dist/orchestrators/router/service.d.mts +3 -0
  146. package/dist/orchestrators/router/service.mjs +421 -0
  147. package/dist/orchestrators/router/service.mjs.map +1 -0
  148. package/dist/orchestrators/router/traefik-container.d.mts +1 -0
  149. package/dist/orchestrators/router/traefik-container.mjs +229 -0
  150. package/dist/orchestrators/router/traefik-container.mjs.map +1 -0
  151. package/dist/orchestrators/runtime-composition.d.mts +10 -0
  152. package/dist/orchestrators/runtime-composition.mjs +168 -0
  153. package/dist/orchestrators/runtime-composition.mjs.map +1 -0
  154. package/dist/orchestrators/snapshot/capture.d.mts +1 -0
  155. package/dist/orchestrators/snapshot/capture.mjs +350 -0
  156. package/dist/orchestrators/snapshot/capture.mjs.map +1 -0
  157. package/dist/orchestrators/snapshot/descriptor.d.mts +1 -0
  158. package/dist/orchestrators/snapshot/descriptor.mjs +109 -0
  159. package/dist/orchestrators/snapshot/descriptor.mjs.map +1 -0
  160. package/dist/orchestrators/snapshot/identity-guard.d.mts +1 -0
  161. package/dist/orchestrators/snapshot/identity-guard.mjs +132 -0
  162. package/dist/orchestrators/snapshot/identity-guard.mjs.map +1 -0
  163. package/dist/orchestrators/snapshot/image-bundle-tags.mjs +207 -0
  164. package/dist/orchestrators/snapshot/image-bundle-tags.mjs.map +1 -0
  165. package/dist/orchestrators/snapshot/index.d.mts +1 -0
  166. package/dist/orchestrators/snapshot/integrity.d.mts +1 -0
  167. package/dist/orchestrators/snapshot/integrity.mjs +74 -0
  168. package/dist/orchestrators/snapshot/integrity.mjs.map +1 -0
  169. package/dist/orchestrators/snapshot/prune.d.mts +1 -0
  170. package/dist/orchestrators/snapshot/prune.mjs +110 -0
  171. package/dist/orchestrators/snapshot/prune.mjs.map +1 -0
  172. package/dist/orchestrators/snapshot/restore.d.mts +1 -0
  173. package/dist/orchestrators/snapshot/restore.mjs +404 -0
  174. package/dist/orchestrators/snapshot/restore.mjs.map +1 -0
  175. package/dist/orchestrators/snapshot/service.d.mts +1 -0
  176. package/dist/orchestrators/snapshot/service.mjs +296 -0
  177. package/dist/orchestrators/snapshot/service.mjs.map +1 -0
  178. package/dist/orchestrators/snapshot/state-document.mjs +18 -0
  179. package/dist/orchestrators/snapshot/state-document.mjs.map +1 -0
  180. package/dist/orchestrators/snapshot/wipe.d.mts +1 -0
  181. package/dist/orchestrators/snapshot/wipe.mjs +59 -0
  182. package/dist/orchestrators/snapshot/wipe.mjs.map +1 -0
  183. package/dist/plugins/account/codegen.d.mts +12 -0
  184. package/dist/plugins/account/codegen.mjs +22 -0
  185. package/dist/plugins/account/codegen.mjs.map +1 -0
  186. package/dist/plugins/account/errors.d.mts +44 -0
  187. package/dist/plugins/account/errors.mjs +16 -0
  188. package/dist/plugins/account/errors.mjs.map +1 -0
  189. package/dist/plugins/account/funding.d.mts +94 -0
  190. package/dist/plugins/account/funding.mjs +199 -0
  191. package/dist/plugins/account/funding.mjs.map +1 -0
  192. package/dist/plugins/account/index.d.mts +54 -0
  193. package/dist/plugins/account/index.mjs +151 -0
  194. package/dist/plugins/account/index.mjs.map +1 -0
  195. package/dist/plugins/account/keypair.d.mts +32 -0
  196. package/dist/plugins/account/keypair.mjs +99 -0
  197. package/dist/plugins/account/keypair.mjs.map +1 -0
  198. package/dist/plugins/account/lease.mjs +21 -0
  199. package/dist/plugins/account/lease.mjs.map +1 -0
  200. package/dist/plugins/account/registry.d.mts +33 -0
  201. package/dist/plugins/account/registry.mjs +36 -0
  202. package/dist/plugins/account/registry.mjs.map +1 -0
  203. package/dist/plugins/account/service.d.mts +104 -0
  204. package/dist/plugins/account/service.mjs +405 -0
  205. package/dist/plugins/account/service.mjs.map +1 -0
  206. package/dist/plugins/account/snapshot.mjs +33 -0
  207. package/dist/plugins/account/snapshot.mjs.map +1 -0
  208. package/dist/plugins/account/variants/env.mjs +24 -0
  209. package/dist/plugins/account/variants/env.mjs.map +1 -0
  210. package/dist/plugins/account/variants/ephemeral.mjs +72 -0
  211. package/dist/plugins/account/variants/ephemeral.mjs.map +1 -0
  212. package/dist/plugins/account/variants/impersonate.d.mts +16 -0
  213. package/dist/plugins/account/variants/impersonate.mjs +48 -0
  214. package/dist/plugins/account/variants/impersonate.mjs.map +1 -0
  215. package/dist/plugins/account/variants/inline.mjs +13 -0
  216. package/dist/plugins/account/variants/inline.mjs.map +1 -0
  217. package/dist/plugins/account/variants/keystore.mjs +93 -0
  218. package/dist/plugins/account/variants/keystore.mjs.map +1 -0
  219. package/dist/plugins/account/variants/signer.mjs +31 -0
  220. package/dist/plugins/account/variants/signer.mjs.map +1 -0
  221. package/dist/plugins/action/build-context.d.mts +41 -0
  222. package/dist/plugins/action/discriminator.d.mts +20 -0
  223. package/dist/plugins/action/discriminator.mjs +13 -0
  224. package/dist/plugins/action/discriminator.mjs.map +1 -0
  225. package/dist/plugins/action/errors.d.mts +31 -0
  226. package/dist/plugins/action/errors.mjs +13 -0
  227. package/dist/plugins/action/errors.mjs.map +1 -0
  228. package/dist/plugins/action/execute.d.mts +2 -0
  229. package/dist/plugins/action/execute.mjs +145 -0
  230. package/dist/plugins/action/execute.mjs.map +1 -0
  231. package/dist/plugins/action/index.d.mts +56 -0
  232. package/dist/plugins/action/index.mjs +82 -0
  233. package/dist/plugins/action/index.mjs.map +1 -0
  234. package/dist/plugins/action/service.d.mts +26 -0
  235. package/dist/plugins/action/service.mjs +84 -0
  236. package/dist/plugins/action/service.mjs.map +1 -0
  237. package/dist/plugins/coin/address-resolution.d.mts +34 -0
  238. package/dist/plugins/coin/address-resolution.mjs +80 -0
  239. package/dist/plugins/coin/address-resolution.mjs.map +1 -0
  240. package/dist/plugins/coin/codegen.d.mts +16 -0
  241. package/dist/plugins/coin/codegen.mjs +21 -0
  242. package/dist/plugins/coin/codegen.mjs.map +1 -0
  243. package/dist/plugins/coin/discovery.d.mts +26 -0
  244. package/dist/plugins/coin/discovery.mjs +112 -0
  245. package/dist/plugins/coin/discovery.mjs.map +1 -0
  246. package/dist/plugins/coin/errors.d.mts +48 -0
  247. package/dist/plugins/coin/errors.mjs +13 -0
  248. package/dist/plugins/coin/errors.mjs.map +1 -0
  249. package/dist/plugins/coin/index.d.mts +95 -0
  250. package/dist/plugins/coin/index.mjs +172 -0
  251. package/dist/plugins/coin/index.mjs.map +1 -0
  252. package/dist/plugins/coin/metadata.d.mts +15 -0
  253. package/dist/plugins/coin/metadata.mjs +99 -0
  254. package/dist/plugins/coin/metadata.mjs.map +1 -0
  255. package/dist/plugins/coin/mint.d.mts +34 -0
  256. package/dist/plugins/coin/mint.mjs +164 -0
  257. package/dist/plugins/coin/mint.mjs.map +1 -0
  258. package/dist/plugins/coin/registry.d.mts +1 -0
  259. package/dist/plugins/coin/registry.mjs +37 -0
  260. package/dist/plugins/coin/registry.mjs.map +1 -0
  261. package/dist/plugins/coin/service.d.mts +47 -0
  262. package/dist/plugins/coin/service.mjs +51 -0
  263. package/dist/plugins/coin/service.mjs.map +1 -0
  264. package/dist/plugins/coin/snapshot.mjs +19 -0
  265. package/dist/plugins/coin/snapshot.mjs.map +1 -0
  266. package/dist/plugins/coin/type-strings.mjs +49 -0
  267. package/dist/plugins/coin/type-strings.mjs.map +1 -0
  268. package/dist/plugins/deepbook/codegen.d.mts +39 -0
  269. package/dist/plugins/deepbook/codegen.mjs +15 -0
  270. package/dist/plugins/deepbook/codegen.mjs.map +1 -0
  271. package/dist/plugins/deepbook/deploy.mjs +437 -0
  272. package/dist/plugins/deepbook/deploy.mjs.map +1 -0
  273. package/dist/plugins/deepbook/errors.d.mts +29 -0
  274. package/dist/plugins/deepbook/errors.mjs +26 -0
  275. package/dist/plugins/deepbook/errors.mjs.map +1 -0
  276. package/dist/plugins/deepbook/faucet-strategy.d.mts +8 -0
  277. package/dist/plugins/deepbook/faucet-strategy.mjs +81 -0
  278. package/dist/plugins/deepbook/faucet-strategy.mjs.map +1 -0
  279. package/dist/plugins/deepbook/index.d.mts +171 -0
  280. package/dist/plugins/deepbook/index.mjs +359 -0
  281. package/dist/plugins/deepbook/index.mjs.map +1 -0
  282. package/dist/plugins/deepbook/plugin-key.mjs +7 -0
  283. package/dist/plugins/deepbook/plugin-key.mjs.map +1 -0
  284. package/dist/plugins/deepbook/pyth/index.mjs +226 -0
  285. package/dist/plugins/deepbook/pyth/index.mjs.map +1 -0
  286. package/dist/plugins/deepbook/routable.mjs +21 -0
  287. package/dist/plugins/deepbook/routable.mjs.map +1 -0
  288. package/dist/plugins/deepbook/snapshot.mjs +49 -0
  289. package/dist/plugins/deepbook/snapshot.mjs.map +1 -0
  290. package/dist/plugins/deepbook/types.d.mts +125 -0
  291. package/dist/plugins/deepbook/types.mjs +12 -0
  292. package/dist/plugins/deepbook/types.mjs.map +1 -0
  293. package/dist/plugins/faucet/dispatcher.d.mts +9 -0
  294. package/dist/plugins/faucet/dispatcher.mjs +13 -0
  295. package/dist/plugins/faucet/dispatcher.mjs.map +1 -0
  296. package/dist/plugins/faucet/errors.d.mts +86 -0
  297. package/dist/plugins/faucet/errors.mjs +19 -0
  298. package/dist/plugins/faucet/errors.mjs.map +1 -0
  299. package/dist/plugins/faucet/http.mjs +127 -0
  300. package/dist/plugins/faucet/http.mjs.map +1 -0
  301. package/dist/plugins/faucet/index.d.mts +43 -0
  302. package/dist/plugins/faucet/index.mjs +42 -0
  303. package/dist/plugins/faucet/index.mjs.map +1 -0
  304. package/dist/plugins/faucet/service.d.mts +20 -0
  305. package/dist/plugins/faucet/strategies/sui-local.d.mts +23 -0
  306. package/dist/plugins/faucet/strategies/sui-local.mjs +29 -0
  307. package/dist/plugins/faucet/strategies/sui-local.mjs.map +1 -0
  308. package/dist/plugins/host-service/errors.d.mts +27 -0
  309. package/dist/plugins/host-service/errors.mjs +14 -0
  310. package/dist/plugins/host-service/errors.mjs.map +1 -0
  311. package/dist/plugins/host-service/index.d.mts +10 -0
  312. package/dist/plugins/host-service/index.mjs +48 -0
  313. package/dist/plugins/host-service/index.mjs.map +1 -0
  314. package/dist/plugins/host-service/routable.mjs +24 -0
  315. package/dist/plugins/host-service/routable.mjs.map +1 -0
  316. package/dist/plugins/host-service/service.d.mts +49 -0
  317. package/dist/plugins/host-service/service.mjs +375 -0
  318. package/dist/plugins/host-service/service.mjs.map +1 -0
  319. package/dist/plugins/package/build.d.mts +1 -0
  320. package/dist/plugins/package/build.mjs +24 -0
  321. package/dist/plugins/package/build.mjs.map +1 -0
  322. package/dist/plugins/package/codegen.d.mts +19 -0
  323. package/dist/plugins/package/codegen.mjs +41 -0
  324. package/dist/plugins/package/codegen.mjs.map +1 -0
  325. package/dist/plugins/package/dep-resolution.mjs +10 -0
  326. package/dist/plugins/package/dep-resolution.mjs.map +1 -0
  327. package/dist/plugins/package/errors.d.mts +34 -0
  328. package/dist/plugins/package/errors.mjs +13 -0
  329. package/dist/plugins/package/errors.mjs.map +1 -0
  330. package/dist/plugins/package/index.d.mts +109 -0
  331. package/dist/plugins/package/index.mjs +207 -0
  332. package/dist/plugins/package/index.mjs.map +1 -0
  333. package/dist/plugins/package/mode-known.mjs +41 -0
  334. package/dist/plugins/package/mode-known.mjs.map +1 -0
  335. package/dist/plugins/package/mode-local.d.mts +1 -0
  336. package/dist/plugins/package/mode-local.mjs +183 -0
  337. package/dist/plugins/package/mode-local.mjs.map +1 -0
  338. package/dist/plugins/package/publish-executor.mjs +202 -0
  339. package/dist/plugins/package/publish-executor.mjs.map +1 -0
  340. package/dist/plugins/package/publish-output.d.mts +28 -0
  341. package/dist/plugins/package/publish-output.mjs +45 -0
  342. package/dist/plugins/package/publish-output.mjs.map +1 -0
  343. package/dist/plugins/package/registry.d.mts +25 -0
  344. package/dist/plugins/package/registry.mjs +30 -0
  345. package/dist/plugins/package/registry.mjs.map +1 -0
  346. package/dist/plugins/package/service.mjs +20 -0
  347. package/dist/plugins/package/service.mjs.map +1 -0
  348. package/dist/plugins/package/snapshot.mjs +25 -0
  349. package/dist/plugins/package/snapshot.mjs.map +1 -0
  350. package/dist/plugins/postgres/codegen.mjs +42 -0
  351. package/dist/plugins/postgres/codegen.mjs.map +1 -0
  352. package/dist/plugins/postgres/connection.d.mts +33 -0
  353. package/dist/plugins/postgres/connection.mjs +19 -0
  354. package/dist/plugins/postgres/connection.mjs.map +1 -0
  355. package/dist/plugins/postgres/db-ensure.mjs +100 -0
  356. package/dist/plugins/postgres/db-ensure.mjs.map +1 -0
  357. package/dist/plugins/postgres/errors.d.mts +55 -0
  358. package/dist/plugins/postgres/errors.mjs +29 -0
  359. package/dist/plugins/postgres/errors.mjs.map +1 -0
  360. package/dist/plugins/postgres/index.d.mts +37 -0
  361. package/dist/plugins/postgres/index.mjs +75 -0
  362. package/dist/plugins/postgres/index.mjs.map +1 -0
  363. package/dist/plugins/postgres/routable.mjs +33 -0
  364. package/dist/plugins/postgres/routable.mjs.map +1 -0
  365. package/dist/plugins/postgres/service.d.mts +50 -0
  366. package/dist/plugins/postgres/service.mjs +145 -0
  367. package/dist/plugins/postgres/service.mjs.map +1 -0
  368. package/dist/plugins/postgres/snapshot.d.mts +1 -0
  369. package/dist/plugins/postgres/snapshot.mjs +32 -0
  370. package/dist/plugins/postgres/snapshot.mjs.map +1 -0
  371. package/dist/plugins/router-entrypoints.mjs +21 -0
  372. package/dist/plugins/router-entrypoints.mjs.map +1 -0
  373. package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs +59 -0
  374. package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs.map +1 -0
  375. package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs +132 -0
  376. package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs.map +1 -0
  377. package/dist/plugins/seal/codegen.d.mts +19 -0
  378. package/dist/plugins/seal/codegen.mjs +16 -0
  379. package/dist/plugins/seal/codegen.mjs.map +1 -0
  380. package/dist/plugins/seal/config-render.mjs +82 -0
  381. package/dist/plugins/seal/config-render.mjs.map +1 -0
  382. package/dist/plugins/seal/deploy.mjs +198 -0
  383. package/dist/plugins/seal/deploy.mjs.map +1 -0
  384. package/dist/plugins/seal/errors.d.mts +52 -0
  385. package/dist/plugins/seal/errors.mjs +19 -0
  386. package/dist/plugins/seal/errors.mjs.map +1 -0
  387. package/dist/plugins/seal/index.d.mts +161 -0
  388. package/dist/plugins/seal/index.mjs +235 -0
  389. package/dist/plugins/seal/index.mjs.map +1 -0
  390. package/dist/plugins/seal/key-manager.d.mts +22 -0
  391. package/dist/plugins/seal/key-manager.mjs +22 -0
  392. package/dist/plugins/seal/key-manager.mjs.map +1 -0
  393. package/dist/plugins/seal/key-server.mjs +175 -0
  394. package/dist/plugins/seal/key-server.mjs.map +1 -0
  395. package/dist/plugins/seal/keygen.mjs +96 -0
  396. package/dist/plugins/seal/keygen.mjs.map +1 -0
  397. package/dist/plugins/seal/mode/fork-known.d.mts +8 -0
  398. package/dist/plugins/seal/mode/fork-known.mjs +23 -0
  399. package/dist/plugins/seal/mode/fork-known.mjs.map +1 -0
  400. package/dist/plugins/seal/mode/live.d.mts +18 -0
  401. package/dist/plugins/seal/mode/live.mjs +64 -0
  402. package/dist/plugins/seal/mode/live.mjs.map +1 -0
  403. package/dist/plugins/seal/mode/local-keygen.mjs +180 -0
  404. package/dist/plugins/seal/mode/local-keygen.mjs.map +1 -0
  405. package/dist/plugins/seal/plugin-key.mjs +7 -0
  406. package/dist/plugins/seal/plugin-key.mjs.map +1 -0
  407. package/dist/plugins/seal/registry-publish.d.mts +43 -0
  408. package/dist/plugins/seal/registry-publish.mjs +9 -0
  409. package/dist/plugins/seal/registry-publish.mjs.map +1 -0
  410. package/dist/plugins/seal/routable.mjs +57 -0
  411. package/dist/plugins/seal/routable.mjs.map +1 -0
  412. package/dist/plugins/seal/service.mjs +17 -0
  413. package/dist/plugins/seal/service.mjs.map +1 -0
  414. package/dist/plugins/seal/snapshot.mjs +51 -0
  415. package/dist/plugins/seal/snapshot.mjs.map +1 -0
  416. package/dist/plugins/sui/auto-tick.mjs +45 -0
  417. package/dist/plugins/sui/auto-tick.mjs.map +1 -0
  418. package/dist/plugins/sui/chain-build-container.d.mts +1 -0
  419. package/dist/plugins/sui/chain-probe.d.mts +85 -0
  420. package/dist/plugins/sui/chain-probe.mjs +104 -0
  421. package/dist/plugins/sui/chain-probe.mjs.map +1 -0
  422. package/dist/plugins/sui/codegen.d.mts +14 -0
  423. package/dist/plugins/sui/codegen.mjs +26 -0
  424. package/dist/plugins/sui/codegen.mjs.map +1 -0
  425. package/dist/plugins/sui/errors.d.mts +74 -0
  426. package/dist/plugins/sui/errors.mjs +28 -0
  427. package/dist/plugins/sui/errors.mjs.map +1 -0
  428. package/dist/plugins/sui/fork-orchestration.mjs +24 -0
  429. package/dist/plugins/sui/fork-orchestration.mjs.map +1 -0
  430. package/dist/plugins/sui/fork-transaction.mjs +96 -0
  431. package/dist/plugins/sui/fork-transaction.mjs.map +1 -0
  432. package/dist/plugins/sui/index.d.mts +318 -0
  433. package/dist/plugins/sui/index.mjs +182 -0
  434. package/dist/plugins/sui/index.mjs.map +1 -0
  435. package/dist/plugins/sui/mode/external.mjs +60 -0
  436. package/dist/plugins/sui/mode/external.mjs.map +1 -0
  437. package/dist/plugins/sui/mode/fork.mjs +283 -0
  438. package/dist/plugins/sui/mode/fork.mjs.map +1 -0
  439. package/dist/plugins/sui/mode/live.mjs +103 -0
  440. package/dist/plugins/sui/mode/live.mjs.map +1 -0
  441. package/dist/plugins/sui/mode/local.mjs +293 -0
  442. package/dist/plugins/sui/mode/local.mjs.map +1 -0
  443. package/dist/plugins/sui/mode/shared-boot.mjs +254 -0
  444. package/dist/plugins/sui/mode/shared-boot.mjs.map +1 -0
  445. package/dist/plugins/sui/mode/shared.d.mts +103 -0
  446. package/dist/plugins/sui/mode/shared.mjs +12 -0
  447. package/dist/plugins/sui/mode/shared.mjs.map +1 -0
  448. package/dist/plugins/sui/mode/spec.d.mts +94 -0
  449. package/dist/plugins/sui/network-resolver.d.mts +23 -0
  450. package/dist/plugins/sui/routable.mjs +88 -0
  451. package/dist/plugins/sui/routable.mjs.map +1 -0
  452. package/dist/plugins/sui/seed-objects.d.mts +18 -0
  453. package/dist/plugins/sui/seed-objects.mjs +25 -0
  454. package/dist/plugins/sui/seed-objects.mjs.map +1 -0
  455. package/dist/plugins/sui/service.mjs +38 -0
  456. package/dist/plugins/sui/service.mjs.map +1 -0
  457. package/dist/plugins/sui/snapshot.mjs +53 -0
  458. package/dist/plugins/sui/snapshot.mjs.map +1 -0
  459. package/dist/plugins/wallet/codegen.d.mts +33 -0
  460. package/dist/plugins/wallet/codegen.mjs +34 -0
  461. package/dist/plugins/wallet/codegen.mjs.map +1 -0
  462. package/dist/plugins/wallet/errors.d.mts +66 -0
  463. package/dist/plugins/wallet/errors.mjs +16 -0
  464. package/dist/plugins/wallet/errors.mjs.map +1 -0
  465. package/dist/plugins/wallet/index.d.mts +63 -0
  466. package/dist/plugins/wallet/index.mjs +126 -0
  467. package/dist/plugins/wallet/index.mjs.map +1 -0
  468. package/dist/plugins/wallet/origin-policy.d.mts +1 -0
  469. package/dist/plugins/wallet/origin-policy.mjs +65 -0
  470. package/dist/plugins/wallet/origin-policy.mjs.map +1 -0
  471. package/dist/plugins/wallet/pairing.d.mts +11 -0
  472. package/dist/plugins/wallet/pairing.mjs +125 -0
  473. package/dist/plugins/wallet/pairing.mjs.map +1 -0
  474. package/dist/plugins/wallet/protocol.d.mts +1 -0
  475. package/dist/plugins/wallet/protocol.mjs +96 -0
  476. package/dist/plugins/wallet/protocol.mjs.map +1 -0
  477. package/dist/plugins/wallet/routable.mjs +32 -0
  478. package/dist/plugins/wallet/routable.mjs.map +1 -0
  479. package/dist/plugins/wallet/server.d.mts +12 -0
  480. package/dist/plugins/wallet/server.mjs +317 -0
  481. package/dist/plugins/wallet/server.mjs.map +1 -0
  482. package/dist/plugins/wallet/service.d.mts +68 -0
  483. package/dist/plugins/wallet/service.mjs +97 -0
  484. package/dist/plugins/wallet/service.mjs.map +1 -0
  485. package/dist/plugins/wallet/snapshot.d.mts +1 -0
  486. package/dist/plugins/wallet/snapshot.mjs +14 -0
  487. package/dist/plugins/wallet/snapshot.mjs.map +1 -0
  488. package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs +42 -0
  489. package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs.map +1 -0
  490. package/dist/plugins/walrus/codegen.d.mts +38 -0
  491. package/dist/plugins/walrus/codegen.mjs +34 -0
  492. package/dist/plugins/walrus/codegen.mjs.map +1 -0
  493. package/dist/plugins/walrus/deploy-paths.mjs +14 -0
  494. package/dist/plugins/walrus/deploy-paths.mjs.map +1 -0
  495. package/dist/plugins/walrus/deploy.d.mts +1 -0
  496. package/dist/plugins/walrus/deploy.mjs +224 -0
  497. package/dist/plugins/walrus/deploy.mjs.map +1 -0
  498. package/dist/plugins/walrus/errors.d.mts +38 -0
  499. package/dist/plugins/walrus/errors.mjs +26 -0
  500. package/dist/plugins/walrus/errors.mjs.map +1 -0
  501. package/dist/plugins/walrus/faucet-strategy.d.mts +12 -0
  502. package/dist/plugins/walrus/faucet-strategy.mjs +62 -0
  503. package/dist/plugins/walrus/faucet-strategy.mjs.map +1 -0
  504. package/dist/plugins/walrus/index.d.mts +177 -0
  505. package/dist/plugins/walrus/index.mjs +284 -0
  506. package/dist/plugins/walrus/index.mjs.map +1 -0
  507. package/dist/plugins/walrus/mode/known-deploy.d.mts +25 -0
  508. package/dist/plugins/walrus/mode/known-deploy.mjs +71 -0
  509. package/dist/plugins/walrus/mode/known-deploy.mjs.map +1 -0
  510. package/dist/plugins/walrus/mode/local-cluster.d.mts +34 -0
  511. package/dist/plugins/walrus/mode/local-cluster.mjs +153 -0
  512. package/dist/plugins/walrus/mode/local-cluster.mjs.map +1 -0
  513. package/dist/plugins/walrus/plugin-key.mjs +7 -0
  514. package/dist/plugins/walrus/plugin-key.mjs.map +1 -0
  515. package/dist/plugins/walrus/registry-publish.d.mts +24 -0
  516. package/dist/plugins/walrus/registry-publish.mjs +7 -0
  517. package/dist/plugins/walrus/registry-publish.mjs.map +1 -0
  518. package/dist/plugins/walrus/routable.mjs +99 -0
  519. package/dist/plugins/walrus/routable.mjs.map +1 -0
  520. package/dist/plugins/walrus/service.mjs +20 -0
  521. package/dist/plugins/walrus/service.mjs.map +1 -0
  522. package/dist/plugins/walrus/snapshot.mjs +53 -0
  523. package/dist/plugins/walrus/snapshot.mjs.map +1 -0
  524. package/dist/plugins/walrus/storage-nodes.d.mts +15 -0
  525. package/dist/plugins/walrus/storage-nodes.mjs +154 -0
  526. package/dist/plugins/walrus/storage-nodes.mjs.map +1 -0
  527. package/dist/plugins/walrus/wal-swap.d.mts +2 -0
  528. package/dist/plugins/walrus/wal-swap.mjs +58 -0
  529. package/dist/plugins/walrus/wal-swap.mjs.map +1 -0
  530. package/dist/primitives/artifact-publisher.d.mts +12 -0
  531. package/dist/primitives/cache.d.mts +1 -0
  532. package/dist/runtime/built-in-plugin-layers.mjs +49 -0
  533. package/dist/runtime/built-in-plugin-layers.mjs.map +1 -0
  534. package/dist/runtime/docker/client.d.mts +2 -0
  535. package/dist/runtime/docker/client.mjs +54 -0
  536. package/dist/runtime/docker/client.mjs.map +1 -0
  537. package/dist/runtime/docker/container.d.mts +1 -0
  538. package/dist/runtime/docker/container.mjs +562 -0
  539. package/dist/runtime/docker/container.mjs.map +1 -0
  540. package/dist/runtime/docker/errors.d.mts +1 -0
  541. package/dist/runtime/docker/errors.mjs +187 -0
  542. package/dist/runtime/docker/errors.mjs.map +1 -0
  543. package/dist/runtime/docker/exec.d.mts +1 -0
  544. package/dist/runtime/docker/exec.mjs +63 -0
  545. package/dist/runtime/docker/exec.mjs.map +1 -0
  546. package/dist/runtime/docker/image.d.mts +1 -0
  547. package/dist/runtime/docker/image.mjs +278 -0
  548. package/dist/runtime/docker/image.mjs.map +1 -0
  549. package/dist/runtime/docker/index.d.mts +1 -0
  550. package/dist/runtime/docker/inventory.d.mts +1 -0
  551. package/dist/runtime/docker/inventory.mjs +167 -0
  552. package/dist/runtime/docker/inventory.mjs.map +1 -0
  553. package/dist/runtime/docker/labels.d.mts +1 -0
  554. package/dist/runtime/docker/labels.mjs +97 -0
  555. package/dist/runtime/docker/labels.mjs.map +1 -0
  556. package/dist/runtime/docker/logs.d.mts +1 -0
  557. package/dist/runtime/docker/logs.mjs +34 -0
  558. package/dist/runtime/docker/logs.mjs.map +1 -0
  559. package/dist/runtime/docker/network.d.mts +1 -0
  560. package/dist/runtime/docker/network.mjs +168 -0
  561. package/dist/runtime/docker/network.mjs.map +1 -0
  562. package/dist/runtime/docker/service.d.mts +9 -0
  563. package/dist/runtime/docker/service.mjs +266 -0
  564. package/dist/runtime/docker/service.mjs.map +1 -0
  565. package/dist/runtime/docker/sweep.d.mts +1 -0
  566. package/dist/runtime/docker/sweep.mjs +220 -0
  567. package/dist/runtime/docker/sweep.mjs.map +1 -0
  568. package/dist/runtime/docker/volume.d.mts +1 -0
  569. package/dist/runtime/docker/volume.mjs +24 -0
  570. package/dist/runtime/docker/volume.mjs.map +1 -0
  571. package/dist/runtime/docker/wrap.d.mts +1 -0
  572. package/dist/runtime/docker/wrap.mjs +131 -0
  573. package/dist/runtime/docker/wrap.mjs.map +1 -0
  574. package/dist/substrate/brand.d.mts +24 -0
  575. package/dist/substrate/brand.mjs +14 -0
  576. package/dist/substrate/brand.mjs.map +1 -0
  577. package/dist/substrate/cross-process.d.mts +1 -0
  578. package/dist/substrate/cross-process.mjs +28 -0
  579. package/dist/substrate/cross-process.mjs.map +1 -0
  580. package/dist/substrate/events.d.mts +117 -0
  581. package/dist/substrate/identity.d.mts +13 -0
  582. package/dist/substrate/lifecycle.d.mts +12 -0
  583. package/dist/substrate/manifest.d.mts +39 -0
  584. package/dist/substrate/manifest.mjs +33 -0
  585. package/dist/substrate/manifest.mjs.map +1 -0
  586. package/dist/substrate/network.d.mts +34 -0
  587. package/dist/substrate/options.d.mts +23 -0
  588. package/dist/substrate/plugin.d.mts +101 -0
  589. package/dist/substrate/plugin.mjs +61 -0
  590. package/dist/substrate/plugin.mjs.map +1 -0
  591. package/dist/substrate/projection.d.mts +100 -0
  592. package/dist/substrate/runtime/artifact-publisher/index.mjs +76 -0
  593. package/dist/substrate/runtime/artifact-publisher/index.mjs.map +1 -0
  594. package/dist/substrate/runtime/atomic-write.mjs +106 -0
  595. package/dist/substrate/runtime/atomic-write.mjs.map +1 -0
  596. package/dist/substrate/runtime/cache/index.d.mts +1 -0
  597. package/dist/substrate/runtime/cache/schema.d.mts +1 -0
  598. package/dist/substrate/runtime/cache/schema.mjs +22 -0
  599. package/dist/substrate/runtime/cache/schema.mjs.map +1 -0
  600. package/dist/substrate/runtime/cache/service.d.mts +1 -0
  601. package/dist/substrate/runtime/cache/service.mjs +89 -0
  602. package/dist/substrate/runtime/cache/service.mjs.map +1 -0
  603. package/dist/substrate/runtime/capability-sinks/index.d.mts +1 -0
  604. package/dist/substrate/runtime/capability-sinks/layer.d.mts +1 -0
  605. package/dist/substrate/runtime/capability-sinks/layer.mjs +31 -0
  606. package/dist/substrate/runtime/capability-sinks/layer.mjs.map +1 -0
  607. package/dist/substrate/runtime/capability-sinks/service.d.mts +36 -0
  608. package/dist/substrate/runtime/capability-sinks/service.mjs +74 -0
  609. package/dist/substrate/runtime/capability-sinks/service.mjs.map +1 -0
  610. package/dist/substrate/runtime/config-validation.d.mts +38 -0
  611. package/dist/substrate/runtime/config-validation.mjs +137 -0
  612. package/dist/substrate/runtime/config-validation.mjs.map +1 -0
  613. package/dist/substrate/runtime/context-helpers.mjs +32 -0
  614. package/dist/substrate/runtime/context-helpers.mjs.map +1 -0
  615. package/dist/substrate/runtime/cross-process/command-channel/channel.mjs +128 -0
  616. package/dist/substrate/runtime/cross-process/command-channel/channel.mjs.map +1 -0
  617. package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs +136 -0
  618. package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs.map +1 -0
  619. package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs +49 -0
  620. package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs.map +1 -0
  621. package/dist/substrate/runtime/cross-process/command-channel/runtime-control-lock.mjs +9 -0
  622. package/dist/substrate/runtime/cross-process/command-channel/runtime-control-lock.mjs.map +1 -0
  623. package/dist/substrate/runtime/cross-process/liveness.mjs +119 -0
  624. package/dist/substrate/runtime/cross-process/liveness.mjs.map +1 -0
  625. package/dist/substrate/runtime/cross-process/roster.mjs +275 -0
  626. package/dist/substrate/runtime/cross-process/roster.mjs.map +1 -0
  627. package/dist/substrate/runtime/cross-process/snapshot-reservation.d.mts +1 -0
  628. package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs +117 -0
  629. package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs.map +1 -0
  630. package/dist/substrate/runtime/cross-process/stack-lock.d.mts +1 -0
  631. package/dist/substrate/runtime/cross-process/stack-lock.mjs +142 -0
  632. package/dist/substrate/runtime/cross-process/stack-lock.mjs.map +1 -0
  633. package/dist/substrate/runtime/current-plugin.mjs +15 -0
  634. package/dist/substrate/runtime/current-plugin.mjs.map +1 -0
  635. package/dist/substrate/runtime/errors.d.mts +1 -0
  636. package/dist/substrate/runtime/errors.mjs +76 -0
  637. package/dist/substrate/runtime/errors.mjs.map +1 -0
  638. package/dist/substrate/runtime/host-tree-tar/index.mjs +364 -0
  639. package/dist/substrate/runtime/host-tree-tar/index.mjs.map +1 -0
  640. package/dist/substrate/runtime/http-probe.d.mts +35 -0
  641. package/dist/substrate/runtime/http-probe.mjs +65 -0
  642. package/dist/substrate/runtime/http-probe.mjs.map +1 -0
  643. package/dist/substrate/runtime/lease-broker/index.d.mts +1 -0
  644. package/dist/substrate/runtime/lease-broker/service.d.mts +64 -0
  645. package/dist/substrate/runtime/lease-broker/service.mjs +155 -0
  646. package/dist/substrate/runtime/lease-broker/service.mjs.map +1 -0
  647. package/dist/substrate/runtime/lifecycle/dep-graph.d.mts +1 -0
  648. package/dist/substrate/runtime/lifecycle/dep-graph.mjs +138 -0
  649. package/dist/substrate/runtime/lifecycle/dep-graph.mjs.map +1 -0
  650. package/dist/substrate/runtime/lifecycle/index.d.mts +1 -0
  651. package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs +31 -0
  652. package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs.map +1 -0
  653. package/dist/substrate/runtime/lifecycle/plugin-registry.d.mts +1 -0
  654. package/dist/substrate/runtime/lifecycle/plugin-registry.mjs +133 -0
  655. package/dist/substrate/runtime/lifecycle/plugin-registry.mjs.map +1 -0
  656. package/dist/substrate/runtime/lifecycle/ready-gate.d.mts +1 -0
  657. package/dist/substrate/runtime/lifecycle/ready-gate.mjs +34 -0
  658. package/dist/substrate/runtime/lifecycle/ready-gate.mjs.map +1 -0
  659. package/dist/substrate/runtime/lifecycle/selective-restart.d.mts +1 -0
  660. package/dist/substrate/runtime/lifecycle/selective-restart.mjs +43 -0
  661. package/dist/substrate/runtime/lifecycle/selective-restart.mjs.map +1 -0
  662. package/dist/substrate/runtime/lifecycle/signals.d.mts +1 -0
  663. package/dist/substrate/runtime/lifecycle/signals.mjs +64 -0
  664. package/dist/substrate/runtime/lifecycle/signals.mjs.map +1 -0
  665. package/dist/substrate/runtime/lifecycle/state-machine.d.mts +1 -0
  666. package/dist/substrate/runtime/lifecycle/state-machine.mjs +38 -0
  667. package/dist/substrate/runtime/lifecycle/state-machine.mjs.map +1 -0
  668. package/dist/substrate/runtime/lifecycle/watch-attribution.d.mts +1 -0
  669. package/dist/substrate/runtime/lifecycle/watch-attribution.mjs +27 -0
  670. package/dist/substrate/runtime/lifecycle/watch-attribution.mjs.map +1 -0
  671. package/dist/substrate/runtime/managed-container.d.mts +30 -0
  672. package/dist/substrate/runtime/managed-container.mjs +32 -0
  673. package/dist/substrate/runtime/managed-container.mjs.map +1 -0
  674. package/dist/substrate/runtime/manifest/manifest.mjs +73 -0
  675. package/dist/substrate/runtime/manifest/manifest.mjs.map +1 -0
  676. package/dist/substrate/runtime/mode-errors.d.mts +36 -0
  677. package/dist/substrate/runtime/observability/cascade-formatter.d.mts +1 -0
  678. package/dist/substrate/runtime/observability/cascade-formatter.mjs +135 -0
  679. package/dist/substrate/runtime/observability/cascade-formatter.mjs.map +1 -0
  680. package/dist/substrate/runtime/observability/formatter-registry.d.mts +1 -0
  681. package/dist/substrate/runtime/observability/formatter-registry.mjs +65 -0
  682. package/dist/substrate/runtime/observability/formatter-registry.mjs.map +1 -0
  683. package/dist/substrate/runtime/observability/index.d.mts +3 -0
  684. package/dist/substrate/runtime/observability/logger.d.mts +58 -0
  685. package/dist/substrate/runtime/observability/logger.mjs +89 -0
  686. package/dist/substrate/runtime/observability/logger.mjs.map +1 -0
  687. package/dist/substrate/runtime/observability/pretty-error.d.mts +1 -0
  688. package/dist/substrate/runtime/observability/pretty-error.mjs +119 -0
  689. package/dist/substrate/runtime/observability/pretty-error.mjs.map +1 -0
  690. package/dist/substrate/runtime/observability/process-lines.d.mts +31 -0
  691. package/dist/substrate/runtime/observability/process-lines.mjs +40 -0
  692. package/dist/substrate/runtime/observability/process-lines.mjs.map +1 -0
  693. package/dist/substrate/runtime/observability/redaction.d.mts +28 -0
  694. package/dist/substrate/runtime/observability/redaction.mjs +45 -0
  695. package/dist/substrate/runtime/observability/redaction.mjs.map +1 -0
  696. package/dist/substrate/runtime/observability/spans.d.mts +1 -0
  697. package/dist/substrate/runtime/observability/spans.mjs +87 -0
  698. package/dist/substrate/runtime/observability/spans.mjs.map +1 -0
  699. package/dist/substrate/runtime/observability/subprocess-capture.d.mts +2 -0
  700. package/dist/substrate/runtime/observability/subprocess-capture.mjs +82 -0
  701. package/dist/substrate/runtime/observability/subprocess-capture.mjs.map +1 -0
  702. package/dist/substrate/runtime/paths.d.mts +17 -0
  703. package/dist/substrate/runtime/paths.mjs +61 -0
  704. package/dist/substrate/runtime/paths.mjs.map +1 -0
  705. package/dist/substrate/runtime/port-broker/index.d.mts +1 -0
  706. package/dist/substrate/runtime/port-broker/service.d.mts +1 -0
  707. package/dist/substrate/runtime/port-broker/service.mjs +319 -0
  708. package/dist/substrate/runtime/port-broker/service.mjs.map +1 -0
  709. package/dist/substrate/runtime/post-acquire-tasks.d.mts +1 -0
  710. package/dist/substrate/runtime/post-acquire-tasks.mjs +34 -0
  711. package/dist/substrate/runtime/post-acquire-tasks.mjs.map +1 -0
  712. package/dist/substrate/runtime/probes.d.mts +51 -0
  713. package/dist/substrate/runtime/probes.mjs +84 -0
  714. package/dist/substrate/runtime/probes.mjs.map +1 -0
  715. package/dist/substrate/runtime/process-supervisor.d.mts +57 -0
  716. package/dist/substrate/runtime/process-supervisor.mjs +73 -0
  717. package/dist/substrate/runtime/process-supervisor.mjs.map +1 -0
  718. package/dist/substrate/runtime/projection/operational-endpoints.mjs +44 -0
  719. package/dist/substrate/runtime/projection/operational-endpoints.mjs.map +1 -0
  720. package/dist/substrate/runtime/projection/persisted.mjs +195 -0
  721. package/dist/substrate/runtime/projection/persisted.mjs.map +1 -0
  722. package/dist/substrate/runtime/projection/state-ref.mjs +48 -0
  723. package/dist/substrate/runtime/projection/state-ref.mjs.map +1 -0
  724. package/dist/substrate/runtime/projection/update.mjs +200 -0
  725. package/dist/substrate/runtime/projection/update.mjs.map +1 -0
  726. package/dist/substrate/runtime/retry-policy.d.mts +18 -0
  727. package/dist/substrate/runtime/retry-policy.mjs +16 -0
  728. package/dist/substrate/runtime/retry-policy.mjs.map +1 -0
  729. package/dist/substrate/runtime/run.mjs +86 -0
  730. package/dist/substrate/runtime/run.mjs.map +1 -0
  731. package/dist/substrate/runtime/runtime-decode.d.mts +32 -0
  732. package/dist/substrate/runtime/runtime-decode.mjs +53 -0
  733. package/dist/substrate/runtime/runtime-decode.mjs.map +1 -0
  734. package/dist/substrate/runtime/scoped-http-server.mjs +36 -0
  735. package/dist/substrate/runtime/scoped-http-server.mjs.map +1 -0
  736. package/dist/substrate/runtime/scoped-ref-map/service.mjs +83 -0
  737. package/dist/substrate/runtime/scoped-ref-map/service.mjs.map +1 -0
  738. package/dist/substrate/runtime/stage-and-swap/index.d.mts +1 -0
  739. package/dist/substrate/runtime/stage-and-swap/index.mjs +131 -0
  740. package/dist/substrate/runtime/stage-and-swap/index.mjs.map +1 -0
  741. package/dist/substrate/runtime/state-store/schema.mjs +36 -0
  742. package/dist/substrate/runtime/state-store/schema.mjs.map +1 -0
  743. package/dist/substrate/runtime/strategy-registry/chain-probe-for.d.mts +1 -0
  744. package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs +22 -0
  745. package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs.map +1 -0
  746. package/dist/substrate/runtime/strategy-registry/faucet-capability-for.d.mts +1 -0
  747. package/dist/substrate/runtime/strategy-registry/faucet-capability-for.mjs +30 -0
  748. package/dist/substrate/runtime/strategy-registry/faucet-capability-for.mjs.map +1 -0
  749. package/dist/substrate/runtime/strategy-registry/index.d.mts +1 -0
  750. package/dist/substrate/runtime/strategy-registry/service.d.mts +1 -0
  751. package/dist/substrate/runtime/strategy-registry/service.mjs +67 -0
  752. package/dist/substrate/runtime/strategy-registry/service.mjs.map +1 -0
  753. package/dist/substrate/runtime/sui-execute/index.d.mts +11 -0
  754. package/dist/substrate/runtime/sui-execute/index.mjs +144 -0
  755. package/dist/substrate/runtime/sui-execute/index.mjs.map +1 -0
  756. package/dist/substrate/runtime/sui-move-build/index.d.mts +1 -0
  757. package/dist/substrate/runtime/sui-move-build/index.mjs +283 -0
  758. package/dist/substrate/runtime/sui-move-build/index.mjs.map +1 -0
  759. package/dist/substrate/runtime/supervisor.d.mts +1 -0
  760. package/dist/substrate/runtime/supervisor.mjs +831 -0
  761. package/dist/substrate/runtime/supervisor.mjs.map +1 -0
  762. package/dist/surfaces/cli/command-tree.mjs +276 -0
  763. package/dist/surfaces/cli/command-tree.mjs.map +1 -0
  764. package/dist/surfaces/cli/commands/config.mjs +31 -0
  765. package/dist/surfaces/cli/commands/config.mjs.map +1 -0
  766. package/dist/surfaces/cli/commands/confirm-node.mjs +26 -0
  767. package/dist/surfaces/cli/commands/confirm-node.mjs.map +1 -0
  768. package/dist/surfaces/cli/commands/confirm.mjs +26 -0
  769. package/dist/surfaces/cli/commands/confirm.mjs.map +1 -0
  770. package/dist/surfaces/cli/commands/doctor-probes.mjs +452 -0
  771. package/dist/surfaces/cli/commands/doctor-probes.mjs.map +1 -0
  772. package/dist/surfaces/cli/commands/doctor.mjs +38 -0
  773. package/dist/surfaces/cli/commands/doctor.mjs.map +1 -0
  774. package/dist/surfaces/cli/commands/prune-picker.mjs +347 -0
  775. package/dist/surfaces/cli/commands/prune-picker.mjs.map +1 -0
  776. package/dist/surfaces/cli/commands/prune.mjs +178 -0
  777. package/dist/surfaces/cli/commands/prune.mjs.map +1 -0
  778. package/dist/surfaces/cli/commands/snapshot.mjs +141 -0
  779. package/dist/surfaces/cli/commands/snapshot.mjs.map +1 -0
  780. package/dist/surfaces/cli/commands/status.mjs +95 -0
  781. package/dist/surfaces/cli/commands/status.mjs.map +1 -0
  782. package/dist/surfaces/cli/commands/supervisor-presence.mjs +33 -0
  783. package/dist/surfaces/cli/commands/supervisor-presence.mjs.map +1 -0
  784. package/dist/surfaces/cli/commands/wipe.mjs +28 -0
  785. package/dist/surfaces/cli/commands/wipe.mjs.map +1 -0
  786. package/dist/surfaces/cli/envelope.mjs +43 -0
  787. package/dist/surfaces/cli/envelope.mjs.map +1 -0
  788. package/dist/surfaces/cli/errors.mjs +110 -0
  789. package/dist/surfaces/cli/errors.mjs.map +1 -0
  790. package/dist/surfaces/cli/flags.mjs +56 -0
  791. package/dist/surfaces/cli/flags.mjs.map +1 -0
  792. package/dist/surfaces/cli/index.mjs +418 -0
  793. package/dist/surfaces/cli/index.mjs.map +1 -0
  794. package/dist/surfaces/cli/output.mjs +115 -0
  795. package/dist/surfaces/cli/output.mjs.map +1 -0
  796. package/dist/surfaces/cli/sysexits.mjs +139 -0
  797. package/dist/surfaces/cli/sysexits.mjs.map +1 -0
  798. package/dist/surfaces/tui/app.mjs +104 -0
  799. package/dist/surfaces/tui/app.mjs.map +1 -0
  800. package/dist/surfaces/tui/dashboard.mjs +261 -0
  801. package/dist/surfaces/tui/dashboard.mjs.map +1 -0
  802. package/dist/surfaces/tui/display-derivation.mjs +395 -0
  803. package/dist/surfaces/tui/display-derivation.mjs.map +1 -0
  804. package/dist/surfaces/tui/errors.mjs +11 -0
  805. package/dist/surfaces/tui/errors.mjs.map +1 -0
  806. package/dist/surfaces/tui/event-log.mjs +155 -0
  807. package/dist/surfaces/tui/event-log.mjs.map +1 -0
  808. package/dist/surfaces/tui/heartbeat.mjs +33 -0
  809. package/dist/surfaces/tui/heartbeat.mjs.map +1 -0
  810. package/dist/surfaces/tui/index.mjs +50 -0
  811. package/dist/surfaces/tui/index.mjs.map +1 -0
  812. package/dist/surfaces/tui/input.mjs +104 -0
  813. package/dist/surfaces/tui/input.mjs.map +1 -0
  814. package/dist/surfaces/tui/mode-detect.mjs +32 -0
  815. package/dist/surfaces/tui/mode-detect.mjs.map +1 -0
  816. package/dist/surfaces/tui/mount-ink.mjs +31 -0
  817. package/dist/surfaces/tui/mount-ink.mjs.map +1 -0
  818. package/dist/surfaces/tui/plain-renderer.mjs +170 -0
  819. package/dist/surfaces/tui/plain-renderer.mjs.map +1 -0
  820. package/dist/surfaces/tui/resource-table.mjs +507 -0
  821. package/dist/surfaces/tui/resource-table.mjs.map +1 -0
  822. package/images/_shared/signal-forward.sh +77 -0
  823. package/images/postgres/Dockerfile +32 -0
  824. package/images/seal/Dockerfile +68 -0
  825. package/images/seal/entrypoint.sh +65 -0
  826. package/images/sui/Dockerfile +73 -0
  827. package/images/sui/entrypoint.sh +244 -0
  828. package/images/sui-fork/Dockerfile +53 -0
  829. package/images/sui-fork/entrypoint.sh +51 -0
  830. package/images/walrus/Dockerfile +122 -0
  831. package/images/walrus/deploy-walrus.sh +305 -0
  832. package/images/walrus/run-walrus.sh +53 -0
  833. package/package.json +94 -0
@@ -0,0 +1,507 @@
1
+ import { accountCells, deriveDisplayCells, endpointLine, groupRows, packageCells, visibleEndpointsForRow } from "./display-derivation.mjs";
2
+ import { Box, Text, useWindowSize } from "ink";
3
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/surfaces/tui/resource-table.tsx
5
+ const STATE_WIDTH = 13;
6
+ const NAME_WIDTH = 18;
7
+ const MIN_URL_WIDTH = 32;
8
+ const MAX_URL_WIDTH = 96;
9
+ const DETAIL_WIDTH = 32;
10
+ const ACCOUNT_WIDTH = 14;
11
+ const ADDRESS_WIDTH = 68;
12
+ const SCHEME_WIDTH = 8;
13
+ const SOURCE_WIDTH = 8;
14
+ const FUNDING_WIDTH = 34;
15
+ const PACKAGE_WIDTH = 18;
16
+ const PACKAGE_ID_WIDTH = 68;
17
+ const MVR_WIDTH = 28;
18
+ const ResourceTables = ({ rows, endpoints, accounts, packages }) => {
19
+ const { columns } = useWindowSize();
20
+ const pluginLayout = pluginTableLayout(columns);
21
+ const accountLayout = accountTableLayout(columns);
22
+ const packageLayout = packageTableLayout(columns);
23
+ const sections = groupRows(rows, endpoints);
24
+ const bySection = new Map(sections.map((section) => [section.key, section]));
25
+ const orderedSections = [
26
+ bySection.get("service"),
27
+ bySection.get("package"),
28
+ bySection.get("account"),
29
+ bySection.get("action"),
30
+ bySection.get("app"),
31
+ bySection.get("other")
32
+ ].filter((section) => section !== void 0);
33
+ return /* @__PURE__ */ jsxs(Box, {
34
+ flexDirection: "column",
35
+ children: [
36
+ /* @__PURE__ */ jsx(Text, {
37
+ bold: true,
38
+ children: "Stack"
39
+ }),
40
+ rows.length === 0 && accounts.length === 0 && packages.length === 0 && /* @__PURE__ */ jsx(Text, { children: "no plugins declared" }),
41
+ orderedSections.map((section) => section.key === "account" ? /* @__PURE__ */ jsx(AccountSection, {
42
+ section,
43
+ accounts,
44
+ layout: accountLayout
45
+ }, section.key) : section.key === "package" ? /* @__PURE__ */ jsx(PackageSection, {
46
+ section,
47
+ packages,
48
+ layout: packageLayout
49
+ }, section.key) : /* @__PURE__ */ jsx(PluginSection, {
50
+ section,
51
+ endpoints,
52
+ layout: pluginLayout
53
+ }, section.key)),
54
+ bySection.has("account") ? null : accounts.length > 0 ? /* @__PURE__ */ jsx(AccountSection, {
55
+ section: void 0,
56
+ accounts,
57
+ layout: accountLayout
58
+ }) : null,
59
+ bySection.has("package") ? null : packages.length > 0 ? /* @__PURE__ */ jsx(PackageSection, {
60
+ section: void 0,
61
+ packages,
62
+ layout: packageLayout
63
+ }) : null
64
+ ]
65
+ });
66
+ };
67
+ const PluginSection = ({ section, endpoints, layout }) => /* @__PURE__ */ jsxs(Box, {
68
+ flexDirection: "column",
69
+ marginTop: 1,
70
+ children: [
71
+ /* @__PURE__ */ jsx(Text, {
72
+ bold: true,
73
+ children: section.label
74
+ }),
75
+ /* @__PURE__ */ jsx(Header, {
76
+ cells: layout.showDetail ? [
77
+ "STATE",
78
+ "NAME",
79
+ "URLS",
80
+ "DETAIL"
81
+ ] : [
82
+ "STATE",
83
+ "NAME",
84
+ "URLS"
85
+ ],
86
+ widths: layout.showDetail ? [
87
+ STATE_WIDTH,
88
+ NAME_WIDTH,
89
+ layout.urlWidth,
90
+ DETAIL_WIDTH
91
+ ] : [
92
+ STATE_WIDTH,
93
+ NAME_WIDTH,
94
+ layout.urlWidth
95
+ ]
96
+ }),
97
+ section.rows.map((displayRow) => /* @__PURE__ */ jsx(PluginRow, {
98
+ displayRow,
99
+ endpoints,
100
+ layout
101
+ }, displayRow.row.key))
102
+ ]
103
+ });
104
+ const PluginRow = ({ displayRow, endpoints, layout }) => {
105
+ const cells = deriveDisplayCells(displayRow.row, endpoints);
106
+ const urlLines = visibleEndpointsForRow(displayRow.row, endpoints).map(endpointLine);
107
+ const detail = cells.errorSummary || cells.narration;
108
+ const detailLines = detail.length === 0 ? [] : [`detail: ${detail}`];
109
+ const compactUrlLines = [...urlLines.length === 0 ? ["-"] : urlLines, ...layout.showDetail ? [] : detailLines];
110
+ return /* @__PURE__ */ jsxs(Box, {
111
+ flexDirection: "row",
112
+ gap: 1,
113
+ children: [
114
+ /* @__PURE__ */ jsx(StateCell, {
115
+ glyph: cells.statusGlyph,
116
+ label: cells.statusLabel,
117
+ color: cells.statusColor
118
+ }),
119
+ /* @__PURE__ */ jsx(FixedText, {
120
+ width: NAME_WIDTH,
121
+ color: cells.labelColor,
122
+ bold: true,
123
+ children: cells.label
124
+ }),
125
+ /* @__PURE__ */ jsx(MultiLineFixedText, {
126
+ width: layout.urlWidth,
127
+ color: urlLines.length === 0 ? "white" : "cyan",
128
+ lines: compactUrlLines
129
+ }),
130
+ layout.showDetail && /* @__PURE__ */ jsx(MultiLineFixedText, {
131
+ width: DETAIL_WIDTH,
132
+ color: cells.errorSummary ? "red" : "white",
133
+ lines: [detail]
134
+ })
135
+ ]
136
+ });
137
+ };
138
+ const AccountSection = ({ section, accounts, layout }) => {
139
+ const rows = section?.rows ?? [];
140
+ const accountByRow = new Map(accounts.filter((account) => account.rowKey !== null).map((account) => [account.rowKey, account]));
141
+ const rowKeys = new Set(rows.map(({ row }) => row.key));
142
+ const unownedAccounts = accounts.filter((account) => account.rowKey === null || !rowKeys.has(account.rowKey));
143
+ return /* @__PURE__ */ jsxs(Box, {
144
+ flexDirection: "column",
145
+ marginTop: 1,
146
+ children: [
147
+ /* @__PURE__ */ jsx(Text, {
148
+ bold: true,
149
+ children: "Accounts"
150
+ }),
151
+ /* @__PURE__ */ jsx(Header, {
152
+ cells: [
153
+ "STATE",
154
+ "ACCOUNT",
155
+ "ADDRESS",
156
+ ...layout.showMeta ? ["SCHEME", "SOURCE"] : [],
157
+ ...layout.showFunding ? ["FUNDING"] : [],
158
+ ...layout.showDetail ? ["DETAIL"] : []
159
+ ],
160
+ widths: [
161
+ STATE_WIDTH,
162
+ ACCOUNT_WIDTH,
163
+ layout.addressWidth,
164
+ ...layout.showMeta ? [SCHEME_WIDTH, SOURCE_WIDTH] : [],
165
+ ...layout.showFunding ? [FUNDING_WIDTH] : [],
166
+ ...layout.showDetail ? [DETAIL_WIDTH] : []
167
+ ]
168
+ }),
169
+ rows.map((displayRow) => /* @__PURE__ */ jsx(AccountRow, {
170
+ displayRow,
171
+ account: accountByRow.get(displayRow.row.key),
172
+ layout
173
+ }, displayRow.row.key)),
174
+ unownedAccounts.map((account) => /* @__PURE__ */ jsx(AccountRecordRow, {
175
+ account,
176
+ layout
177
+ }, account.key))
178
+ ]
179
+ });
180
+ };
181
+ const PackageSection = ({ section, packages, layout }) => {
182
+ const rows = section?.rows ?? [];
183
+ const packageByRow = new Map(packages.filter((pkg) => pkg.rowKey !== null).map((pkg) => [pkg.rowKey, pkg]));
184
+ const rowKeys = new Set(rows.map(({ row }) => row.key));
185
+ const unownedPackages = packages.filter((pkg) => pkg.rowKey === null || !rowKeys.has(pkg.rowKey));
186
+ return /* @__PURE__ */ jsxs(Box, {
187
+ flexDirection: "column",
188
+ marginTop: 1,
189
+ children: [
190
+ /* @__PURE__ */ jsx(Text, {
191
+ bold: true,
192
+ children: "Packages"
193
+ }),
194
+ /* @__PURE__ */ jsx(Header, {
195
+ cells: [
196
+ "STATE",
197
+ "PACKAGE",
198
+ "PACKAGE ID",
199
+ ...layout.showMvr ? ["MVR"] : [],
200
+ ...layout.showDetail ? ["DETAIL"] : []
201
+ ],
202
+ widths: [
203
+ STATE_WIDTH,
204
+ PACKAGE_WIDTH,
205
+ layout.packageIdWidth,
206
+ ...layout.showMvr ? [layout.mvrWidth] : [],
207
+ ...layout.showDetail ? [DETAIL_WIDTH] : []
208
+ ]
209
+ }),
210
+ rows.map((displayRow) => /* @__PURE__ */ jsx(PackageRow, {
211
+ displayRow,
212
+ pkg: packageByRow.get(displayRow.row.key),
213
+ layout
214
+ }, displayRow.row.key)),
215
+ unownedPackages.map((pkg) => /* @__PURE__ */ jsx(PackageRecordRow, {
216
+ pkg,
217
+ layout
218
+ }, pkg.key))
219
+ ]
220
+ });
221
+ };
222
+ const AccountRow = ({ displayRow, account, layout }) => {
223
+ const cells = deriveDisplayCells(displayRow.row);
224
+ const facts = account === void 0 ? {
225
+ name: cells.label,
226
+ address: "<pending>",
227
+ scheme: "pending",
228
+ source: "pending",
229
+ funding: "funding pending"
230
+ } : accountCells(account);
231
+ const detail = cells.errorSummary || cells.narration || "-";
232
+ return /* @__PURE__ */ jsxs(Box, {
233
+ flexDirection: "row",
234
+ gap: 1,
235
+ children: [
236
+ /* @__PURE__ */ jsx(StateCell, {
237
+ glyph: cells.statusGlyph,
238
+ label: cells.statusLabel,
239
+ color: cells.statusColor
240
+ }),
241
+ /* @__PURE__ */ jsx(FixedText, {
242
+ width: ACCOUNT_WIDTH,
243
+ color: cells.labelColor,
244
+ bold: true,
245
+ children: facts.name
246
+ }),
247
+ /* @__PURE__ */ jsx(FixedText, {
248
+ width: layout.addressWidth,
249
+ color: "white",
250
+ children: facts.address
251
+ }),
252
+ layout.showMeta && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(FixedText, {
253
+ width: SCHEME_WIDTH,
254
+ color: "white",
255
+ children: facts.scheme
256
+ }), /* @__PURE__ */ jsx(FixedText, {
257
+ width: SOURCE_WIDTH,
258
+ color: "white",
259
+ children: facts.source
260
+ })] }),
261
+ layout.showFunding && /* @__PURE__ */ jsx(FixedText, {
262
+ width: FUNDING_WIDTH,
263
+ color: "white",
264
+ children: facts.funding
265
+ }),
266
+ layout.showDetail && /* @__PURE__ */ jsx(MultiLineFixedText, {
267
+ width: DETAIL_WIDTH,
268
+ color: cells.errorSummary ? "red" : "white",
269
+ lines: [detail]
270
+ })
271
+ ]
272
+ });
273
+ };
274
+ const PackageRow = ({ displayRow, pkg, layout }) => {
275
+ const cells = deriveDisplayCells(displayRow.row);
276
+ const facts = pkg === void 0 ? {
277
+ name: cells.label,
278
+ packageId: "<pending>",
279
+ mvr: "pending",
280
+ detail: cells.errorSummary || cells.narration || "publish pending"
281
+ } : packageCells(pkg);
282
+ const detail = cells.errorSummary || cells.narration || facts.detail || "-";
283
+ return /* @__PURE__ */ jsxs(Box, {
284
+ flexDirection: "row",
285
+ gap: 1,
286
+ children: [
287
+ /* @__PURE__ */ jsx(StateCell, {
288
+ glyph: cells.statusGlyph,
289
+ label: cells.statusLabel,
290
+ color: cells.statusColor
291
+ }),
292
+ /* @__PURE__ */ jsx(FixedText, {
293
+ width: PACKAGE_WIDTH,
294
+ color: cells.labelColor,
295
+ bold: true,
296
+ children: facts.name
297
+ }),
298
+ /* @__PURE__ */ jsx(FixedText, {
299
+ width: layout.packageIdWidth,
300
+ color: "white",
301
+ children: facts.packageId
302
+ }),
303
+ layout.showMvr && /* @__PURE__ */ jsx(MultiLineFixedText, {
304
+ width: layout.mvrWidth,
305
+ color: "white",
306
+ lines: [facts.mvr]
307
+ }),
308
+ layout.showDetail && /* @__PURE__ */ jsx(MultiLineFixedText, {
309
+ width: DETAIL_WIDTH,
310
+ color: cells.errorSummary ? "red" : "white",
311
+ lines: [detail]
312
+ })
313
+ ]
314
+ });
315
+ };
316
+ const AccountRecordRow = ({ account, layout }) => {
317
+ const facts = accountCells(account);
318
+ return /* @__PURE__ */ jsxs(Box, {
319
+ flexDirection: "row",
320
+ gap: 1,
321
+ children: [
322
+ /* @__PURE__ */ jsx(FixedText, {
323
+ width: STATE_WIDTH,
324
+ color: "white",
325
+ children: "record"
326
+ }),
327
+ /* @__PURE__ */ jsx(FixedText, {
328
+ width: ACCOUNT_WIDTH,
329
+ color: "magenta",
330
+ bold: true,
331
+ children: facts.name
332
+ }),
333
+ /* @__PURE__ */ jsx(FixedText, {
334
+ width: layout.addressWidth,
335
+ color: "white",
336
+ children: facts.address
337
+ }),
338
+ layout.showMeta && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(FixedText, {
339
+ width: SCHEME_WIDTH,
340
+ color: "white",
341
+ children: facts.scheme
342
+ }), /* @__PURE__ */ jsx(FixedText, {
343
+ width: SOURCE_WIDTH,
344
+ color: "white",
345
+ children: facts.source
346
+ })] }),
347
+ layout.showFunding && /* @__PURE__ */ jsx(FixedText, {
348
+ width: FUNDING_WIDTH,
349
+ color: "white",
350
+ children: facts.funding
351
+ }),
352
+ layout.showDetail && /* @__PURE__ */ jsx(FixedText, {
353
+ width: DETAIL_WIDTH,
354
+ color: "white",
355
+ children: "-"
356
+ })
357
+ ]
358
+ });
359
+ };
360
+ const PackageRecordRow = ({ pkg, layout }) => {
361
+ const facts = packageCells(pkg);
362
+ return /* @__PURE__ */ jsxs(Box, {
363
+ flexDirection: "row",
364
+ gap: 1,
365
+ children: [
366
+ /* @__PURE__ */ jsx(FixedText, {
367
+ width: STATE_WIDTH,
368
+ color: "white",
369
+ children: "record"
370
+ }),
371
+ /* @__PURE__ */ jsx(FixedText, {
372
+ width: PACKAGE_WIDTH,
373
+ color: "magenta",
374
+ bold: true,
375
+ children: facts.name
376
+ }),
377
+ /* @__PURE__ */ jsx(FixedText, {
378
+ width: layout.packageIdWidth,
379
+ color: "white",
380
+ children: facts.packageId
381
+ }),
382
+ layout.showMvr && /* @__PURE__ */ jsx(MultiLineFixedText, {
383
+ width: layout.mvrWidth,
384
+ color: "white",
385
+ lines: [facts.mvr]
386
+ }),
387
+ layout.showDetail && /* @__PURE__ */ jsx(MultiLineFixedText, {
388
+ width: DETAIL_WIDTH,
389
+ color: "white",
390
+ lines: [facts.detail]
391
+ })
392
+ ]
393
+ });
394
+ };
395
+ const StateCell = ({ glyph, label, color }) => /* @__PURE__ */ jsx(FixedText, {
396
+ width: STATE_WIDTH,
397
+ color,
398
+ children: `${glyph} ${label}`
399
+ });
400
+ const Header = ({ cells, widths }) => /* @__PURE__ */ jsx(Box, {
401
+ flexDirection: "row",
402
+ gap: 1,
403
+ children: cells.map((cell, index) => widths[index] === 0 ? /* @__PURE__ */ jsx(Text, {
404
+ bold: true,
405
+ children: cell
406
+ }, `${index}:${cell}`) : /* @__PURE__ */ jsx(FixedText, {
407
+ width: widths[index] ?? 0,
408
+ color: "white",
409
+ bold: true,
410
+ children: cell
411
+ }, `${index}:${cell}`))
412
+ });
413
+ const FixedText = ({ width, color, bold = false, children }) => /* @__PURE__ */ jsx(Box, {
414
+ width,
415
+ flexShrink: 0,
416
+ children: /* @__PURE__ */ jsx(Text, {
417
+ color,
418
+ bold,
419
+ children: clip(children, width)
420
+ })
421
+ });
422
+ const MultiLineFixedText = ({ width, color, lines }) => /* @__PURE__ */ jsx(Box, {
423
+ width,
424
+ flexShrink: 0,
425
+ flexDirection: "column",
426
+ children: lines.flatMap((line) => wrap(line, width)).map((line, index) => /* @__PURE__ */ jsx(Text, {
427
+ color,
428
+ wrap: "truncate-end",
429
+ children: line
430
+ }, `${index}:${line}`))
431
+ });
432
+ const clip = (value, width) => {
433
+ if (width <= 0 || value.length <= width) return value;
434
+ if (width <= 1) return value.slice(0, width);
435
+ return `${value.slice(0, width - 1)}…`;
436
+ };
437
+ const pluginTableLayout = (columns) => {
438
+ const gapCount = (showDetail) => showDetail ? 3 : 2;
439
+ const showDetail = columns >= STATE_WIDTH + NAME_WIDTH + DETAIL_WIDTH + MIN_URL_WIDTH + gapCount(true);
440
+ const fixedWidth = STATE_WIDTH + NAME_WIDTH + (showDetail ? DETAIL_WIDTH : 0) + gapCount(showDetail);
441
+ const availableUrlWidth = Math.max(MIN_URL_WIDTH, columns - fixedWidth);
442
+ return {
443
+ showDetail,
444
+ urlWidth: Math.min(MAX_URL_WIDTH, availableUrlWidth)
445
+ };
446
+ };
447
+ const accountTableLayout = (columns) => {
448
+ const fullWidth = STATE_WIDTH + ACCOUNT_WIDTH + ADDRESS_WIDTH + SCHEME_WIDTH + SOURCE_WIDTH + FUNDING_WIDTH + DETAIL_WIDTH + 6;
449
+ const midWidth = STATE_WIDTH + ACCOUNT_WIDTH + 32 + SCHEME_WIDTH + SOURCE_WIDTH + FUNDING_WIDTH + 5;
450
+ const showDetail = columns >= fullWidth;
451
+ const showMeta = columns >= midWidth;
452
+ const showFunding = columns >= midWidth;
453
+ const fixed = STATE_WIDTH + ACCOUNT_WIDTH + (showMeta ? SCHEME_WIDTH + SOURCE_WIDTH : 0) + (showFunding ? FUNDING_WIDTH : 0) + (showDetail ? DETAIL_WIDTH : 0) + (1 + (showMeta ? 2 : 0) + (showFunding ? 1 : 0) + (showDetail ? 1 : 0));
454
+ return {
455
+ showDetail,
456
+ showMeta,
457
+ showFunding,
458
+ addressWidth: Math.min(ADDRESS_WIDTH, Math.max(24, columns - fixed))
459
+ };
460
+ };
461
+ const packageTableLayout = (columns) => {
462
+ const showDetail = columns >= STATE_WIDTH + PACKAGE_WIDTH + PACKAGE_ID_WIDTH + MVR_WIDTH + DETAIL_WIDTH + 4;
463
+ const showMvr = columns >= STATE_WIDTH + PACKAGE_WIDTH + 24 + 16 + 3;
464
+ const fixed = STATE_WIDTH + PACKAGE_WIDTH + (showMvr ? MVR_WIDTH : 0) + (showDetail ? DETAIL_WIDTH : 0) + (1 + (showMvr ? 1 : 0) + (showDetail ? 1 : 0));
465
+ return {
466
+ showDetail,
467
+ showMvr,
468
+ mvrWidth: showDetail ? MVR_WIDTH : 20,
469
+ packageIdWidth: Math.min(PACKAGE_ID_WIDTH, Math.max(24, columns - fixed))
470
+ };
471
+ };
472
+ const wrap = (value, width) => {
473
+ const limit = Math.max(1, width - 1);
474
+ if (width <= 0 || value.length <= limit) return [value];
475
+ const lines = [];
476
+ let rest = value;
477
+ while (rest.length > limit) {
478
+ const idx = wrapIndex(rest, limit);
479
+ lines.push(rest.slice(0, idx).trimEnd());
480
+ rest = rest.slice(idx).trimStart();
481
+ }
482
+ if (rest.length > 0) lines.push(rest);
483
+ return lines;
484
+ };
485
+ const wrapIndex = (value, width) => {
486
+ const window = value.slice(0, width + 1);
487
+ const candidates = [
488
+ " -> ",
489
+ " | ",
490
+ " "
491
+ ];
492
+ let bestIndex = -1;
493
+ let bestLength = 0;
494
+ for (const candidate of candidates) {
495
+ const idx = window.lastIndexOf(candidate);
496
+ if (idx > bestIndex) {
497
+ bestIndex = idx;
498
+ bestLength = candidate.length;
499
+ }
500
+ }
501
+ if (bestIndex > 0) return bestIndex + bestLength;
502
+ return width;
503
+ };
504
+ //#endregion
505
+ export { ResourceTables };
506
+
507
+ //# sourceMappingURL=resource-table.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-table.mjs","names":[],"sources":["../../../src/surfaces/tui/resource-table.tsx"],"sourcesContent":["import { Box, Text, useWindowSize } from 'ink';\nimport type React from 'react';\n\nimport type {\n\tAccountProjection,\n\tEndpoint,\n\tPackageProjection,\n\tRow,\n} from '../../substrate/projection.ts';\nimport {\n\taccountCells,\n\tderiveDisplayCells,\n\tendpointLine,\n\tgroupRows,\n\tpackageCells,\n\tvisibleEndpointsForRow,\n\ttype ColorToken,\n\ttype DisplayRow,\n\ttype DisplaySection,\n} from './display-derivation.ts';\n\nexport interface ResourceTablesProps {\n\treadonly rows: ReadonlyArray<Row>;\n\treadonly endpoints: ReadonlyArray<Endpoint>;\n\treadonly accounts: ReadonlyArray<AccountProjection>;\n\treadonly packages: ReadonlyArray<PackageProjection>;\n}\n\nconst STATE_WIDTH = 13;\nconst NAME_WIDTH = 18;\nconst MIN_URL_WIDTH = 32;\nconst MAX_URL_WIDTH = 96;\nconst DETAIL_WIDTH = 32;\nconst ACCOUNT_WIDTH = 14;\nconst ADDRESS_WIDTH = 68;\nconst SCHEME_WIDTH = 8;\nconst SOURCE_WIDTH = 8;\nconst FUNDING_WIDTH = 34;\nconst PACKAGE_WIDTH = 18;\nconst PACKAGE_ID_WIDTH = 68;\nconst MVR_WIDTH = 28;\n\ninterface PluginTableLayout {\n\treadonly urlWidth: number;\n\treadonly showDetail: boolean;\n}\n\ninterface AccountTableLayout {\n\treadonly addressWidth: number;\n\treadonly showMeta: boolean;\n\treadonly showFunding: boolean;\n\treadonly showDetail: boolean;\n}\n\ninterface PackageTableLayout {\n\treadonly packageIdWidth: number;\n\treadonly mvrWidth: number;\n\treadonly showMvr: boolean;\n\treadonly showDetail: boolean;\n}\n\nexport const ResourceTables = ({\n\trows,\n\tendpoints,\n\taccounts,\n\tpackages,\n}: ResourceTablesProps): React.JSX.Element => {\n\tconst { columns } = useWindowSize();\n\tconst pluginLayout = pluginTableLayout(columns);\n\tconst accountLayout = accountTableLayout(columns);\n\tconst packageLayout = packageTableLayout(columns);\n\tconst sections = groupRows(rows, endpoints);\n\tconst bySection = new Map(sections.map((section) => [section.key, section]));\n\tconst orderedSections = [\n\t\tbySection.get('service'),\n\t\tbySection.get('package'),\n\t\tbySection.get('account'),\n\t\tbySection.get('action'),\n\t\tbySection.get('app'),\n\t\tbySection.get('other'),\n\t].filter((section): section is DisplaySection => section !== undefined);\n\n\treturn (\n\t\t<Box flexDirection=\"column\">\n\t\t\t<Text bold>Stack</Text>\n\t\t\t{rows.length === 0 && accounts.length === 0 && packages.length === 0 && (\n\t\t\t\t<Text>no plugins declared</Text>\n\t\t\t)}\n\t\t\t{orderedSections.map((section) =>\n\t\t\t\tsection.key === 'account' ? (\n\t\t\t\t\t<AccountSection\n\t\t\t\t\t\tkey={section.key}\n\t\t\t\t\t\tsection={section}\n\t\t\t\t\t\taccounts={accounts}\n\t\t\t\t\t\tlayout={accountLayout}\n\t\t\t\t\t/>\n\t\t\t\t) : section.key === 'package' ? (\n\t\t\t\t\t<PackageSection\n\t\t\t\t\t\tkey={section.key}\n\t\t\t\t\t\tsection={section}\n\t\t\t\t\t\tpackages={packages}\n\t\t\t\t\t\tlayout={packageLayout}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<PluginSection\n\t\t\t\t\t\tkey={section.key}\n\t\t\t\t\t\tsection={section}\n\t\t\t\t\t\tendpoints={endpoints}\n\t\t\t\t\t\tlayout={pluginLayout}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t)}\n\t\t\t{bySection.has('account') ? null : accounts.length > 0 ? (\n\t\t\t\t<AccountSection section={undefined} accounts={accounts} layout={accountLayout} />\n\t\t\t) : null}\n\t\t\t{bySection.has('package') ? null : packages.length > 0 ? (\n\t\t\t\t<PackageSection section={undefined} packages={packages} layout={packageLayout} />\n\t\t\t) : null}\n\t\t</Box>\n\t);\n};\n\nconst PluginSection = ({\n\tsection,\n\tendpoints,\n\tlayout,\n}: {\n\treadonly section: DisplaySection;\n\treadonly endpoints: ReadonlyArray<Endpoint>;\n\treadonly layout: PluginTableLayout;\n}): React.JSX.Element => (\n\t<Box flexDirection=\"column\" marginTop={1}>\n\t\t<Text bold>{section.label}</Text>\n\t\t<Header\n\t\t\tcells={layout.showDetail ? ['STATE', 'NAME', 'URLS', 'DETAIL'] : ['STATE', 'NAME', 'URLS']}\n\t\t\twidths={\n\t\t\t\tlayout.showDetail\n\t\t\t\t\t? [STATE_WIDTH, NAME_WIDTH, layout.urlWidth, DETAIL_WIDTH]\n\t\t\t\t\t: [STATE_WIDTH, NAME_WIDTH, layout.urlWidth]\n\t\t\t}\n\t\t/>\n\t\t{section.rows.map((displayRow) => (\n\t\t\t<PluginRow\n\t\t\t\tkey={displayRow.row.key}\n\t\t\t\tdisplayRow={displayRow}\n\t\t\t\tendpoints={endpoints}\n\t\t\t\tlayout={layout}\n\t\t\t/>\n\t\t))}\n\t</Box>\n);\n\nconst PluginRow = ({\n\tdisplayRow,\n\tendpoints,\n\tlayout,\n}: {\n\treadonly displayRow: DisplayRow;\n\treadonly endpoints: ReadonlyArray<Endpoint>;\n\treadonly layout: PluginTableLayout;\n}): React.JSX.Element => {\n\tconst cells = deriveDisplayCells(displayRow.row, endpoints);\n\tconst urlLines = visibleEndpointsForRow(displayRow.row, endpoints).map(endpointLine);\n\tconst detail = cells.errorSummary || cells.narration;\n\tconst detailLines = detail.length === 0 ? [] : [`detail: ${detail}`];\n\tconst compactUrlLines = [\n\t\t...(urlLines.length === 0 ? ['-'] : urlLines),\n\t\t...(layout.showDetail ? [] : detailLines),\n\t];\n\treturn (\n\t\t<Box flexDirection=\"row\" gap={1}>\n\t\t\t<StateCell glyph={cells.statusGlyph} label={cells.statusLabel} color={cells.statusColor} />\n\t\t\t<FixedText width={NAME_WIDTH} color={cells.labelColor} bold>\n\t\t\t\t{cells.label}\n\t\t\t</FixedText>\n\t\t\t<MultiLineFixedText\n\t\t\t\twidth={layout.urlWidth}\n\t\t\t\tcolor={urlLines.length === 0 ? 'white' : 'cyan'}\n\t\t\t\tlines={compactUrlLines}\n\t\t\t/>\n\t\t\t{layout.showDetail && (\n\t\t\t\t<MultiLineFixedText\n\t\t\t\t\twidth={DETAIL_WIDTH}\n\t\t\t\t\tcolor={cells.errorSummary ? 'red' : 'white'}\n\t\t\t\t\tlines={[detail]}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Box>\n\t);\n};\n\nconst AccountSection = ({\n\tsection,\n\taccounts,\n\tlayout,\n}: {\n\treadonly section: DisplaySection | undefined;\n\treadonly accounts: ReadonlyArray<AccountProjection>;\n\treadonly layout: AccountTableLayout;\n}): React.JSX.Element => {\n\tconst rows = section?.rows ?? [];\n\tconst accountByRow = new Map(\n\t\taccounts\n\t\t\t.filter((account) => account.rowKey !== null)\n\t\t\t.map((account) => [account.rowKey as string, account]),\n\t);\n\tconst rowKeys = new Set(rows.map(({ row }) => row.key));\n\tconst unownedAccounts = accounts.filter(\n\t\t(account) => account.rowKey === null || !rowKeys.has(account.rowKey),\n\t);\n\n\treturn (\n\t\t<Box flexDirection=\"column\" marginTop={1}>\n\t\t\t<Text bold>Accounts</Text>\n\t\t\t<Header\n\t\t\t\tcells={[\n\t\t\t\t\t'STATE',\n\t\t\t\t\t'ACCOUNT',\n\t\t\t\t\t'ADDRESS',\n\t\t\t\t\t...(layout.showMeta ? ['SCHEME', 'SOURCE'] : []),\n\t\t\t\t\t...(layout.showFunding ? ['FUNDING'] : []),\n\t\t\t\t\t...(layout.showDetail ? ['DETAIL'] : []),\n\t\t\t\t]}\n\t\t\t\twidths={[\n\t\t\t\t\tSTATE_WIDTH,\n\t\t\t\t\tACCOUNT_WIDTH,\n\t\t\t\t\tlayout.addressWidth,\n\t\t\t\t\t...(layout.showMeta ? [SCHEME_WIDTH, SOURCE_WIDTH] : []),\n\t\t\t\t\t...(layout.showFunding ? [FUNDING_WIDTH] : []),\n\t\t\t\t\t...(layout.showDetail ? [DETAIL_WIDTH] : []),\n\t\t\t\t]}\n\t\t\t/>\n\t\t\t{rows.map((displayRow) => (\n\t\t\t\t<AccountRow\n\t\t\t\t\tkey={displayRow.row.key}\n\t\t\t\t\tdisplayRow={displayRow}\n\t\t\t\t\taccount={accountByRow.get(displayRow.row.key)}\n\t\t\t\t\tlayout={layout}\n\t\t\t\t/>\n\t\t\t))}\n\t\t\t{unownedAccounts.map((account) => (\n\t\t\t\t<AccountRecordRow key={account.key} account={account} layout={layout} />\n\t\t\t))}\n\t\t</Box>\n\t);\n};\n\nconst PackageSection = ({\n\tsection,\n\tpackages,\n\tlayout,\n}: {\n\treadonly section: DisplaySection | undefined;\n\treadonly packages: ReadonlyArray<PackageProjection>;\n\treadonly layout: PackageTableLayout;\n}): React.JSX.Element => {\n\tconst rows = section?.rows ?? [];\n\tconst packageByRow = new Map(\n\t\tpackages.filter((pkg) => pkg.rowKey !== null).map((pkg) => [pkg.rowKey as string, pkg]),\n\t);\n\tconst rowKeys = new Set(rows.map(({ row }) => row.key));\n\tconst unownedPackages = packages.filter((pkg) => pkg.rowKey === null || !rowKeys.has(pkg.rowKey));\n\n\treturn (\n\t\t<Box flexDirection=\"column\" marginTop={1}>\n\t\t\t<Text bold>Packages</Text>\n\t\t\t<Header\n\t\t\t\tcells={[\n\t\t\t\t\t'STATE',\n\t\t\t\t\t'PACKAGE',\n\t\t\t\t\t'PACKAGE ID',\n\t\t\t\t\t...(layout.showMvr ? ['MVR'] : []),\n\t\t\t\t\t...(layout.showDetail ? ['DETAIL'] : []),\n\t\t\t\t]}\n\t\t\t\twidths={[\n\t\t\t\t\tSTATE_WIDTH,\n\t\t\t\t\tPACKAGE_WIDTH,\n\t\t\t\t\tlayout.packageIdWidth,\n\t\t\t\t\t...(layout.showMvr ? [layout.mvrWidth] : []),\n\t\t\t\t\t...(layout.showDetail ? [DETAIL_WIDTH] : []),\n\t\t\t\t]}\n\t\t\t/>\n\t\t\t{rows.map((displayRow) => (\n\t\t\t\t<PackageRow\n\t\t\t\t\tkey={displayRow.row.key}\n\t\t\t\t\tdisplayRow={displayRow}\n\t\t\t\t\tpkg={packageByRow.get(displayRow.row.key)}\n\t\t\t\t\tlayout={layout}\n\t\t\t\t/>\n\t\t\t))}\n\t\t\t{unownedPackages.map((pkg) => (\n\t\t\t\t<PackageRecordRow key={pkg.key} pkg={pkg} layout={layout} />\n\t\t\t))}\n\t\t</Box>\n\t);\n};\n\nconst AccountRow = ({\n\tdisplayRow,\n\taccount,\n\tlayout,\n}: {\n\treadonly displayRow: DisplayRow;\n\treadonly account: AccountProjection | undefined;\n\treadonly layout: AccountTableLayout;\n}): React.JSX.Element => {\n\tconst cells = deriveDisplayCells(displayRow.row);\n\tconst facts =\n\t\taccount === undefined\n\t\t\t? {\n\t\t\t\t\tname: cells.label,\n\t\t\t\t\taddress: '<pending>',\n\t\t\t\t\tscheme: 'pending',\n\t\t\t\t\tsource: 'pending',\n\t\t\t\t\tfunding: 'funding pending',\n\t\t\t\t}\n\t\t\t: accountCells(account);\n\tconst detail = cells.errorSummary || cells.narration || '-';\n\n\treturn (\n\t\t<Box flexDirection=\"row\" gap={1}>\n\t\t\t<StateCell glyph={cells.statusGlyph} label={cells.statusLabel} color={cells.statusColor} />\n\t\t\t<FixedText width={ACCOUNT_WIDTH} color={cells.labelColor} bold>\n\t\t\t\t{facts.name}\n\t\t\t</FixedText>\n\t\t\t<FixedText width={layout.addressWidth} color=\"white\">\n\t\t\t\t{facts.address}\n\t\t\t</FixedText>\n\t\t\t{layout.showMeta && (\n\t\t\t\t<>\n\t\t\t\t\t<FixedText width={SCHEME_WIDTH} color=\"white\">\n\t\t\t\t\t\t{facts.scheme}\n\t\t\t\t\t</FixedText>\n\t\t\t\t\t<FixedText width={SOURCE_WIDTH} color=\"white\">\n\t\t\t\t\t\t{facts.source}\n\t\t\t\t\t</FixedText>\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{layout.showFunding && (\n\t\t\t\t<FixedText width={FUNDING_WIDTH} color=\"white\">\n\t\t\t\t\t{facts.funding}\n\t\t\t\t</FixedText>\n\t\t\t)}\n\t\t\t{layout.showDetail && (\n\t\t\t\t<MultiLineFixedText\n\t\t\t\t\twidth={DETAIL_WIDTH}\n\t\t\t\t\tcolor={cells.errorSummary ? 'red' : 'white'}\n\t\t\t\t\tlines={[detail]}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Box>\n\t);\n};\n\nconst PackageRow = ({\n\tdisplayRow,\n\tpkg,\n\tlayout,\n}: {\n\treadonly displayRow: DisplayRow;\n\treadonly pkg: PackageProjection | undefined;\n\treadonly layout: PackageTableLayout;\n}): React.JSX.Element => {\n\tconst cells = deriveDisplayCells(displayRow.row);\n\tconst facts =\n\t\tpkg === undefined\n\t\t\t? {\n\t\t\t\t\tname: cells.label,\n\t\t\t\t\tpackageId: '<pending>',\n\t\t\t\t\tmvr: 'pending',\n\t\t\t\t\tdetail: cells.errorSummary || cells.narration || 'publish pending',\n\t\t\t\t}\n\t\t\t: packageCells(pkg);\n\tconst detail = cells.errorSummary || cells.narration || facts.detail || '-';\n\n\treturn (\n\t\t<Box flexDirection=\"row\" gap={1}>\n\t\t\t<StateCell glyph={cells.statusGlyph} label={cells.statusLabel} color={cells.statusColor} />\n\t\t\t<FixedText width={PACKAGE_WIDTH} color={cells.labelColor} bold>\n\t\t\t\t{facts.name}\n\t\t\t</FixedText>\n\t\t\t<FixedText width={layout.packageIdWidth} color=\"white\">\n\t\t\t\t{facts.packageId}\n\t\t\t</FixedText>\n\t\t\t{layout.showMvr && (\n\t\t\t\t<MultiLineFixedText width={layout.mvrWidth} color=\"white\" lines={[facts.mvr]} />\n\t\t\t)}\n\t\t\t{layout.showDetail && (\n\t\t\t\t<MultiLineFixedText\n\t\t\t\t\twidth={DETAIL_WIDTH}\n\t\t\t\t\tcolor={cells.errorSummary ? 'red' : 'white'}\n\t\t\t\t\tlines={[detail]}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Box>\n\t);\n};\n\nconst AccountRecordRow = ({\n\taccount,\n\tlayout,\n}: {\n\treadonly account: AccountProjection;\n\treadonly layout: AccountTableLayout;\n}): React.JSX.Element => {\n\tconst facts = accountCells(account);\n\treturn (\n\t\t<Box flexDirection=\"row\" gap={1}>\n\t\t\t<FixedText width={STATE_WIDTH} color=\"white\">\n\t\t\t\trecord\n\t\t\t</FixedText>\n\t\t\t<FixedText width={ACCOUNT_WIDTH} color=\"magenta\" bold>\n\t\t\t\t{facts.name}\n\t\t\t</FixedText>\n\t\t\t<FixedText width={layout.addressWidth} color=\"white\">\n\t\t\t\t{facts.address}\n\t\t\t</FixedText>\n\t\t\t{layout.showMeta && (\n\t\t\t\t<>\n\t\t\t\t\t<FixedText width={SCHEME_WIDTH} color=\"white\">\n\t\t\t\t\t\t{facts.scheme}\n\t\t\t\t\t</FixedText>\n\t\t\t\t\t<FixedText width={SOURCE_WIDTH} color=\"white\">\n\t\t\t\t\t\t{facts.source}\n\t\t\t\t\t</FixedText>\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{layout.showFunding && (\n\t\t\t\t<FixedText width={FUNDING_WIDTH} color=\"white\">\n\t\t\t\t\t{facts.funding}\n\t\t\t\t</FixedText>\n\t\t\t)}\n\t\t\t{layout.showDetail && (\n\t\t\t\t<FixedText width={DETAIL_WIDTH} color=\"white\">\n\t\t\t\t\t-\n\t\t\t\t</FixedText>\n\t\t\t)}\n\t\t</Box>\n\t);\n};\n\nconst PackageRecordRow = ({\n\tpkg,\n\tlayout,\n}: {\n\treadonly pkg: PackageProjection;\n\treadonly layout: PackageTableLayout;\n}): React.JSX.Element => {\n\tconst facts = packageCells(pkg);\n\treturn (\n\t\t<Box flexDirection=\"row\" gap={1}>\n\t\t\t<FixedText width={STATE_WIDTH} color=\"white\">\n\t\t\t\trecord\n\t\t\t</FixedText>\n\t\t\t<FixedText width={PACKAGE_WIDTH} color=\"magenta\" bold>\n\t\t\t\t{facts.name}\n\t\t\t</FixedText>\n\t\t\t<FixedText width={layout.packageIdWidth} color=\"white\">\n\t\t\t\t{facts.packageId}\n\t\t\t</FixedText>\n\t\t\t{layout.showMvr && (\n\t\t\t\t<MultiLineFixedText width={layout.mvrWidth} color=\"white\" lines={[facts.mvr]} />\n\t\t\t)}\n\t\t\t{layout.showDetail && (\n\t\t\t\t<MultiLineFixedText width={DETAIL_WIDTH} color=\"white\" lines={[facts.detail]} />\n\t\t\t)}\n\t\t</Box>\n\t);\n};\n\nconst StateCell = ({\n\tglyph,\n\tlabel,\n\tcolor,\n}: {\n\treadonly glyph: string;\n\treadonly label: string;\n\treadonly color: ColorToken;\n}): React.JSX.Element => (\n\t<FixedText width={STATE_WIDTH} color={color}>\n\t\t{`${glyph} ${label}`}\n\t</FixedText>\n);\n\nconst Header = ({\n\tcells,\n\twidths,\n}: {\n\treadonly cells: ReadonlyArray<string>;\n\treadonly widths: ReadonlyArray<number>;\n}): React.JSX.Element => (\n\t<Box flexDirection=\"row\" gap={1}>\n\t\t{cells.map((cell, index) =>\n\t\t\twidths[index] === 0 ? (\n\t\t\t\t<Text key={`${index}:${cell}`} bold>\n\t\t\t\t\t{cell}\n\t\t\t\t</Text>\n\t\t\t) : (\n\t\t\t\t<FixedText key={`${index}:${cell}`} width={widths[index] ?? 0} color=\"white\" bold>\n\t\t\t\t\t{cell}\n\t\t\t\t</FixedText>\n\t\t\t),\n\t\t)}\n\t</Box>\n);\n\nconst FixedText = ({\n\twidth,\n\tcolor,\n\tbold = false,\n\tchildren,\n}: {\n\treadonly width: number;\n\treadonly color: ColorToken;\n\treadonly bold?: boolean;\n\treadonly children: string;\n}): React.JSX.Element => (\n\t<Box width={width} flexShrink={0}>\n\t\t<Text color={color} bold={bold}>\n\t\t\t{clip(children, width)}\n\t\t</Text>\n\t</Box>\n);\n\nconst MultiLineFixedText = ({\n\twidth,\n\tcolor,\n\tlines,\n}: {\n\treadonly width: number;\n\treadonly color: ColorToken;\n\treadonly lines: ReadonlyArray<string>;\n}): React.JSX.Element => (\n\t<Box width={width} flexShrink={0} flexDirection=\"column\">\n\t\t{lines\n\t\t\t.flatMap((line) => wrap(line, width))\n\t\t\t.map((line, index) => (\n\t\t\t\t<Text key={`${index}:${line}`} color={color} wrap=\"truncate-end\">\n\t\t\t\t\t{line}\n\t\t\t\t</Text>\n\t\t\t))}\n\t</Box>\n);\n\nconst clip = (value: string, width: number): string => {\n\tif (width <= 0 || value.length <= width) return value;\n\tif (width <= 1) return value.slice(0, width);\n\treturn `${value.slice(0, width - 1)}…`;\n};\n\nconst pluginTableLayout = (columns: number): PluginTableLayout => {\n\tconst gapCount = (showDetail: boolean): number => (showDetail ? 3 : 2);\n\tconst detailBudget = STATE_WIDTH + NAME_WIDTH + DETAIL_WIDTH + MIN_URL_WIDTH + gapCount(true);\n\tconst showDetail = columns >= detailBudget;\n\tconst fixedWidth =\n\t\tSTATE_WIDTH + NAME_WIDTH + (showDetail ? DETAIL_WIDTH : 0) + gapCount(showDetail);\n\tconst availableUrlWidth = Math.max(MIN_URL_WIDTH, columns - fixedWidth);\n\treturn {\n\t\tshowDetail,\n\t\turlWidth: Math.min(MAX_URL_WIDTH, availableUrlWidth),\n\t};\n};\n\nconst accountTableLayout = (columns: number): AccountTableLayout => {\n\tconst fullWidth =\n\t\tSTATE_WIDTH +\n\t\tACCOUNT_WIDTH +\n\t\tADDRESS_WIDTH +\n\t\tSCHEME_WIDTH +\n\t\tSOURCE_WIDTH +\n\t\tFUNDING_WIDTH +\n\t\tDETAIL_WIDTH +\n\t\t6;\n\tconst midWidth =\n\t\tSTATE_WIDTH + ACCOUNT_WIDTH + 32 + SCHEME_WIDTH + SOURCE_WIDTH + FUNDING_WIDTH + 5;\n\tconst showDetail = columns >= fullWidth;\n\tconst showMeta = columns >= midWidth;\n\tconst showFunding = columns >= midWidth;\n\tconst fixed =\n\t\tSTATE_WIDTH +\n\t\tACCOUNT_WIDTH +\n\t\t(showMeta ? SCHEME_WIDTH + SOURCE_WIDTH : 0) +\n\t\t(showFunding ? FUNDING_WIDTH : 0) +\n\t\t(showDetail ? DETAIL_WIDTH : 0) +\n\t\t(1 + (showMeta ? 2 : 0) + (showFunding ? 1 : 0) + (showDetail ? 1 : 0));\n\treturn {\n\t\tshowDetail,\n\t\tshowMeta,\n\t\tshowFunding,\n\t\taddressWidth: Math.min(ADDRESS_WIDTH, Math.max(24, columns - fixed)),\n\t};\n};\n\nconst packageTableLayout = (columns: number): PackageTableLayout => {\n\tconst fullWidth = STATE_WIDTH + PACKAGE_WIDTH + PACKAGE_ID_WIDTH + MVR_WIDTH + DETAIL_WIDTH + 4;\n\tconst showDetail = columns >= fullWidth;\n\tconst showMvr = columns >= STATE_WIDTH + PACKAGE_WIDTH + 24 + 16 + 3;\n\tconst fixed =\n\t\tSTATE_WIDTH +\n\t\tPACKAGE_WIDTH +\n\t\t(showMvr ? MVR_WIDTH : 0) +\n\t\t(showDetail ? DETAIL_WIDTH : 0) +\n\t\t(1 + (showMvr ? 1 : 0) + (showDetail ? 1 : 0));\n\treturn {\n\t\tshowDetail,\n\t\tshowMvr,\n\t\tmvrWidth: showDetail ? MVR_WIDTH : 20,\n\t\tpackageIdWidth: Math.min(PACKAGE_ID_WIDTH, Math.max(24, columns - fixed)),\n\t};\n};\n\nconst wrap = (value: string, width: number): ReadonlyArray<string> => {\n\tconst limit = Math.max(1, width - 1);\n\tif (width <= 0 || value.length <= limit) return [value];\n\tconst lines: Array<string> = [];\n\tlet rest = value;\n\twhile (rest.length > limit) {\n\t\tconst idx = wrapIndex(rest, limit);\n\t\tlines.push(rest.slice(0, idx).trimEnd());\n\t\trest = rest.slice(idx).trimStart();\n\t}\n\tif (rest.length > 0) lines.push(rest);\n\treturn lines;\n};\n\nconst wrapIndex = (value: string, width: number): number => {\n\tconst window = value.slice(0, width + 1);\n\tconst candidates = [' -> ', ' | ', ' '];\n\tlet bestIndex = -1;\n\tlet bestLength = 0;\n\tfor (const candidate of candidates) {\n\t\tconst idx = window.lastIndexOf(candidate);\n\t\tif (idx > bestIndex) {\n\t\t\tbestIndex = idx;\n\t\t\tbestLength = candidate.length;\n\t\t}\n\t}\n\tif (bestIndex > 0) return bestIndex + bestLength;\n\treturn width;\n};\n"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ #!/bin/sh
2
+ # Shared signal-forwarding helpers for entrypoint shells that run a
3
+ # foreground binary as a non-PID-1 child.
4
+ #
5
+ # Why: several upstream Rust binaries shipped in the devstack images
6
+ # (sui validator, seal key-server) need PID-1 signal adaptation. Keep
7
+ # the shell as PID 1 and run the binary as a child, then forward Docker's
8
+ # stop signal to the child. SIGINT remains the default because Sui's
9
+ # clean shutdown path is ctrl_c-driven. Services without a SIGINT handler
10
+ # can register with TERM instead; non-interactive POSIX shells may start
11
+ # background children with SIGINT ignored, so "no handler" does not make
12
+ # SIGINT a reliable default-terminate signal.
13
+ #
14
+ # Usage (POSIX-sh / dash compatible):
15
+ #
16
+ # . /usr/local/lib/devstack/signal-forward.sh
17
+ #
18
+ # <binary> "$@" &
19
+ # CHILD_PID=$!
20
+ # register_signal_forward "$CHILD_PID"
21
+ # wait_for_child "$CHILD_PID"
22
+ # exit "$?"
23
+ #
24
+ # For an additional sibling child (e.g. sui-faucet alongside sui) call
25
+ # `register_signal_forward "$SECONDARY_PID"` again — multiple PIDs are
26
+ # tracked and each gets its registered signal on shell signal delivery.
27
+
28
+ # Newline-separated "PID SIGNAL" list. POSIX sh has no arrays.
29
+ _DEVSTACK_FORWARD_PIDS=""
30
+ _DEVSTACK_FORWARD_NL='
31
+ '
32
+
33
+ # Add a PID to the forward list and (idempotently) install the trap.
34
+ # The optional second argument is the signal delivered to the child;
35
+ # default SIGINT preserves the Sui entrypoint's existing behavior.
36
+ register_signal_forward() {
37
+ pid="$1"
38
+ signal="${2:-INT}"
39
+ entry="$pid $signal"
40
+ if [ -z "$_DEVSTACK_FORWARD_PIDS" ]; then
41
+ _DEVSTACK_FORWARD_PIDS="$entry"
42
+ # shellcheck disable=SC2064
43
+ trap _devstack_forward_int INT TERM
44
+ else
45
+ _DEVSTACK_FORWARD_PIDS="$_DEVSTACK_FORWARD_PIDS$_DEVSTACK_FORWARD_NL$entry"
46
+ fi
47
+ }
48
+
49
+ # Trap body. Delivers each registered child signal; suppresses already-exited
50
+ # children. Not exported as -f (POSIX sh doesn't have function export);
51
+ # sourced into the calling shell so the trap can resolve it.
52
+ _devstack_forward_int() {
53
+ _saved_ifs=$IFS
54
+ IFS=$_DEVSTACK_FORWARD_NL
55
+ # shellcheck disable=SC2086
56
+ set -- $_DEVSTACK_FORWARD_PIDS
57
+ IFS=$_saved_ifs
58
+ for _entry in "$@"; do
59
+ _pid=${_entry%% *}
60
+ _signal=${_entry#* }
61
+ kill "-$_signal" "$_pid" 2>/dev/null || true
62
+ done
63
+ }
64
+
65
+ # Block until the primary child PID is genuinely gone and return its
66
+ # exit code via $?. dash's `wait <pid>` returns 128+signum on trapped
67
+ # signal delivery even if the child is still alive, so we re-check
68
+ # `kill -0` and loop until the kernel has reaped the child.
69
+ wait_for_child() {
70
+ pid="$1"
71
+ exit_code=0
72
+ while kill -0 "$pid" 2>/dev/null; do
73
+ wait "$pid"
74
+ exit_code=$?
75
+ done
76
+ return "$exit_code"
77
+ }
@@ -0,0 +1,32 @@
1
+ # syntax=docker/dockerfile:1
2
+ # devstack-rewrite vendored postgres image.
3
+ #
4
+ # Single load-bearing modification: relocate PGDATA off the upstream
5
+ # `VOLUME /var/lib/postgresql/data` declaration.
6
+ #
7
+ # Why: `docker commit` (the mechanism the snapshot engine uses to
8
+ # capture a stack's state) excludes paths declared as VOLUME in the
9
+ # image. The upstream postgres image declares the data directory as a
10
+ # VOLUME, which means docker auto-creates an anonymous volume there
11
+ # even when `-v` is not passed. Writes to that volume are NOT in the
12
+ # writable layer that `docker commit` captures — so a snapshot of a
13
+ # vanilla `postgres:*` container would silently restore as an empty
14
+ # database with no rows.
15
+ #
16
+ # Fix: set `PGDATA` to a path that has NO VOLUME directive in the
17
+ # ancestry. `/pgdata` is arbitrary — anywhere outside the inherited
18
+ # `/var/lib/postgresql/data` works. Writes land in the container's
19
+ # writable layer where `docker commit` (and therefore the snapshot
20
+ # engine) captures them.
21
+ #
22
+ # Distilled doc § Postgres-specific concerns / Invariants:
23
+ # "Vendored image must relocate `PGDATA` off the upstream `VOLUME`
24
+ # path — otherwise snapshot is silently empty."
25
+ #
26
+ # Default tag tracks `postgres:17-alpine` (one major bump up from v3's
27
+ # `16-alpine`). Override via `--build-arg POSTGRES_VERSION=...`.
28
+
29
+ ARG POSTGRES_VERSION=17-alpine
30
+ FROM postgres:${POSTGRES_VERSION}
31
+
32
+ ENV PGDATA=/var/lib/postgresql/data-devstack