@mysten-incubation/devstack 0.1.0 → 0.2.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 (858) hide show
  1. package/README.md +7 -4
  2. package/dashboard-ui/assets/grpc-a4usE3Nk.js +3 -0
  3. package/dashboard-ui/assets/index-B82Bh84P.css +1 -0
  4. package/dashboard-ui/assets/index-CRYJ4pru.js +1277 -0
  5. package/dashboard-ui/index.html +2 -2
  6. package/dist/api/define-capabilities.d.mts +1 -20
  7. package/dist/api/define-capabilities.mjs +15 -22
  8. package/dist/api/define-capabilities.mjs.map +1 -1
  9. package/dist/api/define-devstack-with.d.mts +7 -1
  10. package/dist/api/define-devstack-with.mjs.map +1 -1
  11. package/dist/api/define-devstack.mjs.map +1 -1
  12. package/dist/api/define-plugin.d.mts +2 -1
  13. package/dist/api/inference-network.d.mts +31 -17
  14. package/dist/api/inference-network.mjs +40 -43
  15. package/dist/api/inference-network.mjs.map +1 -1
  16. package/dist/api/load-config.mjs +88 -0
  17. package/dist/api/load-config.mjs.map +1 -0
  18. package/dist/api/mode-narrowed-factory.d.mts +1 -1
  19. package/dist/api/mode-narrowed-factory.mjs.map +1 -1
  20. package/dist/api/run-stack-internal.mjs +202 -0
  21. package/dist/api/run-stack-internal.mjs.map +1 -0
  22. package/dist/api/run-stack.d.mts +82 -31
  23. package/dist/api/run-stack.mjs +22 -141
  24. package/dist/api/run-stack.mjs.map +1 -1
  25. package/dist/build-integrations/dapp-kit/index.d.mts +61 -0
  26. package/dist/build-integrations/dapp-kit/index.mjs +58 -0
  27. package/dist/build-integrations/dapp-kit/index.mjs.map +1 -0
  28. package/dist/build-integrations/playwright/config.d.mts +1 -30
  29. package/dist/build-integrations/playwright/config.mjs +1 -27
  30. package/dist/build-integrations/playwright/config.mjs.map +1 -1
  31. package/dist/build-integrations/playwright/errors.d.mts +4 -7
  32. package/dist/build-integrations/playwright/errors.mjs.map +1 -1
  33. package/dist/build-integrations/playwright/global-setup.d.mts +42 -71
  34. package/dist/build-integrations/playwright/global-setup.mjs +142 -218
  35. package/dist/build-integrations/playwright/global-setup.mjs.map +1 -1
  36. package/dist/build-integrations/playwright/index.d.mts +2 -2
  37. package/dist/build-integrations/playwright/index.mjs +2 -2
  38. package/dist/build-integrations/playwright/stack-context.d.mts +3 -1
  39. package/dist/build-integrations/playwright/stack-context.mjs +4 -2
  40. package/dist/build-integrations/playwright/stack-context.mjs.map +1 -1
  41. package/dist/build-integrations/playwright/wallet-context.mjs +44 -19
  42. package/dist/build-integrations/playwright/wallet-context.mjs.map +1 -1
  43. package/dist/build-integrations/runtime/cold-start-url.mjs.map +1 -1
  44. package/dist/build-integrations/runtime/conventional-routes.mjs.map +1 -1
  45. package/dist/build-integrations/runtime/dapp-kit-slot.mjs.map +1 -1
  46. package/dist/build-integrations/runtime/discover.d.mts +6 -4
  47. package/dist/build-integrations/runtime/discover.mjs +15 -4
  48. package/dist/build-integrations/runtime/discover.mjs.map +1 -1
  49. package/dist/build-integrations/runtime/endpoint-registry.mjs.map +1 -1
  50. package/dist/build-integrations/runtime/errors.mjs.map +1 -1
  51. package/dist/build-integrations/runtime/read-stack-context.mjs +3 -3
  52. package/dist/build-integrations/runtime/read-stack-context.mjs.map +1 -1
  53. package/dist/build-integrations/runtime/resolve-discovery-env.d.mts +23 -7
  54. package/dist/build-integrations/runtime/resolve-discovery-env.mjs +25 -12
  55. package/dist/build-integrations/runtime/resolve-discovery-env.mjs.map +1 -1
  56. package/dist/build-integrations/runtime/stack-context.d.mts +2 -2
  57. package/dist/build-integrations/vite/index.d.mts +84 -19
  58. package/dist/build-integrations/vite/index.mjs +203 -28
  59. package/dist/build-integrations/vite/index.mjs.map +1 -1
  60. package/dist/build-integrations/vitest/config.d.mts +20 -2
  61. package/dist/build-integrations/vitest/config.mjs +16 -4
  62. package/dist/build-integrations/vitest/config.mjs.map +1 -1
  63. package/dist/build-integrations/vitest/env.d.mts +18 -10
  64. package/dist/build-integrations/vitest/env.mjs +11 -10
  65. package/dist/build-integrations/vitest/env.mjs.map +1 -1
  66. package/dist/build-integrations/vitest/errors.d.mts +7 -11
  67. package/dist/build-integrations/vitest/errors.mjs +3 -4
  68. package/dist/build-integrations/vitest/errors.mjs.map +1 -1
  69. package/dist/build-integrations/vitest/global-setup.d.mts +35 -0
  70. package/dist/build-integrations/vitest/global-setup.mjs +156 -0
  71. package/dist/build-integrations/vitest/global-setup.mjs.map +1 -0
  72. package/dist/build-integrations/vitest/index.d.mts +3 -2
  73. package/dist/build-integrations/vitest/index.mjs +3 -2
  74. package/dist/build-integrations/vitest/setup.mjs +2 -2
  75. package/dist/build-integrations/vitest/setup.mjs.map +1 -1
  76. package/dist/build-integrations/vitest/stack-context.d.mts +5 -3
  77. package/dist/build-integrations/vitest/stack-context.mjs +3 -2
  78. package/dist/build-integrations/vitest/stack-context.mjs.map +1 -1
  79. package/dist/cli/bail.mjs.map +1 -1
  80. package/dist/cli/doctor-probes.mjs +1 -3
  81. package/dist/cli/doctor-probes.mjs.map +1 -1
  82. package/dist/cli/main.d.mts +23 -1
  83. package/dist/cli/main.mjs +63 -8
  84. package/dist/cli/main.mjs.map +1 -1
  85. package/dist/cli/prune-direct.mjs.map +1 -1
  86. package/dist/cli/snapshot-reader.mjs.map +1 -1
  87. package/dist/cli/up-lifecycle.mjs.map +1 -1
  88. package/dist/cli/wirings/apply.mjs +28 -21
  89. package/dist/cli/wirings/apply.mjs.map +1 -1
  90. package/dist/cli/wirings/codegen.mjs +108 -0
  91. package/dist/cli/wirings/codegen.mjs.map +1 -0
  92. package/dist/cli/wirings/config-loader.mjs +12 -62
  93. package/dist/cli/wirings/config-loader.mjs.map +1 -1
  94. package/dist/cli/wirings/dump-ids.mjs +86 -0
  95. package/dist/cli/wirings/dump-ids.mjs.map +1 -0
  96. package/dist/cli/wirings/engine-command.mjs +1 -1
  97. package/dist/cli/wirings/engine-command.mjs.map +1 -1
  98. package/dist/cli/wirings/identity.mjs +2 -2
  99. package/dist/cli/wirings/identity.mjs.map +1 -1
  100. package/dist/cli/wirings/provide-file-system.mjs.map +1 -1
  101. package/dist/cli/wirings/read-devstack-version.mjs +17 -0
  102. package/dist/cli/wirings/read-devstack-version.mjs.map +1 -0
  103. package/dist/cli/wirings/snapshot.mjs +27 -34
  104. package/dist/cli/wirings/snapshot.mjs.map +1 -1
  105. package/dist/cli/wirings/up-ipc.mjs +147 -0
  106. package/dist/cli/wirings/up-ipc.mjs.map +1 -0
  107. package/dist/cli/wirings/up.mjs +218 -198
  108. package/dist/cli/wirings/up.mjs.map +1 -1
  109. package/dist/cli/wirings/wipe.mjs +1 -1
  110. package/dist/cli/wirings/wipe.mjs.map +1 -1
  111. package/dist/contracts/chain-probe.d.mts +1 -1
  112. package/dist/contracts/chain-probe.mjs +1 -1
  113. package/dist/contracts/chain-probe.mjs.map +1 -1
  114. package/dist/contracts/codegenable.d.mts +60 -6
  115. package/dist/contracts/codegenable.mjs +28 -0
  116. package/dist/contracts/codegenable.mjs.map +1 -0
  117. package/dist/contracts/config-bindings.mjs +162 -0
  118. package/dist/contracts/config-bindings.mjs.map +1 -0
  119. package/dist/contracts/container-runtime.d.mts +23 -17
  120. package/dist/contracts/plugin-expander.mjs.map +1 -1
  121. package/dist/contracts/snapshotable.d.mts +5 -7
  122. package/dist/contracts/wallet-protocol.d.mts +2 -5
  123. package/dist/contracts/wallet-protocol.mjs +2 -5
  124. package/dist/contracts/wallet-protocol.mjs.map +1 -1
  125. package/dist/index.d.mts +21 -26
  126. package/dist/index.mjs +8 -9
  127. package/dist/orchestrators/boot.d.mts +28 -0
  128. package/dist/orchestrators/boot.mjs +440 -0
  129. package/dist/orchestrators/boot.mjs.map +1 -0
  130. package/dist/orchestrators/codegen/bindings.d.mts +13 -1
  131. package/dist/orchestrators/codegen/bindings.mjs +23 -9
  132. package/dist/orchestrators/codegen/bindings.mjs.map +1 -1
  133. package/dist/orchestrators/codegen/config-runtime.mjs +208 -0
  134. package/dist/orchestrators/codegen/config-runtime.mjs.map +1 -0
  135. package/dist/orchestrators/codegen/emit.mjs +1 -1
  136. package/dist/orchestrators/codegen/emit.mjs.map +1 -1
  137. package/dist/orchestrators/codegen/errors.mjs +21 -1
  138. package/dist/orchestrators/codegen/errors.mjs.map +1 -1
  139. package/dist/orchestrators/codegen/format.mjs +2 -0
  140. package/dist/orchestrators/codegen/format.mjs.map +1 -1
  141. package/dist/orchestrators/codegen/gitignore.mjs +30 -11
  142. package/dist/orchestrators/codegen/gitignore.mjs.map +1 -1
  143. package/dist/orchestrators/codegen/id-config.mjs +107 -0
  144. package/dist/orchestrators/codegen/id-config.mjs.map +1 -0
  145. package/dist/orchestrators/codegen/output-location.mjs +23 -31
  146. package/dist/orchestrators/codegen/output-location.mjs.map +1 -1
  147. package/dist/orchestrators/codegen/paths.mjs +8 -1
  148. package/dist/orchestrators/codegen/paths.mjs.map +1 -1
  149. package/dist/orchestrators/codegen/permissions.mjs.map +1 -1
  150. package/dist/orchestrators/codegen/service.mjs +286 -58
  151. package/dist/orchestrators/codegen/service.mjs.map +1 -1
  152. package/dist/orchestrators/layers.mjs +31 -0
  153. package/dist/orchestrators/layers.mjs.map +1 -0
  154. package/dist/orchestrators/lifecycle-prune/errors.mjs.map +1 -1
  155. package/dist/orchestrators/lifecycle-prune/index.mjs +8 -10
  156. package/dist/orchestrators/lifecycle-prune/index.mjs.map +1 -1
  157. package/dist/orchestrators/network-options.d.mts +52 -0
  158. package/dist/orchestrators/network-options.mjs +43 -0
  159. package/dist/orchestrators/network-options.mjs.map +1 -0
  160. package/dist/orchestrators/router/cleanup.mjs.map +1 -1
  161. package/dist/orchestrators/router/cors.mjs.map +1 -1
  162. package/dist/orchestrators/router/entrypoints.mjs.map +1 -1
  163. package/dist/orchestrators/router/errors.mjs.map +1 -1
  164. package/dist/orchestrators/router/file-provider.mjs.map +1 -1
  165. package/dist/orchestrators/router/hostname.mjs.map +1 -1
  166. package/dist/orchestrators/router/profile.mjs +1 -1
  167. package/dist/orchestrators/router/profile.mjs.map +1 -1
  168. package/dist/orchestrators/router/service.d.mts +2 -2
  169. package/dist/orchestrators/router/service.mjs +12 -27
  170. package/dist/orchestrators/router/service.mjs.map +1 -1
  171. package/dist/orchestrators/router/traefik-container.mjs +1 -1
  172. package/dist/orchestrators/router/traefik-container.mjs.map +1 -1
  173. package/dist/orchestrators/snapshot/capture.mjs +171 -195
  174. package/dist/orchestrators/snapshot/capture.mjs.map +1 -1
  175. package/dist/orchestrators/snapshot/descriptor.d.mts +1 -1
  176. package/dist/orchestrators/snapshot/descriptor.mjs +53 -11
  177. package/dist/orchestrators/snapshot/descriptor.mjs.map +1 -1
  178. package/dist/orchestrators/snapshot/identity-guard.mjs +3 -5
  179. package/dist/orchestrators/snapshot/identity-guard.mjs.map +1 -1
  180. package/dist/orchestrators/snapshot/image-bundle-tags.mjs +32 -101
  181. package/dist/orchestrators/snapshot/image-bundle-tags.mjs.map +1 -1
  182. package/dist/orchestrators/snapshot/index.mjs +1 -4
  183. package/dist/orchestrators/snapshot/integrity.mjs.map +1 -1
  184. package/dist/orchestrators/snapshot/interrupted-restore.mjs +116 -0
  185. package/dist/orchestrators/snapshot/interrupted-restore.mjs.map +1 -0
  186. package/dist/orchestrators/snapshot/phase-error.mjs.map +1 -1
  187. package/dist/orchestrators/snapshot/prune.mjs +40 -31
  188. package/dist/orchestrators/snapshot/prune.mjs.map +1 -1
  189. package/dist/orchestrators/snapshot/restore.mjs +221 -196
  190. package/dist/orchestrators/snapshot/restore.mjs.map +1 -1
  191. package/dist/orchestrators/snapshot/service.mjs +72 -62
  192. package/dist/orchestrators/snapshot/service.mjs.map +1 -1
  193. package/dist/orchestrators/snapshot/wipe.mjs +67 -56
  194. package/dist/orchestrators/snapshot/wipe.mjs.map +1 -1
  195. package/dist/plugins/account/codegen.mjs +3 -0
  196. package/dist/plugins/account/codegen.mjs.map +1 -1
  197. package/dist/plugins/account/errors.d.mts +2 -2
  198. package/dist/plugins/account/errors.mjs +1 -4
  199. package/dist/plugins/account/errors.mjs.map +1 -1
  200. package/dist/plugins/account/funding.mjs +3 -27
  201. package/dist/plugins/account/funding.mjs.map +1 -1
  202. package/dist/plugins/account/index.d.mts +3 -8
  203. package/dist/plugins/account/index.mjs +71 -35
  204. package/dist/plugins/account/index.mjs.map +1 -1
  205. package/dist/plugins/account/keypair.d.mts +8 -7
  206. package/dist/plugins/account/keypair.mjs +5 -18
  207. package/dist/plugins/account/keypair.mjs.map +1 -1
  208. package/dist/plugins/account/lease.mjs.map +1 -1
  209. package/dist/plugins/account/registry.d.mts +1 -46
  210. package/dist/plugins/account/registry.mjs.map +1 -1
  211. package/dist/plugins/account/service.d.mts +43 -34
  212. package/dist/plugins/account/service.mjs +9 -54
  213. package/dist/plugins/account/service.mjs.map +1 -1
  214. package/dist/plugins/account/snapshot.mjs.map +1 -1
  215. package/dist/plugins/account/variants/ephemeral.mjs.map +1 -1
  216. package/dist/plugins/account/variants/impersonate.mjs.map +1 -1
  217. package/dist/plugins/account/variants/signer.mjs.map +1 -1
  218. package/dist/plugins/action/discriminator.mjs.map +1 -1
  219. package/dist/plugins/action/errors.mjs +1 -4
  220. package/dist/plugins/action/errors.mjs.map +1 -1
  221. package/dist/plugins/action/execute.mjs +3 -4
  222. package/dist/plugins/action/execute.mjs.map +1 -1
  223. package/dist/plugins/action/index.d.mts +2 -2
  224. package/dist/plugins/action/index.mjs +7 -11
  225. package/dist/plugins/action/index.mjs.map +1 -1
  226. package/dist/plugins/action/service.d.mts +5 -7
  227. package/dist/plugins/action/service.mjs +2 -16
  228. package/dist/plugins/action/service.mjs.map +1 -1
  229. package/dist/plugins/coin/address-resolution.mjs.map +1 -1
  230. package/dist/plugins/coin/codegen.mjs +97 -16
  231. package/dist/plugins/coin/codegen.mjs.map +1 -1
  232. package/dist/plugins/coin/discovery.mjs.map +1 -1
  233. package/dist/plugins/coin/errors.mjs +1 -4
  234. package/dist/plugins/coin/errors.mjs.map +1 -1
  235. package/dist/plugins/coin/index.d.mts +4 -34
  236. package/dist/plugins/coin/index.mjs +47 -28
  237. package/dist/plugins/coin/index.mjs.map +1 -1
  238. package/dist/plugins/coin/metadata.d.mts +1 -0
  239. package/dist/plugins/coin/metadata.mjs +8 -9
  240. package/dist/plugins/coin/metadata.mjs.map +1 -1
  241. package/dist/plugins/coin/mint.mjs +7 -21
  242. package/dist/plugins/coin/mint.mjs.map +1 -1
  243. package/dist/plugins/coin/registry.mjs +33 -20
  244. package/dist/plugins/coin/registry.mjs.map +1 -1
  245. package/dist/plugins/coin/service.d.mts +1 -1
  246. package/dist/plugins/coin/service.mjs +1 -8
  247. package/dist/plugins/coin/service.mjs.map +1 -1
  248. package/dist/plugins/coin/snapshot.mjs.map +1 -1
  249. package/dist/plugins/coin/type-strings.mjs.map +1 -1
  250. package/dist/plugins/dashboard/domain.mjs +106 -167
  251. package/dist/plugins/dashboard/domain.mjs.map +1 -1
  252. package/dist/plugins/dashboard/index.mjs +13 -13
  253. package/dist/plugins/dashboard/index.mjs.map +1 -1
  254. package/dist/plugins/dashboard/origin-policy.mjs +3 -3
  255. package/dist/plugins/dashboard/origin-policy.mjs.map +1 -1
  256. package/dist/plugins/dashboard/routable.mjs.map +1 -1
  257. package/dist/plugins/dashboard/schema/builder.mjs.map +1 -1
  258. package/dist/plugins/dashboard/schema/enums.mjs.map +1 -1
  259. package/dist/plugins/dashboard/schema/root.mjs +23 -44
  260. package/dist/plugins/dashboard/schema/root.mjs.map +1 -1
  261. package/dist/plugins/dashboard/schema/types.mjs +37 -91
  262. package/dist/plugins/dashboard/schema/types.mjs.map +1 -1
  263. package/dist/plugins/dashboard/schema.mjs.map +1 -1
  264. package/dist/plugins/dashboard/server.mjs.map +1 -1
  265. package/dist/plugins/deepbook/codegen.d.mts +12 -11
  266. package/dist/plugins/deepbook/codegen.mjs +108 -11
  267. package/dist/plugins/deepbook/codegen.mjs.map +1 -1
  268. package/dist/plugins/deepbook/deploy.mjs +7 -14
  269. package/dist/plugins/deepbook/deploy.mjs.map +1 -1
  270. package/dist/plugins/deepbook/errors.mjs +4 -2
  271. package/dist/plugins/deepbook/errors.mjs.map +1 -1
  272. package/dist/plugins/deepbook/faucet-strategy.mjs +4 -10
  273. package/dist/plugins/deepbook/faucet-strategy.mjs.map +1 -1
  274. package/dist/plugins/deepbook/hash.mjs.map +1 -1
  275. package/dist/plugins/deepbook/index.d.mts +38 -34
  276. package/dist/plugins/deepbook/index.mjs +133 -64
  277. package/dist/plugins/deepbook/index.mjs.map +1 -1
  278. package/dist/plugins/deepbook/plugin-key.mjs.map +1 -1
  279. package/dist/plugins/deepbook/pyth/index.mjs +4 -8
  280. package/dist/plugins/deepbook/pyth/index.mjs.map +1 -1
  281. package/dist/plugins/deepbook/snapshot.mjs +0 -1
  282. package/dist/plugins/deepbook/snapshot.mjs.map +1 -1
  283. package/dist/plugins/deepbook/type-strings.mjs.map +1 -1
  284. package/dist/plugins/deepbook/types.d.mts +2 -1
  285. package/dist/plugins/deepbook/types.mjs.map +1 -1
  286. package/dist/plugins/faucet/dispatcher.d.mts +3 -3
  287. package/dist/plugins/faucet/dispatcher.mjs.map +1 -1
  288. package/dist/plugins/faucet/errors.mjs.map +1 -1
  289. package/dist/plugins/faucet/http.mjs +2 -10
  290. package/dist/plugins/faucet/http.mjs.map +1 -1
  291. package/dist/plugins/faucet/index.mjs +0 -1
  292. package/dist/plugins/faucet/index.mjs.map +1 -1
  293. package/dist/plugins/host-service/errors.d.mts +1 -3
  294. package/dist/plugins/host-service/errors.mjs +1 -2
  295. package/dist/plugins/host-service/errors.mjs.map +1 -1
  296. package/dist/plugins/host-service/index.d.mts +1 -2
  297. package/dist/plugins/host-service/index.mjs +11 -11
  298. package/dist/plugins/host-service/index.mjs.map +1 -1
  299. package/dist/plugins/host-service/routable.mjs.map +1 -1
  300. package/dist/plugins/host-service/service.mjs +13 -13
  301. package/dist/plugins/host-service/service.mjs.map +1 -1
  302. package/dist/plugins/internal/acquire-on-chain-artifact.mjs.map +1 -1
  303. package/dist/plugins/internal/codegen-helpers.mjs +2 -0
  304. package/dist/plugins/internal/codegen-helpers.mjs.map +1 -1
  305. package/dist/plugins/internal/funding-failure-error.mjs.map +1 -1
  306. package/dist/plugins/{postgres → internal/postgres-sidecar}/connection.mjs +1 -1
  307. package/dist/plugins/internal/postgres-sidecar/connection.mjs.map +1 -0
  308. package/dist/plugins/{postgres → internal/postgres-sidecar}/db-ensure.mjs +30 -16
  309. package/dist/plugins/internal/postgres-sidecar/db-ensure.mjs.map +1 -0
  310. package/dist/plugins/internal/postgres-sidecar/errors.mjs +21 -0
  311. package/dist/plugins/internal/postgres-sidecar/errors.mjs.map +1 -0
  312. package/dist/{substrate/runtime/scoped-multimap → plugins/internal/postgres-sidecar}/index.mjs +1 -0
  313. package/dist/plugins/internal/postgres-sidecar/service.mjs +121 -0
  314. package/dist/plugins/internal/postgres-sidecar/service.mjs.map +1 -0
  315. package/dist/plugins/package/build.mjs +2 -2
  316. package/dist/plugins/package/build.mjs.map +1 -1
  317. package/dist/plugins/package/codegen.d.mts +7 -14
  318. package/dist/plugins/package/codegen.mjs +187 -59
  319. package/dist/plugins/package/codegen.mjs.map +1 -1
  320. package/dist/plugins/package/dep-resolution.mjs +51 -3
  321. package/dist/plugins/package/dep-resolution.mjs.map +1 -1
  322. package/dist/plugins/package/errors.mjs +1 -4
  323. package/dist/plugins/package/errors.mjs.map +1 -1
  324. package/dist/plugins/package/git-source.d.mts +18 -0
  325. package/dist/plugins/package/git-source.mjs +119 -0
  326. package/dist/plugins/package/git-source.mjs.map +1 -0
  327. package/dist/plugins/package/index.d.mts +28 -19
  328. package/dist/plugins/package/index.mjs +107 -32
  329. package/dist/plugins/package/index.mjs.map +1 -1
  330. package/dist/plugins/package/mode-known.mjs +2 -2
  331. package/dist/plugins/package/mode-known.mjs.map +1 -1
  332. package/dist/plugins/package/mode-local.mjs +18 -35
  333. package/dist/plugins/package/mode-local.mjs.map +1 -1
  334. package/dist/plugins/package/publish-executor.mjs +13 -8
  335. package/dist/plugins/package/publish-executor.mjs.map +1 -1
  336. package/dist/plugins/package/publish-output.d.mts +1 -11
  337. package/dist/plugins/package/publish-output.mjs +1 -9
  338. package/dist/plugins/package/publish-output.mjs.map +1 -1
  339. package/dist/plugins/package/registry.d.mts +1 -1
  340. package/dist/plugins/package/registry.mjs +26 -14
  341. package/dist/plugins/package/registry.mjs.map +1 -1
  342. package/dist/plugins/package/service.mjs.map +1 -1
  343. package/dist/plugins/package/snapshot.mjs.map +1 -1
  344. package/dist/plugins/router-entrypoints.mjs +1 -3
  345. package/dist/plugins/router-entrypoints.mjs.map +1 -1
  346. package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs +1 -2
  347. package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs.map +1 -1
  348. package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs +1 -6
  349. package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs.map +1 -1
  350. package/dist/plugins/seal/codegen.d.mts +1 -5
  351. package/dist/plugins/seal/codegen.mjs +83 -12
  352. package/dist/plugins/seal/codegen.mjs.map +1 -1
  353. package/dist/plugins/seal/config-render.mjs +2 -6
  354. package/dist/plugins/seal/config-render.mjs.map +1 -1
  355. package/dist/plugins/seal/deploy.mjs +18 -29
  356. package/dist/plugins/seal/deploy.mjs.map +1 -1
  357. package/dist/plugins/seal/errors.d.mts +4 -5
  358. package/dist/plugins/seal/errors.mjs +1 -8
  359. package/dist/plugins/seal/errors.mjs.map +1 -1
  360. package/dist/plugins/seal/index.d.mts +7 -28
  361. package/dist/plugins/seal/index.mjs +69 -47
  362. package/dist/plugins/seal/index.mjs.map +1 -1
  363. package/dist/plugins/seal/key-manager.mjs.map +1 -1
  364. package/dist/plugins/seal/key-server.mjs +1 -6
  365. package/dist/plugins/seal/key-server.mjs.map +1 -1
  366. package/dist/plugins/seal/keygen.mjs +2 -3
  367. package/dist/plugins/seal/keygen.mjs.map +1 -1
  368. package/dist/plugins/seal/mode/fork-known.mjs.map +1 -1
  369. package/dist/plugins/seal/mode/live.mjs +1 -1
  370. package/dist/plugins/seal/mode/live.mjs.map +1 -1
  371. package/dist/plugins/seal/mode/local-keygen.mjs +4 -10
  372. package/dist/plugins/seal/mode/local-keygen.mjs.map +1 -1
  373. package/dist/plugins/seal/plugin-key.mjs.map +1 -1
  374. package/dist/plugins/seal/registry-publish.mjs.map +1 -1
  375. package/dist/plugins/seal/routable.mjs.map +1 -1
  376. package/dist/plugins/seal/service.mjs.map +1 -1
  377. package/dist/plugins/seal/snapshot.mjs +1 -2
  378. package/dist/plugins/seal/snapshot.mjs.map +1 -1
  379. package/dist/plugins/sui/auto-tick.mjs +5 -5
  380. package/dist/plugins/sui/auto-tick.mjs.map +1 -1
  381. package/dist/plugins/sui/chain-build-container.mjs +2 -2
  382. package/dist/plugins/sui/chain-build-container.mjs.map +1 -1
  383. package/dist/plugins/sui/chain-probe.mjs +4 -4
  384. package/dist/plugins/sui/chain-probe.mjs.map +1 -1
  385. package/dist/plugins/sui/codegen.d.mts +9 -7
  386. package/dist/plugins/sui/codegen.mjs +49 -46
  387. package/dist/plugins/sui/codegen.mjs.map +1 -1
  388. package/dist/plugins/sui/errors.d.mts +1 -1
  389. package/dist/plugins/sui/errors.mjs +1 -9
  390. package/dist/plugins/sui/errors.mjs.map +1 -1
  391. package/dist/{substrate/runtime/sui-execute → plugins/sui/exec}/index.d.mts +1 -1
  392. package/dist/{substrate/runtime/sui-execute → plugins/sui/exec}/index.mjs +3 -7
  393. package/dist/plugins/sui/exec/index.mjs.map +1 -0
  394. package/dist/{substrate/runtime/sui-execute → plugins/sui/exec}/sign-and-dispatch.mjs +1 -1
  395. package/dist/plugins/sui/exec/sign-and-dispatch.mjs.map +1 -0
  396. package/dist/plugins/sui/fork-faucet-strategy.mjs +2 -6
  397. package/dist/plugins/sui/fork-faucet-strategy.mjs.map +1 -1
  398. package/dist/plugins/sui/fork-orchestration.mjs +13 -23
  399. package/dist/plugins/sui/fork-orchestration.mjs.map +1 -1
  400. package/dist/plugins/sui/fork-transaction.mjs.map +1 -1
  401. package/dist/plugins/sui/index.d.mts +34 -83
  402. package/dist/plugins/sui/index.mjs +200 -68
  403. package/dist/plugins/sui/index.mjs.map +1 -1
  404. package/dist/{substrate/runtime/sui-ledger → plugins/sui/ledger}/object-ref.mjs +1 -1
  405. package/dist/plugins/sui/ledger/object-ref.mjs.map +1 -0
  406. package/dist/plugins/sui/local-faucet-strategy.mjs +1 -5
  407. package/dist/plugins/sui/local-faucet-strategy.mjs.map +1 -1
  408. package/dist/plugins/sui/log-attrs.mjs +11 -0
  409. package/dist/plugins/sui/log-attrs.mjs.map +1 -0
  410. package/dist/plugins/sui/mode/external.mjs +4 -12
  411. package/dist/plugins/sui/mode/external.mjs.map +1 -1
  412. package/dist/plugins/sui/mode/fork.mjs +19 -16
  413. package/dist/plugins/sui/mode/fork.mjs.map +1 -1
  414. package/dist/plugins/sui/mode/live.mjs +4 -17
  415. package/dist/plugins/sui/mode/live.mjs.map +1 -1
  416. package/dist/plugins/sui/mode/local.d.mts +1 -0
  417. package/dist/plugins/sui/mode/local.mjs +203 -61
  418. package/dist/plugins/sui/mode/local.mjs.map +1 -1
  419. package/dist/plugins/sui/mode/shared-boot.mjs +18 -23
  420. package/dist/plugins/sui/mode/shared-boot.mjs.map +1 -1
  421. package/dist/plugins/sui/mode/shared.d.mts +6 -7
  422. package/dist/plugins/sui/mode/shared.mjs.map +1 -1
  423. package/dist/plugins/sui/mode/spec.d.mts +23 -6
  424. package/dist/{substrate/runtime/sui-move-build → plugins/sui/move}/index.mjs +28 -30
  425. package/dist/plugins/sui/move/index.mjs.map +1 -0
  426. package/dist/plugins/sui/move-summary-runner.mjs +8 -4
  427. package/dist/plugins/sui/move-summary-runner.mjs.map +1 -1
  428. package/dist/{substrate/network.d.mts → plugins/sui/network-config.d.mts} +11 -10
  429. package/dist/plugins/sui/network-resolver.d.mts +6 -6
  430. package/dist/plugins/sui/routable.mjs.map +1 -1
  431. package/dist/plugins/sui/service.mjs +10 -6
  432. package/dist/plugins/sui/service.mjs.map +1 -1
  433. package/dist/plugins/sui/snapshot.mjs +10 -5
  434. package/dist/plugins/sui/snapshot.mjs.map +1 -1
  435. package/dist/plugins/wallet/codegen.d.mts +8 -6
  436. package/dist/plugins/wallet/codegen.mjs +4 -10
  437. package/dist/plugins/wallet/codegen.mjs.map +1 -1
  438. package/dist/plugins/wallet/errors.mjs +1 -4
  439. package/dist/plugins/wallet/errors.mjs.map +1 -1
  440. package/dist/plugins/wallet/index.d.mts +3 -6
  441. package/dist/plugins/wallet/index.mjs +16 -21
  442. package/dist/plugins/wallet/index.mjs.map +1 -1
  443. package/dist/plugins/wallet/origin-policy.mjs +3 -3
  444. package/dist/plugins/wallet/origin-policy.mjs.map +1 -1
  445. package/dist/plugins/wallet/pairing.mjs +6 -24
  446. package/dist/plugins/wallet/pairing.mjs.map +1 -1
  447. package/dist/plugins/wallet/protocol.mjs.map +1 -1
  448. package/dist/plugins/wallet/routable.mjs.map +1 -1
  449. package/dist/plugins/wallet/server.mjs +17 -24
  450. package/dist/plugins/wallet/server.mjs.map +1 -1
  451. package/dist/plugins/wallet/service.d.mts +2 -2
  452. package/dist/plugins/wallet/service.mjs +4 -15
  453. package/dist/plugins/wallet/service.mjs.map +1 -1
  454. package/dist/plugins/wallet/snapshot.mjs.map +1 -1
  455. package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs +1 -5
  456. package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs.map +1 -1
  457. package/dist/plugins/walrus/codegen.d.mts +2 -13
  458. package/dist/plugins/walrus/codegen.mjs +93 -28
  459. package/dist/plugins/walrus/codegen.mjs.map +1 -1
  460. package/dist/plugins/walrus/deploy-paths.mjs +2 -3
  461. package/dist/plugins/walrus/deploy-paths.mjs.map +1 -1
  462. package/dist/plugins/walrus/deploy.mjs +26 -19
  463. package/dist/plugins/walrus/deploy.mjs.map +1 -1
  464. package/dist/plugins/walrus/errors.mjs +1 -8
  465. package/dist/plugins/walrus/errors.mjs.map +1 -1
  466. package/dist/plugins/walrus/faucet-strategy.mjs +15 -1
  467. package/dist/plugins/walrus/faucet-strategy.mjs.map +1 -1
  468. package/dist/plugins/walrus/index.d.mts +13 -44
  469. package/dist/plugins/walrus/index.mjs +119 -122
  470. package/dist/plugins/walrus/index.mjs.map +1 -1
  471. package/dist/plugins/walrus/mode/known-deploy.mjs +6 -6
  472. package/dist/plugins/walrus/mode/known-deploy.mjs.map +1 -1
  473. package/dist/plugins/walrus/mode/local-cluster.d.mts +2 -2
  474. package/dist/plugins/walrus/mode/local-cluster.mjs +2 -10
  475. package/dist/plugins/walrus/mode/local-cluster.mjs.map +1 -1
  476. package/dist/plugins/walrus/plugin-key.mjs.map +1 -1
  477. package/dist/plugins/walrus/registry-publish.mjs.map +1 -1
  478. package/dist/plugins/walrus/routable.mjs.map +1 -1
  479. package/dist/plugins/walrus/service.mjs.map +1 -1
  480. package/dist/plugins/walrus/snapshot.mjs +3 -3
  481. package/dist/plugins/walrus/snapshot.mjs.map +1 -1
  482. package/dist/plugins/walrus/storage-nodes.mjs +53 -14
  483. package/dist/plugins/walrus/storage-nodes.mjs.map +1 -1
  484. package/dist/plugins/walrus/wal-swap.mjs +4 -8
  485. package/dist/plugins/walrus/wal-swap.mjs.map +1 -1
  486. package/dist/primitives/artifact-publisher.mjs.map +1 -1
  487. package/dist/primitives/cache.d.mts +1 -1
  488. package/dist/runtime/docker/client.mjs +47 -3
  489. package/dist/runtime/docker/client.mjs.map +1 -1
  490. package/dist/runtime/docker/container.mjs +37 -57
  491. package/dist/runtime/docker/container.mjs.map +1 -1
  492. package/dist/runtime/docker/errors.mjs.map +1 -1
  493. package/dist/runtime/docker/exec.mjs +2 -2
  494. package/dist/runtime/docker/exec.mjs.map +1 -1
  495. package/dist/runtime/docker/image.mjs +10 -11
  496. package/dist/runtime/docker/image.mjs.map +1 -1
  497. package/dist/runtime/docker/index.mjs +0 -1
  498. package/dist/runtime/docker/inspect-and-decode.mjs.map +1 -1
  499. package/dist/runtime/docker/inventory.mjs +9 -9
  500. package/dist/runtime/docker/inventory.mjs.map +1 -1
  501. package/dist/runtime/docker/labels.mjs +12 -1
  502. package/dist/runtime/docker/labels.mjs.map +1 -1
  503. package/dist/runtime/docker/network.mjs +6 -6
  504. package/dist/runtime/docker/network.mjs.map +1 -1
  505. package/dist/runtime/docker/render-run-args.mjs.map +1 -1
  506. package/dist/runtime/docker/service.mjs +31 -45
  507. package/dist/runtime/docker/service.mjs.map +1 -1
  508. package/dist/runtime/docker/sweep.mjs +14 -64
  509. package/dist/runtime/docker/sweep.mjs.map +1 -1
  510. package/dist/runtime/docker/volume.mjs +1 -1
  511. package/dist/runtime/docker/volume.mjs.map +1 -1
  512. package/dist/runtime/docker/wrap.mjs +14 -2
  513. package/dist/runtime/docker/wrap.mjs.map +1 -1
  514. package/dist/substrate/brand.d.mts +2 -5
  515. package/dist/substrate/brand.mjs +3 -2
  516. package/dist/substrate/brand.mjs.map +1 -1
  517. package/dist/substrate/cross-process.mjs +2 -16
  518. package/dist/substrate/cross-process.mjs.map +1 -1
  519. package/dist/substrate/event-time.mjs +0 -2
  520. package/dist/substrate/event-time.mjs.map +1 -1
  521. package/dist/substrate/events.d.mts +46 -16
  522. package/dist/substrate/identity.d.mts +11 -5
  523. package/dist/substrate/manifest.d.mts +33 -26
  524. package/dist/substrate/manifest.mjs +8 -3
  525. package/dist/substrate/manifest.mjs.map +1 -1
  526. package/dist/substrate/options.d.mts +33 -4
  527. package/dist/substrate/plugin-ctx.d.mts +70 -0
  528. package/dist/substrate/plugin-ctx.mjs +66 -0
  529. package/dist/substrate/plugin-ctx.mjs.map +1 -0
  530. package/dist/substrate/plugin.d.mts +46 -38
  531. package/dist/substrate/plugin.mjs +13 -9
  532. package/dist/substrate/plugin.mjs.map +1 -1
  533. package/dist/substrate/projection.d.mts +1 -1
  534. package/dist/substrate/runtime/atomic-write.mjs +3 -4
  535. package/dist/substrate/runtime/atomic-write.mjs.map +1 -1
  536. package/dist/substrate/runtime/cache/schema.mjs.map +1 -1
  537. package/dist/substrate/runtime/cache/service.mjs +50 -20
  538. package/dist/substrate/runtime/cache/service.mjs.map +1 -1
  539. package/dist/substrate/runtime/config-validation.mjs.map +1 -1
  540. package/dist/substrate/runtime/control-plane/domain.mjs +34 -12
  541. package/dist/substrate/runtime/control-plane/domain.mjs.map +1 -1
  542. package/dist/substrate/runtime/control-plane/service.mjs.map +1 -1
  543. package/dist/substrate/runtime/cross-process/command-channel/channel.mjs +14 -17
  544. package/dist/substrate/runtime/cross-process/command-channel/channel.mjs.map +1 -1
  545. package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs.map +1 -1
  546. package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs.map +1 -1
  547. package/dist/substrate/runtime/cross-process/command-channel/runtime-control-lock.mjs.map +1 -1
  548. package/dist/substrate/runtime/cross-process/index.mjs +0 -2
  549. package/dist/substrate/runtime/cross-process/live-clock.mjs +1 -1
  550. package/dist/substrate/runtime/cross-process/live-clock.mjs.map +1 -1
  551. package/dist/substrate/runtime/cross-process/liveness.mjs +11 -18
  552. package/dist/substrate/runtime/cross-process/liveness.mjs.map +1 -1
  553. package/dist/substrate/runtime/cross-process/reclaim-stale-file.mjs +2 -2
  554. package/dist/substrate/runtime/cross-process/reclaim-stale-file.mjs.map +1 -1
  555. package/dist/substrate/runtime/cross-process/roster.mjs +17 -127
  556. package/dist/substrate/runtime/cross-process/roster.mjs.map +1 -1
  557. package/dist/substrate/runtime/cross-process/self-pid.mjs.map +1 -1
  558. package/dist/substrate/runtime/cross-process/stack-lock.mjs +29 -28
  559. package/dist/substrate/runtime/cross-process/stack-lock.mjs.map +1 -1
  560. package/dist/substrate/runtime/current-plugin.mjs.map +1 -1
  561. package/dist/substrate/runtime/errors.mjs +1 -13
  562. package/dist/substrate/runtime/errors.mjs.map +1 -1
  563. package/dist/substrate/runtime/format-unknown-error.mjs.map +1 -1
  564. package/dist/substrate/runtime/host-bind-mount-owner.mjs.map +1 -1
  565. package/dist/substrate/runtime/host-gateway.mjs.map +1 -1
  566. package/dist/substrate/runtime/host-tree-tar/index.mjs +15 -163
  567. package/dist/substrate/runtime/host-tree-tar/index.mjs.map +1 -1
  568. package/dist/substrate/runtime/http-probe.d.mts +1 -3
  569. package/dist/substrate/runtime/http-probe.mjs.map +1 -1
  570. package/dist/substrate/runtime/index.mjs +1 -6
  571. package/dist/substrate/runtime/lease-broker/service.mjs +5 -23
  572. package/dist/substrate/runtime/lease-broker/service.mjs.map +1 -1
  573. package/dist/substrate/runtime/lifecycle/dep-graph.mjs +3 -3
  574. package/dist/substrate/runtime/lifecycle/dep-graph.mjs.map +1 -1
  575. package/dist/substrate/runtime/lifecycle/graph-input-id.d.mts +1 -0
  576. package/dist/substrate/runtime/lifecycle/graph-input-id.mjs +133 -0
  577. package/dist/substrate/runtime/lifecycle/graph-input-id.mjs.map +1 -0
  578. package/dist/substrate/runtime/lifecycle/index.mjs +2 -2
  579. package/dist/substrate/runtime/lifecycle/plugin-registry.d.mts +1 -1
  580. package/dist/substrate/runtime/lifecycle/plugin-registry.mjs +22 -1
  581. package/dist/substrate/runtime/lifecycle/plugin-registry.mjs.map +1 -1
  582. package/dist/substrate/runtime/lifecycle/ready-gate.mjs +2 -15
  583. package/dist/substrate/runtime/lifecycle/ready-gate.mjs.map +1 -1
  584. package/dist/substrate/runtime/lifecycle/selective-restart.mjs +29 -25
  585. package/dist/substrate/runtime/lifecycle/selective-restart.mjs.map +1 -1
  586. package/dist/substrate/runtime/lifecycle/signals.mjs +1 -1
  587. package/dist/substrate/runtime/lifecycle/signals.mjs.map +1 -1
  588. package/dist/substrate/runtime/lifecycle/state-machine.mjs.map +1 -1
  589. package/dist/substrate/runtime/lifecycle/watch-attribution.d.mts +1 -1
  590. package/dist/substrate/runtime/lifecycle/watch-attribution.mjs +0 -1
  591. package/dist/substrate/runtime/lifecycle/watch-attribution.mjs.map +1 -1
  592. package/dist/substrate/runtime/managed-container.d.mts +5 -1
  593. package/dist/substrate/runtime/managed-container.mjs +8 -10
  594. package/dist/substrate/runtime/managed-container.mjs.map +1 -1
  595. package/dist/substrate/runtime/manifest/manifest.mjs +8 -30
  596. package/dist/substrate/runtime/manifest/manifest.mjs.map +1 -1
  597. package/dist/substrate/runtime/mode-errors.d.mts +1 -2
  598. package/dist/substrate/runtime/mode-errors.mjs.map +1 -1
  599. package/dist/substrate/runtime/observability/cascade-formatter.mjs +1 -11
  600. package/dist/substrate/runtime/observability/cascade-formatter.mjs.map +1 -1
  601. package/dist/substrate/runtime/observability/ignore-with-log.mjs.map +1 -1
  602. package/dist/substrate/runtime/observability/index.d.mts +1 -1
  603. package/dist/substrate/runtime/observability/index.mjs +4 -6
  604. package/dist/substrate/runtime/observability/log-attrs.mjs +46 -0
  605. package/dist/substrate/runtime/observability/log-attrs.mjs.map +1 -0
  606. package/dist/substrate/runtime/observability/log-store.mjs.map +1 -1
  607. package/dist/substrate/runtime/observability/logger.mjs +3 -3
  608. package/dist/substrate/runtime/observability/logger.mjs.map +1 -1
  609. package/dist/substrate/runtime/observability/output-truncate.mjs.map +1 -1
  610. package/dist/substrate/runtime/observability/pretty-error.mjs.map +1 -1
  611. package/dist/substrate/runtime/observability/process-lines.mjs.map +1 -1
  612. package/dist/substrate/runtime/observability/redaction.mjs.map +1 -1
  613. package/dist/substrate/runtime/observability/subprocess-capture.mjs +2 -2
  614. package/dist/substrate/runtime/observability/subprocess-capture.mjs.map +1 -1
  615. package/dist/substrate/runtime/passthrough-or-wrap.mjs.map +1 -1
  616. package/dist/substrate/runtime/paths.mjs +27 -9
  617. package/dist/substrate/runtime/paths.mjs.map +1 -1
  618. package/dist/substrate/runtime/phase-preserving-produce.mjs.map +1 -1
  619. package/dist/substrate/runtime/port-broker/service.mjs +10 -27
  620. package/dist/substrate/runtime/port-broker/service.mjs.map +1 -1
  621. package/dist/substrate/runtime/post-acquire-tasks.mjs.map +1 -1
  622. package/dist/substrate/runtime/probes.d.mts +2 -3
  623. package/dist/substrate/runtime/probes.mjs.map +1 -1
  624. package/dist/substrate/runtime/process-supervisor.mjs.map +1 -1
  625. package/dist/substrate/runtime/projection/operational-endpoints.mjs.map +1 -1
  626. package/dist/substrate/runtime/projection/state-ref.mjs.map +1 -1
  627. package/dist/substrate/runtime/projection/update.mjs +87 -11
  628. package/dist/substrate/runtime/projection/update.mjs.map +1 -1
  629. package/dist/substrate/runtime/random-suffix.mjs.map +1 -1
  630. package/dist/substrate/runtime/reconcile/fs-plan.mjs +146 -0
  631. package/dist/substrate/runtime/reconcile/fs-plan.mjs.map +1 -0
  632. package/dist/substrate/runtime/reconcile/graph.mjs +19 -0
  633. package/dist/substrate/runtime/reconcile/graph.mjs.map +1 -0
  634. package/dist/substrate/runtime/reconcile/index.mjs +5 -0
  635. package/dist/substrate/runtime/reconcile/label.mjs +41 -0
  636. package/dist/substrate/runtime/reconcile/label.mjs.map +1 -0
  637. package/dist/substrate/runtime/reconcile/spec.mjs +15 -0
  638. package/dist/substrate/runtime/reconcile/spec.mjs.map +1 -0
  639. package/dist/substrate/runtime/retry-policy.d.mts +2 -3
  640. package/dist/substrate/runtime/retry-policy.mjs.map +1 -1
  641. package/dist/substrate/runtime/routed-url.mjs.map +1 -1
  642. package/dist/substrate/runtime/runtime-decode.mjs.map +1 -1
  643. package/dist/substrate/runtime/scoped-http-server.mjs.map +1 -1
  644. package/dist/substrate/runtime/stage-and-swap/index.mjs +49 -12
  645. package/dist/substrate/runtime/stage-and-swap/index.mjs.map +1 -1
  646. package/dist/substrate/runtime/strategy-registry/chain-keyed-strategy-for.mjs.map +1 -1
  647. package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs.map +1 -1
  648. package/dist/substrate/runtime/strategy-registry/service.mjs +29 -17
  649. package/dist/substrate/runtime/strategy-registry/service.mjs.map +1 -1
  650. package/dist/substrate/runtime/subnet-broker.mjs.map +1 -1
  651. package/dist/substrate/runtime/supervisor/acquire-node.mjs +188 -56
  652. package/dist/substrate/runtime/supervisor/acquire-node.mjs.map +1 -1
  653. package/dist/substrate/runtime/supervisor/background-tasks.mjs +79 -65
  654. package/dist/substrate/runtime/supervisor/background-tasks.mjs.map +1 -1
  655. package/dist/substrate/runtime/supervisor/command-loop.mjs +82 -23
  656. package/dist/substrate/runtime/supervisor/command-loop.mjs.map +1 -1
  657. package/dist/substrate/runtime/supervisor/contribution-dispatcher.mjs +16 -0
  658. package/dist/substrate/runtime/supervisor/contribution-dispatcher.mjs.map +1 -0
  659. package/dist/substrate/runtime/supervisor/errors.mjs +11 -2
  660. package/dist/substrate/runtime/supervisor/errors.mjs.map +1 -1
  661. package/dist/substrate/runtime/supervisor/index.mjs +2 -0
  662. package/dist/substrate/runtime/supervisor/shutdown.mjs +6 -6
  663. package/dist/substrate/runtime/supervisor/shutdown.mjs.map +1 -1
  664. package/dist/substrate/runtime/supervisor/start-supervisor.mjs +60 -70
  665. package/dist/substrate/runtime/supervisor/start-supervisor.mjs.map +1 -1
  666. package/dist/substrate/runtime/supervisor/state.d.mts +1 -1
  667. package/dist/substrate/runtime/supervisor/state.mjs +1 -1
  668. package/dist/substrate/runtime/supervisor/state.mjs.map +1 -1
  669. package/dist/substrate/runtime/supervisor/teardown.mjs +10 -9
  670. package/dist/substrate/runtime/supervisor/teardown.mjs.map +1 -1
  671. package/dist/substrate/runtime/supervisor/wiring.mjs +6 -20
  672. package/dist/substrate/runtime/supervisor/wiring.mjs.map +1 -1
  673. package/dist/substrate/runtime/tar/reader.mjs +216 -0
  674. package/dist/substrate/runtime/tar/reader.mjs.map +1 -0
  675. package/dist/substrate/runtime/typed-env.mjs.map +1 -1
  676. package/dist/substrate/versioned-doc-schema.mjs.map +1 -1
  677. package/dist/substrate/versioned-doc-sync.mjs +5 -5
  678. package/dist/substrate/versioned-doc-sync.mjs.map +1 -1
  679. package/dist/surfaces/cli/command-tree.mjs +49 -7
  680. package/dist/surfaces/cli/command-tree.mjs.map +1 -1
  681. package/dist/surfaces/cli/commands/config.mjs +1 -1
  682. package/dist/surfaces/cli/commands/config.mjs.map +1 -1
  683. package/dist/surfaces/cli/commands/confirm-node.mjs.map +1 -1
  684. package/dist/surfaces/cli/commands/confirm.mjs.map +1 -1
  685. package/dist/surfaces/cli/commands/doctor.mjs +1 -1
  686. package/dist/surfaces/cli/commands/doctor.mjs.map +1 -1
  687. package/dist/surfaces/cli/commands/prune-picker-entry.mjs.map +1 -1
  688. package/dist/surfaces/cli/commands/prune-picker.mjs.map +1 -1
  689. package/dist/surfaces/cli/commands/prune.mjs +1 -1
  690. package/dist/surfaces/cli/commands/prune.mjs.map +1 -1
  691. package/dist/surfaces/cli/commands/snapshot.mjs +1 -1
  692. package/dist/surfaces/cli/commands/snapshot.mjs.map +1 -1
  693. package/dist/surfaces/cli/commands/status.mjs +1 -1
  694. package/dist/surfaces/cli/commands/status.mjs.map +1 -1
  695. package/dist/surfaces/cli/commands/supervisor-presence.mjs.map +1 -1
  696. package/dist/surfaces/cli/commands/wipe.mjs +3 -4
  697. package/dist/surfaces/cli/commands/wipe.mjs.map +1 -1
  698. package/dist/surfaces/cli/envelope.mjs.map +1 -1
  699. package/dist/surfaces/cli/errors.mjs.map +1 -1
  700. package/dist/surfaces/cli/flags.mjs.map +1 -1
  701. package/dist/surfaces/cli/index.mjs +45 -14
  702. package/dist/surfaces/cli/index.mjs.map +1 -1
  703. package/dist/surfaces/cli/output.mjs.map +1 -1
  704. package/dist/surfaces/cli/sysexits.mjs.map +1 -1
  705. package/dist/surfaces/tui/app.mjs +0 -21
  706. package/dist/surfaces/tui/app.mjs.map +1 -1
  707. package/dist/surfaces/tui/dashboard.mjs +0 -48
  708. package/dist/surfaces/tui/dashboard.mjs.map +1 -1
  709. package/dist/surfaces/tui/display-derivation.mjs +80 -16
  710. package/dist/surfaces/tui/display-derivation.mjs.map +1 -1
  711. package/dist/surfaces/tui/errors.mjs.map +1 -1
  712. package/dist/surfaces/tui/event-log.mjs +0 -9
  713. package/dist/surfaces/tui/event-log.mjs.map +1 -1
  714. package/dist/surfaces/tui/heartbeat.mjs.map +1 -1
  715. package/dist/surfaces/tui/index.mjs +2 -2
  716. package/dist/surfaces/tui/index.mjs.map +1 -1
  717. package/dist/surfaces/tui/input.mjs.map +1 -1
  718. package/dist/surfaces/tui/mode-detect.mjs.map +1 -1
  719. package/dist/surfaces/tui/mount-ink.mjs.map +1 -1
  720. package/dist/surfaces/tui/plain-renderer.mjs +26 -19
  721. package/dist/surfaces/tui/plain-renderer.mjs.map +1 -1
  722. package/dist/surfaces/tui/resource-table.mjs +8 -10
  723. package/dist/surfaces/tui/resource-table.mjs.map +1 -1
  724. package/images/postgres/Dockerfile +0 -1
  725. package/images/sui/Dockerfile +27 -54
  726. package/images/sui/entrypoint.sh +17 -179
  727. package/package.json +23 -15
  728. package/dashboard-ui/assets/index-Bmi1UtAg.js +0 -1356
  729. package/dashboard-ui/assets/index-D5EShVt4.js +0 -3
  730. package/dashboard-ui/assets/index-Deml9drg.css +0 -1
  731. package/dist/api/plugin-errors.d.mts +0 -7
  732. package/dist/api/plugin-errors.mjs +0 -10
  733. package/dist/api/plugin-errors.mjs.map +0 -1
  734. package/dist/cli/wirings/build-verb-layers.mjs +0 -42
  735. package/dist/cli/wirings/build-verb-layers.mjs.map +0 -1
  736. package/dist/contracts/capability-decl.d.mts +0 -40
  737. package/dist/orchestrators/built-in-plugin-layers.mjs +0 -54
  738. package/dist/orchestrators/built-in-plugin-layers.mjs.map +0 -1
  739. package/dist/orchestrators/run.mjs +0 -91
  740. package/dist/orchestrators/run.mjs.map +0 -1
  741. package/dist/orchestrators/runtime-composition.d.mts +0 -10
  742. package/dist/orchestrators/runtime-composition.mjs +0 -252
  743. package/dist/orchestrators/runtime-composition.mjs.map +0 -1
  744. package/dist/orchestrators/snapshot/capture-command.d.mts +0 -1
  745. package/dist/orchestrators/snapshot/capture-command.mjs +0 -25
  746. package/dist/orchestrators/snapshot/capture-command.mjs.map +0 -1
  747. package/dist/orchestrators/snapshot/pending-marker.mjs +0 -99
  748. package/dist/orchestrators/snapshot/pending-marker.mjs.map +0 -1
  749. package/dist/orchestrators/snapshot/recover-pending.mjs +0 -223
  750. package/dist/orchestrators/snapshot/recover-pending.mjs.map +0 -1
  751. package/dist/orchestrators/snapshot/state-document.d.mts +0 -1
  752. package/dist/orchestrators/snapshot/state-document.mjs +0 -58
  753. package/dist/orchestrators/snapshot/state-document.mjs.map +0 -1
  754. package/dist/plugins/account/spans.mjs +0 -16
  755. package/dist/plugins/account/spans.mjs.map +0 -1
  756. package/dist/plugins/account/variants/env.mjs +0 -24
  757. package/dist/plugins/account/variants/env.mjs.map +0 -1
  758. package/dist/plugins/account/variants/inline.mjs +0 -13
  759. package/dist/plugins/account/variants/inline.mjs.map +0 -1
  760. package/dist/plugins/account/variants/keystore.mjs +0 -91
  761. package/dist/plugins/account/variants/keystore.mjs.map +0 -1
  762. package/dist/plugins/action/spans.mjs +0 -11
  763. package/dist/plugins/action/spans.mjs.map +0 -1
  764. package/dist/plugins/coin/spans.mjs +0 -20
  765. package/dist/plugins/coin/spans.mjs.map +0 -1
  766. package/dist/plugins/deepbook/spans.mjs +0 -18
  767. package/dist/plugins/deepbook/spans.mjs.map +0 -1
  768. package/dist/plugins/faucet/spans.mjs +0 -12
  769. package/dist/plugins/faucet/spans.mjs.map +0 -1
  770. package/dist/plugins/package/spans.mjs +0 -14
  771. package/dist/plugins/package/spans.mjs.map +0 -1
  772. package/dist/plugins/postgres/codegen.mjs +0 -42
  773. package/dist/plugins/postgres/codegen.mjs.map +0 -1
  774. package/dist/plugins/postgres/connection.d.mts +0 -33
  775. package/dist/plugins/postgres/connection.mjs.map +0 -1
  776. package/dist/plugins/postgres/db-ensure.mjs.map +0 -1
  777. package/dist/plugins/postgres/errors.d.mts +0 -60
  778. package/dist/plugins/postgres/errors.mjs +0 -29
  779. package/dist/plugins/postgres/errors.mjs.map +0 -1
  780. package/dist/plugins/postgres/index.d.mts +0 -37
  781. package/dist/plugins/postgres/index.mjs +0 -68
  782. package/dist/plugins/postgres/index.mjs.map +0 -1
  783. package/dist/plugins/postgres/routable.mjs +0 -33
  784. package/dist/plugins/postgres/routable.mjs.map +0 -1
  785. package/dist/plugins/postgres/service.d.mts +0 -50
  786. package/dist/plugins/postgres/service.mjs +0 -179
  787. package/dist/plugins/postgres/service.mjs.map +0 -1
  788. package/dist/plugins/postgres/snapshot.mjs +0 -32
  789. package/dist/plugins/postgres/snapshot.mjs.map +0 -1
  790. package/dist/plugins/postgres/spans.mjs +0 -11
  791. package/dist/plugins/postgres/spans.mjs.map +0 -1
  792. package/dist/plugins/seal/spans.mjs +0 -18
  793. package/dist/plugins/seal/spans.mjs.map +0 -1
  794. package/dist/plugins/sui/spans.mjs +0 -17
  795. package/dist/plugins/sui/spans.mjs.map +0 -1
  796. package/dist/plugins/wallet/spans.mjs +0 -22
  797. package/dist/plugins/wallet/spans.mjs.map +0 -1
  798. package/dist/plugins/walrus/registry-publish.d.mts +0 -24
  799. package/dist/plugins/walrus/spans.mjs +0 -18
  800. package/dist/plugins/walrus/spans.mjs.map +0 -1
  801. package/dist/runtime/docker/logs.d.mts +0 -1
  802. package/dist/runtime/docker/logs.mjs +0 -34
  803. package/dist/runtime/docker/logs.mjs.map +0 -1
  804. package/dist/substrate/runtime/artifact-publisher/index.mjs +0 -86
  805. package/dist/substrate/runtime/artifact-publisher/index.mjs.map +0 -1
  806. package/dist/substrate/runtime/capability-sinks/index.d.mts +0 -1
  807. package/dist/substrate/runtime/capability-sinks/index.mjs +0 -3
  808. package/dist/substrate/runtime/capability-sinks/layer.d.mts +0 -1
  809. package/dist/substrate/runtime/capability-sinks/layer.mjs +0 -31
  810. package/dist/substrate/runtime/capability-sinks/layer.mjs.map +0 -1
  811. package/dist/substrate/runtime/capability-sinks/service.d.mts +0 -95
  812. package/dist/substrate/runtime/capability-sinks/service.mjs +0 -69
  813. package/dist/substrate/runtime/capability-sinks/service.mjs.map +0 -1
  814. package/dist/substrate/runtime/cross-process/lock.d.mts +0 -1
  815. package/dist/substrate/runtime/cross-process/lock.mjs +0 -23
  816. package/dist/substrate/runtime/cross-process/lock.mjs.map +0 -1
  817. package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs +0 -113
  818. package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs.map +0 -1
  819. package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs +0 -31
  820. package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs.map +0 -1
  821. package/dist/substrate/runtime/observability/formatter-registry.d.mts +0 -1
  822. package/dist/substrate/runtime/observability/formatter-registry.mjs +0 -48
  823. package/dist/substrate/runtime/observability/formatter-registry.mjs.map +0 -1
  824. package/dist/substrate/runtime/observability/span-store.d.mts +0 -1
  825. package/dist/substrate/runtime/observability/span-store.mjs +0 -110
  826. package/dist/substrate/runtime/observability/span-store.mjs.map +0 -1
  827. package/dist/substrate/runtime/observability/spans.d.mts +0 -1
  828. package/dist/substrate/runtime/observability/spans.mjs +0 -87
  829. package/dist/substrate/runtime/observability/spans.mjs.map +0 -1
  830. package/dist/substrate/runtime/projection/index.mjs +0 -4
  831. package/dist/substrate/runtime/projection/persisted.mjs +0 -213
  832. package/dist/substrate/runtime/projection/persisted.mjs.map +0 -1
  833. package/dist/substrate/runtime/scoped-multimap/service.mjs +0 -52
  834. package/dist/substrate/runtime/scoped-multimap/service.mjs.map +0 -1
  835. package/dist/substrate/runtime/scoped-ref-map/index.mjs +0 -2
  836. package/dist/substrate/runtime/scoped-ref-map/service.mjs +0 -83
  837. package/dist/substrate/runtime/scoped-ref-map/service.mjs.map +0 -1
  838. package/dist/substrate/runtime/state-store/index.mjs +0 -3
  839. package/dist/substrate/runtime/state-store/schema.d.mts +0 -1
  840. package/dist/substrate/runtime/state-store/schema.mjs +0 -41
  841. package/dist/substrate/runtime/state-store/schema.mjs.map +0 -1
  842. package/dist/substrate/runtime/state-store/service.d.mts +0 -1
  843. package/dist/substrate/runtime/state-store/service.mjs +0 -145
  844. package/dist/substrate/runtime/state-store/service.mjs.map +0 -1
  845. package/dist/substrate/runtime/sui-execute/index.mjs.map +0 -1
  846. package/dist/substrate/runtime/sui-execute/sign-and-dispatch.mjs.map +0 -1
  847. package/dist/substrate/runtime/sui-ledger/object-ref.mjs.map +0 -1
  848. package/dist/substrate/runtime/sui-move-build/index.mjs.map +0 -1
  849. package/dist/substrate/runtime/supervisor/dispatch-contributions.mjs +0 -151
  850. package/dist/substrate/runtime/supervisor/dispatch-contributions.mjs.map +0 -1
  851. package/dist/substrate/state-store.d.mts +0 -1
  852. /package/dist/orchestrators/{snapshot/pending-marker.d.mts → codegen/id-config.d.mts} +0 -0
  853. /package/dist/orchestrators/snapshot/{recover-pending.d.mts → interrupted-restore.d.mts} +0 -0
  854. /package/dist/{substrate/runtime/sui-execute → plugins/sui/exec}/sign-and-dispatch.d.mts +0 -0
  855. /package/dist/plugins/{postgres/snapshot.d.mts → sui/ledger/object-ref.d.mts} +0 -0
  856. /package/dist/{substrate/runtime/sui-move-build → plugins/sui/move}/index.d.mts +0 -0
  857. /package/dist/substrate/runtime/{state-store/index.d.mts → reconcile/graph.d.mts} +0 -0
  858. /package/dist/substrate/runtime/{cross-process/snapshot-reservation.d.mts → supervisor/contribution-dispatcher.d.mts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"errors.mjs","names":[],"sources":["../../../src/plugins/package/errors.ts"],"sourcesContent":["// Package plugin — typed errors.\n//\n// Distilled doc §\"Edge cases and known failure modes\": the publish\n// error is a SINGLE tagged error with a CLOSED step set. Per\n// architecture §Effect, errors are plain interfaces with a `_tag`\n// discriminator; `Effect.catchTag` / `catchTags` match on the literal.\n\n/** Closed step set for `PublishError`.\n *\n * - `hash` — source-tree walk / digest failed (FS read perms,\n * symlink loop, disk error).\n * - `scrub` — vendored Move.lock scrub failed.\n * - `build` — `sui move build` exit / parse failure / container\n * unreachable. Cause-chain carries verbatim\n * stdout/stderr.\n * - `publish-tx` — sign-and-execute failed (gas, bytecode\n * verification, RPC).\n * - `parse` — no `published` change in receipt OR the\n * post-publish ready-probe timed out.\n * - `verify` — KnownPackage verify probe authoritatively says\n * \"object not present\" (transient is masked by\n * lenient probe — does NOT raise this).\n */\nexport type PublishPhase = 'hash' | 'scrub' | 'build' | 'publish-tx' | 'parse' | 'verify';\n\n/** Single tagged publish error. */\nexport interface PublishError {\n\treadonly _tag: 'PublishError';\n\treadonly phase: PublishPhase;\n\t/** Source path of the package being published. Populated at every\n\t * throw site that has it in scope — `KnownPackage` paths set this\n\t * to the symbolic id; post-publish probe phases (e.g. the\n\t * `postPublishReadyHint` step that only sees the on-chain `packageId`)\n\t * pass `undefined`. The `mode-local` re-stamp pass back-fills\n\t * from the outer `inputs.sourcePath` whenever it can. */\n\treadonly sourcePath?: string | undefined;\n\t/** Symbolic package name (the user-declared `pkg.name`). Optional\n\t * because some throw sites (e.g. `postPublishReadyHint` in\n\t * `publish-executor.ts`) only have the resolved on-chain\n\t * `packageId` in scope; the `mode-local` re-stamp pass back-fills\n\t * the symbolic name from `inputs.packageName` whenever it can.\n\t * Throw sites MUST NOT overload this slot with the on-chain\n\t * `packageId` — the symbolic name is what user-facing error\n\t * displays expect. */\n\treadonly packageName?: string | undefined;\n\treadonly message: string;\n\treadonly cause?: unknown;\n}\n\nexport const publishError = (\n\tphase: PublishPhase,\n\tparts: Omit<PublishError, '_tag' | 'phase'>,\n): PublishError => ({ _tag: 'PublishError', phase, ...parts });\n\n/** Error tags this plugin contributes surfaced to the cause walker\n * via `PluginErrorContribution`. */\nexport const PACKAGE_ERROR_TAGS = ['PublishError'] as const;\n\nexport type PackageError = PublishError;\n"],"mappings":";AAiDA,MAAa,gBACZ,OACA,WACmB;CAAE,MAAM;CAAgB;CAAO,GAAG;CAAO;;;AAI7D,MAAa,qBAAqB,CAAC,eAAe"}
