@mesh-tech/mesh-cli 0.1.0 → 0.12.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 (504) hide show
  1. package/assets/intent/agents-fence.md +10 -0
  2. package/assets/intent/intent-claude-gate.mjs +255 -0
  3. package/assets/log-shipper.mjs +94 -0
  4. package/bin/mesh.mjs +80 -0
  5. package/dist/bin/mesh.d.ts +7 -9
  6. package/dist/bin/mesh.d.ts.map +1 -1
  7. package/dist/bin/mesh.js +20826 -37
  8. package/dist/bin/mesh.js.map +7 -1
  9. package/dist/build-info.json +4 -0
  10. package/dist/src/commands/agent-api-client.d.ts +79 -0
  11. package/dist/src/commands/agent-api-client.d.ts.map +1 -0
  12. package/dist/src/commands/agent-api-client.js +170 -0
  13. package/dist/src/commands/agent-api-client.js.map +1 -0
  14. package/dist/src/commands/artifacts.d.ts +13 -0
  15. package/dist/src/commands/artifacts.d.ts.map +1 -0
  16. package/dist/src/commands/artifacts.js +140 -0
  17. package/dist/src/commands/artifacts.js.map +1 -0
  18. package/dist/src/commands/cluster.d.ts +45 -0
  19. package/dist/src/commands/cluster.d.ts.map +1 -0
  20. package/dist/src/commands/cluster.js +259 -0
  21. package/dist/src/commands/cluster.js.map +1 -0
  22. package/dist/src/commands/conversations.d.ts +61 -0
  23. package/dist/src/commands/conversations.d.ts.map +1 -0
  24. package/dist/src/commands/conversations.js +239 -0
  25. package/dist/src/commands/conversations.js.map +1 -0
  26. package/dist/src/commands/create-app.d.ts +26 -3
  27. package/dist/src/commands/create-app.d.ts.map +1 -1
  28. package/dist/src/commands/create-app.js +465 -107
  29. package/dist/src/commands/create-app.js.map +1 -1
  30. package/dist/src/commands/deploy.d.ts +19 -0
  31. package/dist/src/commands/deploy.d.ts.map +1 -1
  32. package/dist/src/commands/deploy.js +83 -142
  33. package/dist/src/commands/deploy.js.map +1 -1
  34. package/dist/src/commands/dev-doctor.d.ts +137 -0
  35. package/dist/src/commands/dev-doctor.d.ts.map +1 -0
  36. package/dist/src/commands/dev-doctor.js +671 -0
  37. package/dist/src/commands/dev-doctor.js.map +1 -0
  38. package/dist/src/commands/dev-launch.d.ts +59 -0
  39. package/dist/src/commands/dev-launch.d.ts.map +1 -0
  40. package/dist/src/commands/dev-launch.js +118 -0
  41. package/dist/src/commands/dev-launch.js.map +1 -0
  42. package/dist/src/commands/dev-token-server.d.ts +32 -0
  43. package/dist/src/commands/dev-token-server.d.ts.map +1 -0
  44. package/dist/src/commands/dev-token-server.js +68 -0
  45. package/dist/src/commands/dev-token-server.js.map +1 -0
  46. package/dist/src/commands/dev.d.ts +289 -2
  47. package/dist/src/commands/dev.d.ts.map +1 -1
  48. package/dist/src/commands/dev.js +2501 -574
  49. package/dist/src/commands/dev.js.map +1 -1
  50. package/dist/src/commands/docs.d.ts +3 -0
  51. package/dist/src/commands/docs.d.ts.map +1 -0
  52. package/dist/src/commands/docs.js +262 -0
  53. package/dist/src/commands/docs.js.map +1 -0
  54. package/dist/src/commands/hub/index.d.ts +99 -0
  55. package/dist/src/commands/hub/index.d.ts.map +1 -0
  56. package/dist/src/commands/hub/index.js +452 -0
  57. package/dist/src/commands/hub/index.js.map +1 -0
  58. package/dist/src/commands/init.d.ts +65 -0
  59. package/dist/src/commands/init.d.ts.map +1 -0
  60. package/dist/src/commands/init.js +370 -0
  61. package/dist/src/commands/init.js.map +1 -0
  62. package/dist/src/commands/install-shim.d.ts +21 -0
  63. package/dist/src/commands/install-shim.d.ts.map +1 -0
  64. package/dist/src/commands/install-shim.js +132 -0
  65. package/dist/src/commands/install-shim.js.map +1 -0
  66. package/dist/src/commands/local/auth-provision.d.ts +71 -0
  67. package/dist/src/commands/local/auth-provision.d.ts.map +1 -0
  68. package/dist/src/commands/local/auth-provision.js +286 -0
  69. package/dist/src/commands/local/auth-provision.js.map +1 -0
  70. package/dist/src/commands/local/dev-local.d.ts +97 -0
  71. package/dist/src/commands/local/dev-local.d.ts.map +1 -0
  72. package/dist/src/commands/local/dev-local.js +306 -0
  73. package/dist/src/commands/local/dev-local.js.map +1 -0
  74. package/dist/src/commands/local/docker-runner.d.ts +37 -0
  75. package/dist/src/commands/local/docker-runner.d.ts.map +1 -0
  76. package/dist/src/commands/local/docker-runner.js +104 -0
  77. package/dist/src/commands/local/docker-runner.js.map +1 -0
  78. package/dist/src/commands/local/helpers.d.ts +22 -0
  79. package/dist/src/commands/local/helpers.d.ts.map +1 -0
  80. package/dist/src/commands/local/helpers.js +46 -0
  81. package/dist/src/commands/local/helpers.js.map +1 -0
  82. package/dist/src/commands/local/hub-local.d.ts +51 -0
  83. package/dist/src/commands/local/hub-local.d.ts.map +1 -0
  84. package/dist/src/commands/local/hub-local.js +197 -0
  85. package/dist/src/commands/local/hub-local.js.map +1 -0
  86. package/dist/src/commands/local/index.d.ts +23 -0
  87. package/dist/src/commands/local/index.d.ts.map +1 -0
  88. package/dist/src/commands/local/index.js +386 -0
  89. package/dist/src/commands/local/index.js.map +1 -0
  90. package/dist/src/commands/local/mocks.d.ts +361 -0
  91. package/dist/src/commands/local/mocks.d.ts.map +1 -0
  92. package/dist/src/commands/local/mocks.js +756 -0
  93. package/dist/src/commands/local/mocks.js.map +1 -0
  94. package/dist/src/commands/local/seed-zitadel.d.ts +151 -0
  95. package/dist/src/commands/local/seed-zitadel.d.ts.map +1 -0
  96. package/dist/src/commands/local/seed-zitadel.js +408 -0
  97. package/dist/src/commands/local/seed-zitadel.js.map +1 -0
  98. package/dist/src/commands/local/seed.d.ts +106 -0
  99. package/dist/src/commands/local/seed.d.ts.map +1 -0
  100. package/dist/src/commands/local/seed.js +252 -0
  101. package/dist/src/commands/local/seed.js.map +1 -0
  102. package/dist/src/commands/local/stack.d.ts +173 -0
  103. package/dist/src/commands/local/stack.d.ts.map +1 -0
  104. package/dist/src/commands/local/stack.js +499 -0
  105. package/dist/src/commands/local/stack.js.map +1 -0
  106. package/dist/src/commands/login.d.ts +256 -12
  107. package/dist/src/commands/login.d.ts.map +1 -1
  108. package/dist/src/commands/login.js +978 -50
  109. package/dist/src/commands/login.js.map +1 -1
  110. package/dist/src/commands/peer-addressing.d.ts +51 -0
  111. package/dist/src/commands/peer-addressing.d.ts.map +1 -0
  112. package/dist/src/commands/peer-addressing.js +64 -0
  113. package/dist/src/commands/peer-addressing.js.map +1 -0
  114. package/dist/src/commands/port-ownership.d.ts +69 -0
  115. package/dist/src/commands/port-ownership.d.ts.map +1 -0
  116. package/dist/src/commands/port-ownership.js +161 -0
  117. package/dist/src/commands/port-ownership.js.map +1 -0
  118. package/dist/src/commands/registry-publish.d.ts +3 -0
  119. package/dist/src/commands/registry-publish.d.ts.map +1 -0
  120. package/dist/src/commands/registry-publish.js +161 -0
  121. package/dist/src/commands/registry-publish.js.map +1 -0
  122. package/dist/src/commands/registry.d.ts +146 -2
  123. package/dist/src/commands/registry.d.ts.map +1 -1
  124. package/dist/src/commands/registry.js +541 -85
  125. package/dist/src/commands/registry.js.map +1 -1
  126. package/dist/src/commands/secrets/index.d.ts.map +1 -1
  127. package/dist/src/commands/secrets/index.js +15 -1
  128. package/dist/src/commands/secrets/index.js.map +1 -1
  129. package/dist/src/commands/secrets/migrate-config.d.ts +24 -0
  130. package/dist/src/commands/secrets/migrate-config.d.ts.map +1 -0
  131. package/dist/src/commands/secrets/migrate-config.js +277 -0
  132. package/dist/src/commands/secrets/migrate-config.js.map +1 -0
  133. package/dist/src/commands/secrets/set.d.ts +4 -0
  134. package/dist/src/commands/secrets/set.d.ts.map +1 -1
  135. package/dist/src/commands/secrets/set.js +243 -64
  136. package/dist/src/commands/secrets/set.js.map +1 -1
  137. package/dist/src/commands/skills.d.ts +34 -0
  138. package/dist/src/commands/skills.d.ts.map +1 -0
  139. package/dist/src/commands/skills.js +207 -0
  140. package/dist/src/commands/skills.js.map +1 -0
  141. package/dist/src/commands/stack.d.ts.map +1 -1
  142. package/dist/src/commands/stack.js +361 -23
  143. package/dist/src/commands/stack.js.map +1 -1
  144. package/dist/src/commands/temporal.d.ts +15 -0
  145. package/dist/src/commands/temporal.d.ts.map +1 -0
  146. package/dist/src/commands/temporal.js +781 -0
  147. package/dist/src/commands/temporal.js.map +1 -0
  148. package/dist/src/commands/tenant.d.ts +56 -0
  149. package/dist/src/commands/tenant.d.ts.map +1 -0
  150. package/dist/src/commands/tenant.js +233 -0
  151. package/dist/src/commands/tenant.js.map +1 -0
  152. package/dist/src/commands/tunnel/index.d.ts +49 -3
  153. package/dist/src/commands/tunnel/index.d.ts.map +1 -1
  154. package/dist/src/commands/tunnel/index.js +331 -8
  155. package/dist/src/commands/tunnel/index.js.map +1 -1
  156. package/dist/src/commands/vcs/clone.d.ts +3 -0
  157. package/dist/src/commands/vcs/clone.d.ts.map +1 -0
  158. package/dist/src/commands/vcs/clone.js +20 -0
  159. package/dist/src/commands/vcs/clone.js.map +1 -0
  160. package/dist/src/commands/vcs/common.d.ts +21 -0
  161. package/dist/src/commands/vcs/common.d.ts.map +1 -0
  162. package/dist/src/commands/vcs/common.js +62 -0
  163. package/dist/src/commands/vcs/common.js.map +1 -0
  164. package/dist/src/commands/vcs/drafts.d.ts +13 -0
  165. package/dist/src/commands/vcs/drafts.d.ts.map +1 -0
  166. package/dist/src/commands/vcs/drafts.js +45 -0
  167. package/dist/src/commands/vcs/drafts.js.map +1 -0
  168. package/dist/src/commands/vcs/get.d.ts +8 -0
  169. package/dist/src/commands/vcs/get.d.ts.map +1 -0
  170. package/dist/src/commands/vcs/get.js +61 -0
  171. package/dist/src/commands/vcs/get.js.map +1 -0
  172. package/dist/src/commands/vcs/index.d.ts +3 -0
  173. package/dist/src/commands/vcs/index.d.ts.map +1 -0
  174. package/dist/src/commands/vcs/index.js +58 -0
  175. package/dist/src/commands/vcs/index.js.map +1 -0
  176. package/dist/src/commands/vcs/propose.d.ts +23 -0
  177. package/dist/src/commands/vcs/propose.d.ts.map +1 -0
  178. package/dist/src/commands/vcs/propose.js +94 -0
  179. package/dist/src/commands/vcs/propose.js.map +1 -0
  180. package/dist/src/commands/vcs/review.d.ts +15 -0
  181. package/dist/src/commands/vcs/review.d.ts.map +1 -0
  182. package/dist/src/commands/vcs/review.js +35 -0
  183. package/dist/src/commands/vcs/review.js.map +1 -0
  184. package/dist/src/commands/vcs-enrich.d.ts +15 -0
  185. package/dist/src/commands/vcs-enrich.d.ts.map +1 -0
  186. package/dist/src/commands/vcs-enrich.js +28 -0
  187. package/dist/src/commands/vcs-enrich.js.map +1 -0
  188. package/dist/src/commands/vpn/index.d.ts +24 -0
  189. package/dist/src/commands/vpn/index.d.ts.map +1 -0
  190. package/dist/src/commands/vpn/index.js +543 -0
  191. package/dist/src/commands/vpn/index.js.map +1 -0
  192. package/dist/src/commands/vpn/tunnel.d.ts +11 -0
  193. package/dist/src/commands/vpn/tunnel.d.ts.map +1 -0
  194. package/dist/src/commands/vpn/tunnel.js +188 -0
  195. package/dist/src/commands/vpn/tunnel.js.map +1 -0
  196. package/dist/src/commands/workflow.d.ts +24 -0
  197. package/dist/src/commands/workflow.d.ts.map +1 -0
  198. package/dist/src/commands/workflow.js +577 -0
  199. package/dist/src/commands/workflow.js.map +1 -0
  200. package/dist/src/docs/assemble.d.ts +217 -0
  201. package/dist/src/docs/assemble.d.ts.map +1 -0
  202. package/dist/src/docs/assemble.js +739 -0
  203. package/dist/src/docs/assemble.js.map +1 -0
  204. package/dist/src/docs/cli-reference.d.ts +93 -0
  205. package/dist/src/docs/cli-reference.d.ts.map +1 -0
  206. package/dist/src/docs/cli-reference.js +256 -0
  207. package/dist/src/docs/cli-reference.js.map +1 -0
  208. package/dist/src/docs/discover.d.ts +60 -0
  209. package/dist/src/docs/discover.d.ts.map +1 -0
  210. package/dist/src/docs/discover.js +233 -0
  211. package/dist/src/docs/discover.js.map +1 -0
  212. package/dist/src/docs/portal.d.ts +79 -0
  213. package/dist/src/docs/portal.d.ts.map +1 -0
  214. package/dist/src/docs/portal.js +242 -0
  215. package/dist/src/docs/portal.js.map +1 -0
  216. package/dist/src/docs/registry-docs.d.ts +43 -0
  217. package/dist/src/docs/registry-docs.d.ts.map +1 -0
  218. package/dist/src/docs/registry-docs.js +138 -0
  219. package/dist/src/docs/registry-docs.js.map +1 -0
  220. package/dist/src/docs/schema.d.ts +48 -0
  221. package/dist/src/docs/schema.d.ts.map +1 -0
  222. package/dist/src/docs/schema.js +96 -0
  223. package/dist/src/docs/schema.js.map +1 -0
  224. package/dist/src/docs/serve.d.ts +27 -0
  225. package/dist/src/docs/serve.d.ts.map +1 -0
  226. package/dist/src/docs/serve.js +102 -0
  227. package/dist/src/docs/serve.js.map +1 -0
  228. package/dist/src/docs/start.d.ts +80 -0
  229. package/dist/src/docs/start.d.ts.map +1 -0
  230. package/dist/src/docs/start.js +313 -0
  231. package/dist/src/docs/start.js.map +1 -0
  232. package/dist/src/eval/agent-eval.d.mts +14 -0
  233. package/dist/src/eval/agent-eval.d.mts.map +1 -0
  234. package/dist/src/eval/agent-eval.mjs +273 -0
  235. package/dist/src/eval/agent-eval.mjs.map +1 -0
  236. package/dist/src/index.js +624 -7
  237. package/dist/src/index.js.map +7 -1
  238. package/dist/src/program.d.ts +26 -0
  239. package/dist/src/program.d.ts.map +1 -0
  240. package/dist/src/program.js +76 -0
  241. package/dist/src/program.js.map +1 -0
  242. package/dist/src/utils/auth-preflight.d.ts +159 -0
  243. package/dist/src/utils/auth-preflight.d.ts.map +1 -0
  244. package/dist/src/utils/auth-preflight.js +298 -0
  245. package/dist/src/utils/auth-preflight.js.map +1 -0
  246. package/dist/src/utils/aws-auth.d.ts +181 -0
  247. package/dist/src/utils/aws-auth.d.ts.map +1 -0
  248. package/dist/src/utils/aws-auth.js +527 -0
  249. package/dist/src/utils/aws-auth.js.map +1 -0
  250. package/dist/src/utils/bastion.d.ts +1 -1
  251. package/dist/src/utils/bastion.d.ts.map +1 -1
  252. package/dist/src/utils/bastion.js +29 -8
  253. package/dist/src/utils/bastion.js.map +1 -1
  254. package/dist/src/utils/build-info.d.ts +33 -0
  255. package/dist/src/utils/build-info.d.ts.map +1 -0
  256. package/dist/src/utils/build-info.js +102 -0
  257. package/dist/src/utils/build-info.js.map +1 -0
  258. package/dist/src/utils/capture-history.d.ts +62 -0
  259. package/dist/src/utils/capture-history.d.ts.map +1 -0
  260. package/dist/src/utils/capture-history.js +94 -0
  261. package/dist/src/utils/capture-history.js.map +1 -0
  262. package/dist/src/utils/deploy-preflight.d.ts +52 -0
  263. package/dist/src/utils/deploy-preflight.d.ts.map +1 -0
  264. package/dist/src/utils/deploy-preflight.js +183 -0
  265. package/dist/src/utils/deploy-preflight.js.map +1 -0
  266. package/dist/src/utils/errors.d.ts +75 -0
  267. package/dist/src/utils/errors.d.ts.map +1 -0
  268. package/dist/src/utils/errors.js +106 -0
  269. package/dist/src/utils/errors.js.map +1 -0
  270. package/dist/src/utils/first-party-contexts.d.ts +40 -0
  271. package/dist/src/utils/first-party-contexts.d.ts.map +1 -0
  272. package/dist/src/utils/first-party-contexts.js +53 -0
  273. package/dist/src/utils/first-party-contexts.js.map +1 -0
  274. package/dist/src/utils/index.d.ts +2 -0
  275. package/dist/src/utils/index.d.ts.map +1 -1
  276. package/dist/src/utils/index.js +2 -0
  277. package/dist/src/utils/index.js.map +1 -1
  278. package/dist/src/utils/kubeconfig.d.ts +62 -0
  279. package/dist/src/utils/kubeconfig.d.ts.map +1 -0
  280. package/dist/src/utils/kubeconfig.js +118 -0
  281. package/dist/src/utils/kubeconfig.js.map +1 -0
  282. package/dist/src/utils/log.d.ts +27 -1
  283. package/dist/src/utils/log.d.ts.map +1 -1
  284. package/dist/src/utils/log.js +59 -5
  285. package/dist/src/utils/log.js.map +1 -1
  286. package/dist/src/utils/pid.d.ts +47 -0
  287. package/dist/src/utils/pid.d.ts.map +1 -0
  288. package/dist/src/utils/pid.js +83 -0
  289. package/dist/src/utils/pid.js.map +1 -0
  290. package/dist/src/utils/pulumi-run.d.ts +23 -0
  291. package/dist/src/utils/pulumi-run.d.ts.map +1 -0
  292. package/dist/src/utils/pulumi-run.js +112 -0
  293. package/dist/src/utils/pulumi-run.js.map +1 -0
  294. package/dist/src/utils/pulumi.d.ts +15 -0
  295. package/dist/src/utils/pulumi.d.ts.map +1 -1
  296. package/dist/src/utils/pulumi.js +35 -0
  297. package/dist/src/utils/pulumi.js.map +1 -1
  298. package/dist/src/utils/reachability.d.ts +29 -0
  299. package/dist/src/utils/reachability.d.ts.map +1 -0
  300. package/dist/src/utils/reachability.js +81 -0
  301. package/dist/src/utils/reachability.js.map +1 -0
  302. package/dist/src/utils/recover-conversation.d.ts +154 -0
  303. package/dist/src/utils/recover-conversation.d.ts.map +1 -0
  304. package/dist/src/utils/recover-conversation.js +314 -0
  305. package/dist/src/utils/recover-conversation.js.map +1 -0
  306. package/dist/src/utils/registry-broker.d.ts +148 -0
  307. package/dist/src/utils/registry-broker.d.ts.map +1 -0
  308. package/dist/src/utils/registry-broker.js +180 -0
  309. package/dist/src/utils/registry-broker.js.map +1 -0
  310. package/dist/src/utils/socks-forward.d.ts +40 -0
  311. package/dist/src/utils/socks-forward.d.ts.map +1 -0
  312. package/dist/src/utils/socks-forward.js +97 -0
  313. package/dist/src/utils/socks-forward.js.map +1 -0
  314. package/dist/src/utils/stack-flag.d.ts +23 -0
  315. package/dist/src/utils/stack-flag.d.ts.map +1 -0
  316. package/dist/src/utils/stack-flag.js +41 -0
  317. package/dist/src/utils/stack-flag.js.map +1 -0
  318. package/dist/src/utils/tailscale-targets.d.ts +52 -0
  319. package/dist/src/utils/tailscale-targets.d.ts.map +1 -0
  320. package/dist/src/utils/tailscale-targets.js +93 -0
  321. package/dist/src/utils/tailscale-targets.js.map +1 -0
  322. package/dist/src/utils/tailscale.d.ts +277 -0
  323. package/dist/src/utils/tailscale.d.ts.map +1 -0
  324. package/dist/src/utils/tailscale.js +1007 -0
  325. package/dist/src/utils/tailscale.js.map +1 -0
  326. package/dist/src/utils/temporal-auth.d.ts +43 -0
  327. package/dist/src/utils/temporal-auth.d.ts.map +1 -0
  328. package/dist/src/utils/temporal-auth.js +176 -0
  329. package/dist/src/utils/temporal-auth.js.map +1 -0
  330. package/dist/src/utils/temporal-codec.d.ts +101 -0
  331. package/dist/src/utils/temporal-codec.d.ts.map +1 -0
  332. package/dist/src/utils/temporal-codec.js +319 -0
  333. package/dist/src/utils/temporal-codec.js.map +1 -0
  334. package/dist/src/utils/tunnel-ownership.d.ts +130 -0
  335. package/dist/src/utils/tunnel-ownership.d.ts.map +1 -0
  336. package/dist/src/utils/tunnel-ownership.js +274 -0
  337. package/dist/src/utils/tunnel-ownership.js.map +1 -0
  338. package/dist/src/utils/vpn-join.d.ts +32 -0
  339. package/dist/src/utils/vpn-join.d.ts.map +1 -0
  340. package/dist/src/utils/vpn-join.js +62 -0
  341. package/dist/src/utils/vpn-join.js.map +1 -0
  342. package/dist/src/utils/vpn.d.ts +62 -0
  343. package/dist/src/utils/vpn.d.ts.map +1 -0
  344. package/dist/src/utils/vpn.js +183 -0
  345. package/dist/src/utils/vpn.js.map +1 -0
  346. package/dist/src/utils/workflow-fingerprint.d.ts +49 -0
  347. package/dist/src/utils/workflow-fingerprint.d.ts.map +1 -0
  348. package/dist/src/utils/workflow-fingerprint.js +135 -0
  349. package/dist/src/utils/workflow-fingerprint.js.map +1 -0
  350. package/dist/src/utils/worktree-identity.d.ts +86 -0
  351. package/dist/src/utils/worktree-identity.d.ts.map +1 -0
  352. package/dist/src/utils/worktree-identity.js +164 -0
  353. package/dist/src/utils/worktree-identity.js.map +1 -0
  354. package/fragments/agents/AGENTS.md.hbs +92 -0
  355. package/fragments/agents/CLAUDE.md.hbs +8 -0
  356. package/fragments/base/Pulumi.dev.yaml.hbs +10 -0
  357. package/fragments/base/Pulumi.yaml.hbs +9 -0
  358. package/fragments/base/index.ts.hbs +107 -0
  359. package/fragments/base/package.json.hbs +22 -0
  360. package/{templates/api-web-db/api → fragments/base}/tsconfig.json +3 -4
  361. package/fragments/bucket/api/src/storage.ts.hbs +81 -0
  362. package/fragments/database/api/src/db.ts.hbs +23 -0
  363. package/fragments/database/prisma/schema.prisma.hbs +18 -0
  364. package/{templates/api-web-db → fragments/service}/api/.dockerignore +2 -0
  365. package/fragments/service/api/package.json.hbs +40 -0
  366. package/fragments/service/api/src/index.ts.hbs +58 -0
  367. package/{templates/api-web-db → fragments/service/api}/tsconfig.json +5 -3
  368. package/fragments/temporal/worker/.dockerignore +4 -0
  369. package/fragments/temporal/worker/Dockerfile +15 -0
  370. package/{templates/temporal-api-worker → fragments/temporal}/worker/package.json.hbs +3 -2
  371. package/fragments/temporal/worker/src/activities.ts.hbs +14 -0
  372. package/fragments/temporal/worker/src/worker.ts.hbs +27 -0
  373. package/fragments/temporal/worker/src/workflows.ts.hbs +24 -0
  374. package/fragments/temporal/worker/tsconfig.json +13 -0
  375. package/package.json +35 -21
  376. package/skills/core/SKILL.md +365 -0
  377. package/skills/pull-remote-agent-context/SKILL.md +194 -0
  378. package/stack/docker-compose.hub.yml +134 -0
  379. package/stack/docker-compose.yml +447 -0
  380. package/stack/hub/Dockerfile.api +18 -0
  381. package/stack/hub/Dockerfile.auth +10 -0
  382. package/stack/hub/Dockerfile.ui +10 -0
  383. package/stack/init/01-databases.sql +12 -0
  384. package/stack/observability/blackbox.yml +20 -0
  385. package/stack/observability/otel-collector.yaml +73 -0
  386. package/stack/observability/prometheus.yml +36 -0
  387. package/stack/observability/tempo.yaml +25 -0
  388. package/stack/temporal/local.yaml +44 -0
  389. package/templates/api-auth/AGENTS.md.hbs +16 -0
  390. package/templates/api-auth/Pulumi.dev.yaml.hbs +8 -0
  391. package/templates/api-auth/Pulumi.yaml.hbs +8 -0
  392. package/templates/api-auth/README.md.hbs +67 -0
  393. package/templates/api-auth/api/package.json.hbs +28 -0
  394. package/templates/api-auth/api/src/index.ts.hbs +96 -0
  395. package/templates/api-auth/api/src/schema.ts.hbs +35 -0
  396. package/templates/api-auth/api/src/seed-authz.ts.hbs +48 -0
  397. package/templates/api-auth/api/src/spicedb-http-provider.ts.hbs +89 -0
  398. package/templates/api-auth/index.ts.hbs +65 -0
  399. package/templates/api-auth/package.json.hbs +20 -0
  400. package/templates/api-auth/skills/develop/SKILL.md.hbs +32 -0
  401. package/templates/api-role-gating/AGENTS.md.hbs +20 -0
  402. package/templates/api-role-gating/Pulumi.dev.yaml.hbs +8 -0
  403. package/templates/api-role-gating/Pulumi.yaml.hbs +8 -0
  404. package/templates/api-role-gating/README.md.hbs +64 -0
  405. package/templates/api-role-gating/api/Dockerfile +17 -0
  406. package/templates/api-role-gating/api/package.json.hbs +28 -0
  407. package/templates/api-role-gating/api/src/authn.ts.hbs +29 -0
  408. package/templates/api-role-gating/api/src/authz.ts.hbs +12 -0
  409. package/templates/api-role-gating/api/src/main.ts.hbs +58 -0
  410. package/templates/api-role-gating/api/src/schema.ts.hbs +22 -0
  411. package/templates/api-role-gating/api/tsconfig.json +13 -0
  412. package/templates/api-role-gating/index.ts.hbs +107 -0
  413. package/templates/api-role-gating/package.json.hbs +21 -0
  414. package/templates/api-role-gating/skills/develop/SKILL.md.hbs +60 -0
  415. package/templates/api-role-gating/tsconfig.json +10 -0
  416. package/templates/apps-repo/README.md.hbs +24 -0
  417. package/templates/apps-repo/gitignore +41 -0
  418. package/templates/apps-repo/npmrc.hbs +7 -0
  419. package/templates/apps-repo/package.json.hbs +15 -0
  420. package/templates/apps-repo/pnpm-workspace.yaml +3 -0
  421. package/templates/apps-repo/tsconfig.json +18 -0
  422. package/templates/external-service/AGENTS.md.hbs +20 -0
  423. package/templates/external-service/Pulumi.dev.yaml.hbs +8 -0
  424. package/templates/external-service/Pulumi.yaml.hbs +8 -0
  425. package/templates/external-service/README.md.hbs +56 -0
  426. package/templates/external-service/api/Dockerfile +15 -0
  427. package/templates/external-service/api/package.json.hbs +25 -0
  428. package/templates/external-service/api/src/index.ts.hbs +81 -0
  429. package/templates/external-service/index.ts.hbs +82 -0
  430. package/templates/external-service/mocks/vendorpay/package.json.hbs +9 -0
  431. package/templates/external-service/mocks/vendorpay/server.mjs.hbs +61 -0
  432. package/templates/external-service/package.json.hbs +34 -0
  433. package/templates/external-service/skills/develop/SKILL.md.hbs +55 -0
  434. package/templates/external-service/tsconfig.json +10 -0
  435. package/templates/platform-repo/AGENTS.md.hbs +18 -0
  436. package/templates/platform-repo/README.md.hbs +38 -0
  437. package/templates/platform-repo/core/Pulumi.yaml.hbs +12 -0
  438. package/templates/platform-repo/core/Pulumi.{{tenant}}-{{env}}.yaml.hbs +57 -0
  439. package/templates/platform-repo/core/index.ts +62 -0
  440. package/templates/platform-repo/core/package.json.hbs +22 -0
  441. package/templates/platform-repo/core/tsconfig.json +8 -0
  442. package/templates/platform-repo/package.json.hbs +15 -0
  443. package/templates/platform-repo/platform/Pulumi.yaml.hbs +12 -0
  444. package/templates/platform-repo/platform/Pulumi.{{tenant}}-{{env}}.yaml.hbs +59 -0
  445. package/templates/platform-repo/platform/index.ts +95 -0
  446. package/templates/platform-repo/platform/package.json.hbs +26 -0
  447. package/templates/platform-repo/platform/tsconfig.json +8 -0
  448. package/templates/platform-repo/pnpm-workspace.yaml +3 -0
  449. package/templates/workflow/AGENTS.md.hbs +15 -0
  450. package/templates/workflow/Pulumi.dev.yaml.hbs +8 -0
  451. package/templates/workflow/Pulumi.yaml.hbs +8 -0
  452. package/templates/workflow/README.md.hbs +45 -0
  453. package/templates/workflow/api/.dockerignore +4 -0
  454. package/templates/workflow/api/Dockerfile +15 -0
  455. package/templates/{temporal-api-worker → workflow}/api/package.json.hbs +8 -6
  456. package/templates/workflow/api/src/index.ts.hbs +130 -0
  457. package/templates/workflow/api/tsconfig.json +14 -0
  458. package/templates/workflow/index.ts.hbs +67 -0
  459. package/templates/workflow/package.json.hbs +20 -0
  460. package/templates/workflow/skills/develop/SKILL.md.hbs +32 -0
  461. package/templates/workflow/tsconfig.json +10 -0
  462. package/templates/workflow/worker/.dockerignore +4 -0
  463. package/templates/workflow/worker/Dockerfile +13 -0
  464. package/templates/workflow/worker/package.json.hbs +25 -0
  465. package/templates/workflow/worker/src/worker.ts.hbs +24 -0
  466. package/templates/workflow/worker/tsconfig.json +14 -0
  467. package/dist/src/commands/devbox.d.ts +0 -22
  468. package/dist/src/commands/devbox.d.ts.map +0 -1
  469. package/dist/src/commands/devbox.js +0 -463
  470. package/dist/src/commands/devbox.js.map +0 -1
  471. package/templates/api-web-db/api/Dockerfile +0 -16
  472. package/templates/api-web-db/api/package.json.hbs +0 -21
  473. package/templates/api-web-db/api/src/index.ts.hbs +0 -123
  474. package/templates/api-web-db/package.json.hbs +0 -27
  475. package/templates/api-web-db/sst.config.ts.hbs +0 -151
  476. package/templates/api-web-db/web/.dockerignore +0 -3
  477. package/templates/api-web-db/web/Dockerfile +0 -17
  478. package/templates/api-web-db/web/app/lib/db.server.ts +0 -36
  479. package/templates/api-web-db/web/app/root.tsx +0 -29
  480. package/templates/api-web-db/web/app/routes/home.tsx.hbs +0 -114
  481. package/templates/api-web-db/web/app/routes.ts +0 -3
  482. package/templates/api-web-db/web/package.json.hbs +0 -30
  483. package/templates/api-web-db/web/prisma/schema.prisma +0 -25
  484. package/templates/api-web-db/web/prisma.config.ts +0 -18
  485. package/templates/api-web-db/web/react-router.config.ts +0 -5
  486. package/templates/api-web-db/web/tsconfig.json +0 -19
  487. package/templates/api-web-db/web/vite.config.ts +0 -9
  488. package/templates/temporal-api-worker/README.md.hbs +0 -133
  489. package/templates/temporal-api-worker/api/src/index.ts.hbs +0 -145
  490. package/templates/temporal-api-worker/package.json.hbs +0 -29
  491. package/templates/temporal-api-worker/sst.config.ts.hbs +0 -161
  492. package/templates/temporal-api-worker/worker/Dockerfile +0 -11
  493. package/templates/temporal-api-worker/worker/src/bundle-workflows.ts +0 -38
  494. package/templates/temporal-api-worker/worker/src/worker.ts.hbs +0 -93
  495. /package/templates/{temporal-api-worker → api-auth}/api/.dockerignore +0 -0
  496. /package/templates/{temporal-api-worker → api-auth}/api/Dockerfile +0 -0
  497. /package/templates/{temporal-api-worker → api-auth}/api/tsconfig.json +0 -0
  498. /package/templates/{temporal-api-worker → api-auth}/tsconfig.json +0 -0
  499. /package/templates/{temporal-api-worker/worker → api-role-gating/api}/.dockerignore +0 -0
  500. /package/templates/{temporal-api-worker/worker → external-service/api}/tsconfig.json +0 -0
  501. /package/templates/{temporal-api-worker → workflow}/api/src/encryption-codec.ts +0 -0
  502. /package/templates/{temporal-api-worker → workflow}/worker/src/activities.ts.hbs +0 -0
  503. /package/templates/{temporal-api-worker → workflow}/worker/src/encryption-codec.ts +0 -0
  504. /package/templates/{temporal-api-worker → workflow}/worker/src/workflows.ts.hbs +0 -0
