@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.
- package/bun.lock +1 -1
- package/node_modules/@vellumai/local-mode/bun.lock +3 -0
- package/node_modules/@vellumai/local-mode/package.json +2 -1
- package/node_modules/@vellumai/local-mode/src/__tests__/loopback-auth.test.ts +26 -0
- package/node_modules/@vellumai/local-mode/src/__tests__/package-boundary.test.ts +6 -6
- package/node_modules/@vellumai/local-mode/src/index.ts +2 -0
- package/node_modules/@vellumai/local-mode/src/lockfile-contract.test.ts +148 -12
- package/node_modules/@vellumai/local-mode/src/lockfile-contract.ts +136 -80
- package/node_modules/@vellumai/local-mode/src/lockfile.test.ts +3 -1
- package/node_modules/@vellumai/local-mode/src/lockfile.ts +9 -2
- package/node_modules/@vellumai/local-mode/src/status.ts +1 -0
- package/node_modules/@vellumai/local-mode/src/upgrade.ts +105 -0
- package/node_modules/@vellumai/local-mode/src/util.ts +4 -8
- package/node_modules/zod/LICENSE +21 -0
- package/node_modules/zod/README.md +191 -0
- package/node_modules/zod/index.cjs +33 -0
- package/node_modules/zod/index.d.cts +4 -0
- package/node_modules/zod/index.d.ts +4 -0
- package/node_modules/zod/index.js +4 -0
- package/node_modules/zod/locales/index.cjs +17 -0
- package/node_modules/zod/locales/index.d.cts +1 -0
- package/node_modules/zod/locales/index.d.ts +1 -0
- package/node_modules/zod/locales/index.js +1 -0
- package/node_modules/zod/locales/package.json +7 -0
- package/node_modules/zod/mini/index.cjs +32 -0
- package/node_modules/zod/mini/index.d.cts +3 -0
- package/node_modules/zod/mini/index.d.ts +3 -0
- package/node_modules/zod/mini/index.js +3 -0
- package/node_modules/zod/mini/package.json +7 -0
- package/node_modules/zod/package.json +135 -0
- package/node_modules/zod/src/index.ts +4 -0
- package/node_modules/zod/src/locales/index.ts +1 -0
- package/node_modules/zod/src/mini/index.ts +3 -0
- package/node_modules/zod/src/v3/ZodError.ts +330 -0
- package/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
- package/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
- package/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
- package/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
- package/node_modules/zod/src/v3/errors.ts +13 -0
- package/node_modules/zod/src/v3/external.ts +6 -0
- package/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/node_modules/zod/src/v3/helpers/util.ts +224 -0
- package/node_modules/zod/src/v3/index.ts +4 -0
- package/node_modules/zod/src/v3/locales/en.ts +124 -0
- package/node_modules/zod/src/v3/standard-schema.ts +113 -0
- package/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
- package/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/node_modules/zod/src/v3/tests/array.test.ts +71 -0
- package/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/node_modules/zod/src/v3/tests/base.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
- package/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
- package/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
- package/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
- package/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
- package/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
- package/node_modules/zod/src/v3/tests/date.test.ts +32 -0
- package/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/node_modules/zod/src/v3/tests/default.test.ts +112 -0
- package/node_modules/zod/src/v3/tests/description.test.ts +33 -0
- package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
- package/node_modules/zod/src/v3/tests/error.test.ts +551 -0
- package/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/node_modules/zod/src/v3/tests/function.test.ts +261 -0
- package/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
- package/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
- package/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
- package/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
- package/node_modules/zod/src/v3/tests/map.test.ts +110 -0
- package/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
- package/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
- package/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
- package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
- package/node_modules/zod/src/v3/tests/number.test.ts +176 -0
- package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/object.test.ts +434 -0
- package/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
- package/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
- package/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
- package/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
- package/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
- package/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
- package/node_modules/zod/src/v3/tests/record.test.ts +171 -0
- package/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
- package/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
- package/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/node_modules/zod/src/v3/tests/set.test.ts +142 -0
- package/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/node_modules/zod/src/v3/tests/string.test.ts +916 -0
- package/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
- package/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
- package/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
- package/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
- package/node_modules/zod/src/v3/tests/void.test.ts +15 -0
- package/node_modules/zod/src/v3/types.ts +5138 -0
- package/node_modules/zod/src/v4/classic/checks.ts +32 -0
- package/node_modules/zod/src/v4/classic/coerce.ts +27 -0
- package/node_modules/zod/src/v4/classic/compat.ts +70 -0
- package/node_modules/zod/src/v4/classic/errors.ts +82 -0
- package/node_modules/zod/src/v4/classic/external.ts +52 -0
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +659 -0
- package/node_modules/zod/src/v4/classic/index.ts +5 -0
- package/node_modules/zod/src/v4/classic/iso.ts +90 -0
- package/node_modules/zod/src/v4/classic/parse.ts +82 -0
- package/node_modules/zod/src/v4/classic/schemas.ts +2672 -0
- package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +216 -0
- package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +326 -0
- package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +703 -0
- package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
- package/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +409 -0
- package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +197 -0
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +694 -0
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +807 -0
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
- package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
- package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +895 -0
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
- package/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +39 -0
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
- package/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
- package/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
- package/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
- package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +325 -0
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +717 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +333 -0
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +450 -0
- package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
- package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
- package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +26 -0
- package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +351 -0
- package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +717 -0
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +631 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +633 -0
- package/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
- package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
- package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +1224 -0
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
- package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +3125 -0
- package/node_modules/zod/src/v4/classic/tests/transform.test.ts +378 -0
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +496 -0
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +273 -0
- package/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/node_modules/zod/src/v4/core/api.ts +1823 -0
- package/node_modules/zod/src/v4/core/checks.ts +1293 -0
- package/node_modules/zod/src/v4/core/config.ts +15 -0
- package/node_modules/zod/src/v4/core/core.ts +153 -0
- package/node_modules/zod/src/v4/core/doc.ts +44 -0
- package/node_modules/zod/src/v4/core/errors.ts +455 -0
- package/node_modules/zod/src/v4/core/index.ts +16 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +666 -0
- package/node_modules/zod/src/v4/core/json-schema.ts +147 -0
- package/node_modules/zod/src/v4/core/parse.ts +195 -0
- package/node_modules/zod/src/v4/core/regexes.ts +190 -0
- package/node_modules/zod/src/v4/core/registries.ts +105 -0
- package/node_modules/zod/src/v4/core/schemas.ts +4730 -0
- package/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
- package/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
- package/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +215 -0
- package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
- package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
- package/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
- package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +105 -0
- package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +125 -0
- package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +622 -0
- package/node_modules/zod/src/v4/core/util.ts +983 -0
- package/node_modules/zod/src/v4/core/versions.ts +5 -0
- package/node_modules/zod/src/v4/core/zsf.ts +323 -0
- package/node_modules/zod/src/v4/index.ts +4 -0
- package/node_modules/zod/src/v4/locales/ar.ts +115 -0
- package/node_modules/zod/src/v4/locales/az.ts +111 -0
- package/node_modules/zod/src/v4/locales/be.ts +176 -0
- package/node_modules/zod/src/v4/locales/bg.ts +128 -0
- package/node_modules/zod/src/v4/locales/ca.ts +116 -0
- package/node_modules/zod/src/v4/locales/cs.ts +118 -0
- package/node_modules/zod/src/v4/locales/da.ts +123 -0
- package/node_modules/zod/src/v4/locales/de.ts +116 -0
- package/node_modules/zod/src/v4/locales/el.ts +121 -0
- package/node_modules/zod/src/v4/locales/en.ts +123 -0
- package/node_modules/zod/src/v4/locales/eo.ts +118 -0
- package/node_modules/zod/src/v4/locales/es.ts +141 -0
- package/node_modules/zod/src/v4/locales/fa.ts +126 -0
- package/node_modules/zod/src/v4/locales/fi.ts +121 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
- package/node_modules/zod/src/v4/locales/fr.ts +132 -0
- package/node_modules/zod/src/v4/locales/he.ts +246 -0
- package/node_modules/zod/src/v4/locales/hr.ts +131 -0
- package/node_modules/zod/src/v4/locales/hu.ts +117 -0
- package/node_modules/zod/src/v4/locales/hy.ts +164 -0
- package/node_modules/zod/src/v4/locales/id.ts +115 -0
- package/node_modules/zod/src/v4/locales/index.ts +52 -0
- package/node_modules/zod/src/v4/locales/is.ts +119 -0
- package/node_modules/zod/src/v4/locales/it.ts +116 -0
- package/node_modules/zod/src/v4/locales/ja.ts +114 -0
- package/node_modules/zod/src/v4/locales/ka.ts +123 -0
- package/node_modules/zod/src/v4/locales/kh.ts +7 -0
- package/node_modules/zod/src/v4/locales/km.ts +119 -0
- package/node_modules/zod/src/v4/locales/ko.ts +121 -0
- package/node_modules/zod/src/v4/locales/lt.ts +239 -0
- package/node_modules/zod/src/v4/locales/mk.ts +118 -0
- package/node_modules/zod/src/v4/locales/ms.ts +115 -0
- package/node_modules/zod/src/v4/locales/nl.ts +121 -0
- package/node_modules/zod/src/v4/locales/no.ts +116 -0
- package/node_modules/zod/src/v4/locales/ota.ts +117 -0
- package/node_modules/zod/src/v4/locales/pl.ts +118 -0
- package/node_modules/zod/src/v4/locales/ps.ts +126 -0
- package/node_modules/zod/src/v4/locales/pt.ts +116 -0
- package/node_modules/zod/src/v4/locales/ro.ts +129 -0
- package/node_modules/zod/src/v4/locales/ru.ts +176 -0
- package/node_modules/zod/src/v4/locales/sl.ts +118 -0
- package/node_modules/zod/src/v4/locales/sv.ts +119 -0
- package/node_modules/zod/src/v4/locales/ta.ts +118 -0
- package/node_modules/zod/src/v4/locales/th.ts +119 -0
- package/node_modules/zod/src/v4/locales/tr.ts +111 -0
- package/node_modules/zod/src/v4/locales/ua.ts +7 -0
- package/node_modules/zod/src/v4/locales/uk.ts +117 -0
- package/node_modules/zod/src/v4/locales/ur.ts +119 -0
- package/node_modules/zod/src/v4/locales/uz.ts +117 -0
- package/node_modules/zod/src/v4/locales/vi.ts +117 -0
- package/node_modules/zod/src/v4/locales/yo.ts +124 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
- package/node_modules/zod/src/v4/mini/checks.ts +32 -0
- package/node_modules/zod/src/v4/mini/coerce.ts +27 -0
- package/node_modules/zod/src/v4/mini/external.ts +41 -0
- package/node_modules/zod/src/v4/mini/index.ts +3 -0
- package/node_modules/zod/src/v4/mini/iso.ts +66 -0
- package/node_modules/zod/src/v4/mini/parse.ts +14 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +1947 -0
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +548 -0
- package/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +993 -0
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
- package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +325 -0
- package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +352 -0
- package/node_modules/zod/src/v4-mini/index.ts +3 -0
- package/node_modules/zod/v3/ZodError.cjs +138 -0
- package/node_modules/zod/v3/ZodError.d.cts +164 -0
- package/node_modules/zod/v3/ZodError.d.ts +164 -0
- package/node_modules/zod/v3/ZodError.js +133 -0
- package/node_modules/zod/v3/errors.cjs +17 -0
- package/node_modules/zod/v3/errors.d.cts +5 -0
- package/node_modules/zod/v3/errors.d.ts +5 -0
- package/node_modules/zod/v3/errors.js +9 -0
- package/node_modules/zod/v3/external.cjs +22 -0
- package/node_modules/zod/v3/external.d.cts +6 -0
- package/node_modules/zod/v3/external.d.ts +6 -0
- package/node_modules/zod/v3/external.js +6 -0
- package/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/node_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/node_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/node_modules/zod/v3/helpers/util.d.cts +85 -0
- package/node_modules/zod/v3/helpers/util.d.ts +85 -0
- package/node_modules/zod/v3/helpers/util.js +133 -0
- package/node_modules/zod/v3/index.cjs +33 -0
- package/node_modules/zod/v3/index.d.cts +4 -0
- package/node_modules/zod/v3/index.d.ts +4 -0
- package/node_modules/zod/v3/index.js +4 -0
- package/node_modules/zod/v3/locales/en.cjs +112 -0
- package/node_modules/zod/v3/locales/en.d.cts +3 -0
- package/node_modules/zod/v3/locales/en.d.ts +3 -0
- package/node_modules/zod/v3/locales/en.js +109 -0
- package/node_modules/zod/v3/package.json +7 -0
- package/node_modules/zod/v3/standard-schema.cjs +2 -0
- package/node_modules/zod/v3/standard-schema.d.cts +102 -0
- package/node_modules/zod/v3/standard-schema.d.ts +102 -0
- package/node_modules/zod/v3/standard-schema.js +1 -0
- package/node_modules/zod/v3/types.cjs +3777 -0
- package/node_modules/zod/v3/types.d.cts +1034 -0
- package/node_modules/zod/v3/types.d.ts +1034 -0
- package/node_modules/zod/v3/types.js +3695 -0
- package/node_modules/zod/v4/classic/checks.cjs +33 -0
- package/node_modules/zod/v4/classic/checks.d.cts +1 -0
- package/node_modules/zod/v4/classic/checks.d.ts +1 -0
- package/node_modules/zod/v4/classic/checks.js +1 -0
- package/node_modules/zod/v4/classic/coerce.cjs +47 -0
- package/node_modules/zod/v4/classic/coerce.d.cts +17 -0
- package/node_modules/zod/v4/classic/coerce.d.ts +17 -0
- package/node_modules/zod/v4/classic/coerce.js +17 -0
- package/node_modules/zod/v4/classic/compat.cjs +61 -0
- package/node_modules/zod/v4/classic/compat.d.cts +50 -0
- package/node_modules/zod/v4/classic/compat.d.ts +50 -0
- package/node_modules/zod/v4/classic/compat.js +31 -0
- package/node_modules/zod/v4/classic/errors.cjs +74 -0
- package/node_modules/zod/v4/classic/errors.d.cts +30 -0
- package/node_modules/zod/v4/classic/errors.d.ts +30 -0
- package/node_modules/zod/v4/classic/errors.js +48 -0
- package/node_modules/zod/v4/classic/external.cjs +73 -0
- package/node_modules/zod/v4/classic/external.d.cts +16 -0
- package/node_modules/zod/v4/classic/external.d.ts +16 -0
- package/node_modules/zod/v4/classic/external.js +20 -0
- package/node_modules/zod/v4/classic/from-json-schema.cjs +625 -0
- package/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
- package/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
- package/node_modules/zod/v4/classic/from-json-schema.js +599 -0
- package/node_modules/zod/v4/classic/index.cjs +33 -0
- package/node_modules/zod/v4/classic/index.d.cts +4 -0
- package/node_modules/zod/v4/classic/index.d.ts +4 -0
- package/node_modules/zod/v4/classic/index.js +4 -0
- package/node_modules/zod/v4/classic/iso.cjs +60 -0
- package/node_modules/zod/v4/classic/iso.d.cts +22 -0
- package/node_modules/zod/v4/classic/iso.d.ts +22 -0
- package/node_modules/zod/v4/classic/iso.js +30 -0
- package/node_modules/zod/v4/classic/package.json +7 -0
- package/node_modules/zod/v4/classic/parse.cjs +41 -0
- package/node_modules/zod/v4/classic/parse.d.cts +31 -0
- package/node_modules/zod/v4/classic/parse.d.ts +31 -0
- package/node_modules/zod/v4/classic/parse.js +15 -0
- package/node_modules/zod/v4/classic/schemas.cjs +1511 -0
- package/node_modules/zod/v4/classic/schemas.d.cts +767 -0
- package/node_modules/zod/v4/classic/schemas.d.ts +767 -0
- package/node_modules/zod/v4/classic/schemas.js +1395 -0
- package/node_modules/zod/v4/core/api.cjs +1227 -0
- package/node_modules/zod/v4/core/api.d.cts +325 -0
- package/node_modules/zod/v4/core/api.d.ts +325 -0
- package/node_modules/zod/v4/core/api.js +1087 -0
- package/node_modules/zod/v4/core/checks.cjs +601 -0
- package/node_modules/zod/v4/core/checks.d.cts +278 -0
- package/node_modules/zod/v4/core/checks.d.ts +278 -0
- package/node_modules/zod/v4/core/checks.js +575 -0
- package/node_modules/zod/v4/core/core.cjs +85 -0
- package/node_modules/zod/v4/core/core.d.cts +70 -0
- package/node_modules/zod/v4/core/core.d.ts +70 -0
- package/node_modules/zod/v4/core/core.js +78 -0
- package/node_modules/zod/v4/core/doc.cjs +39 -0
- package/node_modules/zod/v4/core/doc.d.cts +14 -0
- package/node_modules/zod/v4/core/doc.d.ts +14 -0
- package/node_modules/zod/v4/core/doc.js +35 -0
- package/node_modules/zod/v4/core/errors.cjs +216 -0
- package/node_modules/zod/v4/core/errors.d.cts +221 -0
- package/node_modules/zod/v4/core/errors.d.ts +221 -0
- package/node_modules/zod/v4/core/errors.js +185 -0
- package/node_modules/zod/v4/core/index.cjs +47 -0
- package/node_modules/zod/v4/core/index.d.cts +16 -0
- package/node_modules/zod/v4/core/index.d.ts +16 -0
- package/node_modules/zod/v4/core/index.js +16 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
- package/node_modules/zod/v4/core/json-schema-generator.js +95 -0
- package/node_modules/zod/v4/core/json-schema-processors.cjs +644 -0
- package/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
- package/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
- package/node_modules/zod/v4/core/json-schema-processors.js +601 -0
- package/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/node_modules/zod/v4/core/json-schema.d.cts +88 -0
- package/node_modules/zod/v4/core/json-schema.d.ts +88 -0
- package/node_modules/zod/v4/core/json-schema.js +1 -0
- package/node_modules/zod/v4/core/package.json +7 -0
- package/node_modules/zod/v4/core/parse.cjs +131 -0
- package/node_modules/zod/v4/core/parse.d.cts +49 -0
- package/node_modules/zod/v4/core/parse.d.ts +49 -0
- package/node_modules/zod/v4/core/parse.js +93 -0
- package/node_modules/zod/v4/core/regexes.cjs +172 -0
- package/node_modules/zod/v4/core/regexes.d.cts +85 -0
- package/node_modules/zod/v4/core/regexes.d.ts +85 -0
- package/node_modules/zod/v4/core/regexes.js +139 -0
- package/node_modules/zod/v4/core/registries.cjs +56 -0
- package/node_modules/zod/v4/core/registries.d.cts +35 -0
- package/node_modules/zod/v4/core/registries.d.ts +35 -0
- package/node_modules/zod/v4/core/registries.js +51 -0
- package/node_modules/zod/v4/core/schemas.cjs +2270 -0
- package/node_modules/zod/v4/core/schemas.d.cts +1184 -0
- package/node_modules/zod/v4/core/schemas.d.ts +1184 -0
- package/node_modules/zod/v4/core/schemas.js +2239 -0
- package/node_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
- package/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
- package/node_modules/zod/v4/core/standard-schema.js +1 -0
- package/node_modules/zod/v4/core/to-json-schema.cjs +457 -0
- package/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
- package/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
- package/node_modules/zod/v4/core/to-json-schema.js +448 -0
- package/node_modules/zod/v4/core/util.cjs +734 -0
- package/node_modules/zod/v4/core/util.d.cts +200 -0
- package/node_modules/zod/v4/core/util.d.ts +200 -0
- package/node_modules/zod/v4/core/util.js +674 -0
- package/node_modules/zod/v4/core/versions.cjs +8 -0
- package/node_modules/zod/v4/core/versions.d.cts +5 -0
- package/node_modules/zod/v4/core/versions.d.ts +5 -0
- package/node_modules/zod/v4/core/versions.js +5 -0
- package/node_modules/zod/v4/index.cjs +22 -0
- package/node_modules/zod/v4/index.d.cts +3 -0
- package/node_modules/zod/v4/index.d.ts +3 -0
- package/node_modules/zod/v4/index.js +3 -0
- package/node_modules/zod/v4/locales/ar.cjs +133 -0
- package/node_modules/zod/v4/locales/ar.d.cts +5 -0
- package/node_modules/zod/v4/locales/ar.d.ts +4 -0
- package/node_modules/zod/v4/locales/ar.js +106 -0
- package/node_modules/zod/v4/locales/az.cjs +132 -0
- package/node_modules/zod/v4/locales/az.d.cts +5 -0
- package/node_modules/zod/v4/locales/az.d.ts +4 -0
- package/node_modules/zod/v4/locales/az.js +105 -0
- package/node_modules/zod/v4/locales/be.cjs +183 -0
- package/node_modules/zod/v4/locales/be.d.cts +5 -0
- package/node_modules/zod/v4/locales/be.d.ts +4 -0
- package/node_modules/zod/v4/locales/be.js +156 -0
- package/node_modules/zod/v4/locales/bg.cjs +147 -0
- package/node_modules/zod/v4/locales/bg.d.cts +5 -0
- package/node_modules/zod/v4/locales/bg.d.ts +4 -0
- package/node_modules/zod/v4/locales/bg.js +120 -0
- package/node_modules/zod/v4/locales/ca.cjs +134 -0
- package/node_modules/zod/v4/locales/ca.d.cts +5 -0
- package/node_modules/zod/v4/locales/ca.d.ts +4 -0
- package/node_modules/zod/v4/locales/ca.js +107 -0
- package/node_modules/zod/v4/locales/cs.cjs +138 -0
- package/node_modules/zod/v4/locales/cs.d.cts +5 -0
- package/node_modules/zod/v4/locales/cs.d.ts +4 -0
- package/node_modules/zod/v4/locales/cs.js +111 -0
- package/node_modules/zod/v4/locales/da.cjs +142 -0
- package/node_modules/zod/v4/locales/da.d.cts +5 -0
- package/node_modules/zod/v4/locales/da.d.ts +4 -0
- package/node_modules/zod/v4/locales/da.js +115 -0
- package/node_modules/zod/v4/locales/de.cjs +135 -0
- package/node_modules/zod/v4/locales/de.d.cts +5 -0
- package/node_modules/zod/v4/locales/de.d.ts +4 -0
- package/node_modules/zod/v4/locales/de.js +108 -0
- package/node_modules/zod/v4/locales/el.cjs +136 -0
- package/node_modules/zod/v4/locales/el.d.cts +5 -0
- package/node_modules/zod/v4/locales/el.d.ts +4 -0
- package/node_modules/zod/v4/locales/el.js +109 -0
- package/node_modules/zod/v4/locales/en.cjs +140 -0
- package/node_modules/zod/v4/locales/en.d.cts +5 -0
- package/node_modules/zod/v4/locales/en.d.ts +4 -0
- package/node_modules/zod/v4/locales/en.js +113 -0
- package/node_modules/zod/v4/locales/eo.cjs +136 -0
- package/node_modules/zod/v4/locales/eo.d.cts +5 -0
- package/node_modules/zod/v4/locales/eo.d.ts +4 -0
- package/node_modules/zod/v4/locales/eo.js +109 -0
- package/node_modules/zod/v4/locales/es.cjs +159 -0
- package/node_modules/zod/v4/locales/es.d.cts +5 -0
- package/node_modules/zod/v4/locales/es.d.ts +4 -0
- package/node_modules/zod/v4/locales/es.js +132 -0
- package/node_modules/zod/v4/locales/fa.cjs +141 -0
- package/node_modules/zod/v4/locales/fa.d.cts +5 -0
- package/node_modules/zod/v4/locales/fa.d.ts +4 -0
- package/node_modules/zod/v4/locales/fa.js +114 -0
- package/node_modules/zod/v4/locales/fi.cjs +139 -0
- package/node_modules/zod/v4/locales/fi.d.cts +5 -0
- package/node_modules/zod/v4/locales/fi.d.ts +4 -0
- package/node_modules/zod/v4/locales/fi.js +112 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
- package/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
- package/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
- package/node_modules/zod/v4/locales/fr-CA.js +107 -0
- package/node_modules/zod/v4/locales/fr.cjs +152 -0
- package/node_modules/zod/v4/locales/fr.d.cts +5 -0
- package/node_modules/zod/v4/locales/fr.d.ts +4 -0
- package/node_modules/zod/v4/locales/fr.js +125 -0
- package/node_modules/zod/v4/locales/he.cjs +241 -0
- package/node_modules/zod/v4/locales/he.d.cts +5 -0
- package/node_modules/zod/v4/locales/he.d.ts +4 -0
- package/node_modules/zod/v4/locales/he.js +214 -0
- package/node_modules/zod/v4/locales/hr.cjs +149 -0
- package/node_modules/zod/v4/locales/hr.d.cts +5 -0
- package/node_modules/zod/v4/locales/hr.d.ts +4 -0
- package/node_modules/zod/v4/locales/hr.js +122 -0
- package/node_modules/zod/v4/locales/hu.cjs +135 -0
- package/node_modules/zod/v4/locales/hu.d.cts +5 -0
- package/node_modules/zod/v4/locales/hu.d.ts +4 -0
- package/node_modules/zod/v4/locales/hu.js +108 -0
- package/node_modules/zod/v4/locales/hy.cjs +174 -0
- package/node_modules/zod/v4/locales/hy.d.cts +5 -0
- package/node_modules/zod/v4/locales/hy.d.ts +4 -0
- package/node_modules/zod/v4/locales/hy.js +147 -0
- package/node_modules/zod/v4/locales/id.cjs +133 -0
- package/node_modules/zod/v4/locales/id.d.cts +5 -0
- package/node_modules/zod/v4/locales/id.d.ts +4 -0
- package/node_modules/zod/v4/locales/id.js +106 -0
- package/node_modules/zod/v4/locales/index.cjs +111 -0
- package/node_modules/zod/v4/locales/index.d.cts +52 -0
- package/node_modules/zod/v4/locales/index.d.ts +52 -0
- package/node_modules/zod/v4/locales/index.js +52 -0
- package/node_modules/zod/v4/locales/is.cjs +136 -0
- package/node_modules/zod/v4/locales/is.d.cts +5 -0
- package/node_modules/zod/v4/locales/is.d.ts +4 -0
- package/node_modules/zod/v4/locales/is.js +109 -0
- package/node_modules/zod/v4/locales/it.cjs +135 -0
- package/node_modules/zod/v4/locales/it.d.cts +5 -0
- package/node_modules/zod/v4/locales/it.d.ts +4 -0
- package/node_modules/zod/v4/locales/it.js +108 -0
- package/node_modules/zod/v4/locales/ja.cjs +134 -0
- package/node_modules/zod/v4/locales/ja.d.cts +5 -0
- package/node_modules/zod/v4/locales/ja.d.ts +4 -0
- package/node_modules/zod/v4/locales/ja.js +107 -0
- package/node_modules/zod/v4/locales/ka.cjs +139 -0
- package/node_modules/zod/v4/locales/ka.d.cts +5 -0
- package/node_modules/zod/v4/locales/ka.d.ts +4 -0
- package/node_modules/zod/v4/locales/ka.js +112 -0
- package/node_modules/zod/v4/locales/kh.cjs +12 -0
- package/node_modules/zod/v4/locales/kh.d.cts +5 -0
- package/node_modules/zod/v4/locales/kh.d.ts +5 -0
- package/node_modules/zod/v4/locales/kh.js +5 -0
- package/node_modules/zod/v4/locales/km.cjs +137 -0
- package/node_modules/zod/v4/locales/km.d.cts +5 -0
- package/node_modules/zod/v4/locales/km.d.ts +4 -0
- package/node_modules/zod/v4/locales/km.js +110 -0
- package/node_modules/zod/v4/locales/ko.cjs +138 -0
- package/node_modules/zod/v4/locales/ko.d.cts +5 -0
- package/node_modules/zod/v4/locales/ko.d.ts +4 -0
- package/node_modules/zod/v4/locales/ko.js +111 -0
- package/node_modules/zod/v4/locales/lt.cjs +230 -0
- package/node_modules/zod/v4/locales/lt.d.cts +5 -0
- package/node_modules/zod/v4/locales/lt.d.ts +4 -0
- package/node_modules/zod/v4/locales/lt.js +203 -0
- package/node_modules/zod/v4/locales/mk.cjs +136 -0
- package/node_modules/zod/v4/locales/mk.d.cts +5 -0
- package/node_modules/zod/v4/locales/mk.d.ts +4 -0
- package/node_modules/zod/v4/locales/mk.js +109 -0
- package/node_modules/zod/v4/locales/ms.cjs +134 -0
- package/node_modules/zod/v4/locales/ms.d.cts +5 -0
- package/node_modules/zod/v4/locales/ms.d.ts +4 -0
- package/node_modules/zod/v4/locales/ms.js +107 -0
- package/node_modules/zod/v4/locales/nl.cjs +137 -0
- package/node_modules/zod/v4/locales/nl.d.cts +5 -0
- package/node_modules/zod/v4/locales/nl.d.ts +4 -0
- package/node_modules/zod/v4/locales/nl.js +110 -0
- package/node_modules/zod/v4/locales/no.cjs +135 -0
- package/node_modules/zod/v4/locales/no.d.cts +5 -0
- package/node_modules/zod/v4/locales/no.d.ts +4 -0
- package/node_modules/zod/v4/locales/no.js +108 -0
- package/node_modules/zod/v4/locales/ota.cjs +136 -0
- package/node_modules/zod/v4/locales/ota.d.cts +5 -0
- package/node_modules/zod/v4/locales/ota.d.ts +4 -0
- package/node_modules/zod/v4/locales/ota.js +109 -0
- package/node_modules/zod/v4/locales/package.json +7 -0
- package/node_modules/zod/v4/locales/pl.cjs +136 -0
- package/node_modules/zod/v4/locales/pl.d.cts +5 -0
- package/node_modules/zod/v4/locales/pl.d.ts +4 -0
- package/node_modules/zod/v4/locales/pl.js +109 -0
- package/node_modules/zod/v4/locales/ps.cjs +141 -0
- package/node_modules/zod/v4/locales/ps.d.cts +5 -0
- package/node_modules/zod/v4/locales/ps.d.ts +4 -0
- package/node_modules/zod/v4/locales/ps.js +114 -0
- package/node_modules/zod/v4/locales/pt.cjs +135 -0
- package/node_modules/zod/v4/locales/pt.d.cts +5 -0
- package/node_modules/zod/v4/locales/pt.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt.js +108 -0
- package/node_modules/zod/v4/locales/ro.cjs +146 -0
- package/node_modules/zod/v4/locales/ro.d.cts +5 -0
- package/node_modules/zod/v4/locales/ro.d.ts +4 -0
- package/node_modules/zod/v4/locales/ro.js +119 -0
- package/node_modules/zod/v4/locales/ru.cjs +183 -0
- package/node_modules/zod/v4/locales/ru.d.cts +5 -0
- package/node_modules/zod/v4/locales/ru.d.ts +4 -0
- package/node_modules/zod/v4/locales/ru.js +156 -0
- package/node_modules/zod/v4/locales/sl.cjs +136 -0
- package/node_modules/zod/v4/locales/sl.d.cts +5 -0
- package/node_modules/zod/v4/locales/sl.d.ts +4 -0
- package/node_modules/zod/v4/locales/sl.js +109 -0
- package/node_modules/zod/v4/locales/sv.cjs +137 -0
- package/node_modules/zod/v4/locales/sv.d.cts +5 -0
- package/node_modules/zod/v4/locales/sv.d.ts +4 -0
- package/node_modules/zod/v4/locales/sv.js +110 -0
- package/node_modules/zod/v4/locales/ta.cjs +137 -0
- package/node_modules/zod/v4/locales/ta.d.cts +5 -0
- package/node_modules/zod/v4/locales/ta.d.ts +4 -0
- package/node_modules/zod/v4/locales/ta.js +110 -0
- package/node_modules/zod/v4/locales/th.cjs +137 -0
- package/node_modules/zod/v4/locales/th.d.cts +5 -0
- package/node_modules/zod/v4/locales/th.d.ts +4 -0
- package/node_modules/zod/v4/locales/th.js +110 -0
- package/node_modules/zod/v4/locales/tr.cjs +132 -0
- package/node_modules/zod/v4/locales/tr.d.cts +5 -0
- package/node_modules/zod/v4/locales/tr.d.ts +4 -0
- package/node_modules/zod/v4/locales/tr.js +105 -0
- package/node_modules/zod/v4/locales/ua.cjs +12 -0
- package/node_modules/zod/v4/locales/ua.d.cts +5 -0
- package/node_modules/zod/v4/locales/ua.d.ts +5 -0
- package/node_modules/zod/v4/locales/ua.js +5 -0
- package/node_modules/zod/v4/locales/uk.cjs +135 -0
- package/node_modules/zod/v4/locales/uk.d.cts +5 -0
- package/node_modules/zod/v4/locales/uk.d.ts +4 -0
- package/node_modules/zod/v4/locales/uk.js +108 -0
- package/node_modules/zod/v4/locales/ur.cjs +137 -0
- package/node_modules/zod/v4/locales/ur.d.cts +5 -0
- package/node_modules/zod/v4/locales/ur.d.ts +4 -0
- package/node_modules/zod/v4/locales/ur.js +110 -0
- package/node_modules/zod/v4/locales/uz.cjs +137 -0
- package/node_modules/zod/v4/locales/uz.d.cts +5 -0
- package/node_modules/zod/v4/locales/uz.d.ts +4 -0
- package/node_modules/zod/v4/locales/uz.js +110 -0
- package/node_modules/zod/v4/locales/vi.cjs +135 -0
- package/node_modules/zod/v4/locales/vi.d.cts +5 -0
- package/node_modules/zod/v4/locales/vi.d.ts +4 -0
- package/node_modules/zod/v4/locales/vi.js +108 -0
- package/node_modules/zod/v4/locales/yo.cjs +134 -0
- package/node_modules/zod/v4/locales/yo.d.cts +5 -0
- package/node_modules/zod/v4/locales/yo.d.ts +4 -0
- package/node_modules/zod/v4/locales/yo.js +107 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
- package/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
- package/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
- package/node_modules/zod/v4/locales/zh-CN.js +109 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
- package/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
- package/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
- package/node_modules/zod/v4/locales/zh-TW.js +107 -0
- package/node_modules/zod/v4/mini/checks.cjs +34 -0
- package/node_modules/zod/v4/mini/checks.d.cts +1 -0
- package/node_modules/zod/v4/mini/checks.d.ts +1 -0
- package/node_modules/zod/v4/mini/checks.js +1 -0
- package/node_modules/zod/v4/mini/coerce.cjs +52 -0
- package/node_modules/zod/v4/mini/coerce.d.cts +7 -0
- package/node_modules/zod/v4/mini/coerce.d.ts +7 -0
- package/node_modules/zod/v4/mini/coerce.js +22 -0
- package/node_modules/zod/v4/mini/external.cjs +63 -0
- package/node_modules/zod/v4/mini/external.d.cts +13 -0
- package/node_modules/zod/v4/mini/external.d.ts +13 -0
- package/node_modules/zod/v4/mini/external.js +14 -0
- package/node_modules/zod/v4/mini/index.cjs +32 -0
- package/node_modules/zod/v4/mini/index.d.cts +3 -0
- package/node_modules/zod/v4/mini/index.d.ts +3 -0
- package/node_modules/zod/v4/mini/index.js +3 -0
- package/node_modules/zod/v4/mini/iso.cjs +64 -0
- package/node_modules/zod/v4/mini/iso.d.cts +22 -0
- package/node_modules/zod/v4/mini/iso.d.ts +22 -0
- package/node_modules/zod/v4/mini/iso.js +34 -0
- package/node_modules/zod/v4/mini/package.json +7 -0
- package/node_modules/zod/v4/mini/parse.cjs +16 -0
- package/node_modules/zod/v4/mini/parse.d.cts +1 -0
- package/node_modules/zod/v4/mini/parse.d.ts +1 -0
- package/node_modules/zod/v4/mini/parse.js +1 -0
- package/node_modules/zod/v4/mini/schemas.cjs +1083 -0
- package/node_modules/zod/v4/mini/schemas.d.cts +445 -0
- package/node_modules/zod/v4/mini/schemas.d.ts +445 -0
- package/node_modules/zod/v4/mini/schemas.js +961 -0
- package/node_modules/zod/v4/package.json +7 -0
- package/node_modules/zod/v4-mini/index.cjs +32 -0
- package/node_modules/zod/v4-mini/index.d.cts +3 -0
- package/node_modules/zod/v4-mini/index.d.ts +3 -0
- package/node_modules/zod/v4-mini/index.js +3 -0
- package/node_modules/zod/v4-mini/package.json +7 -0
- package/package.json +1 -1
- package/src/__tests__/upgrade-local.test.ts +443 -0
- package/src/commands/client.ts +266 -102
- package/src/commands/exec.ts +2 -2
- package/src/commands/flags.ts +1 -1
- package/src/commands/logs.ts +1 -2
- package/src/commands/ps.ts +1 -2
- package/src/commands/retire.ts +1 -2
- package/src/commands/roadmap.ts +8 -10
- package/src/commands/rollback.ts +1 -2
- package/src/commands/ssh.ts +1 -2
- package/src/commands/teleport.ts +6 -7
- package/src/commands/upgrade.ts +351 -25
- package/src/lib/assistant-config.ts +56 -48
- package/src/lib/local.ts +204 -24
- package/src/lib/terminal-session.ts +2 -2
- package/src/lib/upgrade-lifecycle.ts +29 -16
- package/src/shared/provider-env-vars.ts +1 -0
package/src/commands/upgrade.ts
CHANGED
|
@@ -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
|
|
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
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
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(
|
|
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
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
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
|
-
*
|
|
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
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
-
|
|
304
|
-
|
|
305
|
-
|
|
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.
|