@vellumai/cli 0.10.0 → 0.10.1-staging.1

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 (749) 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 +266 -102
  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/local.ts +204 -24
  747. package/src/lib/terminal-session.ts +2 -2
  748. package/src/lib/upgrade-lifecycle.ts +29 -16
  749. package/src/shared/provider-env-vars.ts +1 -0
@@ -1,4 +1,6 @@
1
1
  import { spawnSync } from "child_process";
2
+ import { writeFileSync } from "fs";
3
+ import { join } from "path";
2
4
 
3
5
  import cliPkg from "../../package.json";
4
6
 
@@ -6,7 +8,6 @@ import {
6
8
  findAssistantByName,
7
9
  getActiveAssistant,
8
10
  loadAllAssistants,
9
- resolveCloud,
10
11
  saveAssistantEntry,
11
12
  type AssistantEntry,
12
13
  } from "../lib/assistant-config";
@@ -56,10 +57,24 @@ import {
56
57
  } from "../lib/upgrade-lifecycle.js";
57
58
  import {
58
59
  compareVersions,
60
+ parseVersion,
59
61
  stripVersionPrefix,
60
62
  versionsEqual,
61
63
  } from "../lib/version-compat.js";
62
64
  import { loopbackSafeFetch } from "../lib/loopback-fetch.js";
65
+ import {
66
+ generateLocalSigningKey,
67
+ ensureLocalRuntime,
68
+ startGateway,
69
+ startLocalDaemon,
70
+ stopLocalProcesses,
71
+ } from "../lib/local.js";
72
+ import { maybeStartNgrokTunnel } from "../lib/ngrok.js";
73
+ import {
74
+ leaseGuardianToken,
75
+ resetGuardianBootstrap,
76
+ seedGuardianTokenFromSiblingEnv,
77
+ } from "../lib/guardian-token.js";
63
78
 
64
79
  interface UpgradeArgs {
65
80
  name: string | null;
@@ -111,7 +126,7 @@ function parseArgs(): UpgradeArgs {
111
126
  " --no-wait Platform assistants only: return after the upgrade request is accepted instead of waiting for completion",
112
127
  );
113
128
  console.log(
114
- " --force Docker assistants only: reinstall even when already on the target version",
129
+ " --force Local/Docker assistants only: reinstall even when already on the target version",
115
130
  );
116
131
  console.log("");
117
132
  console.log("Examples:");
@@ -724,6 +739,314 @@ async function upgradeDocker(
724
739
  }
725
740
  }
726
741
 
