@mesh-tech/mesh-cli 0.20.1 → 0.20.3

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 (436) hide show
  1. package/README.md +6 -5
  2. package/dist/bin/mesh.d.ts +0 -12
  3. package/dist/bin/mesh.js +99 -50
  4. package/dist/bin/mesh.js.map +2 -3
  5. package/dist/build-info.json +2 -2
  6. package/dist/src/commands/agent-api-client.d.ts +0 -70
  7. package/dist/src/commands/agent-api-client.js +0 -80
  8. package/dist/src/commands/app-check.d.ts +0 -56
  9. package/dist/src/commands/app-check.js +0 -72
  10. package/dist/src/commands/artifacts.d.ts +0 -11
  11. package/dist/src/commands/artifacts.js +0 -33
  12. package/dist/src/commands/cluster.d.ts +0 -39
  13. package/dist/src/commands/cluster.js +0 -73
  14. package/dist/src/commands/conversations.d.ts +0 -36
  15. package/dist/src/commands/conversations.js +0 -59
  16. package/dist/src/commands/create-app.d.ts +4 -88
  17. package/dist/src/commands/create-app.js +16 -155
  18. package/dist/src/commands/db/connect.d.ts +0 -7
  19. package/dist/src/commands/db/connect.js +0 -9
  20. package/dist/src/commands/db/credentials.d.ts +0 -7
  21. package/dist/src/commands/db/credentials.js +0 -10
  22. package/dist/src/commands/db/env.d.ts +0 -6
  23. package/dist/src/commands/db/env.js +0 -14
  24. package/dist/src/commands/db/exec.d.ts +0 -43
  25. package/dist/src/commands/db/exec.js +0 -69
  26. package/dist/src/commands/db/index.d.ts +0 -10
  27. package/dist/src/commands/db/index.js +0 -10
  28. package/dist/src/commands/db/psql.d.ts +0 -7
  29. package/dist/src/commands/db/psql.js +0 -18
  30. package/dist/src/commands/deploy.d.ts +0 -38
  31. package/dist/src/commands/deploy.js +1 -76
  32. package/dist/src/commands/dev-doctor.d.ts +0 -82
  33. package/dist/src/commands/dev-doctor.js +3 -132
  34. package/dist/src/commands/dev-launch.d.ts +0 -52
  35. package/dist/src/commands/dev-launch.js +0 -56
  36. package/dist/src/commands/dev-token-server.d.ts +0 -18
  37. package/dist/src/commands/dev-token-server.js +1 -24
  38. package/dist/src/commands/dev.d.ts +0 -246
  39. package/dist/src/commands/dev.js +5 -963
  40. package/dist/src/commands/docs.d.ts +0 -1
  41. package/dist/src/commands/docs.js +0 -12
  42. package/dist/src/commands/hub/index.d.ts +0 -60
  43. package/dist/src/commands/hub/index.js +2 -139
  44. package/dist/src/commands/init/wizard.d.ts +5 -116
  45. package/dist/src/commands/init/wizard.js +42 -110
  46. package/dist/src/commands/init.d.ts +0 -55
  47. package/dist/src/commands/init.js +0 -70
  48. package/dist/src/commands/install-shim.d.ts +0 -23
  49. package/dist/src/commands/install-shim.js +2 -29
  50. package/dist/src/commands/local/auth-provision.d.ts +0 -80
  51. package/dist/src/commands/local/auth-provision.js +0 -109
  52. package/dist/src/commands/local/dev-local.d.ts +0 -91
  53. package/dist/src/commands/local/dev-local.js +0 -147
  54. package/dist/src/commands/local/docker-runner.d.ts +0 -22
  55. package/dist/src/commands/local/docker-runner.js +2 -35
  56. package/dist/src/commands/local/helpers.d.ts +0 -14
  57. package/dist/src/commands/local/helpers.js +0 -13
  58. package/dist/src/commands/local/hub-local.d.ts +0 -96
  59. package/dist/src/commands/local/hub-local.js +0 -111
  60. package/dist/src/commands/local/index.d.ts +0 -14
  61. package/dist/src/commands/local/index.js +0 -86
  62. package/dist/src/commands/local/mocks.d.ts +0 -269
  63. package/dist/src/commands/local/mocks.js +1 -274
  64. package/dist/src/commands/local/seed-hub-catalog.d.ts +0 -25
  65. package/dist/src/commands/local/seed-hub-catalog.js +0 -41
  66. package/dist/src/commands/local/seed-zitadel.d.ts +0 -82
  67. package/dist/src/commands/local/seed-zitadel.js +0 -158
  68. package/dist/src/commands/local/seed.d.ts +0 -64
  69. package/dist/src/commands/local/seed.js +0 -78
  70. package/dist/src/commands/local/stack.d.ts +0 -141
  71. package/dist/src/commands/local/stack.js +0 -153
  72. package/dist/src/commands/login.d.ts +0 -265
  73. package/dist/src/commands/login.js +4 -418
  74. package/dist/src/commands/peer-addressing.d.ts +0 -39
  75. package/dist/src/commands/peer-addressing.js +0 -37
  76. package/dist/src/commands/port-ownership.d.ts +0 -44
  77. package/dist/src/commands/port-ownership.js +0 -47
  78. package/dist/src/commands/registry-publish.d.ts +0 -1
  79. package/dist/src/commands/registry-publish.js +0 -46
  80. package/dist/src/commands/registry.d.ts +4 -237
  81. package/dist/src/commands/registry.js +2 -316
  82. package/dist/src/commands/secrets/exec.d.ts +0 -16
  83. package/dist/src/commands/secrets/exec.js +0 -24
  84. package/dist/src/commands/secrets/index.d.ts +0 -9
  85. package/dist/src/commands/secrets/index.js +0 -10
  86. package/dist/src/commands/secrets/migrate-config.d.ts +0 -17
  87. package/dist/src/commands/secrets/migrate-config.js +0 -40
  88. package/dist/src/commands/secrets/reindex.d.ts +0 -38
  89. package/dist/src/commands/secrets/reindex.js +0 -39
  90. package/dist/src/commands/secrets/set.d.ts +0 -47
  91. package/dist/src/commands/secrets/set.js +0 -107
  92. package/dist/src/commands/site.d.ts +0 -1
  93. package/dist/src/commands/site.js +0 -61
  94. package/dist/src/commands/skills.d.ts +0 -61
  95. package/dist/src/commands/skills.js +0 -83
  96. package/dist/src/commands/stack.d.ts +0 -15
  97. package/dist/src/commands/stack.js +1 -128
  98. package/dist/src/commands/temporal.d.ts +0 -30
  99. package/dist/src/commands/temporal.js.map +0 -1
  100. package/dist/src/commands/tenant.d.ts +0 -31
  101. package/dist/src/commands/tenant.js +0 -55
  102. package/dist/src/commands/tunnel/index.d.ts +0 -40
  103. package/dist/src/commands/tunnel/index.js +0 -141
  104. package/dist/src/commands/vcs/clone.d.ts +0 -1
  105. package/dist/src/commands/vcs/clone.js +0 -4
  106. package/dist/src/commands/vcs/common.d.ts +0 -32
  107. package/dist/src/commands/vcs/common.js +0 -41
  108. package/dist/src/commands/vcs/drafts.d.ts +0 -1
  109. package/dist/src/commands/vcs/drafts.js +0 -1
  110. package/dist/src/commands/vcs/get.d.ts +0 -1
  111. package/dist/src/commands/vcs/get.js +0 -11
  112. package/dist/src/commands/vcs/index.d.ts +0 -1
  113. package/dist/src/commands/vcs/index.js +0 -1
  114. package/dist/src/commands/vcs/propose.d.ts +0 -26
  115. package/dist/src/commands/vcs/propose.js +3 -34
  116. package/dist/src/commands/vcs/review.d.ts +0 -1
  117. package/dist/src/commands/vcs/review.js +0 -1
  118. package/dist/src/commands/vcs/rm.d.ts +0 -11
  119. package/dist/src/commands/vcs/rm.js +0 -14
  120. package/dist/src/commands/vcs-enrich.d.ts +0 -12
  121. package/dist/src/commands/vcs-enrich.js +0 -12
  122. package/dist/src/commands/vpn/index.d.ts +0 -17
  123. package/dist/src/commands/vpn/index.js +0 -102
  124. package/dist/src/commands/vpn/tunnel.d.ts +0 -9
  125. package/dist/src/commands/vpn/tunnel.js +0 -37
  126. package/dist/src/commands/workflow.d.ts +0 -22
  127. package/dist/src/commands/workflow.js +0 -80
  128. package/dist/src/docs/assemble.d.ts +0 -117
  129. package/dist/src/docs/assemble.js +0 -142
  130. package/dist/src/docs/cli-reference.d.ts +0 -58
  131. package/dist/src/docs/cli-reference.js +0 -77
  132. package/dist/src/docs/discover.d.ts +0 -40
  133. package/dist/src/docs/discover.js +2 -60
  134. package/dist/src/docs/portal.d.ts +0 -44
  135. package/dist/src/docs/portal.js +0 -49
  136. package/dist/src/docs/registry-docs.d.ts +0 -29
  137. package/dist/src/docs/registry-docs.js +0 -40
  138. package/dist/src/docs/schema.d.ts +0 -36
  139. package/dist/src/docs/schema.js +0 -52
  140. package/dist/src/docs/serve.d.ts +0 -18
  141. package/dist/src/docs/serve.js +2 -30
  142. package/dist/src/docs/start.d.ts +0 -42
  143. package/dist/src/docs/start.js +0 -70
  144. package/dist/src/eval/agent-eval.d.mts +0 -12
  145. package/dist/src/eval/agent-eval.mjs +0 -22
  146. package/dist/src/index.d.ts +0 -6
  147. package/dist/src/index.js.map +0 -1
  148. package/dist/src/program.d.ts +0 -20
  149. package/dist/src/program.js +0 -24
  150. package/dist/src/utils/auth-preflight.d.ts +0 -137
  151. package/dist/src/utils/auth-preflight.js +0 -149
  152. package/dist/src/utils/aws-auth.d.ts +0 -163
  153. package/dist/src/utils/aws-auth.js +3 -232
  154. package/dist/src/utils/bastion.d.ts +0 -27
  155. package/dist/src/utils/bastion.js +0 -28
  156. package/dist/src/utils/build-info.d.ts +0 -22
  157. package/dist/src/utils/build-info.js +0 -27
  158. package/dist/src/utils/cache-home.d.ts +0 -23
  159. package/dist/src/utils/cache-home.js +0 -25
  160. package/dist/src/utils/capture-history.d.ts +0 -54
  161. package/dist/src/utils/capture-history.js +1 -55
  162. package/dist/src/utils/context.d.ts +0 -23
  163. package/dist/src/utils/context.js +0 -43
  164. package/dist/src/utils/credentials.d.ts +0 -38
  165. package/dist/src/utils/credentials.js +0 -39
  166. package/dist/src/utils/deploy-preflight.d.ts +0 -38
  167. package/dist/src/utils/deploy-preflight.js +1 -71
  168. package/dist/src/utils/errors.d.ts +0 -53
  169. package/dist/src/utils/errors.js +0 -49
  170. package/dist/src/utils/first-party-contexts.d.ts +0 -38
  171. package/dist/src/utils/first-party-contexts.js +0 -44
  172. package/dist/src/utils/index.d.ts +0 -4
  173. package/dist/src/utils/index.js +0 -4
  174. package/dist/src/utils/kubeconfig.d.ts +0 -40
  175. package/dist/src/utils/kubeconfig.js +0 -44
  176. package/dist/src/utils/log.d.ts +0 -20
  177. package/dist/src/utils/log.js +0 -20
  178. package/dist/src/utils/mesh-json.d.ts +0 -46
  179. package/dist/src/utils/mesh-json.js +0 -39
  180. package/dist/src/utils/pid.d.ts +0 -42
  181. package/dist/src/utils/pid.js +0 -48
  182. package/dist/src/utils/pulumi-run.d.ts +0 -14
  183. package/dist/src/utils/pulumi-run.js +0 -42
  184. package/dist/src/utils/pulumi.d.ts +0 -34
  185. package/dist/src/utils/pulumi.js +0 -38
  186. package/dist/src/utils/reachability.d.ts +0 -27
  187. package/dist/src/utils/reachability.js +0 -40
  188. package/dist/src/utils/recover-conversation.d.ts +0 -110
  189. package/dist/src/utils/recover-conversation.js +0 -108
  190. package/dist/src/utils/registry-broker.d.ts +5 -84
  191. package/dist/src/utils/registry-broker.js +0 -62
  192. package/dist/src/utils/registry-identity.d.ts +0 -149
  193. package/dist/src/utils/registry-identity.js +0 -143
  194. package/dist/src/utils/scaffold-versions.d.ts +0 -41
  195. package/dist/src/utils/scaffold-versions.js +0 -42
  196. package/dist/src/utils/socks-forward.d.ts +0 -24
  197. package/dist/src/utils/socks-forward.js +2 -25
  198. package/dist/src/utils/stack-flag.d.ts +0 -13
  199. package/dist/src/utils/stack-flag.js +0 -21
  200. package/dist/src/utils/tailscale-targets.d.ts +0 -37
  201. package/dist/src/utils/tailscale-targets.js +0 -33
  202. package/dist/src/utils/tailscale.d.ts +0 -177
  203. package/dist/src/utils/tailscale.js +6 -337
  204. package/dist/src/utils/temporal-auth.d.ts +0 -41
  205. package/dist/src/utils/temporal-auth.js +0 -52
  206. package/dist/src/utils/temporal-codec.d.ts +0 -89
  207. package/dist/src/utils/temporal-codec.js.map +0 -1
  208. package/dist/src/utils/tunnel-ownership.d.ts +0 -79
  209. package/dist/src/utils/tunnel-ownership.js +0 -74
  210. package/dist/src/utils/vpn-join.d.ts +0 -16
  211. package/dist/src/utils/vpn-join.js +0 -17
  212. package/dist/src/utils/vpn.d.ts +0 -42
  213. package/dist/src/utils/vpn.js +0 -52
  214. package/dist/src/utils/workflow-fingerprint.d.ts +0 -39
  215. package/dist/src/utils/workflow-fingerprint.js +1 -63
  216. package/dist/src/utils/worktree-identity.d.ts +0 -62
  217. package/dist/src/utils/worktree-identity.js +0 -88
  218. package/package.json +1 -1
  219. package/skills/core/SKILL.md +10 -11
  220. package/templates/api-auth/api/src/index.ts.hbs +1 -1
  221. package/templates/api-auth/api/src/spicedb-http-provider.ts.hbs +2 -2
  222. package/templates/api-role-gating/api/src/authn.ts.hbs +2 -2
  223. package/templates/api-role-gating/index.ts.hbs +1 -1
  224. package/templates/api-role-gating/skills/develop/SKILL.md.hbs +1 -1
  225. package/templates/platform-repo/core/Pulumi.{{tenant}}-{{env}}.yaml.hbs +2 -2
  226. package/templates/platform-repo/platform/index.ts +1 -1
  227. package/dist/bin/mesh.d.ts.map +0 -1
  228. package/dist/src/commands/agent-api-client.d.ts.map +0 -1
  229. package/dist/src/commands/agent-api-client.js.map +0 -1
  230. package/dist/src/commands/app-check.d.ts.map +0 -1
  231. package/dist/src/commands/app-check.js.map +0 -1
  232. package/dist/src/commands/artifacts.d.ts.map +0 -1
  233. package/dist/src/commands/artifacts.js.map +0 -1
  234. package/dist/src/commands/cluster.d.ts.map +0 -1
  235. package/dist/src/commands/cluster.js.map +0 -1
  236. package/dist/src/commands/conversations.d.ts.map +0 -1
  237. package/dist/src/commands/conversations.js.map +0 -1
  238. package/dist/src/commands/create-app.d.ts.map +0 -1
  239. package/dist/src/commands/create-app.js.map +0 -1
  240. package/dist/src/commands/db/connect.d.ts.map +0 -1
  241. package/dist/src/commands/db/connect.js.map +0 -1
  242. package/dist/src/commands/db/credentials.d.ts.map +0 -1
  243. package/dist/src/commands/db/credentials.js.map +0 -1
  244. package/dist/src/commands/db/env.d.ts.map +0 -1
  245. package/dist/src/commands/db/env.js.map +0 -1
  246. package/dist/src/commands/db/exec.d.ts.map +0 -1
  247. package/dist/src/commands/db/exec.js.map +0 -1
  248. package/dist/src/commands/db/index.d.ts.map +0 -1
  249. package/dist/src/commands/db/index.js.map +0 -1
  250. package/dist/src/commands/db/psql.d.ts.map +0 -1
  251. package/dist/src/commands/db/psql.js.map +0 -1
  252. package/dist/src/commands/deploy.d.ts.map +0 -1
  253. package/dist/src/commands/deploy.js.map +0 -1
  254. package/dist/src/commands/dev-doctor.d.ts.map +0 -1
  255. package/dist/src/commands/dev-doctor.js.map +0 -1
  256. package/dist/src/commands/dev-launch.d.ts.map +0 -1
  257. package/dist/src/commands/dev-launch.js.map +0 -1
  258. package/dist/src/commands/dev-token-server.d.ts.map +0 -1
  259. package/dist/src/commands/dev-token-server.js.map +0 -1
  260. package/dist/src/commands/dev.d.ts.map +0 -1
  261. package/dist/src/commands/dev.js.map +0 -1
  262. package/dist/src/commands/docs.d.ts.map +0 -1
  263. package/dist/src/commands/docs.js.map +0 -1
  264. package/dist/src/commands/hub/index.d.ts.map +0 -1
  265. package/dist/src/commands/hub/index.js.map +0 -1
  266. package/dist/src/commands/init/wizard.d.ts.map +0 -1
  267. package/dist/src/commands/init/wizard.js.map +0 -1
  268. package/dist/src/commands/init.d.ts.map +0 -1
  269. package/dist/src/commands/init.js.map +0 -1
  270. package/dist/src/commands/install-shim.d.ts.map +0 -1
  271. package/dist/src/commands/install-shim.js.map +0 -1
  272. package/dist/src/commands/local/auth-provision.d.ts.map +0 -1
  273. package/dist/src/commands/local/auth-provision.js.map +0 -1
  274. package/dist/src/commands/local/dev-local.d.ts.map +0 -1
  275. package/dist/src/commands/local/dev-local.js.map +0 -1
  276. package/dist/src/commands/local/docker-runner.d.ts.map +0 -1
  277. package/dist/src/commands/local/docker-runner.js.map +0 -1
  278. package/dist/src/commands/local/helpers.d.ts.map +0 -1
  279. package/dist/src/commands/local/helpers.js.map +0 -1
  280. package/dist/src/commands/local/hub-local.d.ts.map +0 -1
  281. package/dist/src/commands/local/hub-local.js.map +0 -1
  282. package/dist/src/commands/local/index.d.ts.map +0 -1
  283. package/dist/src/commands/local/index.js.map +0 -1
  284. package/dist/src/commands/local/mocks.d.ts.map +0 -1
  285. package/dist/src/commands/local/mocks.js.map +0 -1
  286. package/dist/src/commands/local/seed-hub-catalog.d.ts.map +0 -1
  287. package/dist/src/commands/local/seed-hub-catalog.js.map +0 -1
  288. package/dist/src/commands/local/seed-zitadel.d.ts.map +0 -1
  289. package/dist/src/commands/local/seed-zitadel.js.map +0 -1
  290. package/dist/src/commands/local/seed.d.ts.map +0 -1
  291. package/dist/src/commands/local/seed.js.map +0 -1
  292. package/dist/src/commands/local/stack.d.ts.map +0 -1
  293. package/dist/src/commands/local/stack.js.map +0 -1
  294. package/dist/src/commands/login.d.ts.map +0 -1
  295. package/dist/src/commands/login.js.map +0 -1
  296. package/dist/src/commands/peer-addressing.d.ts.map +0 -1
  297. package/dist/src/commands/peer-addressing.js.map +0 -1
  298. package/dist/src/commands/port-ownership.d.ts.map +0 -1
  299. package/dist/src/commands/port-ownership.js.map +0 -1
  300. package/dist/src/commands/registry-publish.d.ts.map +0 -1
  301. package/dist/src/commands/registry-publish.js.map +0 -1
  302. package/dist/src/commands/registry.d.ts.map +0 -1
  303. package/dist/src/commands/registry.js.map +0 -1
  304. package/dist/src/commands/secrets/exec.d.ts.map +0 -1
  305. package/dist/src/commands/secrets/exec.js.map +0 -1
  306. package/dist/src/commands/secrets/index.d.ts.map +0 -1
  307. package/dist/src/commands/secrets/index.js.map +0 -1
  308. package/dist/src/commands/secrets/migrate-config.d.ts.map +0 -1
  309. package/dist/src/commands/secrets/migrate-config.js.map +0 -1
  310. package/dist/src/commands/secrets/reindex.d.ts.map +0 -1
  311. package/dist/src/commands/secrets/reindex.js.map +0 -1
  312. package/dist/src/commands/secrets/set.d.ts.map +0 -1
  313. package/dist/src/commands/secrets/set.js.map +0 -1
  314. package/dist/src/commands/site.d.ts.map +0 -1
  315. package/dist/src/commands/site.js.map +0 -1
  316. package/dist/src/commands/skills.d.ts.map +0 -1
  317. package/dist/src/commands/skills.js.map +0 -1
  318. package/dist/src/commands/stack.d.ts.map +0 -1
  319. package/dist/src/commands/stack.js.map +0 -1
  320. package/dist/src/commands/temporal.d.ts.map +0 -1
  321. package/dist/src/commands/tenant.d.ts.map +0 -1
  322. package/dist/src/commands/tenant.js.map +0 -1
  323. package/dist/src/commands/tunnel/index.d.ts.map +0 -1
  324. package/dist/src/commands/tunnel/index.js.map +0 -1
  325. package/dist/src/commands/vcs/clone.d.ts.map +0 -1
  326. package/dist/src/commands/vcs/clone.js.map +0 -1
  327. package/dist/src/commands/vcs/common.d.ts.map +0 -1
  328. package/dist/src/commands/vcs/common.js.map +0 -1
  329. package/dist/src/commands/vcs/drafts.d.ts.map +0 -1
  330. package/dist/src/commands/vcs/drafts.js.map +0 -1
  331. package/dist/src/commands/vcs/get.d.ts.map +0 -1
  332. package/dist/src/commands/vcs/get.js.map +0 -1
  333. package/dist/src/commands/vcs/index.d.ts.map +0 -1
  334. package/dist/src/commands/vcs/index.js.map +0 -1
  335. package/dist/src/commands/vcs/propose.d.ts.map +0 -1
  336. package/dist/src/commands/vcs/propose.js.map +0 -1
  337. package/dist/src/commands/vcs/review.d.ts.map +0 -1
  338. package/dist/src/commands/vcs/review.js.map +0 -1
  339. package/dist/src/commands/vcs/rm.d.ts.map +0 -1
  340. package/dist/src/commands/vcs/rm.js.map +0 -1
  341. package/dist/src/commands/vcs-enrich.d.ts.map +0 -1
  342. package/dist/src/commands/vcs-enrich.js.map +0 -1
  343. package/dist/src/commands/vpn/index.d.ts.map +0 -1
  344. package/dist/src/commands/vpn/index.js.map +0 -1
  345. package/dist/src/commands/vpn/tunnel.d.ts.map +0 -1
  346. package/dist/src/commands/vpn/tunnel.js.map +0 -1
  347. package/dist/src/commands/workflow.d.ts.map +0 -1
  348. package/dist/src/commands/workflow.js.map +0 -1
  349. package/dist/src/docs/assemble.d.ts.map +0 -1
  350. package/dist/src/docs/assemble.js.map +0 -1
  351. package/dist/src/docs/cli-reference.d.ts.map +0 -1
  352. package/dist/src/docs/cli-reference.js.map +0 -1
  353. package/dist/src/docs/discover.d.ts.map +0 -1
  354. package/dist/src/docs/discover.js.map +0 -1
  355. package/dist/src/docs/portal.d.ts.map +0 -1
  356. package/dist/src/docs/portal.js.map +0 -1
  357. package/dist/src/docs/registry-docs.d.ts.map +0 -1
  358. package/dist/src/docs/registry-docs.js.map +0 -1
  359. package/dist/src/docs/schema.d.ts.map +0 -1
  360. package/dist/src/docs/schema.js.map +0 -1
  361. package/dist/src/docs/serve.d.ts.map +0 -1
  362. package/dist/src/docs/serve.js.map +0 -1
  363. package/dist/src/docs/start.d.ts.map +0 -1
  364. package/dist/src/docs/start.js.map +0 -1
  365. package/dist/src/eval/agent-eval.d.mts.map +0 -1
  366. package/dist/src/eval/agent-eval.mjs.map +0 -1
  367. package/dist/src/index.d.ts.map +0 -1
  368. package/dist/src/program.d.ts.map +0 -1
  369. package/dist/src/program.js.map +0 -1
  370. package/dist/src/utils/auth-preflight.d.ts.map +0 -1
  371. package/dist/src/utils/auth-preflight.js.map +0 -1
  372. package/dist/src/utils/aws-auth.d.ts.map +0 -1
  373. package/dist/src/utils/aws-auth.js.map +0 -1
  374. package/dist/src/utils/bastion.d.ts.map +0 -1
  375. package/dist/src/utils/bastion.js.map +0 -1
  376. package/dist/src/utils/build-info.d.ts.map +0 -1
  377. package/dist/src/utils/build-info.js.map +0 -1
  378. package/dist/src/utils/cache-home.d.ts.map +0 -1
  379. package/dist/src/utils/cache-home.js.map +0 -1
  380. package/dist/src/utils/capture-history.d.ts.map +0 -1
  381. package/dist/src/utils/capture-history.js.map +0 -1
  382. package/dist/src/utils/context.d.ts.map +0 -1
  383. package/dist/src/utils/context.js.map +0 -1
  384. package/dist/src/utils/credentials.d.ts.map +0 -1
  385. package/dist/src/utils/credentials.js.map +0 -1
  386. package/dist/src/utils/deploy-preflight.d.ts.map +0 -1
  387. package/dist/src/utils/deploy-preflight.js.map +0 -1
  388. package/dist/src/utils/errors.d.ts.map +0 -1
  389. package/dist/src/utils/errors.js.map +0 -1
  390. package/dist/src/utils/first-party-contexts.d.ts.map +0 -1
  391. package/dist/src/utils/first-party-contexts.js.map +0 -1
  392. package/dist/src/utils/index.d.ts.map +0 -1
  393. package/dist/src/utils/index.js.map +0 -1
  394. package/dist/src/utils/kubeconfig.d.ts.map +0 -1
  395. package/dist/src/utils/kubeconfig.js.map +0 -1
  396. package/dist/src/utils/log.d.ts.map +0 -1
  397. package/dist/src/utils/log.js.map +0 -1
  398. package/dist/src/utils/mesh-json.d.ts.map +0 -1
  399. package/dist/src/utils/mesh-json.js.map +0 -1
  400. package/dist/src/utils/pid.d.ts.map +0 -1
  401. package/dist/src/utils/pid.js.map +0 -1
  402. package/dist/src/utils/pulumi-run.d.ts.map +0 -1
  403. package/dist/src/utils/pulumi-run.js.map +0 -1
  404. package/dist/src/utils/pulumi.d.ts.map +0 -1
  405. package/dist/src/utils/pulumi.js.map +0 -1
  406. package/dist/src/utils/reachability.d.ts.map +0 -1
  407. package/dist/src/utils/reachability.js.map +0 -1
  408. package/dist/src/utils/recover-conversation.d.ts.map +0 -1
  409. package/dist/src/utils/recover-conversation.js.map +0 -1
  410. package/dist/src/utils/registry-broker.d.ts.map +0 -1
  411. package/dist/src/utils/registry-broker.js.map +0 -1
  412. package/dist/src/utils/registry-identity.d.ts.map +0 -1
  413. package/dist/src/utils/registry-identity.js.map +0 -1
  414. package/dist/src/utils/scaffold-versions.d.ts.map +0 -1
  415. package/dist/src/utils/scaffold-versions.js.map +0 -1
  416. package/dist/src/utils/socks-forward.d.ts.map +0 -1
  417. package/dist/src/utils/socks-forward.js.map +0 -1
  418. package/dist/src/utils/stack-flag.d.ts.map +0 -1
  419. package/dist/src/utils/stack-flag.js.map +0 -1
  420. package/dist/src/utils/tailscale-targets.d.ts.map +0 -1
  421. package/dist/src/utils/tailscale-targets.js.map +0 -1
  422. package/dist/src/utils/tailscale.d.ts.map +0 -1
  423. package/dist/src/utils/tailscale.js.map +0 -1
  424. package/dist/src/utils/temporal-auth.d.ts.map +0 -1
  425. package/dist/src/utils/temporal-auth.js.map +0 -1
  426. package/dist/src/utils/temporal-codec.d.ts.map +0 -1
  427. package/dist/src/utils/tunnel-ownership.d.ts.map +0 -1
  428. package/dist/src/utils/tunnel-ownership.js.map +0 -1
  429. package/dist/src/utils/vpn-join.d.ts.map +0 -1
  430. package/dist/src/utils/vpn-join.js.map +0 -1
  431. package/dist/src/utils/vpn.d.ts.map +0 -1
  432. package/dist/src/utils/vpn.js.map +0 -1
  433. package/dist/src/utils/workflow-fingerprint.d.ts.map +0 -1
  434. package/dist/src/utils/workflow-fingerprint.js.map +0 -1
  435. package/dist/src/utils/worktree-identity.d.ts.map +0 -1
  436. package/dist/src/utils/worktree-identity.js.map +0 -1