1
+ {"version":3,"file":"errors.mjs","names":[],"sources":["../../../src/plugins/package/errors.ts"],"sourcesContent":["// Package plugin — typed errors.\n//\n// Distilled doc §\"Edge cases and known failure modes\": the publish\n// error is a SINGLE tagged error with a CLOSED step set. Per\n// architecture §Effect, errors are plain interfaces with a `_tag`\n// discriminator; `Effect.catchTag` / `catchTags` match on the literal.\n\n/** Closed step set for `PublishError`.\n *\n * - `hash` — source-tree walk / digest failed (FS read perms,\n * symlink loop, disk error).\n * - `scrub` — vendored Move.lock scrub failed.\n * - `build` — `sui move build` exit / parse failure / container\n * unreachable. Cause-chain carries verbatim\n * stdout/stderr.\n * - `publish-tx` — sign-and-execute failed (gas, bytecode\n * verification, RPC).\n * - `parse` — no `published` change in receipt OR the\n * post-publish ready-probe timed out.\n * - `verify` — KnownPackage verify probe authoritatively says\n * \"object not present\" (transient is masked by\n * lenient probe — does NOT raise this).\n */\nexport type PublishPhase = 'hash' | 'scrub' | 'build' | 'publish-tx' | 'parse' | 'verify';\n\n/** Single tagged publish error. */\nexport interface PublishError {\n\treadonly _tag: 'PublishError';\n\treadonly phase: PublishPhase;\n\t/** Source path of the package being published. Populated at every\n\t * throw site that has it in scope — `KnownPackage` paths set this\n\t * to the symbolic id; post-publish probe phases (e.g. the\n\t * `postPublishReadyHint` step that only sees the on-chain `packageId`)\n\t * pass `undefined`. The `mode-local` re-stamp pass back-fills\n\t * from the outer `inputs.sourcePath` whenever it can. */\n\treadonly sourcePath?: string | undefined;\n\t/** Symbolic package name (the user-declared `pkg.name`). Optional\n\t * because some throw sites (e.g. `postPublishReadyHint` in\n\t * `publish-executor.ts`) only have the resolved on-chain\n\t * `packageId` in scope; the `mode-local` re-stamp pass back-fills\n\t * the symbolic name from `inputs.packageName` whenever it can.\n\t * Throw sites MUST NOT overload this slot with the on-chain\n\t * `packageId` — the symbolic name is what user-facing error\n\t * displays expect. */\n\treadonly packageName?: string | undefined;\n\treadonly message: string;\n\treadonly cause?: unknown;\n}\n\nexport const publishError = (\n\tphase: PublishPhase,\n\tparts: Omit<PublishError, '_tag' | 'phase'>,\n): PublishError => ({ _tag: 'PublishError', phase, ...parts });\n\n/** The catchable error tags this plugin exposes. Pinned against the\n * user-facing error catalog by the error-catalog-parity test. */\nexport const PACKAGE_ERROR_TAGS = ['PublishError'] as const;\n\nexport type PackageError = PublishError;\n"],"mappings":";AAiDA,MAAa,gBACZ,OACA,WACmB;CAAE,MAAM;CAAgB;CAAO,GAAG;AAAM"}
@@ -0,0 +1,18 @@
1
+ import { Effect } from "effect";
2
+
3
+ //#region src/plugins/package/git-source.d.ts
4
+ /** Remote git Move source coordinates. Prefer an IMMUTABLE `rev` (a commit
5
+ * SHA or a tag): a branch like `main` is cached at first sight and won't
6
+ * auto-refresh until the cache entry is removed. */
7
+ interface GitSource {
8
+ readonly url: string;
9
+ /** Sub-path within the repo to build from (e.g. `packages/deepbook`).
10
+ * Omit to build the repo root. */
11
+ readonly subdir?: string;
12
+ /** Branch, tag, or commit SHA. Defaults to `HEAD` (the remote default
13
+ * branch). */
14
+ readonly rev?: string;
15
+ }
16
+ //#endregion
17
+ export { GitSource };
18
+ //# sourceMappingURL=git-source.d.mts.map
@@ -0,0 +1,119 @@
1
+ import { publishError } from "./errors.mjs";
2
+ import { Effect } from "effect";
3
+ import { join } from "node:path";
4
+ import { createHash } from "node:crypto";
5
+ import { execFile } from "node:child_process";
6
+ import { homedir, tmpdir } from "node:os";
7
+ import { access, mkdir, mkdtemp, rename, rm, writeFile } from "node:fs/promises";
8
+ import { promisify } from "node:util";
9
+ //#region src/plugins/package/git-source.ts
10
+ const execFileAsync = promisify(execFile);
11
+ const gitCacheRoot = () => join(homedir(), ".devstack", "git-src");
12
+ const cacheDirFor = (url, rev) => {
13
+ const urlHash = createHash("sha1").update(url).digest("hex").slice(0, 16);
14
+ const safeRev = rev.replace(/[^a-zA-Z0-9._-]/g, "_").slice(0, 64);
15
+ return join(gitCacheRoot(), `${urlHash}-${safeRev}`);
16
+ };
17
+ const CLONE_TIMEOUT_MS = 5 * 6e4;
18
+ /**
19
+ * Clone `git` into the host cache (or reuse an existing clone) and return the
20
+ * local path to build from — `<cache>/<subdir>` when `subdir` is set, else the
21
+ * repo root.
22
+ *
23
+ * Idempotent + safe to call from both `inputIdentity` and `start`: a completed
24
+ * clone is marked with a `.devstack-ok` sentinel, so the second call is a cheap
25
+ * `access` hit. Concurrent first-clones of the SAME (url, rev) are reconciled
26
+ * by the atomic directory rename — the loser discards its temp clone and reuses
27
+ * the winner's, so no lock is needed. (Different (url, rev) clone independently;
28
+ * the build itself is serialized separately by `withMoveBuildLock`.)
29
+ */
30
+ const materializeGitSource = (git, packageName) => Effect.tryPromise({
31
+ try: async () => {
32
+ const rev = git.rev ?? "HEAD";
33
+ const cacheDir = cacheDirFor(git.url, rev);
34
+ const finalPath = git.subdir ? join(cacheDir, git.subdir) : cacheDir;
35
+ const okMarker = join(cacheDir, ".devstack-ok");
36
+ try {
37
+ await access(okMarker);
38
+ return finalPath;
39
+ } catch {}
40
+ await mkdir(gitCacheRoot(), { recursive: true });
41
+ const staging = await mkdtemp(join(tmpdir(), "devstack-git-"));
42
+ try {
43
+ try {
44
+ await execFileAsync("git", [
45
+ "clone",
46
+ "--depth",
47
+ "1",
48
+ "--branch",
49
+ rev,
50
+ "--",
51
+ git.url,
52
+ staging
53
+ ], { timeout: CLONE_TIMEOUT_MS });
54
+ } catch {
55
+ await rm(staging, {
56
+ recursive: true,
57
+ force: true
58
+ });
59
+ await mkdir(staging, { recursive: true });
60
+ await execFileAsync("git", [
61
+ "init",
62
+ "-q",
63
+ staging
64
+ ], { timeout: CLONE_TIMEOUT_MS });
65
+ await execFileAsync("git", [
66
+ "-C",
67
+ staging,
68
+ "remote",
69
+ "add",
70
+ "origin",
71
+ git.url
72
+ ], { timeout: CLONE_TIMEOUT_MS });
73
+ await execFileAsync("git", [
74
+ "-C",
75
+ staging,
76
+ "fetch",
77
+ "--depth",
78
+ "1",
79
+ "origin",
80
+ "--",
81
+ rev
82
+ ], { timeout: CLONE_TIMEOUT_MS });
83
+ await execFileAsync("git", [
84
+ "-C",
85
+ staging,
86
+ "checkout",
87
+ "-q",
88
+ "FETCH_HEAD"
89
+ ], { timeout: CLONE_TIMEOUT_MS });
90
+ }
91
+ await writeFile(join(staging, ".devstack-ok"), "");
92
+ try {
93
+ await rename(staging, cacheDir);
94
+ } catch {
95
+ await rm(staging, {
96
+ recursive: true,
97
+ force: true
98
+ }).catch(() => {});
99
+ }
100
+ } catch (cause) {
101
+ await rm(staging, {
102
+ recursive: true,
103
+ force: true
104
+ }).catch(() => {});
105
+ throw cause;
106
+ }
107
+ return finalPath;
108
+ },
109
+ catch: (cause) => publishError("hash", {
110
+ sourcePath: git.subdir ? `${git.url}#${git.subdir}` : git.url,
111
+ packageName,
112
+ message: `failed to materialize git source ${git.url} (rev=${git.rev ?? "HEAD"}${git.subdir ? `, subdir=${git.subdir}` : ""}): ${String(cause?.message ?? cause)}`,
113
+ cause
114
+ })
115
+ });
116
+ //#endregion
117
+ export { materializeGitSource };
118
+
119
+ //# sourceMappingURL=git-source.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-source.mjs","names":[],"sources":["../../../src/plugins/package/git-source.ts"],"sourcesContent":["// Materialize a remote git Move source into a persistent local cache.\n//\n// `localPackage(name, { git: { url, subdir?, rev? } })` points the build at a\n// repository instead of a vendored local tree. This helper clones the repo\n// host-side (cached by url+rev), then hands the existing local-build flow a\n// plain on-disk path — every downstream step (`hashMoveSources`,\n// `scrubLocksHost`, `executor.build`, codegen) is unchanged because it only\n// ever sees a directory.\n//\n// The package's OWN transitive deps (e.g. deepbook → token, or the Sui\n// framework) still resolve in-container during `sui move build`; cloning the\n// whole repo also means sibling `{ local = \"../x\" }` deps resolve naturally.\n\nimport { execFile } from 'node:child_process';\nimport { createHash } from 'node:crypto';\nimport { access, mkdir, mkdtemp, rename, rm, writeFile } from 'node:fs/promises';\nimport { homedir, tmpdir } from 'node:os';\nimport { join } from 'node:path';\nimport { promisify } from 'node:util';\n\nimport { Effect } from 'effect';\n\nimport { publishError, type PublishError } from './errors.ts';\n\nconst execFileAsync = promisify(execFile);\n\n/** Remote git Move source coordinates. Prefer an IMMUTABLE `rev` (a commit\n * SHA or a tag): a branch like `main` is cached at first sight and won't\n * auto-refresh until the cache entry is removed. */\nexport interface GitSource {\n\treadonly url: string;\n\t/** Sub-path within the repo to build from (e.g. `packages/deepbook`).\n\t * Omit to build the repo root. */\n\treadonly subdir?: string;\n\t/** Branch, tag, or commit SHA. Defaults to `HEAD` (the remote default\n\t * branch). */\n\treadonly rev?: string;\n}\n\n// Host-global cache, shared across stacks/apps/runs and keyed by (url, rev) so\n// a committed pin re-uses the same clone forever. Kept OUTSIDE the stack root\n// (like `~/.move`): it is content-pinned dep input, not per-stack state, so it\n// must survive `wipe` and snapshot bounces.\nconst gitCacheRoot = (): string => join(homedir(), '.devstack', 'git-src');\n\nconst cacheDirFor = (url: string, rev: string): string => {\n\tconst urlHash = createHash('sha1').update(url).digest('hex').slice(0, 16);\n\t// A readable rev slug aids debugging; the url hash keeps it unambiguous.\n\tconst safeRev = rev.replace(/[^a-zA-Z0-9._-]/g, '_').slice(0, 64);\n\treturn join(gitCacheRoot(), `${urlHash}-${safeRev}`);\n};\n\nconst CLONE_TIMEOUT_MS = 5 * 60_000;\n\n/**\n * Clone `git` into the host cache (or reuse an existing clone) and return the\n * local path to build from — `<cache>/<subdir>` when `subdir` is set, else the\n * repo root.\n *\n * Idempotent + safe to call from both `inputIdentity` and `start`: a completed\n * clone is marked with a `.devstack-ok` sentinel, so the second call is a cheap\n * `access` hit. Concurrent first-clones of the SAME (url, rev) are reconciled\n * by the atomic directory rename — the loser discards its temp clone and reuses\n * the winner's, so no lock is needed. (Different (url, rev) clone independently;\n * the build itself is serialized separately by `withMoveBuildLock`.)\n */\nexport const materializeGitSource = (\n\tgit: GitSource,\n\tpackageName: string,\n): Effect.Effect<string, PublishError> =>\n\tEffect.tryPromise({\n\t\ttry: async () => {\n\t\t\tconst rev = git.rev ?? 'HEAD';\n\t\t\tconst cacheDir = cacheDirFor(git.url, rev);\n\t\t\tconst finalPath = git.subdir ? join(cacheDir, git.subdir) : cacheDir;\n\t\t\tconst okMarker = join(cacheDir, '.devstack-ok');\n\n\t\t\t// Cache hit — a prior apply already materialized this (url, rev).\n\t\t\ttry {\n\t\t\t\tawait access(okMarker);\n\t\t\t\treturn finalPath;\n\t\t\t} catch {\n\t\t\t\t// miss — clone below.\n\t\t\t}\n\n\t\t\tawait mkdir(gitCacheRoot(), { recursive: true });\n\t\t\tconst staging = await mkdtemp(join(tmpdir(), 'devstack-git-'));\n\t\t\ttry {\n\t\t\t\ttry {\n\t\t\t\t\t// Fast path: branch/tag name — a shallow single-branch clone.\n\t\t\t\t\tawait execFileAsync(\n\t\t\t\t\t\t'git',\n\t\t\t\t\t\t['clone', '--depth', '1', '--branch', rev, '--', git.url, staging],\n\t\t\t\t\t\t{ timeout: CLONE_TIMEOUT_MS },\n\t\t\t\t\t);\n\t\t\t\t} catch {\n\t\t\t\t\t// `--branch` rejects bare commit SHAs (and some servers won't\n\t\t\t\t\t// resolve a SHA that way). Fall back to init + shallow fetch of\n\t\t\t\t\t// the exact rev + checkout, which works for a SHA, tag, or\n\t\t\t\t\t// branch on any server that allows fetching the ref.\n\t\t\t\t\tawait rm(staging, { recursive: true, force: true });\n\t\t\t\t\tawait mkdir(staging, { recursive: true });\n\t\t\t\t\tawait execFileAsync('git', ['init', '-q', staging], { timeout: CLONE_TIMEOUT_MS });\n\t\t\t\t\tawait execFileAsync('git', ['-C', staging, 'remote', 'add', 'origin', git.url], {\n\t\t\t\t\t\ttimeout: CLONE_TIMEOUT_MS,\n\t\t\t\t\t});\n\t\t\t\t\tawait execFileAsync(\n\t\t\t\t\t\t'git',\n\t\t\t\t\t\t['-C', staging, 'fetch', '--depth', '1', 'origin', '--', rev],\n\t\t\t\t\t\t{ timeout: CLONE_TIMEOUT_MS },\n\t\t\t\t\t);\n\t\t\t\t\tawait execFileAsync('git', ['-C', staging, 'checkout', '-q', 'FETCH_HEAD'], {\n\t\t\t\t\t\ttimeout: CLONE_TIMEOUT_MS,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tawait writeFile(join(staging, '.devstack-ok'), '');\n\t\t\t\t// Publish atomically. If a concurrent apply already won the race,\n\t\t\t\t// the rename fails (target exists) — discard ours and reuse theirs.\n\t\t\t\ttry {\n\t\t\t\t\tawait rename(staging, cacheDir);\n\t\t\t\t} catch {\n\t\t\t\t\tawait rm(staging, { recursive: true, force: true }).catch(() => {});\n\t\t\t\t}\n\t\t\t} catch (cause) {\n\t\t\t\tawait rm(staging, { recursive: true, force: true }).catch(() => {});\n\t\t\t\tthrow cause;\n\t\t\t}\n\t\t\treturn finalPath;\n\t\t},\n\t\tcatch: (cause): PublishError =>\n\t\t\tpublishError('hash', {\n\t\t\t\tsourcePath: git.subdir ? `${git.url}#${git.subdir}` : git.url,\n\t\t\t\tpackageName,\n\t\t\t\tmessage:\n\t\t\t\t\t`failed to materialize git source ${git.url} (rev=${git.rev ?? 'HEAD'}` +\n\t\t\t\t\t`${git.subdir ? `, subdir=${git.subdir}` : ''}): ` +\n\t\t\t\t\t`${String((cause as Error)?.message ?? cause)}`,\n\t\t\t\tcause,\n\t\t\t}),\n\t});\n"],"mappings":";;;;;;;;;AAwBA,MAAM,gBAAgB,UAAU,QAAQ;AAmBxC,MAAM,qBAA6B,KAAK,QAAQ,GAAG,aAAa,SAAS;AAEzE,MAAM,eAAe,KAAa,QAAwB;CACzD,MAAM,UAAU,WAAW,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,GAAG,EAAE;CAExE,MAAM,UAAU,IAAI,QAAQ,oBAAoB,GAAG,CAAC,CAAC,MAAM,GAAG,EAAE;CAChE,OAAO,KAAK,aAAa,GAAG,GAAG,QAAQ,GAAG,SAAS;AACpD;AAEA,MAAM,mBAAmB,IAAI;;;;;;;;;;;;;AAc7B,MAAa,wBACZ,KACA,gBAEA,OAAO,WAAW;CACjB,KAAK,YAAY;EAChB,MAAM,MAAM,IAAI,OAAO;EACvB,MAAM,WAAW,YAAY,IAAI,KAAK,GAAG;EACzC,MAAM,YAAY,IAAI,SAAS,KAAK,UAAU,IAAI,MAAM,IAAI;EAC5D,MAAM,WAAW,KAAK,UAAU,cAAc;EAG9C,IAAI;GACH,MAAM,OAAO,QAAQ;GACrB,OAAO;EACR,QAAQ,CAER;EAEA,MAAM,MAAM,aAAa,GAAG,EAAE,WAAW,KAAK,CAAC;EAC/C,MAAM,UAAU,MAAM,QAAQ,KAAK,OAAO,GAAG,eAAe,CAAC;EAC7D,IAAI;GACH,IAAI;IAEH,MAAM,cACL,OACA;KAAC;KAAS;KAAW;KAAK;KAAY;KAAK;KAAM,IAAI;KAAK;IAAO,GACjE,EAAE,SAAS,iBAAiB,CAC7B;GACD,QAAQ;IAKP,MAAM,GAAG,SAAS;KAAE,WAAW;KAAM,OAAO;IAAK,CAAC;IAClD,MAAM,MAAM,SAAS,EAAE,WAAW,KAAK,CAAC;IACxC,MAAM,cAAc,OAAO;KAAC;KAAQ;KAAM;IAAO,GAAG,EAAE,SAAS,iBAAiB,CAAC;IACjF,MAAM,cAAc,OAAO;KAAC;KAAM;KAAS;KAAU;KAAO;KAAU,IAAI;IAAG,GAAG,EAC/E,SAAS,iBACV,CAAC;IACD,MAAM,cACL,OACA;KAAC;KAAM;KAAS;KAAS;KAAW;KAAK;KAAU;KAAM;IAAG,GAC5D,EAAE,SAAS,iBAAiB,CAC7B;IACA,MAAM,cAAc,OAAO;KAAC;KAAM;KAAS;KAAY;KAAM;IAAY,GAAG,EAC3E,SAAS,iBACV,CAAC;GACF;GACA,MAAM,UAAU,KAAK,SAAS,cAAc,GAAG,EAAE;GAGjD,IAAI;IACH,MAAM,OAAO,SAAS,QAAQ;GAC/B,QAAQ;IACP,MAAM,GAAG,SAAS;KAAE,WAAW;KAAM,OAAO;IAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;GACnE;EACD,SAAS,OAAO;GACf,MAAM,GAAG,SAAS;IAAE,WAAW;IAAM,OAAO;GAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;GAClE,MAAM;EACP;EACA,OAAO;CACR;CACA,QAAQ,UACP,aAAa,QAAQ;EACpB,YAAY,IAAI,SAAS,GAAG,IAAI,IAAI,GAAG,IAAI,WAAW,IAAI;EAC1D;EACA,SACC,oCAAoC,IAAI,IAAI,QAAQ,IAAI,OAAO,SAC5D,IAAI,SAAS,YAAY,IAAI,WAAW,GAAG,KAC3C,OAAQ,OAAiB,WAAW,KAAK;EAC7C;CACD,CAAC;AACH,CAAC"}
@@ -1,16 +1,16 @@
1
- import { CodegenableDecl } from "../../contracts/codegenable.mjs";
2
- import { ProjectionDecl } from "../../contracts/projection.mjs";
3
- import { SnapshotableDecl } from "../../contracts/snapshotable.mjs";
4
- import { StrategyContributorDecl } from "../../contracts/strategy-contributor.mjs";
5
1
  import { AnyResourceRef, Plugin, ResourceRef } from "../../substrate/plugin.mjs";