@@ -0,0 +1,61 @@
1
+ /**
2
+ * `mesh vcs get <repo> <path>` — read a SPECIFIC path (a file or subtree) from
3
+ * a repo, never the whole repo. The discretionary doc-pull the conversation
4
+ * `references[]` catalog points at: a `pull` bundle lists which repos/docs a
5
+ * conversation touched, and this fetches just the ones the agent/user wants.
6
+ *
7
+ * Resolves the vcs service either from an agent target (`--target`, via the
8
+ * shared agent-targets registry → derived `vcs.<baseDomain>` + mesh-login
9
+ * token) or directly (`--url` + `--token`/`--context`).
10
+ */
11
+ import { writeFile, mkdir } from "node:fs/promises";
12
+ import { join, dirname } from "node:path";
13
+ import { createVcsFolderReader, deriveVcsBaseUrl } from "@mesh-tech/agent-targets";
14
+ import { resolveTarget } from "../agent-api-client.js";
15
+ import { getValidToken } from "../login.js";
16
+ import { resolveToken } from "./common.js";
17
+ import { logInfo } from "../../utils/log.js";
18
+ export async function getCommand(repo, path, opts) {
19
+ let vcsBaseUrl;
20
+ let token;
21
+ if (opts.target) {
22
+ const t = resolveTarget({ target: opts.target });
23
+ vcsBaseUrl = deriveVcsBaseUrl(t.apiBaseUrl);
24
+ token = t.token ?? (await getValidToken(t.loginContext ?? "mesh.dev")) ?? undefined;
25
+ }
26
+ else {
27
+ vcsBaseUrl = (opts.url ?? process.env.VCS_URL)?.replace(/\/$/, "") ?? null;
28
+ token = await resolveToken(opts);
29
+ }
30
+ if (!vcsBaseUrl)
31
+ throw new Error("vcs get requires --target <name> or --url <vcs-url>");
32
+ if (!token)
33
+ throw new Error("no token: pass --target (after mesh login), or --token / --context");
34
+ const reader = createVcsFolderReader({ vcsBaseUrl, token });
35
+ try {
36
+ const { ref, files } = await reader.readPath(repo, path);
37
+ if (files.length === 0) {
38
+ logInfo(`no files at ${repo}:${path}`);
39
+ return;
40
+ }
41
+ if (opts.output) {
42
+ for (const f of files) {
43
+ const abs = join(opts.output, f.path);
44
+ await mkdir(dirname(abs), { recursive: true });
45
+ await writeFile(abs, f.contents);
46
+ }
47
+ logInfo(`wrote ${files.length} file(s) from ${repo}:${path} (${ref}) → ${opts.output}`);
48
+ }
49
+ else {
50
+ for (const f of files) {
51
+ if (files.length > 1)
52
+ process.stdout.write(`\n=== ${f.path} ===\n`);
53
+ process.stdout.write(f.contents);
54
+ }
55
+ }
56
+ }
57
+ finally {
58
+ await reader.cleanup();
59
+ }
60
+ }
61
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/vcs/get.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerVcsCommands(program: Command): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/vcs/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgF1D"}
@@ -0,0 +1,58 @@
1
+ import { cloneCommand } from "./clone.js";
2
+ import { getCommand } from "./get.js";
3
+ import { draftsCreateCommand, draftsDiscardCommand, draftsListCommand, draftsShowCommand, draftsSubmitCommand, } from "./drafts.js";
4
+ import { proposeCommand } from "./propose.js";
5
+ import { approveCommand, commentCommand, diffCommand, proposalsCommand, rejectCommand, requestChangesCommand, showCommand, } from "./review.js";
6
+ function withCommon(cmd) {
7
+ return cmd
8
+ .option("--url <url>", "vcs service URL (or VCS_URL, or derived from origin remote)")
9
+ .option("--token <token>", "bearer token (or VCS_TOKEN)")
10
+ .option("--context <context>", "mesh login context to mint a token from");
11
+ }
12
+ export function registerVcsCommands(program) {
13
+ const vcs = program
14
+ .command("vcs")
15
+ .description("Versioned content repos (mesh.vcs): clone, get, propose, review");
16
+ withCommon(vcs.command("clone <repo> [dest]").description("Clone a repo (read-only remote)")).action(cloneCommand);
17
+ withCommon(vcs
18
+ .command("get <repo> <path>")
19
+ .description("Read a specific path (file or subtree) from a repo — one doc, not the whole repo")
20
+ .option("--target <name>", "agent target (agent-targets registry) to derive the vcs URL + auth")
21
+ .option("-o, --output <dir>", "write file(s) here instead of stdout")).action(getCommand);
22
+ withCommon(vcs
23
+ .command("propose")
24
+ .description("Propose the working tree's changes (run inside a clone)")
25
+ .option("-m, --message <message>", "proposal message")
26
+ .option("--proposal-id <id>", "explicit proposal id")
27
+ .option("--revise <id>", "add a revision to an existing proposal")
28
+ .option("--merge-parent <sha>", "conflict resolution: main sha incorporated")).action(proposeCommand);
29
+ withCommon(vcs.command("proposals <repo>").description("List open proposals")).action(proposalsCommand);
30
+ withCommon(vcs.command("show <repo> <id>").description("Show proposal state")).action(showCommand);
31
+ withCommon(vcs.command("diff <repo> <id>").description("Show proposal diff")).action(diffCommand);
32
+ withCommon(vcs
33
+ .command("approve <repo> <id>")
34
+ .description("Approve at the current head (payload-bound)")
35
+ .option("--sha <sha>", "approve a specific head sha")).action(approveCommand);
36
+ withCommon(vcs
37
+ .command("reject <repo> <id>")
38
+ .description("Reject a proposal")
39
+ .option("--reason <reason>", "rejection reason")).action(rejectCommand);
40
+ withCommon(vcs.command("comment <repo> <id> <text>").description("Comment on a proposal")).action(commentCommand);
41
+ withCommon(vcs
42
+ .command("request-changes <repo> <id>")
43
+ .description("Ask the author for changes (review stays open)")
44
+ .option("--note <note>", "what needs to change")).action(requestChangesCommand);
45
+ const drafts = vcs.command("drafts").description("Work-in-progress drafts");
46
+ withCommon(drafts.command("list <repo>").description("List open drafts").option("--all", "include closed drafts")).action(draftsListCommand);
47
+ withCommon(drafts.command("show <repo> <id>").description("Show draft status")).action(draftsShowCommand);
48
+ withCommon(drafts
49
+ .command("create <repo>")
50
+ .description("Create a draft")
51
+ .option("--title <title>", "draft title")).action(draftsCreateCommand);
52
+ withCommon(drafts
53
+ .command("submit <repo> <id>")
54
+ .description("Submit a draft for review")
55
+ .option("--note <note>", "note to reviewers")).action(draftsSubmitCommand);
56
+ withCommon(drafts.command("discard <repo> <id>").description("Discard a draft")).action(draftsDiscardCommand);
57
+ }
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/vcs/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { type CommonOpts } from "./common.js";
2
+ export interface FileChange {
3
+ status: string;
4
+ path: string;
5
+ }
6
+ /** Parse `git status --porcelain -z` output into adds/modifies/deletes.
7
+ *
8
+ * Porcelain -z format: records are NUL-terminated. Normal record: `XY PATH`.
9
+ * Rename/copy record (X or Y is R/C): `XY PATH\0ORIGPATH` — the FOLLOWING NUL
10
+ * field is the source/original path. Renames expand to a delete of the old path
11
+ * plus a write of the new path. Copies only emit a write of the new path (the
12
+ * source still exists on disk). This stateful walk avoids mis-parsing the bare
13
+ * orig-path token as a status-prefixed record.
14
+ */
15
+ export declare function parseStatus(out: string): FileChange[];
16
+ export interface ProposeOpts extends CommonOpts {
17
+ message?: string;
18
+ proposalId?: string;
19
+ revise?: string;
20
+ mergeParent?: string;
21
+ }
22
+ export declare function proposeCommand(opts: ProposeOpts): Promise<void>;
23
+ //# sourceMappingURL=propose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../../../src/commands/vcs/propose.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,CAiCrD;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmErE"}
@@ -0,0 +1,94 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { execFileAsync, resolveTarget, resolveToken, vcsApi, } from "./common.js";
4
+ /** Parse `git status --porcelain -z` output into adds/modifies/deletes.
5
+ *
6
+ * Porcelain -z format: records are NUL-terminated. Normal record: `XY PATH`.
7
+ * Rename/copy record (X or Y is R/C): `XY PATH\0ORIGPATH` — the FOLLOWING NUL
8
+ * field is the source/original path. Renames expand to a delete of the old path
9
+ * plus a write of the new path. Copies only emit a write of the new path (the
10
+ * source still exists on disk). This stateful walk avoids mis-parsing the bare
11
+ * orig-path token as a status-prefixed record.
12
+ */
13
+ export function parseStatus(out) {
14
+ const tokens = out.split("\0");
15
+ const changes = [];
16
+ let i = 0;
17
+ while (i < tokens.length) {
18
+ const entry = tokens[i];
19
+ if (!entry) {
20
+ i++;
21
+ continue; // trailing empty from the final NUL
22
+ }
23
+ const status = entry.slice(0, 2); // XY — do NOT trim before classifying
24
+ const newPath = entry.slice(3);
25
+ const isRename = status[0] === "R" || status[1] === "R";
26
+ const isCopy = !isRename && (status[0] === "C" || status[1] === "C");
27
+ if (isRename || isCopy) {
28
+ const origPath = tokens[i + 1] ?? "";
29
+ i += 2; // consume the orig-path field too
30
+ if (isRename && origPath && !origPath.endsWith("/")) {
31
+ changes.push({ status: "D", path: origPath });
32
+ }
33
+ if (newPath && !newPath.endsWith("/")) {
34
+ changes.push({ status: "A", path: newPath });
35
+ }
36
+ continue;
37
+ }
38
+ i++;
39
+ if (newPath.length > 0 && !newPath.endsWith("/")) {
40
+ changes.push({ status: status.trim(), path: newPath });
41
+ }
42
+ }
43
+ return changes;
44
+ }
45
+ export async function proposeCommand(opts) {
46
+ const cwd = process.cwd();
47
+ const target = await resolveTarget(opts);
48
+ if (!target.repo) {
49
+ throw new Error("could not determine repo from the origin remote (pass --url from a clone)");
50
+ }
51
+ const token = await resolveToken(opts);
52
+ // --untracked-files=all: a brand-new directory otherwise collapses to a
53
+ // single "?? dir/" entry, which parseStatus skips — silently dropping the
54
+ // new files inside it from the proposal.
55
+ const { stdout: statusOut } = await execFileAsync("git", ["status", "--porcelain", "-z", "--untracked-files=all"], { cwd });
56
+ const changes = parseStatus(statusOut);
57
+ if (changes.length === 0) {
58
+ console.log("working tree clean — nothing to propose");
59
+ return;
60
+ }
61
+ const operations = await Promise.all(changes.map(async (c) => c.status.startsWith("D")
62
+ ? { op: "delete", path: c.path }
63
+ : {
64
+ op: "write",
65
+ path: c.path,
66
+ content: await readFile(join(cwd, c.path), "utf8"),
67
+ }));
68
+ // New proposals diff against the clone's HEAD; revisions against the
69
+ // proposal's current head (the author proposed from this clone).
70
+ let baseCommit;
71
+ if (opts.revise) {
72
+ const state = (await vcsApi(target.baseUrl, token, `/v1/repos/${target.repo}/proposals/${opts.revise}`));
73
+ if (!state.headSha)
74
+ throw new Error(`cannot resolve head of proposal ${opts.revise}`);
75
+ baseCommit = state.headSha;
76
+ }
77
+ else {
78
+ const { stdout: head } = await execFileAsync("git", ["rev-parse", "HEAD"], { cwd });
79
+ baseCommit = head.trim();
80
+ }
81
+ const body = {
82
+ ...(opts.proposalId && !opts.revise ? { proposalId: opts.proposalId } : {}),
83
+ baseCommit,
84
+ message: opts.message ?? `Update ${operations.length} file(s)`,
85
+ operations,
86
+ ...(opts.mergeParent ? { mergeParent: opts.mergeParent } : {}),
87
+ };
88
+ const path = opts.revise
89
+ ? `/v1/repos/${target.repo}/proposals/${opts.revise}/revisions`
90
+ : `/v1/repos/${target.repo}/proposals`;
91
+ const data = (await vcsApi(target.baseUrl, token, path, "POST", body));
92
+ console.log(`proposal ${data.proposalId} @ ${data.sha.slice(0, 8)} — review: mesh vcs show ${target.repo} ${data.proposalId} --url ${target.baseUrl}`);
93
+ }
94
+ //# sourceMappingURL=propose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propose.js","sourceRoot":"","sources":["../../../../src/commands/vcs/propose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type CommonOpts } from "./common.js";
2
+ export declare function proposalsCommand(repo: string, opts: CommonOpts): Promise<void>;
3
+ export declare function showCommand(repo: string, id: string, opts: CommonOpts): Promise<void>;
4
+ export declare function diffCommand(repo: string, id: string, opts: CommonOpts): Promise<void>;
5
+ export declare function approveCommand(repo: string, id: string, opts: CommonOpts & {
6
+ sha?: string;
7
+ }): Promise<void>;
8
+ export declare function rejectCommand(repo: string, id: string, opts: CommonOpts & {
9
+ reason?: string;
10
+ }): Promise<void>;
11
+ export declare function commentCommand(repo: string, id: string, text: string, opts: CommonOpts): Promise<void>;
12
+ export declare function requestChangesCommand(repo: string, id: string, opts: CommonOpts & {
13
+ note?: string;
14
+ }): Promise<void>;
15
+ //# sourceMappingURL=review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../../src/commands/vcs/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAcnF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpF;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACnC,OAAO,CAAC,IAAI,CAAC,CAGf"}
@@ -0,0 +1,35 @@
1
+ import { resolveTarget, resolveToken, vcsApi } from "./common.js";
2
+ async function call(opts, repo, path, method = "GET", body) {
3
+ const target = await resolveTarget({ ...opts, repo });
4
+ const token = await resolveToken(opts);
5
+ return vcsApi(target.baseUrl, token, `/v1/repos/${repo}${path}`, method, body);
6
+ }
7
+ export async function proposalsCommand(repo, opts) {
8
+ console.log(JSON.stringify(await call(opts, repo, "/proposals"), null, 2));
9
+ }
10
+ export async function showCommand(repo, id, opts) {
11
+ console.log(JSON.stringify(await call(opts, repo, `/proposals/${id}`), null, 2));
12
+ }
13
+ export async function diffCommand(repo, id, opts) {
14
+ const d = (await call(opts, repo, `/proposals/${id}/diff`));
15
+ console.log(d.patch);
16
+ }
17
+ export async function approveCommand(repo, id, opts) {
18
+ const sha = opts.sha ??
19
+ (await call(opts, repo, `/proposals/${id}`)).headSha;
20
+ await call(opts, repo, `/proposals/${id}/approve`, "POST", { sha });
21
+ console.log(`approved ${id} @ ${sha.slice(0, 8)}`);
22
+ }
23
+ export async function rejectCommand(repo, id, opts) {
24
+ await call(opts, repo, `/proposals/${id}/reject`, "POST", { reason: opts.reason });
25
+ console.log(`rejected ${id}`);
26
+ }
27
+ export async function commentCommand(repo, id, text, opts) {
28
+ await call(opts, repo, `/proposals/${id}/comment`, "POST", { text });
29
+ console.log("comment added");
30
+ }
31
+ export async function requestChangesCommand(repo, id, opts) {
32
+ await call(opts, repo, `/proposals/${id}/request-changes`, "POST", { note: opts.note });
33
+ console.log(`changes requested on ${id}`);
34
+ }
35
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../../src/commands/vcs/review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Builds the `enrichVcs` dep for `mesh conversations pull` by resolving a
3
+ * token + vcs URL for the target, then delegating to the shared
4
+ * `createVcsFolderReader` in `@mesh-tech/agent-targets` (same folder logic the
5
+ * MCP `agent_pull_conversation` tool uses).
6
+ */
7
+ import { type VcsFolderReader } from "@mesh-tech/agent-targets";
8
+ import type { AgentApiTarget } from "./agent-api-client.js";
9
+ /**
10
+ * Resolve a token + vcs base URL for `target`, returning a `VcsFolderReader`
11
+ * ({ enrichVcs, cleanup }) or `undefined` (with a warning) when no token or vcs
12
+ * URL can be derived — so the pull proceeds IR-only rather than failing.
13
+ */
14
+ export declare function buildVcsEnricher(target: AgentApiTarget): Promise<VcsFolderReader | undefined>;
15
+ //# sourceMappingURL=vcs-enrich.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vcs-enrich.d.ts","sourceRoot":"","sources":["../../../src/commands/vcs-enrich.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAA2C,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACzG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAYnG"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Builds the `enrichVcs` dep for `mesh conversations pull` by resolving a
3
+ * token + vcs URL for the target, then delegating to the shared
4
+ * `createVcsFolderReader` in `@mesh-tech/agent-targets` (same folder logic the
5
+ * MCP `agent_pull_conversation` tool uses).
6
+ */
7
+ import { createVcsFolderReader, deriveVcsBaseUrl } from "@mesh-tech/agent-targets";
8
+ import { getValidToken } from "./login.js";
9
+ import { logWarn } from "../utils/log.js";
10
+ /**
11
+ * Resolve a token + vcs base URL for `target`, returning a `VcsFolderReader`
12
+ * ({ enrichVcs, cleanup }) or `undefined` (with a warning) when no token or vcs
13
+ * URL can be derived — so the pull proceeds IR-only rather than failing.
14
+ */
15
+ export async function buildVcsEnricher(target) {
16
+ const vcsBaseUrl = deriveVcsBaseUrl(target.apiBaseUrl);
17
+ if (!vcsBaseUrl) {
18
+ logWarn(`could not derive a vcs URL from ${target.apiBaseUrl}; skipping design-folder enrichment (--no-vcs to silence)`);
19
+ return undefined;
20
+ }
21
+ const token = target.token ?? (await getValidToken(target.loginContext ?? "mesh.dev"));
22
+ if (!token) {
23
+ logWarn(`no vcs token for context "${target.loginContext ?? "mesh.dev"}"; skipping design-folder enrichment`);
24
+ return undefined;
25
+ }
26
+ return createVcsFolderReader({ vcsBaseUrl, token });
27
+ }
28
+ //# sourceMappingURL=vcs-enrich.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vcs-enrich.js","sourceRoot":"","sources":["../../../src/commands/vcs-enrich.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAwB,MAAM,0BAA0B,CAAC;AAEzG,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAsB;IAC3D,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,mCAAmC,MAAM,CAAC,UAAU,2DAA2D,CAAC,CAAC;QACzH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC;IACvF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,6BAA6B,MAAM,CAAC,YAAY,IAAI,UAAU,sCAAsC,CAAC,CAAC;QAC9G,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,qBAAqB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * mesh vpn — Headscale VPN management commands
3
+ *
4
+ * Commands:
5
+ * mesh vpn connect <context> Connect to VPN via Tailscale + OIDC
6
+ * mesh vpn disconnect Disconnect from VPN
7
+ * mesh vpn status Show VPN control plane status
8
+ * mesh vpn api-key Create a Headscale API key
9
+ * mesh vpn pre-auth-key Create a pre-authentication key for a user
10
+ * mesh vpn users List registered VPN users
11
+ *
12
+ * All commands shell out to kubectl. The user must have kubeconfig
13
+ * configured for the target cluster (e.g., via `aws eks update-kubeconfig`).
14
+ */
15
+ import { Command } from "commander";
16
+ /** Split a platform context ("mesh.dev") into its tenant + env. Pure. */
17
+ export declare function parseContextTenantEnv(context: string): {
18
+ tenant: string;
19
+ env: string;
20
+ };
21
+ /** Return Tailscale's BackendState, or null if tailscale is not running. */
22
+ export declare function tailscaleBackendState(): string | null;
23
+ export declare function registerVpnCommands(program: Command): void;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/vpn/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsVpC,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAGtF;AAkDD,4EAA4E;AAC5E,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAErD;AAqKD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqE1D"}