package/README.md CHANGED
@@ -78,11 +78,12 @@ runs it for you.
78
78
  mesh init
79
79
  ```
80
80
 
81
- Run it in your `<tenant>-mesh-apps` clone (an empty one is fine). The wizard
82
- asks which tenant this repo belongs to and where it runs — *local only*
83
- (`mesh start` / `mesh dev`) or *a deployed Mesh platform* — then checks your
84
- registry access (signing you in if step 2 was skipped), bootstraps the repo
85
- layout, installs the agent skills, and prints a summary with the next command.
81
+ Run it in your `<tenant>-mesh-apps` clone, or in a brand-new empty folder — the
82
+ wizard runs `git init` there for you. It asks which tenant this repo belongs to
83
+ and where it runs — *local only* (`mesh start` / `mesh dev`) or *a deployed Mesh
84
+ platform* — then checks your registry access (signing you in if step 2 was
85
+ skipped), bootstraps the repo layout, installs the agent skills, and prints a
86
+ summary with the next command.
86
87
  Every answer has a flag, so a headless run is one line:
87
88
 
88
89
  ```bash
@@ -1,14 +1,2 @@
1
1
  #!/usr/bin/env node
2
- /**
3
- * mesh - CLI for Mesh Lab development utilities
4
- *
5
- * The command tree itself lives in `src/program.ts` so `mesh docs
6
- * cli-reference` can walk it without running the CLI. This file is only the
7
- * runner: resolve the version, build the program, parse.
8
- *
9
- * For the command list, run `mesh --help` or read the generated reference
10
- * (`docs/portal/generated/cli-reference.md`) — a hand-maintained list in this
11
- * header is exactly the kind of prose that goes stale.
12
- */
13
2
  export {};