6
- import { SuiClient } from "../sui/mode/shared.mjs";
2
+ import { PackageBindings } from "../../orchestrators/codegen/bindings.mjs";
3
+ import { ResolvedKnownPackage, ResolvedLocalPackage } from "./registry.mjs";
7
4
  import { SuiOptions } from "../sui/mode/spec.mjs";
5
+ import { SuiClient } from "../sui/mode/shared.mjs";
8
6
  import { AccountValue } from "../account/service.mjs";
9
7
  import { AccountResourceId } from "../account/index.mjs";
10
- import { LocalPackagePublishOutput, LocalPackagePublishedDecl, PackagePublishObjectChange } from "./publish-output.mjs";
11
- import { ResolvedKnownPackage, ResolvedLocalPackage } from "./registry.mjs";
8
+ import { LocalPackagePublishOutput, PackagePublishObjectChange } from "./publish-output.mjs";
9
+ import { PackageNetworkEntry, PackageNetworks } from "./codegen.mjs";
12
10
  import { PublishError } from "./errors.mjs";
13
- import { PackageBindings } from "./codegen.mjs";
11
+ import { GitSource } from "./git-source.mjs";
12
+ import { Effect } from "effect";
13
+
14
14
  //#region src/plugins/package/index.d.ts
15
15
  /** A user-supplied publisher account ref. The user passes the result
16
16
  * of `account('alice')` — NOT a bare string. Generic over the
@@ -43,13 +43,26 @@ interface LocalPackageResolved<Capture = undefined> extends Omit<ResolvedLocalPa
43
43
  type KnownPackageResolved = ResolvedKnownPackage;
44
44
  type PackageResolved = LocalPackageResolved | KnownPackageResolved;
45
45
  interface LocalPackageOptions<Publisher extends PublisherAccountMember = PublisherAccountMember, Capture extends PackageCapture | undefined = undefined> {
46
- readonly sourcePath: string;
46
+ /** Local on-disk path to the Move package. Provide EXACTLY ONE of
47
+ * `sourcePath` or `git`. */
48
+ readonly sourcePath?: string;
49
+ /** Remote git source — clone a repo and build a sub-path of it instead of
50
+ * vendoring the Move tree. Cloned once into a host cache keyed by
51
+ * `url + rev` (see `git-source.ts`); pin `rev` to a commit SHA or tag for
52
+ * reproducibility. Mutually exclusive with `sourcePath`. */
53
+ readonly git?: GitSource;
47
54
  readonly mvrPlaceholder?: string;
