@vellumai/cli 0.10.0 → 0.10.1-dev.202606240206.7c2bca6

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 (750) hide show
  1. package/bun.lock +1 -1
  2. package/node_modules/@vellumai/local-mode/bun.lock +3 -0
  3. package/node_modules/@vellumai/local-mode/package.json +2 -1
  4. package/node_modules/@vellumai/local-mode/src/__tests__/loopback-auth.test.ts +26 -0
  5. package/node_modules/@vellumai/local-mode/src/__tests__/package-boundary.test.ts +6 -6
  6. package/node_modules/@vellumai/local-mode/src/index.ts +2 -0
  7. package/node_modules/@vellumai/local-mode/src/lockfile-contract.test.ts +148 -12
  8. package/node_modules/@vellumai/local-mode/src/lockfile-contract.ts +136 -80
  9. package/node_modules/@vellumai/local-mode/src/lockfile.test.ts +3 -1
  10. package/node_modules/@vellumai/local-mode/src/lockfile.ts +9 -2
  11. package/node_modules/@vellumai/local-mode/src/status.ts +1 -0
  12. package/node_modules/@vellumai/local-mode/src/upgrade.ts +105 -0
  13. package/node_modules/@vellumai/local-mode/src/util.ts +4 -8
  14. package/node_modules/zod/LICENSE +21 -0
  15. package/node_modules/zod/README.md +191 -0
  16. package/node_modules/zod/index.cjs +33 -0
  17. package/node_modules/zod/index.d.cts +4 -0
  18. package/node_modules/zod/index.d.ts +4 -0
  19. package/node_modules/zod/index.js +4 -0
  20. package/node_modules/zod/locales/index.cjs +17 -0
  21. package/node_modules/zod/locales/index.d.cts +1 -0
  22. package/node_modules/zod/locales/index.d.ts +1 -0
  23. package/node_modules/zod/locales/index.js +1 -0
  24. package/node_modules/zod/locales/package.json +7 -0
  25. package/node_modules/zod/mini/index.cjs +32 -0
  26. package/node_modules/zod/mini/index.d.cts +3 -0
  27. package/node_modules/zod/mini/index.d.ts +3 -0
  28. package/node_modules/zod/mini/index.js +3 -0
  29. package/node_modules/zod/mini/package.json +7 -0
  30. package/node_modules/zod/package.json +135 -0
  31. package/node_modules/zod/src/index.ts +4 -0
  32. package/node_modules/zod/src/locales/index.ts +1 -0
  33. package/node_modules/zod/src/mini/index.ts +3 -0
  34. package/node_modules/zod/src/v3/ZodError.ts +330 -0
  35. package/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
  36. package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  37. package/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
  38. package/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
  39. package/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
  40. package/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
  41. package/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
  42. package/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
  43. package/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
  44. package/node_modules/zod/src/v3/errors.ts +13 -0
  45. package/node_modules/zod/src/v3/external.ts +6 -0
  46. package/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
  47. package/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
  48. package/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
  49. package/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
  50. package/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
  51. package/node_modules/zod/src/v3/helpers/util.ts +224 -0
  52. package/node_modules/zod/src/v3/index.ts +4 -0
  53. package/node_modules/zod/src/v3/locales/en.ts +124 -0
  54. package/node_modules/zod/src/v3/standard-schema.ts +113 -0
  55. package/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
  56. package/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
  57. package/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
  58. package/node_modules/zod/src/v3/tests/array.test.ts +71 -0
  59. package/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
  60. package/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
  61. package/node_modules/zod/src/v3/tests/base.test.ts +29 -0
  62. package/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
  63. package/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
  64. package/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
  65. package/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
  66. package/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
  67. package/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
  68. package/node_modules/zod/src/v3/tests/date.test.ts +32 -0
  69. package/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
  70. package/node_modules/zod/src/v3/tests/default.test.ts +112 -0
  71. package/node_modules/zod/src/v3/tests/description.test.ts +33 -0
  72. package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
  73. package/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
  74. package/node_modules/zod/src/v3/tests/error.test.ts +551 -0
  75. package/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
  76. package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  77. package/node_modules/zod/src/v3/tests/function.test.ts +261 -0
  78. package/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
  79. package/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
  80. package/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
  81. package/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
  82. package/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
  83. package/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
  84. package/node_modules/zod/src/v3/tests/map.test.ts +110 -0
  85. package/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
  86. package/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
  87. package/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
  88. package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
  89. package/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
  90. package/node_modules/zod/src/v3/tests/number.test.ts +176 -0
  91. package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
  92. package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
  93. package/node_modules/zod/src/v3/tests/object.test.ts +434 -0
  94. package/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
  95. package/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
  96. package/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
  97. package/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
  98. package/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
  99. package/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
  100. package/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
  101. package/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
  102. package/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
  103. package/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
  104. package/node_modules/zod/src/v3/tests/record.test.ts +171 -0
  105. package/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
  106. package/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
  107. package/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
  108. package/node_modules/zod/src/v3/tests/set.test.ts +142 -0
  109. package/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
  110. package/node_modules/zod/src/v3/tests/string.test.ts +916 -0
  111. package/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
  112. package/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
  113. package/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
  114. package/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
  115. package/node_modules/zod/src/v3/tests/void.test.ts +15 -0
  116. package/node_modules/zod/src/v3/types.ts +5138 -0
  117. package/node_modules/zod/src/v4/classic/checks.ts +32 -0
  118. package/node_modules/zod/src/v4/classic/coerce.ts +27 -0
  119. package/node_modules/zod/src/v4/classic/compat.ts +70 -0
  120. package/node_modules/zod/src/v4/classic/errors.ts +82 -0
  121. package/node_modules/zod/src/v4/classic/external.ts +52 -0
  122. package/node_modules/zod/src/v4/classic/from-json-schema.ts +659 -0
  123. package/node_modules/zod/src/v4/classic/index.ts +5 -0
  124. package/node_modules/zod/src/v4/classic/iso.ts +90 -0
  125. package/node_modules/zod/src/v4/classic/parse.ts +82 -0
  126. package/node_modules/zod/src/v4/classic/schemas.ts +2672 -0
  127. package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
  128. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
  129. package/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
  130. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +216 -0
  131. package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
  132. package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
  133. package/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
  134. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
  135. package/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
  136. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +326 -0
  137. package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
  138. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
  139. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +703 -0
  140. package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
  141. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
  142. package/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
  143. package/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
  144. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
  145. package/node_modules/zod/src/v4/classic/tests/default.test.ts +409 -0
  146. package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
  147. package/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
  148. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +197 -0
  149. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +694 -0
  150. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
  151. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +807 -0
  152. package/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
  153. package/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
  154. package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
  155. package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
  156. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +895 -0
  157. package/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
  158. package/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
  159. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +39 -0
  160. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
  161. package/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
  162. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
  163. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
  164. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +46 -0
  165. package/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
  166. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
  167. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
  168. package/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
  169. package/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
  170. package/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
  171. package/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
  172. package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
  173. package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
  174. package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
  175. package/node_modules/zod/src/v4/classic/tests/number.test.ts +325 -0
  176. package/node_modules/zod/src/v4/classic/tests/object.test.ts +717 -0
  177. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +333 -0
  178. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +450 -0
  179. package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
  180. package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
  181. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
  182. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +26 -0
  183. package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +351 -0
  184. package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
  185. package/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
  186. package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
  187. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
  188. package/node_modules/zod/src/v4/classic/tests/record.test.ts +717 -0
  189. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +631 -0
  190. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +633 -0
  191. package/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
  192. package/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
  193. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
  194. package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
  195. package/node_modules/zod/src/v4/classic/tests/string.test.ts +1224 -0
  196. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
  197. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
  198. package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
  199. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +3125 -0
  200. package/node_modules/zod/src/v4/classic/tests/transform.test.ts +378 -0
  201. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +496 -0
  202. package/node_modules/zod/src/v4/classic/tests/union.test.ts +273 -0
  203. package/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
  204. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
  205. package/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
  206. package/node_modules/zod/src/v4/core/api.ts +1823 -0
  207. package/node_modules/zod/src/v4/core/checks.ts +1293 -0
  208. package/node_modules/zod/src/v4/core/config.ts +15 -0
  209. package/node_modules/zod/src/v4/core/core.ts +153 -0
  210. package/node_modules/zod/src/v4/core/doc.ts +44 -0
  211. package/node_modules/zod/src/v4/core/errors.ts +455 -0
  212. package/node_modules/zod/src/v4/core/index.ts +16 -0
  213. package/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
  214. package/node_modules/zod/src/v4/core/json-schema-processors.ts +666 -0
  215. package/node_modules/zod/src/v4/core/json-schema.ts +147 -0
  216. package/node_modules/zod/src/v4/core/parse.ts +195 -0
  217. package/node_modules/zod/src/v4/core/regexes.ts +190 -0
  218. package/node_modules/zod/src/v4/core/registries.ts +105 -0
  219. package/node_modules/zod/src/v4/core/schemas.ts +4730 -0
  220. package/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
  221. package/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
  222. package/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
  223. package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
  224. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +215 -0
  225. package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
  226. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
  227. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
  228. package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
  229. package/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
  230. package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
  231. package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
  232. package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
  233. package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +105 -0
  234. package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +125 -0
  235. package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
  236. package/node_modules/zod/src/v4/core/to-json-schema.ts +622 -0
  237. package/node_modules/zod/src/v4/core/util.ts +983 -0
  238. package/node_modules/zod/src/v4/core/versions.ts +5 -0
  239. package/node_modules/zod/src/v4/core/zsf.ts +323 -0
  240. package/node_modules/zod/src/v4/index.ts +4 -0
  241. package/node_modules/zod/src/v4/locales/ar.ts +115 -0
  242. package/node_modules/zod/src/v4/locales/az.ts +111 -0
  243. package/node_modules/zod/src/v4/locales/be.ts +176 -0
  244. package/node_modules/zod/src/v4/locales/bg.ts +128 -0
  245. package/node_modules/zod/src/v4/locales/ca.ts +116 -0
  246. package/node_modules/zod/src/v4/locales/cs.ts +118 -0
  247. package/node_modules/zod/src/v4/locales/da.ts +123 -0
  248. package/node_modules/zod/src/v4/locales/de.ts +116 -0
  249. package/node_modules/zod/src/v4/locales/el.ts +121 -0
  250. package/node_modules/zod/src/v4/locales/en.ts +123 -0
  251. package/node_modules/zod/src/v4/locales/eo.ts +118 -0
  252. package/node_modules/zod/src/v4/locales/es.ts +141 -0
  253. package/node_modules/zod/src/v4/locales/fa.ts +126 -0
  254. package/node_modules/zod/src/v4/locales/fi.ts +121 -0
  255. package/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
  256. package/node_modules/zod/src/v4/locales/fr.ts +132 -0
  257. package/node_modules/zod/src/v4/locales/he.ts +246 -0
  258. package/node_modules/zod/src/v4/locales/hr.ts +131 -0
  259. package/node_modules/zod/src/v4/locales/hu.ts +117 -0
  260. package/node_modules/zod/src/v4/locales/hy.ts +164 -0
  261. package/node_modules/zod/src/v4/locales/id.ts +115 -0
  262. package/node_modules/zod/src/v4/locales/index.ts +52 -0
  263. package/node_modules/zod/src/v4/locales/is.ts +119 -0
  264. package/node_modules/zod/src/v4/locales/it.ts +116 -0
  265. package/node_modules/zod/src/v4/locales/ja.ts +114 -0
  266. package/node_modules/zod/src/v4/locales/ka.ts +123 -0
  267. package/node_modules/zod/src/v4/locales/kh.ts +7 -0
  268. package/node_modules/zod/src/v4/locales/km.ts +119 -0
  269. package/node_modules/zod/src/v4/locales/ko.ts +121 -0
  270. package/node_modules/zod/src/v4/locales/lt.ts +239 -0
  271. package/node_modules/zod/src/v4/locales/mk.ts +118 -0
  272. package/node_modules/zod/src/v4/locales/ms.ts +115 -0
  273. package/node_modules/zod/src/v4/locales/nl.ts +121 -0
  274. package/node_modules/zod/src/v4/locales/no.ts +116 -0
  275. package/node_modules/zod/src/v4/locales/ota.ts +117 -0
  276. package/node_modules/zod/src/v4/locales/pl.ts +118 -0
  277. package/node_modules/zod/src/v4/locales/ps.ts +126 -0
  278. package/node_modules/zod/src/v4/locales/pt.ts +116 -0
  279. package/node_modules/zod/src/v4/locales/ro.ts +129 -0
  280. package/node_modules/zod/src/v4/locales/ru.ts +176 -0
  281. package/node_modules/zod/src/v4/locales/sl.ts +118 -0
  282. package/node_modules/zod/src/v4/locales/sv.ts +119 -0
  283. package/node_modules/zod/src/v4/locales/ta.ts +118 -0
  284. package/node_modules/zod/src/v4/locales/th.ts +119 -0
  285. package/node_modules/zod/src/v4/locales/tr.ts +111 -0
  286. package/node_modules/zod/src/v4/locales/ua.ts +7 -0
  287. package/node_modules/zod/src/v4/locales/uk.ts +117 -0
  288. package/node_modules/zod/src/v4/locales/ur.ts +119 -0
  289. package/node_modules/zod/src/v4/locales/uz.ts +117 -0
  290. package/node_modules/zod/src/v4/locales/vi.ts +117 -0
  291. package/node_modules/zod/src/v4/locales/yo.ts +124 -0
  292. package/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
  293. package/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
  294. package/node_modules/zod/src/v4/mini/checks.ts +32 -0
  295. package/node_modules/zod/src/v4/mini/coerce.ts +27 -0
  296. package/node_modules/zod/src/v4/mini/external.ts +41 -0
  297. package/node_modules/zod/src/v4/mini/index.ts +3 -0
  298. package/node_modules/zod/src/v4/mini/iso.ts +66 -0
  299. package/node_modules/zod/src/v4/mini/parse.ts +14 -0
  300. package/node_modules/zod/src/v4/mini/schemas.ts +1947 -0
  301. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
  302. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
  303. package/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
  304. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
  305. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +548 -0
  306. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
  307. package/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
  308. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
  309. package/node_modules/zod/src/v4/mini/tests/index.test.ts +993 -0
  310. package/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
  311. package/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
  312. package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
  313. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +325 -0
  314. package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
  315. package/node_modules/zod/src/v4/mini/tests/string.test.ts +352 -0
  316. package/node_modules/zod/src/v4-mini/index.ts +3 -0
  317. package/node_modules/zod/v3/ZodError.cjs +138 -0
  318. package/node_modules/zod/v3/ZodError.d.cts +164 -0
  319. package/node_modules/zod/v3/ZodError.d.ts +164 -0
  320. package/node_modules/zod/v3/ZodError.js +133 -0
  321. package/node_modules/zod/v3/errors.cjs +17 -0
  322. package/node_modules/zod/v3/errors.d.cts +5 -0
  323. package/node_modules/zod/v3/errors.d.ts +5 -0
  324. package/node_modules/zod/v3/errors.js +9 -0
  325. package/node_modules/zod/v3/external.cjs +22 -0
  326. package/node_modules/zod/v3/external.d.cts +6 -0
  327. package/node_modules/zod/v3/external.d.ts +6 -0
  328. package/node_modules/zod/v3/external.js +6 -0
  329. package/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  330. package/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  331. package/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
  332. package/node_modules/zod/v3/helpers/enumUtil.js +1 -0
  333. package/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  334. package/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  335. package/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
  336. package/node_modules/zod/v3/helpers/errorUtil.js +6 -0
  337. package/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  338. package/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  339. package/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
  340. package/node_modules/zod/v3/helpers/parseUtil.js +109 -0
  341. package/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  342. package/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  343. package/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
  344. package/node_modules/zod/v3/helpers/partialUtil.js +1 -0
  345. package/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  346. package/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  347. package/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
  348. package/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  349. package/node_modules/zod/v3/helpers/util.cjs +137 -0
  350. package/node_modules/zod/v3/helpers/util.d.cts +85 -0
  351. package/node_modules/zod/v3/helpers/util.d.ts +85 -0
  352. package/node_modules/zod/v3/helpers/util.js +133 -0
  353. package/node_modules/zod/v3/index.cjs +33 -0
  354. package/node_modules/zod/v3/index.d.cts +4 -0
  355. package/node_modules/zod/v3/index.d.ts +4 -0
  356. package/node_modules/zod/v3/index.js +4 -0
  357. package/node_modules/zod/v3/locales/en.cjs +112 -0
  358. package/node_modules/zod/v3/locales/en.d.cts +3 -0
  359. package/node_modules/zod/v3/locales/en.d.ts +3 -0
  360. package/node_modules/zod/v3/locales/en.js +109 -0
  361. package/node_modules/zod/v3/package.json +7 -0
  362. package/node_modules/zod/v3/standard-schema.cjs +2 -0
  363. package/node_modules/zod/v3/standard-schema.d.cts +102 -0
  364. package/node_modules/zod/v3/standard-schema.d.ts +102 -0
  365. package/node_modules/zod/v3/standard-schema.js +1 -0
  366. package/node_modules/zod/v3/types.cjs +3777 -0
  367. package/node_modules/zod/v3/types.d.cts +1034 -0
  368. package/node_modules/zod/v3/types.d.ts +1034 -0
  369. package/node_modules/zod/v3/types.js +3695 -0
  370. package/node_modules/zod/v4/classic/checks.cjs +33 -0
  371. package/node_modules/zod/v4/classic/checks.d.cts +1 -0
  372. package/node_modules/zod/v4/classic/checks.d.ts +1 -0
  373. package/node_modules/zod/v4/classic/checks.js +1 -0
  374. package/node_modules/zod/v4/classic/coerce.cjs +47 -0
  375. package/node_modules/zod/v4/classic/coerce.d.cts +17 -0
  376. package/node_modules/zod/v4/classic/coerce.d.ts +17 -0
  377. package/node_modules/zod/v4/classic/coerce.js +17 -0
  378. package/node_modules/zod/v4/classic/compat.cjs +61 -0
  379. package/node_modules/zod/v4/classic/compat.d.cts +50 -0
  380. package/node_modules/zod/v4/classic/compat.d.ts +50 -0
  381. package/node_modules/zod/v4/classic/compat.js +31 -0
  382. package/node_modules/zod/v4/classic/errors.cjs +74 -0
  383. package/node_modules/zod/v4/classic/errors.d.cts +30 -0
  384. package/node_modules/zod/v4/classic/errors.d.ts +30 -0
  385. package/node_modules/zod/v4/classic/errors.js +48 -0
  386. package/node_modules/zod/v4/classic/external.cjs +73 -0
  387. package/node_modules/zod/v4/classic/external.d.cts +16 -0
  388. package/node_modules/zod/v4/classic/external.d.ts +16 -0
  389. package/node_modules/zod/v4/classic/external.js +20 -0
  390. package/node_modules/zod/v4/classic/from-json-schema.cjs +625 -0
  391. package/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
  392. package/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
  393. package/node_modules/zod/v4/classic/from-json-schema.js +599 -0
  394. package/node_modules/zod/v4/classic/index.cjs +33 -0
  395. package/node_modules/zod/v4/classic/index.d.cts +4 -0
  396. package/node_modules/zod/v4/classic/index.d.ts +4 -0
  397. package/node_modules/zod/v4/classic/index.js +4 -0
  398. package/node_modules/zod/v4/classic/iso.cjs +60 -0
  399. package/node_modules/zod/v4/classic/iso.d.cts +22 -0
  400. package/node_modules/zod/v4/classic/iso.d.ts +22 -0
  401. package/node_modules/zod/v4/classic/iso.js +30 -0
  402. package/node_modules/zod/v4/classic/package.json +7 -0
  403. package/node_modules/zod/v4/classic/parse.cjs +41 -0
  404. package/node_modules/zod/v4/classic/parse.d.cts +31 -0
  405. package/node_modules/zod/v4/classic/parse.d.ts +31 -0
  406. package/node_modules/zod/v4/classic/parse.js +15 -0
  407. package/node_modules/zod/v4/classic/schemas.cjs +1511 -0
  408. package/node_modules/zod/v4/classic/schemas.d.cts +767 -0
  409. package/node_modules/zod/v4/classic/schemas.d.ts +767 -0
  410. package/node_modules/zod/v4/classic/schemas.js +1395 -0
  411. package/node_modules/zod/v4/core/api.cjs +1227 -0
  412. package/node_modules/zod/v4/core/api.d.cts +325 -0
  413. package/node_modules/zod/v4/core/api.d.ts +325 -0
  414. package/node_modules/zod/v4/core/api.js +1087 -0
  415. package/node_modules/zod/v4/core/checks.cjs +601 -0
  416. package/node_modules/zod/v4/core/checks.d.cts +278 -0
  417. package/node_modules/zod/v4/core/checks.d.ts +278 -0
  418. package/node_modules/zod/v4/core/checks.js +575 -0
  419. package/node_modules/zod/v4/core/core.cjs +85 -0
  420. package/node_modules/zod/v4/core/core.d.cts +70 -0
  421. package/node_modules/zod/v4/core/core.d.ts +70 -0
  422. package/node_modules/zod/v4/core/core.js +78 -0
  423. package/node_modules/zod/v4/core/doc.cjs +39 -0
  424. package/node_modules/zod/v4/core/doc.d.cts +14 -0
  425. package/node_modules/zod/v4/core/doc.d.ts +14 -0
  426. package/node_modules/zod/v4/core/doc.js +35 -0
  427. package/node_modules/zod/v4/core/errors.cjs +216 -0
  428. package/node_modules/zod/v4/core/errors.d.cts +221 -0
  429. package/node_modules/zod/v4/core/errors.d.ts +221 -0
  430. package/node_modules/zod/v4/core/errors.js +185 -0
  431. package/node_modules/zod/v4/core/index.cjs +47 -0
  432. package/node_modules/zod/v4/core/index.d.cts +16 -0
  433. package/node_modules/zod/v4/core/index.d.ts +16 -0
  434. package/node_modules/zod/v4/core/index.js +16 -0
  435. package/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
  436. package/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
  437. package/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
  438. package/node_modules/zod/v4/core/json-schema-generator.js +95 -0
  439. package/node_modules/zod/v4/core/json-schema-processors.cjs +644 -0
  440. package/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
  441. package/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
  442. package/node_modules/zod/v4/core/json-schema-processors.js +601 -0
  443. package/node_modules/zod/v4/core/json-schema.cjs +2 -0
  444. package/node_modules/zod/v4/core/json-schema.d.cts +88 -0
  445. package/node_modules/zod/v4/core/json-schema.d.ts +88 -0
  446. package/node_modules/zod/v4/core/json-schema.js +1 -0
  447. package/node_modules/zod/v4/core/package.json +7 -0
  448. package/node_modules/zod/v4/core/parse.cjs +131 -0
  449. package/node_modules/zod/v4/core/parse.d.cts +49 -0
  450. package/node_modules/zod/v4/core/parse.d.ts +49 -0
  451. package/node_modules/zod/v4/core/parse.js +93 -0
  452. package/node_modules/zod/v4/core/regexes.cjs +172 -0
  453. package/node_modules/zod/v4/core/regexes.d.cts +85 -0
  454. package/node_modules/zod/v4/core/regexes.d.ts +85 -0
  455. package/node_modules/zod/v4/core/regexes.js +139 -0
  456. package/node_modules/zod/v4/core/registries.cjs +56 -0
  457. package/node_modules/zod/v4/core/registries.d.cts +35 -0
  458. package/node_modules/zod/v4/core/registries.d.ts +35 -0
  459. package/node_modules/zod/v4/core/registries.js +51 -0
  460. package/node_modules/zod/v4/core/schemas.cjs +2270 -0
  461. package/node_modules/zod/v4/core/schemas.d.cts +1184 -0
  462. package/node_modules/zod/v4/core/schemas.d.ts +1184 -0
  463. package/node_modules/zod/v4/core/schemas.js +2239 -0
  464. package/node_modules/zod/v4/core/standard-schema.cjs +2 -0
  465. package/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
  466. package/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
  467. package/node_modules/zod/v4/core/standard-schema.js +1 -0
  468. package/node_modules/zod/v4/core/to-json-schema.cjs +457 -0
  469. package/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
  470. package/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
  471. package/node_modules/zod/v4/core/to-json-schema.js +448 -0
  472. package/node_modules/zod/v4/core/util.cjs +734 -0
  473. package/node_modules/zod/v4/core/util.d.cts +200 -0
  474. package/node_modules/zod/v4/core/util.d.ts +200 -0
  475. package/node_modules/zod/v4/core/util.js +674 -0
  476. package/node_modules/zod/v4/core/versions.cjs +8 -0
  477. package/node_modules/zod/v4/core/versions.d.cts +5 -0
  478. package/node_modules/zod/v4/core/versions.d.ts +5 -0
  479. package/node_modules/zod/v4/core/versions.js +5 -0
  480. package/node_modules/zod/v4/index.cjs +22 -0
  481. package/node_modules/zod/v4/index.d.cts +3 -0
  482. package/node_modules/zod/v4/index.d.ts +3 -0
  483. package/node_modules/zod/v4/index.js +3 -0
  484. package/node_modules/zod/v4/locales/ar.cjs +133 -0
  485. package/node_modules/zod/v4/locales/ar.d.cts +5 -0
  486. package/node_modules/zod/v4/locales/ar.d.ts +4 -0
  487. package/node_modules/zod/v4/locales/ar.js +106 -0
  488. package/node_modules/zod/v4/locales/az.cjs +132 -0
  489. package/node_modules/zod/v4/locales/az.d.cts +5 -0
  490. package/node_modules/zod/v4/locales/az.d.ts +4 -0
  491. package/node_modules/zod/v4/locales/az.js +105 -0
  492. package/node_modules/zod/v4/locales/be.cjs +183 -0
  493. package/node_modules/zod/v4/locales/be.d.cts +5 -0
  494. package/node_modules/zod/v4/locales/be.d.ts +4 -0
  495. package/node_modules/zod/v4/locales/be.js +156 -0
  496. package/node_modules/zod/v4/locales/bg.cjs +147 -0
  497. package/node_modules/zod/v4/locales/bg.d.cts +5 -0
  498. package/node_modules/zod/v4/locales/bg.d.ts +4 -0
  499. package/node_modules/zod/v4/locales/bg.js +120 -0
  500. package/node_modules/zod/v4/locales/ca.cjs +134 -0
  501. package/node_modules/zod/v4/locales/ca.d.cts +5 -0
  502. package/node_modules/zod/v4/locales/ca.d.ts +4 -0
  503. package/node_modules/zod/v4/locales/ca.js +107 -0
  504. package/node_modules/zod/v4/locales/cs.cjs +138 -0
  505. package/node_modules/zod/v4/locales/cs.d.cts +5 -0
  506. package/node_modules/zod/v4/locales/cs.d.ts +4 -0
  507. package/node_modules/zod/v4/locales/cs.js +111 -0
  508. package/node_modules/zod/v4/locales/da.cjs +142 -0
  509. package/node_modules/zod/v4/locales/da.d.cts +5 -0
  510. package/node_modules/zod/v4/locales/da.d.ts +4 -0
  511. package/node_modules/zod/v4/locales/da.js +115 -0
  512. package/node_modules/zod/v4/locales/de.cjs +135 -0
  513. package/node_modules/zod/v4/locales/de.d.cts +5 -0
  514. package/node_modules/zod/v4/locales/de.d.ts +4 -0
  515. package/node_modules/zod/v4/locales/de.js +108 -0
  516. package/node_modules/zod/v4/locales/el.cjs +136 -0
  517. package/node_modules/zod/v4/locales/el.d.cts +5 -0
  518. package/node_modules/zod/v4/locales/el.d.ts +4 -0
  519. package/node_modules/zod/v4/locales/el.js +109 -0
  520. package/node_modules/zod/v4/locales/en.cjs +140 -0
  521. package/node_modules/zod/v4/locales/en.d.cts +5 -0
  522. package/node_modules/zod/v4/locales/en.d.ts +4 -0
  523. package/node_modules/zod/v4/locales/en.js +113 -0
  524. package/node_modules/zod/v4/locales/eo.cjs +136 -0
  525. package/node_modules/zod/v4/locales/eo.d.cts +5 -0
  526. package/node_modules/zod/v4/locales/eo.d.ts +4 -0
  527. package/node_modules/zod/v4/locales/eo.js +109 -0
  528. package/node_modules/zod/v4/locales/es.cjs +159 -0
  529. package/node_modules/zod/v4/locales/es.d.cts +5 -0
  530. package/node_modules/zod/v4/locales/es.d.ts +4 -0
  531. package/node_modules/zod/v4/locales/es.js +132 -0
  532. package/node_modules/zod/v4/locales/fa.cjs +141 -0
  533. package/node_modules/zod/v4/locales/fa.d.cts +5 -0
  534. package/node_modules/zod/v4/locales/fa.d.ts +4 -0
  535. package/node_modules/zod/v4/locales/fa.js +114 -0
  536. package/node_modules/zod/v4/locales/fi.cjs +139 -0
  537. package/node_modules/zod/v4/locales/fi.d.cts +5 -0
  538. package/node_modules/zod/v4/locales/fi.d.ts +4 -0
  539. package/node_modules/zod/v4/locales/fi.js +112 -0
  540. package/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
  541. package/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
  542. package/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
  543. package/node_modules/zod/v4/locales/fr-CA.js +107 -0
  544. package/node_modules/zod/v4/locales/fr.cjs +152 -0
  545. package/node_modules/zod/v4/locales/fr.d.cts +5 -0
  546. package/node_modules/zod/v4/locales/fr.d.ts +4 -0
  547. package/node_modules/zod/v4/locales/fr.js +125 -0
  548. package/node_modules/zod/v4/locales/he.cjs +241 -0
  549. package/node_modules/zod/v4/locales/he.d.cts +5 -0
  550. package/node_modules/zod/v4/locales/he.d.ts +4 -0
  551. package/node_modules/zod/v4/locales/he.js +214 -0
  552. package/node_modules/zod/v4/locales/hr.cjs +149 -0
  553. package/node_modules/zod/v4/locales/hr.d.cts +5 -0
  554. package/node_modules/zod/v4/locales/hr.d.ts +4 -0
  555. package/node_modules/zod/v4/locales/hr.js +122 -0
  556. package/node_modules/zod/v4/locales/hu.cjs +135 -0
  557. package/node_modules/zod/v4/locales/hu.d.cts +5 -0
  558. package/node_modules/zod/v4/locales/hu.d.ts +4 -0
  559. package/node_modules/zod/v4/locales/hu.js +108 -0
  560. package/node_modules/zod/v4/locales/hy.cjs +174 -0
  561. package/node_modules/zod/v4/locales/hy.d.cts +5 -0
  562. package/node_modules/zod/v4/locales/hy.d.ts +4 -0
  563. package/node_modules/zod/v4/locales/hy.js +147 -0
  564. package/node_modules/zod/v4/locales/id.cjs +133 -0
  565. package/node_modules/zod/v4/locales/id.d.cts +5 -0
  566. package/node_modules/zod/v4/locales/id.d.ts +4 -0
  567. package/node_modules/zod/v4/locales/id.js +106 -0
  568. package/node_modules/zod/v4/locales/index.cjs +111 -0
  569. package/node_modules/zod/v4/locales/index.d.cts +52 -0
  570. package/node_modules/zod/v4/locales/index.d.ts +52 -0
  571. package/node_modules/zod/v4/locales/index.js +52 -0
  572. package/node_modules/zod/v4/locales/is.cjs +136 -0
  573. package/node_modules/zod/v4/locales/is.d.cts +5 -0
  574. package/node_modules/zod/v4/locales/is.d.ts +4 -0
  575. package/node_modules/zod/v4/locales/is.js +109 -0
  576. package/node_modules/zod/v4/locales/it.cjs +135 -0
  577. package/node_modules/zod/v4/locales/it.d.cts +5 -0
  578. package/node_modules/zod/v4/locales/it.d.ts +4 -0
  579. package/node_modules/zod/v4/locales/it.js +108 -0
  580. package/node_modules/zod/v4/locales/ja.cjs +134 -0
  581. package/node_modules/zod/v4/locales/ja.d.cts +5 -0
  582. package/node_modules/zod/v4/locales/ja.d.ts +4 -0
  583. package/node_modules/zod/v4/locales/ja.js +107 -0
  584. package/node_modules/zod/v4/locales/ka.cjs +139 -0
  585. package/node_modules/zod/v4/locales/ka.d.cts +5 -0
  586. package/node_modules/zod/v4/locales/ka.d.ts +4 -0
  587. package/node_modules/zod/v4/locales/ka.js +112 -0
  588. package/node_modules/zod/v4/locales/kh.cjs +12 -0
  589. package/node_modules/zod/v4/locales/kh.d.cts +5 -0
  590. package/node_modules/zod/v4/locales/kh.d.ts +5 -0
  591. package/node_modules/zod/v4/locales/kh.js +5 -0
  592. package/node_modules/zod/v4/locales/km.cjs +137 -0
  593. package/node_modules/zod/v4/locales/km.d.cts +5 -0
  594. package/node_modules/zod/v4/locales/km.d.ts +4 -0
  595. package/node_modules/zod/v4/locales/km.js +110 -0
  596. package/node_modules/zod/v4/locales/ko.cjs +138 -0
  597. package/node_modules/zod/v4/locales/ko.d.cts +5 -0
  598. package/node_modules/zod/v4/locales/ko.d.ts +4 -0
  599. package/node_modules/zod/v4/locales/ko.js +111 -0
  600. package/node_modules/zod/v4/locales/lt.cjs +230 -0
  601. package/node_modules/zod/v4/locales/lt.d.cts +5 -0
  602. package/node_modules/zod/v4/locales/lt.d.ts +4 -0
  603. package/node_modules/zod/v4/locales/lt.js +203 -0
  604. package/node_modules/zod/v4/locales/mk.cjs +136 -0
  605. package/node_modules/zod/v4/locales/mk.d.cts +5 -0
  606. package/node_modules/zod/v4/locales/mk.d.ts +4 -0
  607. package/node_modules/zod/v4/locales/mk.js +109 -0
  608. package/node_modules/zod/v4/locales/ms.cjs +134 -0
  609. package/node_modules/zod/v4/locales/ms.d.cts +5 -0
  610. package/node_modules/zod/v4/locales/ms.d.ts +4 -0
  611. package/node_modules/zod/v4/locales/ms.js +107 -0
  612. package/node_modules/zod/v4/locales/nl.cjs +137 -0
  613. package/node_modules/zod/v4/locales/nl.d.cts +5 -0
  614. package/node_modules/zod/v4/locales/nl.d.ts +4 -0
  615. package/node_modules/zod/v4/locales/nl.js +110 -0
  616. package/node_modules/zod/v4/locales/no.cjs +135 -0
  617. package/node_modules/zod/v4/locales/no.d.cts +5 -0
  618. package/node_modules/zod/v4/locales/no.d.ts +4 -0
  619. package/node_modules/zod/v4/locales/no.js +108 -0
  620. package/node_modules/zod/v4/locales/ota.cjs +136 -0
  621. package/node_modules/zod/v4/locales/ota.d.cts +5 -0
  622. package/node_modules/zod/v4/locales/ota.d.ts +4 -0
  623. package/node_modules/zod/v4/locales/ota.js +109 -0
  624. package/node_modules/zod/v4/locales/package.json +7 -0
  625. package/node_modules/zod/v4/locales/pl.cjs +136 -0
  626. package/node_modules/zod/v4/locales/pl.d.cts +5 -0
  627. package/node_modules/zod/v4/locales/pl.d.ts +4 -0
  628. package/node_modules/zod/v4/locales/pl.js +109 -0
  629. package/node_modules/zod/v4/locales/ps.cjs +141 -0
  630. package/node_modules/zod/v4/locales/ps.d.cts +5 -0
  631. package/node_modules/zod/v4/locales/ps.d.ts +4 -0
  632. package/node_modules/zod/v4/locales/ps.js +114 -0
  633. package/node_modules/zod/v4/locales/pt.cjs +135 -0
  634. package/node_modules/zod/v4/locales/pt.d.cts +5 -0
  635. package/node_modules/zod/v4/locales/pt.d.ts +4 -0
  636. package/node_modules/zod/v4/locales/pt.js +108 -0
  637. package/node_modules/zod/v4/locales/ro.cjs +146 -0
  638. package/node_modules/zod/v4/locales/ro.d.cts +5 -0
  639. package/node_modules/zod/v4/locales/ro.d.ts +4 -0
  640. package/node_modules/zod/v4/locales/ro.js +119 -0
  641. package/node_modules/zod/v4/locales/ru.cjs +183 -0
  642. package/node_modules/zod/v4/locales/ru.d.cts +5 -0
  643. package/node_modules/zod/v4/locales/ru.d.ts +4 -0
  644. package/node_modules/zod/v4/locales/ru.js +156 -0
  645. package/node_modules/zod/v4/locales/sl.cjs +136 -0
  646. package/node_modules/zod/v4/locales/sl.d.cts +5 -0
  647. package/node_modules/zod/v4/locales/sl.d.ts +4 -0
  648. package/node_modules/zod/v4/locales/sl.js +109 -0
  649. package/node_modules/zod/v4/locales/sv.cjs +137 -0
  650. package/node_modules/zod/v4/locales/sv.d.cts +5 -0
  651. package/node_modules/zod/v4/locales/sv.d.ts +4 -0
  652. package/node_modules/zod/v4/locales/sv.js +110 -0
  653. package/node_modules/zod/v4/locales/ta.cjs +137 -0
  654. package/node_modules/zod/v4/locales/ta.d.cts +5 -0
  655. package/node_modules/zod/v4/locales/ta.d.ts +4 -0
  656. package/node_modules/zod/v4/locales/ta.js +110 -0
  657. package/node_modules/zod/v4/locales/th.cjs +137 -0
  658. package/node_modules/zod/v4/locales/th.d.cts +5 -0
  659. package/node_modules/zod/v4/locales/th.d.ts +4 -0
  660. package/node_modules/zod/v4/locales/th.js +110 -0
  661. package/node_modules/zod/v4/locales/tr.cjs +132 -0
  662. package/node_modules/zod/v4/locales/tr.d.cts +5 -0
  663. package/node_modules/zod/v4/locales/tr.d.ts +4 -0
  664. package/node_modules/zod/v4/locales/tr.js +105 -0
  665. package/node_modules/zod/v4/locales/ua.cjs +12 -0
  666. package/node_modules/zod/v4/locales/ua.d.cts +5 -0
  667. package/node_modules/zod/v4/locales/ua.d.ts +5 -0
  668. package/node_modules/zod/v4/locales/ua.js +5 -0
  669. package/node_modules/zod/v4/locales/uk.cjs +135 -0
  670. package/node_modules/zod/v4/locales/uk.d.cts +5 -0
  671. package/node_modules/zod/v4/locales/uk.d.ts +4 -0
  672. package/node_modules/zod/v4/locales/uk.js +108 -0
  673. package/node_modules/zod/v4/locales/ur.cjs +137 -0
  674. package/node_modules/zod/v4/locales/ur.d.cts +5 -0
  675. package/node_modules/zod/v4/locales/ur.d.ts +4 -0
  676. package/node_modules/zod/v4/locales/ur.js +110 -0
  677. package/node_modules/zod/v4/locales/uz.cjs +137 -0
  678. package/node_modules/zod/v4/locales/uz.d.cts +5 -0
  679. package/node_modules/zod/v4/locales/uz.d.ts +4 -0
  680. package/node_modules/zod/v4/locales/uz.js +110 -0
  681. package/node_modules/zod/v4/locales/vi.cjs +135 -0
  682. package/node_modules/zod/v4/locales/vi.d.cts +5 -0
  683. package/node_modules/zod/v4/locales/vi.d.ts +4 -0
  684. package/node_modules/zod/v4/locales/vi.js +108 -0
  685. package/node_modules/zod/v4/locales/yo.cjs +134 -0
  686. package/node_modules/zod/v4/locales/yo.d.cts +5 -0
  687. package/node_modules/zod/v4/locales/yo.d.ts +4 -0
  688. package/node_modules/zod/v4/locales/yo.js +107 -0
  689. package/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
  690. package/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
  691. package/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
  692. package/node_modules/zod/v4/locales/zh-CN.js +109 -0
  693. package/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
  694. package/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
  695. package/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
  696. package/node_modules/zod/v4/locales/zh-TW.js +107 -0
  697. package/node_modules/zod/v4/mini/checks.cjs +34 -0
  698. package/node_modules/zod/v4/mini/checks.d.cts +1 -0
  699. package/node_modules/zod/v4/mini/checks.d.ts +1 -0
  700. package/node_modules/zod/v4/mini/checks.js +1 -0
  701. package/node_modules/zod/v4/mini/coerce.cjs +52 -0
  702. package/node_modules/zod/v4/mini/coerce.d.cts +7 -0
  703. package/node_modules/zod/v4/mini/coerce.d.ts +7 -0
  704. package/node_modules/zod/v4/mini/coerce.js +22 -0
  705. package/node_modules/zod/v4/mini/external.cjs +63 -0
  706. package/node_modules/zod/v4/mini/external.d.cts +13 -0
  707. package/node_modules/zod/v4/mini/external.d.ts +13 -0
  708. package/node_modules/zod/v4/mini/external.js +14 -0
  709. package/node_modules/zod/v4/mini/index.cjs +32 -0
  710. package/node_modules/zod/v4/mini/index.d.cts +3 -0
  711. package/node_modules/zod/v4/mini/index.d.ts +3 -0
  712. package/node_modules/zod/v4/mini/index.js +3 -0
  713. package/node_modules/zod/v4/mini/iso.cjs +64 -0
  714. package/node_modules/zod/v4/mini/iso.d.cts +22 -0
  715. package/node_modules/zod/v4/mini/iso.d.ts +22 -0
  716. package/node_modules/zod/v4/mini/iso.js +34 -0
  717. package/node_modules/zod/v4/mini/package.json +7 -0
  718. package/node_modules/zod/v4/mini/parse.cjs +16 -0
  719. package/node_modules/zod/v4/mini/parse.d.cts +1 -0
  720. package/node_modules/zod/v4/mini/parse.d.ts +1 -0
  721. package/node_modules/zod/v4/mini/parse.js +1 -0
  722. package/node_modules/zod/v4/mini/schemas.cjs +1083 -0
  723. package/node_modules/zod/v4/mini/schemas.d.cts +445 -0
  724. package/node_modules/zod/v4/mini/schemas.d.ts +445 -0
  725. package/node_modules/zod/v4/mini/schemas.js +961 -0
  726. package/node_modules/zod/v4/package.json +7 -0
  727. package/node_modules/zod/v4-mini/index.cjs +32 -0
  728. package/node_modules/zod/v4-mini/index.d.cts +3 -0
  729. package/node_modules/zod/v4-mini/index.d.ts +3 -0
  730. package/node_modules/zod/v4-mini/index.js +3 -0
  731. package/node_modules/zod/v4-mini/package.json +7 -0
  732. package/package.json +1 -1
  733. package/src/__tests__/upgrade-local.test.ts +443 -0
  734. package/src/commands/client.ts +277 -100
  735. package/src/commands/exec.ts +2 -2
  736. package/src/commands/flags.ts +1 -1
  737. package/src/commands/logs.ts +1 -2
  738. package/src/commands/ps.ts +1 -2
  739. package/src/commands/retire.ts +1 -2
  740. package/src/commands/roadmap.ts +8 -10
  741. package/src/commands/rollback.ts +1 -2
  742. package/src/commands/ssh.ts +1 -2
  743. package/src/commands/teleport.ts +6 -7
  744. package/src/commands/upgrade.ts +351 -25
  745. package/src/lib/assistant-config.ts +56 -48
  746. package/src/lib/confirm-action.ts +4 -0
  747. package/src/lib/local.ts +204 -24
  748. package/src/lib/terminal-session.ts +2 -2
  749. package/src/lib/upgrade-lifecycle.ts +29 -16
  750. package/src/shared/provider-env-vars.ts +1 -0