14
- //# sourceMappingURL=mesh.d.ts.map
package/dist/bin/mesh.js CHANGED
@@ -2005,7 +2005,7 @@ function buildSquatterError(tenant, squatted, detail) {
2005
2005
  ` mesh vpn -t ${tenant} tunnel down --stop # tear down mesh-owned runners + daemon`,
2006
2006
  ` lsof -nP -iTCP:${first} -sTCP:LISTEN # identify what still holds the port`,
2007
2007
  ` then stop that process and re-run.`,
2008
- // Port blocks are a 63-bucket hash (MESH-2375), so a DIFFERENT tenant's
2008
+ // Port blocks are a 63-bucket hash, so a DIFFERENT tenant's
2009
2009
  // runner can collide onto this block — in which case the `down` above is a
2010
2010
  // no-op and only lsof identifies the real owner.
2011
2011
  ` (If lsof names another mesh runner, it belongs to a different tenant \u2014 tear that one down instead.)`
@@ -2373,13 +2373,13 @@ async function ensureForwarders(state) {
2373
2373
  const runnerAlive = prior?.managed === "launchd" ? fs8.existsSync(launchAgentPath(state.tenant)) : pidAlive(prior?.supervisorPid);
2374
2374
  if (prior && runnerAlive && tunnelTargetsEqual(prior.tunnels, state.tunnels) && // A prior supervisor spawned for a DIFFERENT SOCKS port still binds the same
2375
2375
  // local ports but dials a dead upstream — reusing it silently strands every
2376
- // tunnel (MESH-2169). The port must match, and the runner must PROVE it is
2376
+ // tunnel. The port must match, and the runner must PROVE it is
2377
2377
  // ours via the ownership handshake (liveness ≠ ownership — a port answering
2378
2378
  // a dial can be another session's SSM tunnel or an orphaned runner, #2991).
2379
2379
  // Poll briefly rather than sample once: `ports-not-listening` during the
2380
2380
  // runner's own rebind window and `no-control-answer` under load are
2381
2381
  // transient, and a single miss here would tear down a healthy runner SHARED
2382
- // by every concurrent session on the tenant (MESH-2014). This branch is
2382
+ // by every concurrent session on the tenant. This branch is
2383
2383
  // only reached when the runner is alive with matching targets, so the
2384
2384
  // retry costs nothing on cold-start or genuinely-dead paths.
2385
2385
  prior.socksPort === state.socksPort && (await awaitOwnership(state.tenant, expected, 1e3)).ok) {
@@ -8387,7 +8387,7 @@ async function probeTunnelHealth(tunnels) {
8387
8387
  // sees exactly what a dependent service would. Use the connection-HOLDS
8388
8388
  // probe, not a bare accept: a forwarder binds its local port even when its
8389
8389
  // upstream leg is dead (a dropped SSM session, or a Tailscale SOCKS bridge
8390
- // dialing a stale port — MESH-2169), so "port accepts" would report a dead
8390
+ // dialing a stale port), so "port accepts" would report a dead
8391
8391
  // tunnel as healthy. Holding briefly catches the accept-then-close teardown.
8392
8392
  reachable: await probeConnectionHolds(
8393
8393
  tun.host === "localhost" ? "127.0.0.1" : tun.host,
@@ -8945,7 +8945,7 @@ async function startServices(sessionName, appRoot, devOutput, headless, awsEnv,
8945
8945
  // wins over the tmux session env, the placeholder would clobber the
8946
8946
  // real token injected above — silently 401ing tenant-scoped Hub views.
8947
8947
  ...devUserVars,
8948
- // Per-worktree Temporal task-queue isolation (MESH-2013 Slice 2): agent
8948
+ // Per-worktree Temporal task-queue isolation: agent
8949
8949
  // workers/apps append this to their task-queue names so concurrent
8950
8950
  // worktrees don't steal each other's workflow tasks. Empty on the primary
8951
8951
  // checkout → omitted → unchanged historical behavior.
@@ -9597,7 +9597,7 @@ function registerDevCommand(program2) {
9597
9597
  }
9598
9598
  if (options.mock || options.externals) {
9599
9599
  logWarn(
9600
- "--externals/--mock is local-mode only for now (tethered dev outputs do not carry external declarations yet \u2014 MESH-1885). Continuing without them."
9600
+ "--externals/--mock is local-mode only for now (tethered dev outputs do not carry external declarations yet). Continuing without them."
9601
9601
  );
9602
9602
  }
9603
9603
  const stack = detectStack(appRoot, resolveStackOption(options));
@@ -12272,6 +12272,7 @@ __export(create_app_exports, {
12272
12272
  PLATFORM_MONOREPO_NAME: () => PLATFORM_MONOREPO_NAME,
12273
12273
  bootstrapAppsRepo: () => bootstrapAppsRepo,
12274
12274
  copyTemplate: () => copyTemplate,
12275
+ describeNoAppsHome: () => describeNoAppsHome,
12275
12276
  ensureRegistryAccess: () => ensureRegistryAccess,
12276
12277
  ensureWorkspaceGlobs: () => ensureWorkspaceGlobs,
12277
12278
  generateComposableApp: () => generateComposableApp,
@@ -12461,6 +12462,18 @@ function parsePrimitives(input2) {
12461
12462
  }
12462
12463
  return selected;
12463
12464
  }
12465
+ function describeNoAppsHome(cwd, tenant, baseDir, test) {
12466
+ if (test || isInsidePlatformMonorepo(cwd)) {
12467
+ return {
12468
+ message: `Tenant directory not found: ${baseDir}/${tenant}/`,
12469
+ hint: "Create the tenant directory first, or run from within it."
12470
+ };
12471
+ }
12472
+ return {
12473
+ message: `This directory is not a Mesh apps repo \u2014 no apps/ here${fs23.existsSync(path25.join(cwd, ".git")) ? "" : " and it is not a git repo"}.`,
12474
+ hint: `Run: mesh init (turns this folder into your ${tenant}-mesh-apps repo), or cd into that repo and re-run mesh create-app.`
12475
+ };
12476
+ }
12464
12477
  function resolveAppDir(cwd, tenant, name, test) {
12465
12478
  const baseDir = test ? "tests/tenants" : "tenants";
12466
12479
  const possiblePaths = test ? [path25.join(cwd, baseDir, tenant, "apps")] : [
@@ -12472,8 +12485,9 @@ function resolveAppDir(cwd, tenant, name, test) {
12472
12485
  if (!appsDir) {
12473
12486
  appsDir = path25.join(cwd, baseDir, tenant, "apps");
12474
12487
  if (!fs23.existsSync(path25.join(cwd, baseDir, tenant))) {
12475
- logError(`Tenant directory not found: ${baseDir}/${tenant}/`);
12476
- logInfo("Create the tenant directory first, or run from within it.");
12488
+ const { message, hint } = describeNoAppsHome(cwd, tenant, baseDir, test);
12489
+ logError(message);
12490
+ logInfo(hint);
12477
12491
  process.exit(1);
12478
12492
  }
12479
12493
  if (!fs23.existsSync(appsDir)) {
@@ -13514,7 +13528,7 @@ function formatStaleDepsError(mismatches) {
13514
13528
  lines.push(
13515
13529
  "",
13516
13530
  " A stale node_modules makes pulumi evaluate OLD component code and can plan to",
13517
- " DELETE resources the current code would keep (MESH-2266). Fix:",
13531
+ " DELETE resources the current code would keep. Fix:",
13518
13532
  "",
13519
13533
  " pnpm install",
13520
13534
  "",
@@ -15793,7 +15807,7 @@ function assembleHubEnv(session, sessionEnv, opts) {
15793
15807
  }
15794
15808
  if (!forwarded.DEV_USER_TOKEN_URL) {
15795
15809
  notes.push(
15796
- "Dev session predates the per-session token-server (MESH-2039) \u2014 starting a dedicated one so tokens stay fresh past ~1h."
15810
+ "Dev session predates the per-session token-server \u2014 starting a dedicated one so tokens stay fresh past ~1h."
15797
15811
  );
15798
15812
  }
15799
15813
  const temporalAddress = sessionEnv.TEMPORAL_ADDRESS ?? (session.state.devOutput.tunnels["temporal"] ? tunnelClientAddress(session.state.devOutput.tunnels["temporal"]) : (
@@ -16300,7 +16314,7 @@ function resolvePublisherRoleArn({
16300
16314
  const resolved = roleArnFlag || ssmArn;
16301
16315
  if (!resolved) {
16302
16316
  throw new Error(
16303
- "No publisher role: pass --role or ensure the registry stack exported publisherRoleArn (MESH-2168)."
16317
+ "No publisher role: pass --role or ensure the registry stack exported publisherRoleArn."
16304
16318
  );
16305
16319
  }
16306
16320
  return resolved;
@@ -16887,6 +16901,7 @@ var init_registry = __esm({
16887
16901
  // libs/mesh-cli/src/commands/init/wizard.ts
16888
16902
  var wizard_exports = {};
16889
16903
  __export(wizard_exports, {
16904
+ INIT_REPO_FIX: () => INIT_REPO_FIX,
16890
16905
  INTERRUPTED_EXIT_CODE: () => INTERRUPTED_EXIT_CODE,
16891
16906
  NO_SESSION_NO_TTY_MESSAGE: () => NO_SESSION_NO_TTY_MESSAGE,
16892
16907
  TENANT_REQUIRED_MESSAGE: () => TENANT_REQUIRED_MESSAGE,
@@ -16895,6 +16910,7 @@ __export(wizard_exports, {
16895
16910
  describeMode: () => describeMode,
16896
16911
  registryStep: () => registryStep,
16897
16912
  renderWizardSummary: () => renderWizardSummary,
16913
+ repoStep: () => repoStep,
16898
16914
  resolveAnswers: () => resolveAnswers,
16899
16915
  runInitWizard: () => runInitWizard,
16900
16916
  runWizardSteps: () => runWizardSteps,
@@ -16904,12 +16920,15 @@ __export(wizard_exports, {
16904
16920
  });
16905
16921
  import * as fs30 from "fs";
16906
16922
  import * as path37 from "path";
16923
+ import { execFileSync as execFileSync25 } from "child_process";
16907
16924
  import chalk4 from "chalk";
16908
16925
  function wizardExitCode(steps) {
16909
16926
  return steps.some((s) => s.status === "fail") ? 1 : 0;
16910
16927
  }
16911
- function wizardNextCommands(mode) {
16912
- return mode === "local" ? ["mesh create-app"] : ["mesh create-app", "mesh deploy up # from the app directory, once it exists"];
16928
+ function wizardNextCommands(mode, steps = []) {
16929
+ const repo = steps.find((s) => s.name === STEP_LABELS.repo);
16930
+ const first = repo && repo.status !== "pass" && repo.fix ? repo.fix : "mesh create-app";
16931
+ return mode === "local" ? [first] : [first, "mesh deploy up # from the app directory, once it exists"];
16913
16932
  }
16914
16933
  function stepBlocks(result) {
16915
16934
  return result.status === "fail" && result.blocking !== false;
@@ -16958,12 +16977,18 @@ function classifyRepo(cwd) {
16958
16977
  if (shouldBootstrapAppsRepo(cwd)) return { kind: "empty-apps-repo", root: cwd };
16959
16978
  const root = resolveTargetRoot(cwd);
16960
16979
  const inRepo = fs30.existsSync(path37.join(root, ".git"));
16961
- if (!inRepo) return { kind: "no-repo", root };
16980
+ if (!inRepo) {
16981
+ const hasContent = fs30.readdirSync(cwd).some((entry) => !entry.startsWith("."));
16982
+ return { kind: hasContent ? "no-repo" : "empty-dir", root: cwd };
16983
+ }
16962
16984
  const hasWorkspace = fs30.existsSync(path37.join(root, "pnpm-workspace.yaml")) || fs30.existsSync(path37.join(root, "pnpm-lock.yaml"));
16963
16985
  const hasApps = fs30.existsSync(path37.join(root, "apps")) || fs30.existsSync(path37.join(root, "tenants"));
16964
16986
  if (hasWorkspace || hasApps) return { kind: "apps-repo", root };
16965
16987
  return { kind: "other-repo", root };
16966
16988
  }
16989
+ function gitInit(dir) {
16990
+ execFileSync25("git", ["init", "-q"], { cwd: dir, stdio: ["ignore", "ignore", "pipe"] });
16991
+ }
16967
16992
  async function runWizardSteps(ctx, steps) {
16968
16993
  const results = [];
16969
16994
  for (const step of steps) {
@@ -17055,7 +17080,7 @@ async function runInitWizard(opts, deps = {}) {
17055
17080
  const written = writeMeshJson(root, { tenant, platform: mode === "local" ? "local" : mode.platform });
17056
17081
  logInfo(`Recorded tenant + mode in ${written}`);
17057
17082
  }
17058
- const outcome = { tenant, mode, steps, next: wizardNextCommands(mode) };
17083
+ const outcome = { tenant, mode, steps, next: wizardNextCommands(mode, steps) };
17059
17084
  const code = wizardExitCode(steps);
17060
17085
  if (opts.json) {
17061
17086
  console.log = origLog;
@@ -17077,7 +17102,7 @@ async function runInitWizard(opts, deps = {}) {
17077
17102
  console.log = origLog;
17078
17103
  }
17079
17104
  }
17080
- var NO_SESSION_NO_TTY_MESSAGE, TENANT_REQUIRED_MESSAGE, INTERRUPTED_EXIT_CODE, STEP_LABELS, registryStep, platformStep, repoStep, skillsStep, WIZARD_STEPS;
17105
+ var NO_SESSION_NO_TTY_MESSAGE, TENANT_REQUIRED_MESSAGE, INTERRUPTED_EXIT_CODE, STEP_LABELS, registryStep, platformStep, INIT_REPO_FIX, repoStep, skillsStep, WIZARD_STEPS;
17081
17106
  var init_wizard = __esm({
17082
17107
  "libs/mesh-cli/src/commands/init/wizard.ts"() {
17083
17108
  "use strict";
@@ -17181,6 +17206,7 @@ var init_wizard = __esm({
17181
17206
  };
17182
17207
  }
17183
17208
  };
17209
+ INIT_REPO_FIX = "git init && mesh init";
17184
17210
  repoStep = {
17185
17211
  name: "repo",
17186
17212
  async run(ctx) {
@@ -17190,11 +17216,34 @@ var init_wizard = __esm({
17190
17216
  switch (kind) {
17191
17217
  case "platform-monorepo":
17192
17218
  return { name, status: "skip", detail: "inside mesh-platform \u2014 apps here link workspace packages; nothing to set up" };
17219
+ case "empty-dir": {
17220
+ const go = ctx.yes || !ctx.interactive ? true : await ctx.prompts.confirm({
17221
+ message: `This folder is not a git repo \u2014 initialize ${root} as your ${ctx.tenant}-mesh-apps repo here?`,
17222
+ default: true
17223
+ });
17224
+ if (!go) {
17225
+ return { name, status: "skip", detail: "folder left as is", fix: `cd <your ${ctx.tenant}-mesh-apps clone> && mesh init` };
17226
+ }
17227
+ try {
17228
+ (ctx.seams?.gitInit ?? gitInit)(root);
17229
+ } catch (err) {
17230
+ const why = err instanceof Error && "stderr" in err && err.stderr ? String(err.stderr).trim() : "";
17231
+ return {
17232
+ name,
17233
+ status: "fail",
17234
+ detail: `git init failed \u2014 is git installed and ${root} writable?${why ? ` (${why})` : ""}`,
17235
+ fix: INIT_REPO_FIX
17236
+ };
17237
+ }
17238
+ const created = bootstrapAppsRepo(root, ctx.tenant);
17239
+ return { name, status: "pass", detail: `initialized a git repo and bootstrapped the apps repo: ${created.join(", ")}` };
17240
+ }
17193
17241
  case "no-repo":
17194
17242
  return {
17195
17243
  name,
17196
17244
  status: "skip",
17197
- detail: `not in a git repo \u2014 clone (or git init) your ${ctx.tenant}-mesh-apps repo and re-run mesh init there`
17245
+ detail: `not in a git repo, and this folder already holds files \u2014 clone (or git init) your ${ctx.tenant}-mesh-apps repo and re-run mesh init there`,
17246
+ fix: INIT_REPO_FIX
17198
17247
  };
17199
17248
  case "other-repo":
17200
17249
  return {
@@ -17533,19 +17582,19 @@ var init_init = __esm({
17533
17582
  });
17534
17583
 
17535
17584
  // libs/mesh-cli/src/commands/install-shim.ts
17536
- import { execFileSync as execFileSync25 } from "child_process";
17585
+ import { execFileSync as execFileSync26 } from "child_process";
17537
17586
  import * as fs32 from "fs";
17538
17587
  import * as os10 from "os";
17539
17588
  import * as path39 from "path";
17540
17589
  function shimScript() {
17541
17590
  return `#!/bin/sh
17542
- # mesh \u2014 canonical launcher shim (installed by \`mesh install-shim\`, MESH-2261).
17591
+ # mesh \u2014 canonical launcher shim (installed by \`mesh install-shim\`).
17543
17592
  # Walks up from the current directory to the nearest workspace mesh CLI and runs
17544
17593
  # it. That resolves to bin/mesh.mjs, which runs the CLI from TypeScript source \u2014
17545
17594
  # so this always runs the LOCAL source of whatever worktree/app you are in, with
17546
17595
  # no build step. Nothing here is version-pinned; do not edit by hand.
17547
17596
  #
17548
- # Outside a workspace it hands off to a globally installed mesh CLI (MESH-2869).
17597
+ # Outside a workspace it hands off to a globally installed mesh CLI.
17549
17598
  # Without that hand-off the shim shadows \`npm i -g @mesh-tech/mesh-cli\` on the
17550
17599
  # PATH and \`mesh login\` is unreachable from the home directory \u2014 which is the
17551
17600
  # very first thing a new developer runs.
@@ -17646,7 +17695,7 @@ function registerInstallShimCommand(program2) {
17646
17695
  let status = 0;
17647
17696
  let ok = true;
17648
17697
  try {
17649
- stdout = execFileSync25(target, ["--help"], {
17698
+ stdout = execFileSync26(target, ["--help"], {
17650
17699
  cwd: process.cwd(),
17651
17700
  encoding: "utf8",
17652
17701
  stdio: ["ignore", "pipe", "pipe"]
@@ -17693,7 +17742,7 @@ var init_install_shim = __esm({
17693
17742
  });
17694
17743
 
17695
17744
  // libs/mesh-cli/src/commands/local/hub-local.ts
17696
- import { execFile as execFile3, execFileSync as execFileSync26 } from "child_process";
17745
+ import { execFile as execFile3, execFileSync as execFileSync27 } from "child_process";
17697
17746
  import * as fs33 from "fs";
17698
17747
  import * as os11 from "os";
17699
17748
  import * as path40 from "path";
@@ -17713,7 +17762,7 @@ function npmrcPath() {
17713
17762
  }
17714
17763
  function imageExists(tag) {
17715
17764
  try {
17716
- execFileSync26("docker", ["image", "inspect", tag], { stdio: ["ignore", "pipe", "pipe"] });
17765
+ execFileSync27("docker", ["image", "inspect", tag], { stdio: ["ignore", "pipe", "pipe"] });
17717
17766
  return true;
17718
17767
  } catch {
17719
17768
  return false;
@@ -17723,7 +17772,7 @@ function ensureHubAuthImage() {
17723
17772
  if (imageExists(HUB_AUTH_IMAGE)) return;
17724
17773
  logInfo(`Building ${HUB_AUTH_IMAGE} (Hub auth proxy)\u2026`);
17725
17774
  const hubStackDir = path40.join(findPackageRoot(), "stack", "hub");
17726
- execFileSync26(
17775
+ execFileSync27(
17727
17776
  "docker",
17728
17777
  ["build", "-f", path40.join(hubStackDir, "Dockerfile.auth"), "-t", HUB_AUTH_IMAGE, hubStackDir],
17729
17778
  { stdio: ["ignore", "inherit", "inherit"], env: { ...process.env, DOCKER_BUILDKIT: "1" } }
@@ -17737,7 +17786,7 @@ function hasRegistryAuth() {
17737
17786
  function localHubVersion() {
17738
17787
  const versions = HUB_IMAGES.map((name) => {
17739
17788
  try {
17740
- const out = execFileSync26("docker", ["images", name, "--format", "{{.Tag}}"], {
17789
+ const out = execFileSync27("docker", ["images", name, "--format", "{{.Tag}}"], {
17741
17790
  encoding: "utf-8",
17742
17791
  stdio: ["ignore", "pipe", "pipe"]
17743
17792
  });
@@ -17816,7 +17865,7 @@ async function ensureHubImages() {
17816
17865
  const context = path40.join(cacheDir(), `context-${version}`);
17817
17866
  fs33.rmSync(context, { recursive: true, force: true });
17818
17867
  fs33.mkdirSync(context, { recursive: true });
17819
- execFileSync26("tar", ["-xzf", tarball, "-C", context, "--strip-components", "1"], {
17868
+ execFileSync27("tar", ["-xzf", tarball, "-C", context, "--strip-components", "1"], {
17820
17869
  stdio: ["ignore", "pipe", "pipe"]
17821
17870
  });
17822
17871
  const hubStackDir = path40.join(findPackageRoot(), "stack", "hub");
@@ -17827,7 +17876,7 @@ async function ensureHubImages() {
17827
17876
  const tag = `${name}:${version}`;
17828
17877
  if (imageExists(tag)) continue;
17829
17878
  logInfo(`Building ${tag} from the published tarball\u2026`);
17830
- execFileSync26(
17879
+ execFileSync27(
17831
17880
  "docker",
17832
17881
  [
17833
17882
  "build",
@@ -17857,7 +17906,7 @@ function readHubCompiledAuthz(version) {
17857
17906
  if (!tarball || !fs33.existsSync(path40.join(cacheDir(), tarball))) return null;
17858
17907
  fs33.mkdirSync(context, { recursive: true });
17859
17908
  try {
17860
- execFileSync26(
17909
+ execFileSync27(
17861
17910
  "tar",
17862
17911
  ["-xzf", path40.join(cacheDir(), tarball), "-C", context, "--strip-components", "1", `package/${HUB_COMPILED_AUTHZ_REL}`],
17863
17912
  { stdio: ["ignore", "pipe", "pipe"] }
@@ -17951,7 +18000,7 @@ async function buildHubImagesFromSource(repoRoot2) {
17951
18000
  await execFileAsync2("pnpm", ["pack", "--pack-destination", context], { cwd: hubDir, maxBuffer: 64 * 1024 * 1024 });
17952
18001
  const tarball = fs33.readdirSync(context).find((f) => f.endsWith(".tgz"));
17953
18002
  if (!tarball) throw new MeshCliError("pnpm pack produced no tarball for apps/hub");
17954
- execFileSync26("tar", ["-xzf", path40.join(context, tarball), "-C", context, "--strip-components", "1"], {
18003
+ execFileSync27("tar", ["-xzf", path40.join(context, tarball), "-C", context, "--strip-components", "1"], {
17955
18004
  stdio: ["ignore", "pipe", "pipe"]
17956
18005
  });
17957
18006
  const rewritten = normalizeHubManifests(context, readWorkspaceCatalog(repoRoot2));
@@ -17963,7 +18012,7 @@ async function buildHubImagesFromSource(repoRoot2) {
17963
18012
  ]) {
17964
18013
  const tag = `${name}:${version}`;
17965
18014
  logInfo(`Building ${tag} from source\u2026`);
17966
- execFileSync26(
18015
+ execFileSync27(
17967
18016
  "docker",
17968
18017
  ["build", "-f", path40.join(hubStackDir, dockerfile), "-t", tag, "--secret", `id=npmrc,src=${npmrc}`, context],
17969
18018
  { stdio: ["ignore", "inherit", "inherit"], env: { ...process.env, DOCKER_BUILDKIT: "1" } }
@@ -19595,7 +19644,7 @@ var init_site = __esm({
19595
19644
  });
19596
19645
 
19597
19646
  // libs/mesh-cli/src/commands/stack.ts
19598
- import { execFileSync as execFileSync27 } from "child_process";
19647
+ import { execFileSync as execFileSync28 } from "child_process";
19599
19648
  import * as path42 from "path";
19600
19649
  import * as fs35 from "fs";
19601
19650
  import { parse as parseYaml5 } from "yaml";
@@ -19688,7 +19737,7 @@ function readBaseConfigFromYaml(appRoot, stack) {
19688
19737
  }
19689
19738
  function getGitHubUsername() {
19690
19739
  try {
19691
- const result = execFileSync27("gh", ["api", "user", "--jq", ".login"], {
19740
+ const result = execFileSync28("gh", ["api", "user", "--jq", ".login"], {
19692
19741
  encoding: "utf-8",
19693
19742
  stdio: ["pipe", "pipe", "pipe"]
19694
19743
  });
@@ -19697,7 +19746,7 @@ function getGitHubUsername() {
19697
19746
  } catch {
19698
19747
  }
19699
19748
  try {
19700
- const result = execFileSync27("git", ["config", "user.email"], {
19749
+ const result = execFileSync28("git", ["config", "user.email"], {
19701
19750
  encoding: "utf-8",
19702
19751
  stdio: ["pipe", "pipe", "pipe"]
19703
19752
  });
@@ -19719,7 +19768,7 @@ function registerStackCommand(program2) {
19719
19768
  false
19720
19769
  ).option(
19721
19770
  "--parent-zone <zone>",
19722
- "With --platform: parent DNS zone for the env zone (mesh:dns.public.parentZone) \u2014 platform hostnames become {sub}.{env}.{parentZone} (e.g. hub.dmb-dev.mesh.meshtech.io), so personal stacks never collide on DNS"
19771
+ "With --platform: parent DNS zone for the env zone (mesh:dns.public.parentZone) \u2014 platform hostnames become {sub}.{env}.{parentZone} (e.g. hub.<env>.<parentZone>), so personal stacks never collide on DNS"
19723
19772
  ).action(async (opts) => {
19724
19773
  const appRoot = findAppRoot(process.cwd());
19725
19774
  if (!appRoot) {
@@ -19783,7 +19832,7 @@ Specify which to base on: mesh stack init --from <stack>`
19783
19832
  if (!opts.adopt) {
19784
19833
  let existing = [];
19785
19834
  try {
19786
- const raw = execFileSync27("pulumi", ["stack", "ls", "--json"], {
19835
+ const raw = execFileSync28("pulumi", ["stack", "ls", "--json"], {
19787
19836
  cwd: appRoot,
19788
19837
  encoding: "utf-8",
19789
19838
  env: pulumiEnv,
@@ -19807,7 +19856,7 @@ Specify which to base on: mesh stack init --from <stack>`
19807
19856
  logInfo(`Using KMS secrets provider: ${secretsProvider}`);
19808
19857
  }
19809
19858
  try {
19810
- execFileSync27("pulumi", initArgs, {
19859
+ execFileSync28("pulumi", initArgs, {
19811
19860
  cwd: appRoot,
19812
19861
  env: pulumiEnv,
19813
19862
  stdio: "inherit"
@@ -19824,7 +19873,7 @@ Specify which to base on: mesh stack init --from <stack>`
19824
19873
  }
19825
19874
  }
19826
19875
  try {
19827
- execFileSync27("pulumi", ["stack", "select", newStack], {
19876
+ execFileSync28("pulumi", ["stack", "select", newStack], {
19828
19877
  cwd: appRoot,
19829
19878
  env: pulumiEnv,
19830
19879
  stdio: ["pipe", "pipe", "pipe"]
@@ -19834,7 +19883,7 @@ Specify which to base on: mesh stack init --from <stack>`
19834
19883
  if (!configExists) {
19835
19884
  let baseConfig = {};
19836
19885
  try {
19837
- const raw = execFileSync27(
19886
+ const raw = execFileSync28(
19838
19887
  "pulumi",
19839
19888
  ["config", "--json", "--stack", baseStack],
19840
19889
  { cwd: appRoot, env: pulumiEnv, encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }
@@ -19852,19 +19901,19 @@ Specify which to base on: mesh stack init --from <stack>`
19852
19901
  if (key === "mesh:deploy") continue;
19853
19902
  try {
19854
19903
  if (entry.objectValue !== void 0) {
19855
- execFileSync27(
19904
+ execFileSync28(
19856
19905
  "pulumi",
19857
19906
  ["config", "set", key, JSON.stringify(entry.objectValue)],
19858
19907
  { cwd: appRoot, env: pulumiEnv, stdio: ["pipe", "pipe", "pipe"] }
19859
19908
  );
19860
19909
  } else if (entry.value === "true" || entry.value === "false") {
19861
- execFileSync27(
19910
+ execFileSync28(
19862
19911
  "pulumi",
19863
19912
  ["config", "set", "--type", "bool", key, entry.value],
19864
19913
  { cwd: appRoot, env: pulumiEnv, stdio: ["pipe", "pipe", "pipe"] }
19865
19914
  );
19866
19915
  } else {
19867
- execFileSync27(
19916
+ execFileSync28(
19868
19917
  "pulumi",
19869
19918
  ["config", "set", key, entry.value],
19870
19919
  { cwd: appRoot, env: pulumiEnv, stdio: ["pipe", "pipe", "pipe"] }
@@ -19877,7 +19926,7 @@ Specify which to base on: mesh stack init --from <stack>`
19877
19926
  const baseEnv = readConfigBlockKey(appRoot, baseStack, "mesh:coreEnv") ?? (baseTenant && baseStack.startsWith(`${baseTenant}-`) ? baseStack.slice(baseTenant.length + 1) : baseStack);
19878
19927
  const setCfg = (args) => {
19879
19928
  try {
19880
- execFileSync27("pulumi", ["config", "set", ...args], {
19929
+ execFileSync28("pulumi", ["config", "set", ...args], {
19881
19930
  cwd: appRoot,
19882
19931
  env: pulumiEnv,
19883
19932
  stdio: ["pipe", "pipe", "pipe"]
@@ -19926,7 +19975,7 @@ Specify which to base on: mesh stack init --from <stack>`
19926
19975
  `Configured Pulumi.${newStack}.yaml (personal platform env on core '${baseEnv}'${opts.parentZone ? `, DNS zone ${newStack.startsWith(`${baseTenant}-`) ? newStack.slice(baseTenant.length + 1) : newStack}.${opts.parentZone}` : ""})`
19927
19976
  );
19928
19977
  } else {
19929
- execFileSync27("pulumi", ["config", "set", "--type", "bool", "mesh:deploy", "false"], {
19978
+ execFileSync28("pulumi", ["config", "set", "--type", "bool", "mesh:deploy", "false"], {
19930
19979
  cwd: appRoot,
19931
19980
  env: pulumiEnv,
19932
19981
  stdio: ["pipe", "pipe", "pipe"]
@@ -19956,7 +20005,7 @@ Specify which to base on: mesh stack init --from <stack>`
19956
20005
  const args = ["stack", "rm", name];
19957
20006
  if (opts.yes) args.push("--yes");
19958
20007
  try {
19959
- execFileSync27("pulumi", args, { cwd: appRoot, env: pulumiEnv, stdio: "inherit" });
20008
+ execFileSync28("pulumi", args, { cwd: appRoot, env: pulumiEnv, stdio: "inherit" });
19960
20009
  logSuccess(`Removed stack ${name}`);
19961
20010
  } catch (err) {
19962
20011
  process.exit(err.status ?? 1);
@@ -20168,12 +20217,12 @@ var init_recover_conversation = __esm({
20168
20217
  });
20169
20218
 
20170
20219
  // libs/mesh-cli/src/utils/temporal-codec.ts
20171
- import { execFileSync as execFileSync28 } from "child_process";
20220
+ import { execFileSync as execFileSync29 } from "child_process";
20172
20221
  import { webcrypto as crypto4 } from "node:crypto";
20173
20222
  function resolveTemporalEncodingKeyFromK8s(namespace) {
20174
20223
  const secretName = `${namespace}-temporal-encoding-key`;
20175
20224
  try {
20176
- const b64 = execFileSync28(
20225
+ const b64 = execFileSync29(
20177
20226
  "kubectl",
20178
20227
  [
20179
20228
  "get",
@@ -23513,7 +23562,7 @@ var init_src4 = __esm({
23513
23562
  import * as fs38 from "fs";
23514
23563
  import * as path45 from "path";
23515
23564
  import { createRequire as createRequire2 } from "module";
23516
- import { execFileSync as execFileSync29 } from "child_process";
23565
+ import { execFileSync as execFileSync30 } from "child_process";
23517
23566
  function resolveExtractorPath() {
23518
23567
  try {
23519
23568
  const require2 = createRequire2(import.meta.url);
@@ -23568,7 +23617,7 @@ for (const file of files) {
23568
23617
  process.stdout.write(JSON.stringify(results));
23569
23618
  `;
23570
23619
  try {
23571
- const result = execFileSync29("npx", ["tsx", "--eval", script], {
23620
+ const result = execFileSync30("npx", ["tsx", "--eval", script], {
23572
23621
  encoding: "utf-8",
23573
23622
  stdio: ["pipe", "pipe", "inherit"],
23574
23623
  maxBuffer: 10 * 1024 * 1024
@@ -23610,7 +23659,7 @@ for (const file of files) {
23610
23659
  process.stdout.write(JSON.stringify(results));
23611
23660
  `;
23612
23661
  try {
23613
- const result = execFileSync29("npx", ["tsx", "--eval", script], {
23662
+ const result = execFileSync30("npx", ["tsx", "--eval", script], {
23614
23663
  encoding: "utf-8",
23615
23664
  stdio: ["pipe", "pipe", "inherit"],
23616
23665
  maxBuffer: 10 * 1024 * 1024
@@ -23665,7 +23714,7 @@ for (const file of files) {
23665
23714
  process.stdout.write(JSON.stringify(results));
23666
23715
  `;
23667
23716
  try {
23668
- const result = execFileSync29("npx", ["tsx", "--eval", script], {
23717
+ const result = execFileSync30("npx", ["tsx", "--eval", script], {
23669
23718
  encoding: "utf-8",
23670
23719
  stdio: ["pipe", "pipe", "inherit"],
23671
23720
  maxBuffer: 10 * 1024 * 1024