48
55
  readonly excludeFromCodegen?: boolean;
49
56
  /** Capture created objects from the publish output. The record
50
57
  * form maps output keys to object-type suffixes, e.g.
51
58
  * `{ boardId: '::board::Board' }`. */
52
59
  readonly capture?: Capture;
60
+ /** Per-network declared package ids (+ optional object ids) for
61
+ * prod-targeting. Pure literals, no resolution: codegen merges the
62
+ * resolved-local id into `config.packages.<name>.byNetwork.localnet`
63
+ * and these literals into `byNetwork.testnet` / `byNetwork.mainnet`.
64
+ * A consumer flips `config.network` (env) to select active ids. */
65
+ readonly networks?: PackageNetworks;
53
66
  /** Publisher account — the signer for the publish tx. Pass the
54
67
  * result of `account('alice')` (the same plugin/resource ref used
55
68
  * in the rest of the stack — NOT a duplicate factory call).
@@ -65,14 +78,10 @@ interface KnownPackageOptions {
65
78
  readonly packageId: string;
66
79
  readonly upgradeCapId?: string;
67
80
  readonly mvrPlaceholder?: string;
68
- }
69
- interface PackageRegistryProjectionContribution {
70
- readonly kind: 'local' | 'known';
71
- readonly name: string;
72
- readonly packageId: string;
73
- readonly upgradeCapId: string | null;
74
- readonly mvrPlaceholder: string;
75
- readonly sourcePath: string | null;
81
+ /** Per-network declared package ids (+ optional object ids) for
82
+ * prod-targeting same as `LocalPackageOptions.networks`. Pure
83
+ * literals; codegen fills `config.packages.<name>.byNetwork`. */
84
+ readonly networks?: PackageNetworks;
76
85
  }