@@ -11,6 +11,11 @@ import { homedir } from "os";
11
11
  import { dirname, join } from "path";
12
12
 
13
13
  import { SEEDS, type EnvironmentDefinition } from "@vellumai/environments";
14
+ import {
15
+ resolveCloud,
16
+ type LocalAssistantResources,
17
+ type LockfileAssistant,
18
+ } from "@vellumai/local-mode/contract";
14
19
 
15
20
  import { DAEMON_INTERNAL_ASSISTANT_ID } from "./constants.js";
16
21
  import {
@@ -23,11 +28,17 @@ import { getCurrentEnvironment } from "./environments/resolve.js";
23
28
  import { probePort } from "./port-probe.js";
24
29
 
25
30
  /**
26
- * Per-instance resource paths and ports. Each local assistant instance gets
27
- * its own directory tree, ports, and socket so multiple instances can run
28
- * side-by-side without conflicts.
31
+ * Per-instance resource paths and ports. Each local assistant instance gets its
32
+ * own directory tree, ports, and socket so multiple instances can run
33
+ * side-by-side without conflicts. Extends the renderer-safe resources contract
34
+ * (`instanceDir`, `gatewayPort`, `daemonPort`) with the host-only ports and the
35
+ * signing key. Host-only and same-process, so it is a plain type — the
36
+ * renderer-facing shape is the one with a Zod contract.
29
37
  */
30
- export interface LocalInstanceResources {
38
+ export type LocalInstanceResources = Omit<
39
+ LocalAssistantResources,
40
+ "instanceDir"
41
+ > & {
31
42
  /**
32
43
  * Instance-specific data root. New local assistants are placed under
33
44
  * `$XDG_DATA_HOME/vellum{-env}/assistants/<name>/`. Legacy entries
@@ -36,10 +47,6 @@ export interface LocalInstanceResources {
36
47
  * lives inside it.
37
48
  */
38
49
  instanceDir: string;
39
- /** HTTP port for the daemon runtime server */
40
- daemonPort: number;
41
- /** HTTP port for the gateway */
42
- gatewayPort: number;
43
50
  /** HTTP port for the Qdrant vector store */
44
51
  qdrantPort: number;
45
52
  /** HTTP port for the CES (Claude Extension Server) */
@@ -47,8 +54,12 @@ export interface LocalInstanceResources {
47
54
  /** Persisted HMAC signing key (hex). Survives daemon/gateway restarts so
48
55
  * client actor tokens remain valid across `wake` cycles. */
49
56
  signingKey?: string;
57
+ /** Version of the npm-backed local runtime this assistant should run. */
58
+ runtimeVersion?: string;
59
+ /** Install directory containing the npm-backed local runtime packages. */
60
+ runtimeInstallDir?: string;
50
61
  [key: string]: unknown;
51
- }
62
+ };
52
63
 
53
64
  /** Docker image metadata for the service group. Enables rollback to known-good digests. */
54
65
  export interface ContainerInfo {
@@ -65,26 +76,32 @@ export interface ContainerInfo {
65
76
  networkName?: string;
66
77
  }
67
78
 
68
- export interface AssistantEntry {
69
- assistantId: string;
70
- /** Platform-provided display name, when available. */
71
- name?: string;
79
+ /**
80
+ * The CLI's full view of an assistant entry: the renderer-safe base
81
+ * (`LockfileAssistant`, the one canonical Zod contract) plus the host-only and
82
+ * sensitive fields the CLI reads and writes. Those extra fields never cross a
83
+ * validation boundary — the same toolchain writes and reads them — so they are
84
+ * modeled as plain types here rather than re-validated.
85
+ *
86
+ * `runtimeUrl` is required (`readAssistants` only returns entries that have one)
87
+ * and `resources` is the richer host shape. `cloud` is inherited from
88
+ * `LockfileAssistant` (always present; normalized at the read seam — see
89
+ * `readAssistants`). The index signature preserves unknown on-disk fields so a
90
+ * read→write round-trip never drops a newer writer's data.
91
+ */
92
+ export type AssistantEntry = Omit<
93
+ LockfileAssistant,
94
+ "runtimeUrl" | "resources"
95
+ > & {
96
+ runtimeUrl: string;
97
+ /** Per-instance resource config. Present for local entries in multi-instance setups. */
98
+ resources?: LocalInstanceResources;
72
99
  /** Older lockfile key for the display name, if present. */
73
100
  assistantName?: string;
74
- runtimeUrl: string;
75
101
  /** Loopback URL for same-machine health checks (e.g. `http://127.0.0.1:7831`).
76
102
  * Avoids mDNS resolution issues when the machine checks its own gateway. */
77
103
  localUrl?: string;
78
104
  bearerToken?: string;
79
- /** Deployment topology / how the assistant is reached. Known values:
80
- * `"local"` (on-machine daemon), `"docker"` (local container),
81
- * `"apple-container"` (macOS-app-managed container), `"vellum"`
82
- * (platform-managed, uses the X-Session-Token auth path), `"gcp"` / `"aws"`
83
- * / `"custom"` (remote, SSH-managed), and `"paired"` (a remote assistant
84
- * paired from another machine — reached via a bearer guardian token at
85
- * `runtimeUrl`; has no local process, container, or `resources`).
86
- * Kept as a free `string` (not a union) for forward-compatibility. */
87
- cloud: string;
88
105
  /** True when this entry was registered via `vellum connect import` (a remote
89
106
  * pairing). Set alongside `cloud: "paired"`; also backs the re-import /
90
107
  * overwrite guard in connect import. */
@@ -93,12 +110,8 @@ export interface AssistantEntry {
93
110
  namespace?: string;
94
111
  project?: string;
95
112
  region?: string;
96
- species?: string;
97
113
  sshUser?: string;
98
114
  zone?: string;
99
- hatchedAt?: string;
100
- /** Per-instance resource config. Present for local entries in multi-instance setups. */
101
- resources?: LocalInstanceResources;
102
115
  /** PID of the file watcher process for docker instances hatched with --watch. */
103
116
  watcherPid?: number;
104
117
  /** Local bootstrap secret used to lease guardian tokens for Docker assistants after detached hatch. */
@@ -119,7 +132,7 @@ export interface AssistantEntry {
119
132
  /** Pre-upgrade workspace migration ID — used by rollback to know how far back to revert. */
120
133
  previousWorkspaceMigrationId?: string;
121
134
  [key: string]: unknown;
122
- }
135
+ };
123
136
 
124
137
  export type AssistantLookupResult =
125
138
  | { status: "found"; entry: AssistantEntry }
@@ -300,10 +313,20 @@ function readAssistants(): AssistantEntry[] {
300
313
  writeLockfile(data);
301
314
  }
302
315
 
303
- return entries.filter(
304
- (e): e is AssistantEntry =>
305
- typeof e.assistantId === "string" && typeof e.runtimeUrl === "string",
306
- );
316
+ const result: AssistantEntry[] = [];
317
+ for (const entry of entries) {
318
+ if (
319
+ typeof entry.assistantId !== "string" ||
320
+ typeof entry.runtimeUrl !== "string"
321
+ ) {
322
+ continue;
323
+ }
324
+ // Normalize `cloud` once, at the read seam every reader shares, so
325
+ // downstream code reads `entry.cloud` instead of re-deriving the topology.
326
+ entry.cloud = resolveCloud(entry);
327
+ result.push(entry as AssistantEntry);
328
+ }
329
+ return result;
307
330
  }
308
331
 
309
332
  function writeAssistants(entries: AssistantEntry[]): void {
@@ -471,6 +494,7 @@ export function loadAllAssistantsAcrossEnvs(
471
494
  ) {
472
495
  continue;
473
496
  }
497
+ entry.cloud = resolveCloud(entry);
474
498
  all.push(entry);
475
499
  }
476
500
  }
@@ -555,22 +579,6 @@ export function resolveTargetAssistant(nameArg?: string): AssistantEntry {
555
579
  process.exit(1);
556
580
  }
557
581
 
558
- /**
559
- * Determine which cloud topology an assistant entry is running on.
560
- */
561
- export function resolveCloud(entry: AssistantEntry): string {
562
- if (entry.cloud) {
563
- return entry.cloud;
564
- }
565
- if (entry.project) {
566
- return "gcp";
567
- }
568
- if (entry.sshUser) {
569
- return "custom";
570
- }
571
- return "local";
572
- }
573
-
574
582
  /**
575
583
  * Extract the hostname from a URL string. Falls back to stripping the scheme
576
584
  * and taking the hostname portion if URL parsing fails.
@@ -18,6 +18,9 @@ export function canPromptForConfirmation(): boolean {
18
18
  * Show `prompt` and resolve true on Enter, false on Esc/q/Ctrl-C. Restores the
19
19
  * prior stdin raw/paused state on exit. Caller must gate on
20
20
  * {@link canPromptForConfirmation} first.
21
+ *
22
+ * `unref()`s stdin on cleanup so the resumed handle doesn't keep the process
23
+ * alive after the prompt resolves.
21
24
  */
22
25
  export async function confirmAction(prompt: string): Promise<boolean> {
23
26
  const stdin = process.stdin;
@@ -36,6 +39,7 @@ export async function confirmAction(prompt: string): Promise<boolean> {
36
39
  if (wasPaused) {
37
40
  stdin.pause();
38
41
  }
42
+ stdin.unref?.();
39
43
  stdout.write("\n");
40
44
  };
41
45
 
package/src/lib/local.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { execFileSync, execSync, spawn } from "child_process";
1
+ import { execFileSync, execSync, spawn, spawnSync } from "child_process";
2
2
  import { createHash, randomBytes } from "crypto";
3
3
  import {
4
4
  existsSync,
@@ -9,7 +9,7 @@ import {
9
9
  } from "fs";
10
10
  import { createRequire } from "module";
11
11
  import { homedir, networkInterfaces, platform, tmpdir } from "os";
12
- import { dirname, join } from "path";
12
+ import { basename, dirname, join } from "path";
13
13
 
14
14
  import {
15
15
  getDaemonPidPath,
@@ -23,6 +23,7 @@ import {
23
23
  stopProcess,
24
24
  stopProcessByPidFile,
25
25
  } from "./process.js";
26
+ import { stripVersionPrefix } from "./version-compat.js";
26
27
  import { openLogFile, pipeToLogFile } from "./xdg-log.js";
27
28
 
28
29
  const _require = createRequire(import.meta.url);
@@ -33,6 +34,166 @@ const DARWIN_UNIX_SOCKET_MAX_PATH_BYTES = 103;
33
34
  // The longest socket filename we place in the workspace directory.
34
35
  // assistant-skill.sock = 20 chars, plus 1 for the "/" separator = 21 overhead.
35
36
  const LONGEST_SOCKET_FILENAME = "assistant-skill.sock";
37
+ const LOCAL_RUNTIME_PACKAGE = "vellum";
38
+
39
+ export interface LocalRuntimeInstall {
40
+ version: string;
41
+ installDir: string;
42
+ }
43
+
44
+ function normalizeRuntimeVersion(version: string): string {
45
+ return version === "latest" ? version : stripVersionPrefix(version);
46
+ }
47
+
48
+ export function getLocalRuntimeInstallDir(
49
+ resources: LocalInstanceResources,
50
+ version: string,
51
+ ): string {
52
+ return join(
53
+ resources.instanceDir,
54
+ ".vellum",
55
+ "runtime",
56
+ normalizeRuntimeVersion(version),
57
+ );
58
+ }
59
+
60
+ function packagePath(
61
+ installDir: string,
62
+ packageName: string,
63
+ relativePath: string,
64
+ ): string {
65
+ return join(
66
+ installDir,
67
+ "node_modules",
68
+ ...packageName.split("/"),
69
+ relativePath,
70
+ );
71
+ }
72
+
73
+ function hasLocalRuntimeComponents(installDir: string): boolean {
74
+ return (
75
+ existsSync(
76
+ packagePath(installDir, "@vellumai/assistant", "src/index.ts"),
77
+ ) &&
78
+ existsSync(
79
+ packagePath(installDir, "@vellumai/vellum-gateway", "src/index.ts"),
80
+ ) &&
81
+ existsSync(
82
+ packagePath(installDir, "@vellumai/credential-executor", "src/main.ts"),
83
+ )
84
+ );
85
+ }
86
+
87
+ function resolveBunExecutable(): string {
88
+ const execBase = basename(process.execPath);
89
+ if (execBase === "bun" || execBase.startsWith("bun-")) {
90
+ return process.execPath;
91
+ }
92
+
93
+ const envBun = process.env.VELLUM_BUN;
94
+ if (envBun && existsSync(envBun)) return envBun;
95
+
96
+ const siblingBun = join(dirname(process.execPath), "bun");
97
+ if (existsSync(siblingBun)) return siblingBun;
98
+
99
+ const bundledBun = join(dirname(process.execPath), "..", "Resources", "bun");
100
+ if (existsSync(bundledBun)) return bundledBun;
101
+
102
+ const homeBun = join(homedir(), ".bun", "bin", "bun");
103
+ if (existsSync(homeBun)) return homeBun;
104
+
105
+ return "bun";
106
+ }
107
+
108
+ function envWithBunPath(
109
+ env: Record<string, string | undefined>,
110
+ ): Record<string, string | undefined> {
111
+ const bunPath = resolveBunExecutable();
112
+ const basePath = env.PATH || "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin";
113
+ const extraDirs = [
114
+ bunPath.includes("/") ? dirname(bunPath) : "",
115
+ join(homedir(), ".bun", "bin"),
116
+ join(homedir(), ".local", "bin"),
117
+ ].filter((dir) => dir && !basePath.split(":").includes(dir));
118
+ return {
119
+ ...env,
120
+ PATH: [...extraDirs, basePath].filter(Boolean).join(":"),
121
+ };
122
+ }
123
+
124
+ function localRuntimeAssistantIndex(
125
+ resources: LocalInstanceResources,
126
+ ): string | undefined {
127
+ const installDir = resources.runtimeInstallDir;
128
+ if (!installDir) return undefined;
129
+ const candidate = packagePath(
130
+ installDir,
131
+ "@vellumai/assistant",
132
+ "src/index.ts",
133
+ );
134
+ return existsSync(candidate) ? candidate : undefined;
135
+ }
136
+
137
+ function localRuntimeGatewayDir(
138
+ resources: LocalInstanceResources | undefined,
139
+ ): string | undefined {
140
+ const installDir = resources?.runtimeInstallDir;
141
+ if (!installDir) return undefined;
142
+ const candidate = packagePath(installDir, "@vellumai/vellum-gateway", "");
143
+ return isGatewaySourceDir(candidate) ? candidate : undefined;
144
+ }
145
+
146
+ export function ensureLocalRuntime(
147
+ resources: LocalInstanceResources,
148
+ version: string,
149
+ options: { force?: boolean } = {},
150
+ ): LocalRuntimeInstall {
151
+ const normalizedVersion = normalizeRuntimeVersion(version);
152
+ const displayVersion =
153
+ normalizedVersion === "latest" ? "latest" : `v${normalizedVersion}`;
154
+ const installDir = getLocalRuntimeInstallDir(resources, normalizedVersion);
155
+
156
+ if (!options.force && hasLocalRuntimeComponents(installDir)) {
157
+ return { version: displayVersion, installDir };
158
+ }
159
+
160
+ ensureBunInstalled();
161
+ mkdirSync(installDir, { recursive: true });
162
+ writeFileSync(
163
+ join(installDir, "package.json"),
164
+ `${JSON.stringify(
165
+ {
166
+ private: true,
167
+ dependencies: {
168
+ [LOCAL_RUNTIME_PACKAGE]: normalizedVersion,
169
+ },
170
+ },
171
+ null,
172
+ 2,
173
+ )}\n`,
174
+ );
175
+
176
+ const bunPath = resolveBunExecutable();
177
+ const result = spawnSync(bunPath, ["install", "--ignore-scripts"], {
178
+ cwd: installDir,
179
+ stdio: "inherit",
180
+ env: envWithBunPath(process.env),
181
+ });
182
+
183
+ if (result.error || result.status !== 0) {
184
+ const detail =
185
+ result.error?.message ?? `bun install exited with code ${result.status}`;
186
+ throw new Error(`Local runtime install failed: ${detail}`);
187
+ }
188
+
189
+ if (!hasLocalRuntimeComponents(installDir)) {
190
+ throw new Error(
191
+ `Local runtime install at ${installDir} is missing assistant, gateway, or credential-executor packages.`,
192
+ );
193
+ }
194
+
195
+ return { version: displayVersion, installDir };
196
+ }
36
197
 
37
198
  /**
38
199
  * Warn when an assistant appears to have legacy data in the global workspace.
@@ -190,7 +351,14 @@ function findGatewaySourceFromCwd(): string | undefined {
190
351
  }
191
352
  }
192
353
 
193
- function resolveAssistantIndexPath(): string | undefined {
354
+ function resolveAssistantIndexPath(
355
+ resources?: LocalInstanceResources,
356
+ ): string | undefined {
357
+ if (resources) {
358
+ const runtimeIndex = localRuntimeAssistantIndex(resources);
359
+ if (runtimeIndex) return runtimeIndex;
360
+ }
361
+
194
362
  // Source tree layout: cli/src/lib/ -> ../../.. -> repo root -> assistant/src/index.ts
195
363
  const sourceTreeIndex = join(
196
364
  import.meta.dir,
@@ -246,16 +414,10 @@ function resolveAssistantIndexPath(): string | undefined {
246
414
  }
247
415
 
248
416
  function ensureBunInstalled(): void {
249
- const bunBinDir = join(homedir(), ".bun", "bin");
250
- const pathWithBun = [
251
- bunBinDir,
252
- process.env.PATH || "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
253
- ].join(":");
254
-
255
417
  try {
256
- execFileSync("bun", ["--version"], {
418
+ execFileSync(resolveBunExecutable(), ["--version"], {
257
419
  stdio: "pipe",
258
- env: { ...process.env, PATH: pathWithBun },
420
+ env: envWithBunPath(process.env),
259
421
  });
260
422
  return;
261
423
  } catch {
@@ -418,17 +580,19 @@ async function startDaemonFromSource(
418
580
  // detect the in-progress spawn and wait instead of racing.
419
581
  writeFileSync(pidFile, "starting", "utf-8");
420
582
 
583
+ const bunPath = resolveBunExecutable();
584
+ const spawnEnv = envWithBunPath(env);
421
585
  const child = foreground
422
- ? spawn(process.execPath, ["run", daemonMainPath], {
586
+ ? spawn(bunPath, ["run", daemonMainPath], {
423
587
  stdio: "inherit",
424
- env,
588
+ env: spawnEnv,
425
589
  })
426
590
  : (() => {
427
591
  const daemonLogFd = openLogFile("hatch.log");
428
- const c = spawn(process.execPath, ["run", daemonMainPath], {
592
+ const c = spawn(bunPath, ["run", daemonMainPath], {
429
593
  detached: true,
430
594
  stdio: ["ignore", "pipe", "pipe"],
431
- env,
595
+ env: spawnEnv,
432
596
  });
433
597
  pipeToLogFile(c, daemonLogFd, "daemon");
434
598
  c.unref();
@@ -489,10 +653,10 @@ async function startDaemonWatchFromSource(
489
653
  writeFileSync(pidFile, "starting", "utf-8");
490
654
 
491
655
  const daemonLogFd = openLogFile("hatch.log");
492
- const child = spawn(process.execPath, ["--watch", "run", mainPath], {
656
+ const child = spawn(resolveBunExecutable(), ["--watch", "run", mainPath], {
493
657
  detached: true,
494
658
  stdio: ["ignore", "pipe", "pipe"],
495
- env,
659
+ env: envWithBunPath(env),
496
660
  });
497
661
  pipeToLogFile(child, daemonLogFd, "daemon");
498
662
  child.unref();
@@ -510,7 +674,10 @@ async function startDaemonWatchFromSource(
510
674
  console.log(" Assistant started in watch mode (bun --watch)");
511
675
  }
512
676
 
513
- function resolveGatewayDir(): string {
677
+ function resolveGatewayDir(resources?: LocalInstanceResources): string {
678
+ const runtimeGatewayDir = localRuntimeGatewayDir(resources);
679
+ if (runtimeGatewayDir) return runtimeGatewayDir;
680
+
514
681
  // Source tree: cli/src/lib/ → ../../.. → repo root → gateway/
515
682
  const sourceDir = join(import.meta.dir, "..", "..", "..", "gateway");
516
683
  if (isGatewaySourceDir(sourceDir)) {
@@ -883,6 +1050,16 @@ export async function startLocalDaemon(
883
1050
  warnIfLegacyWorkspaceFallbackDetected(resources);
884
1051
  writeAssistantWrapper(resources);
885
1052
 
1053
+ const runtimeAssistantIndex = !watch
1054
+ ? localRuntimeAssistantIndex(resources)
1055
+ : undefined;
1056
+ if (runtimeAssistantIndex) {
1057
+ console.log("🔨 Starting local assistant runtime...");
1058
+ await startDaemonFromSource(runtimeAssistantIndex, resources, options);
1059
+ logDaemonReadiness(await waitForDaemonReady(resources.daemonPort, 60000));
1060
+ return;
1061
+ }
1062
+
886
1063
  const foreground = options?.foreground ?? false;
887
1064
  // Check for a compiled daemon binary adjacent to the CLI executable.
888
1065
  // This covers both the desktop app (VELLUM_DESKTOP_APP) and the case where
@@ -1020,7 +1197,7 @@ export async function startLocalDaemon(
1020
1197
  // Dev fallback: if the bundled daemon did not become ready in time,
1021
1198
  // fall back to source daemon startup so local source runs still work.
1022
1199
  if (!daemonReady) {
1023
- const assistantIndex = resolveAssistantIndexPath();
1200
+ const assistantIndex = resolveAssistantIndexPath(resources);
1024
1201
  if (assistantIndex) {
1025
1202
  console.log(
1026
1203
  " Bundled assistant not ready after 60s — falling back to source assistant...",
@@ -1040,7 +1217,7 @@ export async function startLocalDaemon(
1040
1217
  } else {
1041
1218
  console.log("🔨 Starting local assistant...");
1042
1219
 
1043
- const assistantIndex = resolveAssistantIndexPath();
1220
+ const assistantIndex = resolveAssistantIndexPath(resources);
1044
1221
  if (!assistantIndex) {
1045
1222
  throw new Error(
1046
1223
  "vellum-daemon binary not found and assistant source not available.\n" +
@@ -1137,8 +1314,11 @@ export async function startGateway(
1137
1314
 
1138
1315
  let gateway;
1139
1316
 
1317
+ const runtimeGatewayDir = !watch
1318
+ ? localRuntimeGatewayDir(resources)
1319
+ : undefined;
1140
1320
  const gatewayBinary = join(dirname(process.execPath), "vellum-gateway");
1141
- if (existsSync(gatewayBinary) && !watch) {
1321
+ if (!runtimeGatewayDir && existsSync(gatewayBinary) && !watch) {
1142
1322
  // Use the compiled gateway binary when available (desktop app or compiled
1143
1323
  // CLI invoked from the terminal). In watch mode, skip the bundled binary
1144
1324
  // and use source (bun --watch only works with source files).
@@ -1151,16 +1331,16 @@ export async function startGateway(
1151
1331
  pipeToLogFile(gateway, gatewayLogFd, "gateway");
1152
1332
  } else {
1153
1333
  // Source tree / bunx: resolve the gateway source directory and run via bun.
1154
- const gatewayDir = resolveGatewayDir();
1334
+ const gatewayDir = runtimeGatewayDir ?? resolveGatewayDir(resources);
1155
1335
  const bunArgs = watch
1156
1336
  ? ["--watch", "run", "src/index.ts", "--vellum-gateway"]
1157
1337
  : ["run", "src/index.ts", "--vellum-gateway"];
1158
1338
  const gwLogFd = openLogFile("hatch.log");
1159
- gateway = spawn(process.execPath, bunArgs, {
1339
+ gateway = spawn(resolveBunExecutable(), bunArgs, {
1160
1340
  cwd: gatewayDir,
1161
1341
  detached: true,
1162
1342
  stdio: ["ignore", "pipe", "pipe"],
1163
- env: gatewayEnv,
1343
+ env: envWithBunPath(gatewayEnv),
1164
1344
  });
1165
1345
  pipeToLogFile(gateway, gwLogFd, "gateway");
1166
1346
  if (watch) {
@@ -6,7 +6,7 @@
6
6
  * resolver without cross-importing commands (per cli/CONTRIBUTING.md).
7
7
  */
8
8
 
9
- import { resolveAssistant, resolveCloud } from "./assistant-config.js";
9
+ import { resolveAssistant } from "./assistant-config.js";
10
10
  import { getPlatformUrl, readPlatformToken } from "./platform-client.js";
11
11
  import {
12
12
  closeTerminalSession,
@@ -49,7 +49,7 @@ export function resolveManagedAssistant(
49
49
  process.exit(1);
50
50
  }
51
51
 
52
- const cloud = resolveCloud(entry);
52
+ const cloud = entry.cloud;
53
53
  if (cloud !== "vellum") {
54
54
  if (cloud === "local") {
55
55
  console.error(
@@ -66,10 +66,14 @@ export async function captureUpgradeFailureLogs(
66
66
  // stream (docker logs writes container stdout→stdout, stderr→stderr)
67
67
  // are preserved in a single file. spawnSync avoids the execOutput
68
68
  // limitation of returning only stdout on success.
69
- const result = spawnSync("docker", ["logs", "--tail", "500", container], {
70
- encoding: "utf8",
71
- maxBuffer: 10 * 1024 * 1024, // 10 MB
72
- });
69
+ const result = spawnSync(
70
+ "docker",
71
+ ["logs", "--tail", "500", container],
72
+ {
73
+ encoding: "utf8",
74
+ maxBuffer: 10 * 1024 * 1024, // 10 MB
75
+ },
76
+ );
73
77
  const output = [result.stdout, result.stderr].filter(Boolean).join("");
74
78
  if (output) writeFileSync(join(logDir, filename), output);
75
79
  } catch {
@@ -127,7 +131,7 @@ export function buildUpgradeCommitMessage(options: {
127
131
  phase: "starting" | "complete";
128
132
  from: string;
129
133
  to: string;
130
- topology: "docker" | "managed";
134
+ topology: "docker" | "local" | "managed";
131
135
  assistantId: string;
132
136
  result?: "success" | "failure";
133
137
  }): string {
@@ -300,10 +304,13 @@ export async function fetchAssistantIngressUrl(
300
304
  ): Promise<string | undefined> {
301
305
  if (!bearerToken) return undefined;
302
306
  try {
303
- const resp = await loopbackSafeFetch(`${runtimeUrl}/integrations/ingress/config`, {
304
- headers: { Authorization: `Bearer ${bearerToken}` },
305
- signal: AbortSignal.timeout(5000),
306
- });
307
+ const resp = await loopbackSafeFetch(
308
+ `${runtimeUrl}/integrations/ingress/config`,
309
+ {
310
+ headers: { Authorization: `Bearer ${bearerToken}` },
311
+ signal: AbortSignal.timeout(5000),
312
+ },
313
+ );
307
314
  if (resp.ok) {
308
315
  const body = (await resp.json()) as {
309
316
  publicBaseUrl?: string;
@@ -483,12 +490,15 @@ export async function rollbackMigrations(
483
490
  body.targetWorkspaceMigrationId = targetWorkspaceMigrationId;
484
491
  if (rollbackToRegistryCeiling) body.rollbackToRegistryCeiling = true;
485
492
 
486
- const resp = await loopbackSafeFetch(`${gatewayUrl}/v1/admin/rollback-migrations`, {
487
- method: "POST",
488
- headers,
489
- body: JSON.stringify(body),
490
- signal: AbortSignal.timeout(120_000),
491
- });
493
+ const resp = await loopbackSafeFetch(
494
+ `${gatewayUrl}/v1/admin/rollback-migrations`,
495
+ {
496
+ method: "POST",
497
+ headers,
498
+ body: JSON.stringify(body),
499
+ signal: AbortSignal.timeout(120_000),
500
+ },
501
+ );
492
502
  if (!resp.ok) {
493
503
  const text = await resp.text();
494
504
  console.warn(`⚠️ Migration rollback failed (${resp.status}): ${text}`);
@@ -812,7 +822,10 @@ export async function performDockerRollback(
812
822
  // Failure path — attempt auto-rollback to original version
813
823
  console.error(`\n❌ Containers failed to become ready within the timeout.`);
814
824
 
815
- const logDir = await captureUpgradeFailureLogs(res, `${instanceName}-rollback-failure`);
825
+ const logDir = await captureUpgradeFailureLogs(
826
+ res,
827
+ `${instanceName}-rollback-failure`,
828
+ );
816
829
  if (logDir) {
817
830
  console.log(`📋 Container logs saved to: ${logDir}`);
818
831
  }
@@ -28,6 +28,7 @@ export const LLM_PROVIDER_ENV_VAR_NAMES: Record<string, string> = {
28
28
  openrouter: "OPENROUTER_API_KEY",
29
29
  minimax: "MINIMAX_API_KEY",
30
30
  atlascloud: "ATLASCLOUD_API_KEY",
31
+ together: "TOGETHER_API_KEY",
31
32
  };
32
33
 
33
34
  /** Search-provider env var names. Mirrors `SEARCH_PROVIDER_CATALOG` BYOK entries. */