742
+ function isLocalBuildVersion(version: string): boolean {
743
+ const parsed = parseVersion(version);
744
+ return parsed?.pre?.split(".")[0] === "local";
745
+ }
746
+
747
+ export async function targetVersionFromCli(
748
+ version: string | null,
749
+ cliVersion = cliPkg.version,
750
+ resolveLatestStable: () => Promise<string> = resolveLatestStableTag,
751
+ ): Promise<string> {
752
+ const targetVersion = version ?? (cliVersion ? `v${cliVersion}` : "latest");
753
+ if (!isLocalBuildVersion(targetVersion)) return targetVersion;
754
+
755
+ const latestTag = await resolveLatestStable();
756
+ console.log(
757
+ ` Local build version ${targetVersion} is not published; using latest stable ${latestTag}.\n`,
758
+ );
759
+ return latestTag;
760
+ }
761
+
762
+ function localAdminUrl(entry: AssistantEntry): string {
763
+ return entry.localUrl ?? entry.runtimeUrl;
764
+ }
765
+
766
+ async function ensureGuardianTokenAfterLocalUpgrade(
767
+ entry: AssistantEntry,
768
+ gatewayPort: number,
769
+ bootstrapSecret?: string,
770
+ ): Promise<void> {
771
+ if (seedGuardianTokenFromSiblingEnv(entry.assistantId)) {
772
+ console.log(" Seeded guardian token from sibling environment.");
773
+ }
774
+
775
+ const loopbackUrl = `http://127.0.0.1:${gatewayPort}`;
776
+ const maxAttempts = 3;
777
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
778
+ try {
779
+ await resetGuardianBootstrap(loopbackUrl, bootstrapSecret);
780
+ await leaseGuardianToken(loopbackUrl, entry.assistantId, bootstrapSecret);
781
+ console.log(" Re-provisioned guardian token.");
782
+ return;
783
+ } catch (err) {
784
+ if (attempt < maxAttempts) {
785
+ await new Promise((r) => setTimeout(r, 2000 * 2 ** (attempt - 1)));
786
+ } else {
787
+ console.warn(
788
+ ` Guardian token re-provision failed after ${maxAttempts} attempts: ${err}`,
789
+ );
790
+ }
791
+ }
792
+ }
793
+ }
794
+
795
+ async function fetchLocalUpgradeState(
796
+ entry: AssistantEntry,
797
+ adminUrl: string,
798
+ ): Promise<{
799
+ currentVersion?: string;
800
+ preMigrationState: {
801
+ dbVersion?: number;
802
+ lastWorkspaceMigrationId?: string;
803
+ };
804
+ }> {
805
+ try {
806
+ const healthResp = await loopbackSafeFetch(
807
+ `${adminUrl}/healthz?include=migrations`,
808
+ {
809
+ signal: AbortSignal.timeout(5000),
810
+ },
811
+ );
812
+ if (healthResp.ok) {
813
+ const health = (await healthResp.json()) as {
814
+ version?: string;
815
+ migrations?: { dbVersion?: number; lastWorkspaceMigrationId?: string };
816
+ };
817
+ return {
818
+ currentVersion: health.version,
819
+ preMigrationState: health.migrations ?? {},
820
+ };
821
+ }
822
+ } catch {
823
+ // Best-effort — sleeping assistants and unhealthy gateways can still be restarted.
824
+ }
825
+
826
+ return { preMigrationState: {} };
827
+ }
828
+
829
+ async function upgradeLocal(
830
+ entry: AssistantEntry,
831
+ version: string | null,
832
+ force: boolean,
833
+ ): Promise<void> {
834
+ if (!entry.resources) {
835
+ const msg = `Local assistant '${entry.assistantId}' is missing resource configuration. Re-hatch to fix.`;
836
+ console.error(msg);
837
+ emitCliError("UNKNOWN", msg);
838
+ process.exit(1);
839
+ }
840
+
841
+ const targetVersion = await targetVersionFromCli(version);
842
+ const adminUrl = localAdminUrl(entry);
843
+ const { currentVersion, preMigrationState } = await fetchLocalUpgradeState(
844
+ entry,
845
+ adminUrl,
846
+ );
847
+
848
+ if (!currentVersion && targetVersion) {
849
+ console.warn(
850
+ "⚠️ Could not determine current version from health endpoint — skipping version-direction check.\n",
851
+ );
852
+ }
853
+ if (currentVersion && targetVersion) {
854
+ const cmp = compareVersions(targetVersion, currentVersion);
855
+ if (cmp !== null && cmp < 0) {
856
+ const msg = `Cannot upgrade to an older version (${targetVersion} < ${currentVersion}). Use \`vellum rollback --version ${targetVersion}\` instead.`;
857
+ console.error(msg);
858
+ emitCliError("VERSION_DIRECTION", msg);
859
+ process.exit(1);
860
+ }
861
+ }
862
+
863
+ if (currentVersion && versionsEqual(targetVersion, currentVersion)) {
864
+ if (!force) {
865
+ console.log(
866
+ `✅ Already on ${targetVersion}. Nothing to do. Pass --force to reinstall.`,
867
+ );
868
+ return;
869
+ }
870
+ console.log(`🔁 Reinstalling ${targetVersion} (--force)...\n`);
871
+ }
872
+
873
+ console.log(
874
+ `🔄 Upgrading local assistant '${entry.assistantId}' to ${targetVersion}...\n`,
875
+ );
876
+
877
+ await commitWorkspaceViaGateway(
878
+ adminUrl,
879
+ entry.assistantId,
880
+ buildUpgradeCommitMessage({
881
+ action: "upgrade",
882
+ phase: "starting",
883
+ from: currentVersion ?? "unknown",
884
+ to: targetVersion,
885
+ topology: "local",
886
+ assistantId: entry.assistantId,
887
+ }),
888
+ );
889
+
890
+ console.log("📢 Notifying connected clients...");
891
+ await broadcastUpgradeEvent(
892
+ adminUrl,
893
+ entry.assistantId,
894
+ buildStartingEvent(targetVersion),
895
+ );
896
+ await new Promise((r) => setTimeout(r, 500));
897
+
898
+ await broadcastUpgradeEvent(
899
+ adminUrl,
900
+ entry.assistantId,
901
+ buildProgressEvent(UPGRADE_PROGRESS.BACKING_UP),
902
+ );
903
+ console.log("📦 Creating pre-upgrade backup...");
904
+ const backupPath = await createBackup(adminUrl, entry.assistantId, {
905
+ prefix: `${entry.assistantId}-pre-upgrade`,
906
+ description: `Pre-upgrade snapshot before ${currentVersion ?? "unknown"} → ${targetVersion}`,
907
+ });
908
+ if (backupPath) {
909
+ console.log(` Backup saved: ${backupPath}\n`);
910
+ pruneOldBackups(entry.assistantId, 3);
911
+ } else {
912
+ console.warn("⚠️ Pre-upgrade backup failed (continuing with upgrade)\n");
913
+ }
914
+
915
+ let signingKey = entry.resources.signingKey;
916
+ let bootstrapSecret = entry.guardianBootstrapSecret;
917
+ let entryChanged = false;
918
+ if (!signingKey) {
919
+ signingKey = generateLocalSigningKey();
920
+ entry.resources = { ...entry.resources, signingKey };
921
+ entryChanged = true;
922
+ }
923
+ if (!bootstrapSecret) {
924
+ bootstrapSecret = generateLocalSigningKey();
925
+ entry.guardianBootstrapSecret = bootstrapSecret;
926
+ entryChanged = true;
927
+ }
928
+
929
+ if (
930
+ entryChanged ||
931
+ backupPath ||
932
+ currentVersion ||
933
+ preMigrationState.dbVersion !== undefined ||
934
+ preMigrationState.lastWorkspaceMigrationId !== undefined
935
+ ) {
936
+ saveAssistantEntry({
937
+ ...entry,
938
+ previousVersion: currentVersion,
939
+ previousDbMigrationVersion: preMigrationState.dbVersion,
940
+ previousWorkspaceMigrationId: preMigrationState.lastWorkspaceMigrationId,
941
+ preUpgradeBackupPath: backupPath ?? undefined,
942
+ });
943
+ }
944
+
945
+ await broadcastUpgradeEvent(
946
+ adminUrl,
947
+ entry.assistantId,
948
+ buildProgressEvent(UPGRADE_PROGRESS.INSTALLING),
949
+ );
950
+
951
+ console.log(
952
+ "⬇️ Downloading local runtime packages (assistant, gateway, credential-executor)...",
953
+ );
954
+ const runtimeInstall = ensureLocalRuntime(entry.resources, targetVersion, {
955
+ force,
956
+ });
957
+ entry.resources = {
958
+ ...entry.resources,
959
+ runtimeVersion: runtimeInstall.version,
960
+ runtimeInstallDir: runtimeInstall.installDir,
961
+ };
962
+ saveAssistantEntry({
963
+ ...entry,
964
+ previousVersion: currentVersion,
965
+ previousDbMigrationVersion: preMigrationState.dbVersion,
966
+ previousWorkspaceMigrationId: preMigrationState.lastWorkspaceMigrationId,
967
+ preUpgradeBackupPath: backupPath ?? undefined,
968
+ });
969
+ console.log(` Runtime installed: ${runtimeInstall.installDir}\n`);
970
+
971
+ console.log("🛑 Stopping local assistant processes...");
972
+ await stopLocalProcesses(entry.resources);
973
+ console.log("✅ Local assistant processes stopped\n");
974
+
975
+ console.log("🚀 Starting upgraded local assistant...");
976
+ const previousAppVersion = process.env.APP_VERSION;
977
+ process.env.APP_VERSION = stripVersionPrefix(targetVersion);
978
+ try {
979
+ await startLocalDaemon(false, entry.resources, { signingKey });
980
+ await startGateway(false, entry.resources, { signingKey, bootstrapSecret });
981
+ } finally {
982
+ if (previousAppVersion === undefined) {
983
+ delete process.env.APP_VERSION;
984
+ } else {
985
+ process.env.APP_VERSION = previousAppVersion;
986
+ }
987
+ }
988
+ await ensureGuardianTokenAfterLocalUpgrade(
989
+ entry,
990
+ entry.resources.gatewayPort,
991
+ bootstrapSecret,
992
+ );
993
+ console.log("✅ Local assistant processes started\n");
994
+
995
+ const workspaceDir = join(
996
+ entry.resources.instanceDir,
997
+ ".vellum",
998
+ "workspace",
999
+ );
1000
+ const ngrokChild = await maybeStartNgrokTunnel(
1001
+ entry.resources.gatewayPort,
1002
+ workspaceDir,
1003
+ );
1004
+ if (ngrokChild?.pid) {
1005
+ writeFileSync(
1006
+ join(entry.resources.instanceDir, ".vellum", "ngrok.pid"),
1007
+ String(ngrokChild.pid),
1008
+ );
1009
+ }
1010
+
1011
+ console.log("Waiting for assistant to become ready...");
1012
+ const ready = await waitForReady(adminUrl);
1013
+ if (!ready) {
1014
+ await broadcastUpgradeEvent(
1015
+ adminUrl,
1016
+ entry.assistantId,
1017
+ buildCompleteEvent(currentVersion ?? "unknown", false),
1018
+ );
1019
+ const msg = `Upgrade to ${targetVersion} failed: local assistant did not become ready.`;
1020
+ console.error(`\n❌ ${msg}`);
1021
+ emitCliError("READINESS_TIMEOUT", msg);
1022
+ process.exit(1);
1023
+ }
1024
+
1025
+ await broadcastUpgradeEvent(
1026
+ adminUrl,
1027
+ entry.assistantId,
1028
+ buildCompleteEvent(targetVersion, true),
1029
+ );
1030
+
1031
+ await commitWorkspaceViaGateway(
1032
+ adminUrl,
1033
+ entry.assistantId,
1034
+ buildUpgradeCommitMessage({
1035
+ action: "upgrade",
1036
+ phase: "complete",
1037
+ from: currentVersion ?? "unknown",
1038
+ to: targetVersion,
1039
+ topology: "local",
1040
+ assistantId: entry.assistantId,
1041
+ result: "success",
1042
+ }),
1043
+ );
1044
+
1045
+ console.log(
1046
+ `\n✅ Local assistant '${entry.assistantId}' upgraded to ${targetVersion}.`,
1047
+ );
1048
+ }
1049
+
727
1050
  interface UpgradeApiResponse {
728
1051
  detail: string;
729
1052
  version: string | null;
@@ -805,9 +1128,7 @@ async function waitForPlatformUpgrade(
805
1128
  entry.assistantId,
806
1129
  );
807
1130
  if (health.status === "healthy") {
808
- console.log(
809
- `✅ Upgraded to ${finalVersion} — assistant is healthy.`,
810
- );
1131
+ console.log(`✅ Upgraded to ${finalVersion} — assistant is healthy.`);
811
1132
  return;
812
1133
  }
813
1134
  await sleep(PLATFORM_HEALTH_CONFIRM_INTERVAL_MS);
@@ -854,10 +1175,7 @@ async function upgradePlatform(
854
1175
  // downgrades before POSTing, and bail if an upgrade is already running.
855
1176
  const [assistantDetail, health] = await Promise.all([
856
1177
  fetchAssistantDetail(token, entry.assistantId, entry.runtimeUrl),
857
- checkManagedHealth(
858
- entry.runtimeUrl || getPlatformUrl(),
859
- entry.assistantId,
860
- ),
1178
+ checkManagedHealth(entry.runtimeUrl || getPlatformUrl(), entry.assistantId),
861
1179
  ]);
862
1180
  // Health probe first, DB-backed field as the sleeping-assistant fallback.
863
1181
  const currentVersion =
@@ -1117,10 +1435,7 @@ async function upgradeFinalize(
1117
1435
  * that need it. If the CLI was updated and re-exec'd, this function never
1118
1436
  * returns — the process is replaced.
1119
1437
  */
1120
- async function resolveLatestAndMaybeSelfUpdate(
1121
- name: string | null,
1122
- flags: { noWait: boolean; force: boolean },
1123
- ): Promise<string> {
1438
+ async function resolveLatestStableTag(): Promise<string> {
1124
1439
  console.log("🔍 Fetching latest stable release...");
1125
1440
  const latestVersion = await fetchLatestStableVersion();
1126
1441
  if (!latestVersion) {
@@ -1134,9 +1449,14 @@ async function resolveLatestAndMaybeSelfUpdate(
1134
1449
  process.exit(1);
1135
1450
  }
1136
1451
 
1137
- const latestTag = latestVersion.startsWith("v")
1138
- ? latestVersion
1139
- : `v${latestVersion}`;
1452
+ return latestVersion.startsWith("v") ? latestVersion : `v${latestVersion}`;
1453
+ }
1454
+
1455
+ async function resolveLatestAndMaybeSelfUpdate(
1456
+ name: string | null,
1457
+ flags: { noWait: boolean; force: boolean },
1458
+ ): Promise<string> {
1459
+ const latestTag = await resolveLatestStableTag();
1140
1460
  const currentTag = cliPkg.version ? `v${cliPkg.version}` : null;
1141
1461
 
1142
1462
  console.log(` Latest stable: ${latestTag}`);
@@ -1148,7 +1468,7 @@ async function resolveLatestAndMaybeSelfUpdate(
1148
1468
  console.log(`🔄 Updating CLI to ${latestTag}...`);
1149
1469
  const installResult = spawnSync(
1150
1470
  "bun",
1151
- ["install", "-g", `vellum@${stripVersionPrefix(latestVersion)}`],
1471
+ ["install", "-g", `vellum@${stripVersionPrefix(latestTag)}`],
1152
1472
  { stdio: "inherit" },
1153
1473
  );
1154
1474
  if (installResult.error || installResult.status !== 0) {
@@ -1203,22 +1523,28 @@ export async function upgrade(): Promise<void> {
1203
1523
  // self-update the CLI if it's behind. The resolved version is then used
1204
1524
  // as the explicit target for the rest of the upgrade flow.
1205
1525
  let effectiveVersion = version;
1526
+ const cloud = entry.cloud;
1206
1527
  if (latest) {
1207
- const latestTag = await resolveLatestAndMaybeSelfUpdate(name, {
1208
- noWait,
1209
- force,
1210
- });
1211
- effectiveVersion = latestTag;
1528
+ effectiveVersion =
1529
+ cloud === "local"
1530
+ ? await resolveLatestStableTag()
1531
+ : await resolveLatestAndMaybeSelfUpdate(name, {
1532
+ noWait,
1533
+ force,
1534
+ });
1212
1535
  }
1213
1536
 
1214
- const cloud = resolveCloud(entry);
1215
-
1216
1537
  try {
1217
1538
  if (cloud === "docker") {
1218
1539
  await upgradeDocker(entry, effectiveVersion, force);
1219
1540
  return;
1220
1541
  }
1221
1542
 
1543
+ if (cloud === "local") {
1544
+ await upgradeLocal(entry, effectiveVersion, force);
1545
+ return;
1546
+ }
1547
+
1222
1548
  if (cloud === "vellum") {
1223
1549
  await upgradePlatform(entry, effectiveVersion, !noWait);
1224
1550
  return;
@@ -1238,7 +1564,7 @@ export async function upgrade(): Promise<void> {
1238
1564
  process.exit(1);
1239
1565
  }
1240
1566
 
1241
- const msg = `Error: Upgrade is not supported for '${cloud}' assistants. Only 'docker' and 'vellum' assistants can be upgraded via the CLI.`;
1567
+ const msg = `Error: Upgrade is not supported for '${cloud}' assistants. Only 'local', 'docker', and 'vellum' assistants can be upgraded via the CLI.`;
1242
1568
  console.error(msg);
1243
1569
  emitCliError("UNSUPPORTED_TOPOLOGY", msg);
1244
1570
  process.exit(1);
@@ -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.