77
86
  /** Build + publish a local Move package. The resolved value is
78
87
  * `LocalPackageResolved` so consumers that need bindings / source
@@ -93,13 +102,13 @@ declare const localPackage: <Name extends string, const Publisher extends Publis
93
102
  readonly mode: SuiOptions["mode"];
94
103
  }>;
95
104
  readonly publisher: Publisher;
96
- } ? T extends Readonly<Record<string, AnyResourceRef>> ? readonly T[keyof T][] : readonly [] : never : never, readonly [SnapshotableDecl, CodegenableDecl<"package">, StrategyContributorDecl<"package-registry", PackageRegistryProjectionContribution>, ProjectionDecl, ...LocalPackagePublishedDecl[]]>;
105
+ } ? T extends Readonly<Record<string, AnyResourceRef>> ? readonly T[keyof T][] : readonly [] : never : never>;
97
106
  /** Verify-only against a fixed on-chain package id. The resolved
98
107
  * value is `KnownPackageResolved` — narrower than local, so the
99
108
  * bindings emitter rejects this at compose time. */
100
109
  declare const knownPackage: <Name extends string>(name: Name, opts: KnownPackageOptions) => Plugin<`package:${Name}`, ResolvedKnownPackage, readonly ResourceRef<"sui", SuiClient & {
101
110
  readonly mode: SuiOptions["mode"];
102
- }>[], readonly [SnapshotableDecl, CodegenableDecl<"package">, StrategyContributorDecl<"package-registry", PackageRegistryProjectionContribution>, ProjectionDecl]>;
111
+ }>[]>;
103
112
  //#endregion
104
113
  export { KnownPackageOptions, KnownPackageResolved, LocalPackageOptions, LocalPackageResolved, PackageCapture, PackageResolved, PublisherAccountMember, knownPackage, localPackage };
105
114
  //# sourceMappingURL=index.d.mts.map
@@ -1,23 +1,26 @@
1
- import { definePlugin, resource } from "../../substrate/plugin.mjs";
1
+ import { computedInputIdentity, definePlugin, resource, staticInputIdentity } from "../../substrate/plugin.mjs";
2
2
  import "../../api/define-plugin.mjs";
3
+ import { CacheService } from "../../substrate/runtime/cache/service.mjs";
4
+ import "../../substrate/runtime/cache/index.mjs";
3
5
  import { ContainerRuntimeService } from "../../runtime/docker/service.mjs";
4
- import { ArtifactPublisherService } from "../../substrate/runtime/artifact-publisher/index.mjs";
6
+ import { PluginContext, emitContributions } from "../../substrate/plugin-ctx.mjs";
5
7
  import { chainProbeFor } from "../../substrate/runtime/strategy-registry/chain-probe-for.mjs";
6
8
  import "../../substrate/runtime/strategy-registry/index.mjs";
7
- import { makeLocalPackagePublishedDecl, pickCreatedByType } from "./publish-output.mjs";
9
+ import { CoinRegistryService } from "../coin/registry.mjs";
8
10
  import { PACKAGE_REGISTRY_CAPABILITY_KEY, PackageRegistryService } from "./registry.mjs";
9
11
  import { projection } from "../../api/define-capabilities.mjs";
10
- import { pluginErrorContributions } from "../../api/plugin-errors.mjs";
11
12
  import { suiResource } from "../sui/index.mjs";
12
- import { makeKnownCodegenable, makeLocalCodegenable } from "./codegen.mjs";
13
- import { PACKAGE_ERROR_TAGS } from "./errors.mjs";
14
- import "./spans.mjs";
13
+ import { pickCreatedByType } from "./publish-output.mjs";
14
+ import { discoverCoinsFromPublish } from "../coin/discovery.mjs";
15
+ import "../coin/index.mjs";
16
+ import { makeKnownCodegenable, makeKnownStaticCodegen, makeLocalCodegenable, makeLocalStaticCodegen } from "./codegen.mjs";
17
+ import { hashMoveSources } from "./build.mjs";
18
+ import { materializeGitSource } from "./git-source.mjs";
15
19
  import { makePublishExecutor } from "./publish-executor.mjs";
16
20
  import { bootPackageService } from "./service.mjs";
17
21
  import { makeSnapshotable } from "./snapshot.mjs";
18
22
  import { Effect } from "effect";
19
23
  //#region src/plugins/package/index.ts
20
- const packageErrorContributions = pluginErrorContributions(PACKAGE_ERROR_TAGS);
21
24
  /** Resource id constructor. The symbolic package name is part of the tag
22
25
  * identity so the substrate's compose-time dedup detects collisions
23
26
  * cleanly (two `localPackage('foo', ...)` calls in one stack → typed
@@ -58,6 +61,9 @@ const normalizeCapture = (packageName, capture) => {
58
61
  const buildLocalPlugin = (name, opts) => {
59
62
  const packageRef = resource(packageResourceId(name));
60
63
  const capture = normalizeCapture(name, opts.capture);
64
+ if (opts.sourcePath === void 0 && opts.git === void 0) throw new Error(`localPackage('${name}'): provide either 'sourcePath' or 'git'.`);
65
+ if (opts.sourcePath !== void 0 && opts.git !== void 0) throw new Error(`localPackage('${name}'): 'sourcePath' and 'git' are mutually exclusive.`);
66
+ const resolveSourcePath = () => opts.git !== void 0 ? materializeGitSource(opts.git, name) : Effect.succeed(opts.sourcePath);
61
67
  return definePlugin({
62
68
  id: packageRef.id,
63
69
  dependsOn: {
@@ -66,18 +72,42 @@ const buildLocalPlugin = (name, opts) => {
66
72
  },
67
73
  role: "task",
68
74
  section: "package",
75
+ inputIdentity: computedInputIdentity(() => resolveSourcePath().pipe(Effect.flatMap((sourcePath) => hashMoveSources(sourcePath).pipe(Effect.map((sourceHash) => ({
76
+ plugin: "package",
77
+ kind: "local",
78
+ name,
79
+ sourcePath,
80
+ sourceHash,
81
+ publisher: opts.publisher.id,
82
+ mvrPlaceholder: opts.mvrPlaceholder ?? null,
83
+ excludeFromCodegen: opts.excludeFromCodegen === true,
84
+ capture: opts.capture ?? null,
85
+ networks: opts.networks ?? null,
86
+ git: opts.git ?? null
87
+ })))), Effect.orDie)),
69
88
  watch: {
70
- paths: [
89
+ paths: opts.sourcePath !== void 0 ? [
71
90
  `${opts.sourcePath}/**/*.move`,
72
91
  `${opts.sourcePath}/Move.toml`,
73
92
  `${opts.sourcePath}/Move.lock`
74
- ],
93
+ ] : [],
75
94
  cascade: true
76
95
  },
96
+ staticCodegen: makeLocalStaticCodegen({
97
+ name,
98
+ sourcePath: opts.sourcePath ?? null,
99
+ mvrPlaceholder: opts.mvrPlaceholder,
100
+ excluded: opts.excludeFromCodegen ?? false,
101
+ networks: opts.networks,
102
+ ...opts.capture !== void 0 ? { objectKeys: Object.keys(opts.capture) } : {}
103
+ }),
77
104
  start: ({ sui, publisher: publisherAccount }) => Effect.gen(function* () {
78
- const publisher = yield* ArtifactPublisherService;
79
- const probe = yield* chainProbeFor(sui.chain);
105
+ const sourcePath = yield* resolveSourcePath();
106
+ const ctx = yield* PluginContext;
107
+ const publisher = yield* CacheService;
108
+ const probe = yield* chainProbeFor(sui.chainId);
80
109
  const registry = yield* PackageRegistryService;
110
+ const coinRegistry = yield* CoinRegistryService;
81
111
  const containerRuntime = yield* ContainerRuntimeService;
82
112
  const executor = makePublishExecutor({
83
113
  sdk: sui.sdk,
@@ -89,22 +119,23 @@ const buildLocalPlugin = (name, opts) => {
89
119
  const { resolved, output } = yield* bootPackageService(publisher, probe, registry, {
90
120
  mode: "local",
91
121
  packageName: name,
92
- sourcePath: opts.sourcePath,
93
- chainId: sui.chain,
122
+ sourcePath,
123
+ chainId: sui.chainId,
94
124
  publisherAddress: publisherAccount.address,
95
125
  mvrOverride: opts.mvrPlaceholder,
96
126
  ...capture !== void 0 ? { capture } : {},
97
127
  executor
98
128
  });
99
- return {
129
+ const projected = {
100
130
  ...resolved,
101
131
  captured: resolved.captured,
102
132
  publisher: publisherAccount,
103
133
  publishResult: output
104
134
  };
105
- }),
106
- errorContributions: packageErrorContributions,
107
- capabilities: ({ value, runtime }) => makeLocalCapabilities(name, opts, value, runtime.chain)
135
+ emitContributions(ctx, makeLocalCapabilities(name, opts, projected));
136
+ if (output !== null) yield* discoverPublishedCoins(coinRegistry, name, projected.packageId, output);
137
+ return projected;
138
+ })
108
139
  });
109
140
  };
110
141
  const buildKnownPlugin = (name, opts) => {
@@ -113,21 +144,37 @@ const buildKnownPlugin = (name, opts) => {
113
144
  dependsOn: { sui: suiResource },
114
145
  role: "task",
115
146
  section: "package",
147
+ inputIdentity: staticInputIdentity({
148
+ plugin: "package",
149
+ kind: "known",
150
+ name,
151
+ packageId: opts.packageId,
152
+ upgradeCapId: opts.upgradeCapId ?? null,
153
+ mvrPlaceholder: opts.mvrPlaceholder ?? null,
154
+ networks: opts.networks ?? null
155
+ }),
156
+ staticCodegen: makeKnownStaticCodegen({
157
+ name,
158
+ packageId: opts.packageId,
159
+ mvrPlaceholder: opts.mvrPlaceholder,
160
+ ...opts.upgradeCapId !== void 0 ? { upgradeCapId: opts.upgradeCapId } : {},
161
+ networks: opts.networks
162
+ }),
116
163
  start: ({ sui }) => Effect.gen(function* () {
117
- const { resolved } = yield* bootPackageService(yield* ArtifactPublisherService, yield* chainProbeFor(sui.chain), yield* PackageRegistryService, {
164
+ const ctx = yield* PluginContext;
165
+ const { resolved } = yield* bootPackageService(yield* CacheService, yield* chainProbeFor(sui.chainId), yield* PackageRegistryService, {
118
166
  mode: "known",
119
167
  packageName: name,
120
168
  packageId: opts.packageId,
121
169
  upgradeCapId: opts.upgradeCapId,
122
170
  mvrOverride: opts.mvrPlaceholder
123
171
  });
172
+ emitContributions(ctx, makeKnownCapabilities(name, opts, resolved));
124
173
  return resolved;
125
- }),
126
- errorContributions: packageErrorContributions,
127
- capabilities: ({ value }) => makeKnownCapabilities(name, opts, value)
174
+ })
128
175
  });
129
176
  };
130
- const makeLocalCapabilities = (name, opts, resolved, chain) => {
177
+ const makeLocalCapabilities = (name, opts, resolved) => {
131
178
  const snap = makeSnapshotable(name, resolved.publishResult?.packageId ?? resolved.packageId);
132
179
  const codegen = makeLocalCodegenable({
133
180
  kind: "local",
@@ -137,7 +184,10 @@ const makeLocalCapabilities = (name, opts, resolved, chain) => {
137
184
  sourcePath: resolved.sourcePath,
138
185
  mvrPlaceholder: resolved.mvrPlaceholder,
139
186
  captured: resolved.captured
140
- }, { excluded: opts.excludeFromCodegen ?? false });
187
+ }, {
188
+ excluded: opts.excludeFromCodegen ?? false,
189
+ ...opts.networks !== void 0 ? { networks: opts.networks } : {}
190
+ });
141
191
  const projection = {
142
192
  kind: "local",
143
193
  name,
@@ -155,13 +205,7 @@ const makeLocalCapabilities = (name, opts, resolved, chain) => {
155
205
  strategy: projection,
156
206
  autoMounted: true
157
207
  },
158
- makePackageProjectionContribution(projection),
159
- ...resolved.publishResult === null ? [] : [makeLocalPackagePublishedDecl({
160
- packageName: name,
161
- packageId: resolved.packageId,
162
- chain,
163
- output: resolved.publishResult
164
- })]
208
+ makePackageProjectionContribution(projection)
165
209
  ];
166
210
  };
167
211
  const makeKnownCapabilities = (name, opts, resolved) => {
@@ -172,7 +216,7 @@ const makeKnownCapabilities = (name, opts, resolved) => {
172
216
  packageId: resolved.packageId,
173
217
  upgradeCapId: resolved.upgradeCapId ?? opts.upgradeCapId,
174
218
  mvrPlaceholder: resolved.mvrPlaceholder
175
- });
219
+ }, opts.networks !== void 0 ? { networks: opts.networks } : {});
176
220
  const projection = {
177
221
  kind: "known",
178
222
  name,
@@ -193,6 +237,37 @@ const makeKnownCapabilities = (name, opts, resolved) => {
193
237
  makePackageProjectionContribution(projection)
194
238
  ];
195
239
  };
240
+ /** Fold a fresh local-package publish output into the per-stack
241
+ * `CoinRegistry`. Lifted VERBATIM from the orchestrator's former
242
+ * `publishResultSink` (orchestrators/boot.ts): the same
243
+ * `discoverCoinsFromPublish` walk + the same `CoinRecord` projection
244
+ * (including the publisher-owns-cap gate on `treasuryCapId`).
245
+ *
246
+ * Re-homing this into the local `start` body — AFTER the publish output
247
+ * is known, BEFORE `start` returns — preserves discovery timing: the
248
+ * coin plugin `dependsOn` package, so it acquires only after package
249
+ * readies, by which point the registry is already populated. The
250
+ * previous decl-driven sink ran at the same point in the lifecycle
251
+ * (post-`start` dispatch), so consumers see no ordering change. */
252
+ const discoverPublishedCoins = (coinRegistry, packageName, packageId, output) => Effect.gen(function* () {
253
+ for (const discovered of discoverCoinsFromPublish(output)) {
254
+ const record = {
255
+ key: (discovered.symbol ?? discovered.witness).toLowerCase(),
256
+ type: discovered.fullCoinType,
257
+ witness: discovered.witness,
258
+ moduleName: discovered.moduleName,
259
+ decimals: discovered.decimals ?? 0,
260
+ ...discovered.symbol === void 0 ? {} : { symbol: discovered.symbol },
261
+ ...discovered.displayName === void 0 ? {} : { displayName: discovered.displayName },
262
+ ...discovered.iconUrl === void 0 ? {} : { iconUrl: discovered.iconUrl },
263
+ ...!discovered.publisherOwnsCap || discovered.treasuryCapId === void 0 ? {} : { treasuryCapId: discovered.treasuryCapId },
264
+ ...discovered.metadataId === void 0 ? {} : { metadataId: discovered.metadataId },
265
+ packageId,
266
+ publishingPackageName: packageName
267
+ };
268
+ yield* coinRegistry.register(record);
269
+ }
270
+ });
196
271
  /** Build + publish a local Move package. The resolved value is
197
272
  * `LocalPackageResolved` so consumers that need bindings / source
198
273
  * path are typed correctly.