@vellumai/cli 0.10.0-dev.202606222007.e9d01e2 → 0.10.0-dev.202606222239.7186c51
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__/package-boundary.test.ts +6 -6
- package/node_modules/@vellumai/local-mode/src/lockfile-contract.test.ts +93 -16
- package/node_modules/@vellumai/local-mode/src/lockfile-contract.ts +132 -90
- package/node_modules/@vellumai/local-mode/src/lockfile.test.ts +3 -1
- 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/commands/exec.ts +2 -2
- package/src/commands/logs.ts +1 -2
- package/src/commands/ps.ts +1 -2
- package/src/commands/retire.ts +1 -2
- 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 +1 -2
- package/src/lib/assistant-config.ts +52 -48
- package/src/lib/terminal-session.ts +2 -2
- package/src/shared/provider-env-vars.ts +1 -0
package/bun.lock
CHANGED
|
@@ -398,7 +398,7 @@
|
|
|
398
398
|
|
|
399
399
|
"@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
|
|
400
400
|
|
|
401
|
-
"@vellumai/local-mode/@vellumai/environments": ["@vellumai/environments@file:../packages/environments", {}],
|
|
401
|
+
"@vellumai/local-mode/@vellumai/environments": ["@vellumai/environments@file:../packages/environments", { "devDependencies": { "@types/bun": "1.3.11", "typescript": "5.9.3" } }],
|
|
402
402
|
|
|
403
403
|
"fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
|
|
404
404
|
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"name": "@vellumai/local-mode",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@vellumai/environments": "file:../environments",
|
|
9
|
+
"zod": "4.3.6",
|
|
9
10
|
},
|
|
10
11
|
"devDependencies": {
|
|
11
12
|
"@types/bun": "1.3.11",
|
|
@@ -25,5 +26,7 @@
|
|
|
25
26
|
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
|
26
27
|
|
|
27
28
|
"undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="],
|
|
29
|
+
|
|
30
|
+
"zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="],
|
|
28
31
|
}
|
|
29
32
|
}
|
|
@@ -6,10 +6,9 @@
|
|
|
6
6
|
* uses node builtins for filesystem, child-process, and network work.
|
|
7
7
|
*
|
|
8
8
|
* Enforces that the package:
|
|
9
|
-
* 1. Imports only node builtins, its own relative modules,
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* 2. Declares exactly one runtime dependency: `@vellumai/environments`.
|
|
9
|
+
* 1. Imports only node builtins, its own relative modules, `@vellumai/environments`,
|
|
10
|
+
* and `zod` (the lockfile contract's schema library) — nothing else.
|
|
11
|
+
* 2. Declares exactly those two runtime dependencies.
|
|
13
12
|
* 3. Is marked `private`.
|
|
14
13
|
*/
|
|
15
14
|
|
|
@@ -20,7 +19,7 @@ import { join, resolve } from "node:path";
|
|
|
20
19
|
const PACKAGE_ROOT = resolve(import.meta.dirname, "../..");
|
|
21
20
|
const SRC_DIR = join(PACKAGE_ROOT, "src");
|
|
22
21
|
|
|
23
|
-
const ALLOWED_PACKAGES = new Set(["@vellumai/environments"]);
|
|
22
|
+
const ALLOWED_PACKAGES = new Set(["@vellumai/environments", "zod"]);
|
|
24
23
|
|
|
25
24
|
function collectSourceFiles(dir: string): string[] {
|
|
26
25
|
const files: string[] = [];
|
|
@@ -92,13 +91,14 @@ describe("package boundary", () => {
|
|
|
92
91
|
}
|
|
93
92
|
});
|
|
94
93
|
|
|
95
|
-
test("package.json declares it as private with only
|
|
94
|
+
test("package.json declares it as private with only its environments and zod dependencies", () => {
|
|
96
95
|
const pkg = JSON.parse(
|
|
97
96
|
readFileSync(join(PACKAGE_ROOT, "package.json"), "utf-8"),
|
|
98
97
|
);
|
|
99
98
|
expect(pkg.private).toBe(true);
|
|
100
99
|
expect(pkg.dependencies ?? {}).toEqual({
|
|
101
100
|
"@vellumai/environments": "file:../environments",
|
|
101
|
+
zod: "4.3.6",
|
|
102
102
|
});
|
|
103
103
|
});
|
|
104
104
|
});
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { describe, expect, test } from "bun:test";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
KNOWN_CLOUDS,
|
|
5
|
+
parseLockfile,
|
|
6
|
+
resolveCloud,
|
|
7
|
+
SENSITIVE_KEYS,
|
|
8
|
+
type Lockfile,
|
|
9
|
+
} from "./lockfile-contract";
|
|
4
10
|
|
|
5
11
|
describe("parseLockfile", () => {
|
|
6
12
|
test("passes through a fully-populated lockfile", () => {
|
|
@@ -42,24 +48,28 @@ describe("parseLockfile", () => {
|
|
|
42
48
|
|
|
43
49
|
test("salvages a legacy entry that has only an assistantId", () => {
|
|
44
50
|
// The oldest persisted entries carry just the identity; the CLI fills the
|
|
45
|
-
// rest in lazily. assistantId is the only required field, so the entry
|
|
46
|
-
//
|
|
51
|
+
// rest in lazily. assistantId is the only required field, so the entry must
|
|
52
|
+
// survive — normalized to the default `local` cloud.
|
|
47
53
|
const parsed = parseLockfile({
|
|
48
54
|
activeAssistant: "asst_1",
|
|
49
55
|
assistants: [{ assistantId: "asst_1" }],
|
|
50
56
|
});
|
|
51
|
-
expect(parsed.assistants).toEqual([
|
|
57
|
+
expect(parsed.assistants).toEqual([
|
|
58
|
+
{ assistantId: "asst_1", cloud: "local" },
|
|
59
|
+
]);
|
|
52
60
|
});
|
|
53
61
|
|
|
54
62
|
test("salvages an entry whose cloud and runtimeUrl are absent", () => {
|
|
55
63
|
// Older CLI builds predate the `cloud` field and persisted the runtime URL
|
|
56
64
|
// under a different key (`localUrl`), so a real on-disk entry can lack both
|
|
57
|
-
// modeled fields. It must still be returned
|
|
65
|
+
// modeled fields. It must still be returned, normalized to `local`.
|
|
58
66
|
const parsed = parseLockfile({
|
|
59
67
|
activeAssistant: null,
|
|
60
68
|
assistants: [{ assistantId: "asst_1", localUrl: "http://127.0.0.1:7777" }],
|
|
61
69
|
});
|
|
62
|
-
expect(parsed.assistants).toEqual([
|
|
70
|
+
expect(parsed.assistants).toEqual([
|
|
71
|
+
{ assistantId: "asst_1", cloud: "local" },
|
|
72
|
+
]);
|
|
63
73
|
});
|
|
64
74
|
|
|
65
75
|
test("drops malformed entries but salvages valid siblings", () => {
|
|
@@ -111,7 +121,9 @@ describe("parseLockfile", () => {
|
|
|
111
121
|
});
|
|
112
122
|
|
|
113
123
|
test("coerces a non-string activeAssistant to null", () => {
|
|
114
|
-
expect(
|
|
124
|
+
expect(
|
|
125
|
+
parseLockfile({ assistants: [], activeAssistant: 7 }).activeAssistant,
|
|
126
|
+
).toBeNull();
|
|
115
127
|
expect(parseLockfile({ assistants: [] }).activeAssistant).toBeNull();
|
|
116
128
|
});
|
|
117
129
|
|
|
@@ -124,9 +136,9 @@ describe("parseLockfile", () => {
|
|
|
124
136
|
});
|
|
125
137
|
|
|
126
138
|
test("drops a mistyped optional field but keeps the entry", () => {
|
|
127
|
-
// assistantId is the only required field. A mistyped optional field
|
|
128
|
-
//
|
|
129
|
-
//
|
|
139
|
+
// assistantId is the only required field. A mistyped optional field is
|
|
140
|
+
// dropped from the result, but the entry survives on the strength of its
|
|
141
|
+
// identity. (A mistyped `cloud` is dropped, then re-normalized to `local`.)
|
|
130
142
|
const raw = {
|
|
131
143
|
assistants: [
|
|
132
144
|
{ assistantId: "asst_1", cloud: 7, runtimeUrl: "http://a" }, // cloud not a string
|
|
@@ -135,7 +147,7 @@ describe("parseLockfile", () => {
|
|
|
135
147
|
activeAssistant: null,
|
|
136
148
|
};
|
|
137
149
|
expect(parseLockfile(raw).assistants).toEqual([
|
|
138
|
-
{ assistantId: "asst_1", runtimeUrl: "http://a" },
|
|
150
|
+
{ assistantId: "asst_1", cloud: "local", runtimeUrl: "http://a" },
|
|
139
151
|
{ assistantId: "asst_2", cloud: "local" },
|
|
140
152
|
]);
|
|
141
153
|
});
|
|
@@ -190,11 +202,38 @@ describe("parseLockfile", () => {
|
|
|
190
202
|
expect(assistant?.resources).toBeUndefined();
|
|
191
203
|
});
|
|
192
204
|
|
|
205
|
+
test("strips sensitive and host-only fields from resources", () => {
|
|
206
|
+
// The renderer-facing resources shape is ports + instanceDir only; the
|
|
207
|
+
// signing key and other ports are host-only and never cross the boundary.
|
|
208
|
+
const raw = {
|
|
209
|
+
assistants: [
|
|
210
|
+
{
|
|
211
|
+
assistantId: "asst_1",
|
|
212
|
+
cloud: "local",
|
|
213
|
+
resources: {
|
|
214
|
+
instanceDir: "/data",
|
|
215
|
+
gatewayPort: 7777,
|
|
216
|
+
daemonPort: 7778,
|
|
217
|
+
qdrantPort: 7779,
|
|
218
|
+
cesPort: 7780,
|
|
219
|
+
signingKey: "hunter2",
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
],
|
|
223
|
+
activeAssistant: null,
|
|
224
|
+
};
|
|
225
|
+
expect(parseLockfile(raw).assistants[0]?.resources).toEqual({
|
|
226
|
+
instanceDir: "/data",
|
|
227
|
+
gatewayPort: 7777,
|
|
228
|
+
daemonPort: 7778,
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
|
|
193
232
|
test("resolves cloud from legacy remote markers when the field is absent", () => {
|
|
194
233
|
// Pre-`cloud` remote entries encode topology in `project` (gcp) / `sshUser`
|
|
195
234
|
// (custom). The parser resolves these so a cloudless remote entry is never
|
|
196
|
-
// mistaken for a local one
|
|
197
|
-
//
|
|
235
|
+
// mistaken for a local one; a cloudless entry with no markers normalizes to
|
|
236
|
+
// `local`. The raw markers are not carried through.
|
|
198
237
|
const raw = {
|
|
199
238
|
assistants: [
|
|
200
239
|
{ assistantId: "gcp_1", project: "my-proj", runtimeUrl: "https://a" },
|
|
@@ -206,17 +245,55 @@ describe("parseLockfile", () => {
|
|
|
206
245
|
expect(parseLockfile(raw).assistants).toEqual([
|
|
207
246
|
{ assistantId: "gcp_1", cloud: "gcp", runtimeUrl: "https://a" },
|
|
208
247
|
{ assistantId: "ssh_1", cloud: "custom", runtimeUrl: "https://b" },
|
|
209
|
-
{ assistantId: "local_1", runtimeUrl: "http://localhost:7830" },
|
|
248
|
+
{ assistantId: "local_1", cloud: "local", runtimeUrl: "http://localhost:7830" },
|
|
210
249
|
]);
|
|
211
250
|
});
|
|
212
251
|
|
|
213
252
|
test("prefers an explicit cloud over legacy remote markers", () => {
|
|
214
253
|
const raw = {
|
|
215
|
-
assistants: [{ assistantId: "a", cloud: "
|
|
254
|
+
assistants: [{ assistantId: "a", cloud: "vellum", project: "stale-proj" }],
|
|
216
255
|
activeAssistant: null,
|
|
217
256
|
};
|
|
218
257
|
expect(parseLockfile(raw).assistants).toEqual([
|
|
219
|
-
{ assistantId: "a", cloud: "
|
|
258
|
+
{ assistantId: "a", cloud: "vellum" },
|
|
259
|
+
]);
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
describe("resolveCloud", () => {
|
|
264
|
+
test("prefers an explicit cloud", () => {
|
|
265
|
+
expect(resolveCloud({ cloud: "vellum", project: "p", sshUser: "u" })).toBe(
|
|
266
|
+
"vellum",
|
|
267
|
+
);
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
test("falls back to legacy markers, then local", () => {
|
|
271
|
+
expect(resolveCloud({ project: "p" })).toBe("gcp");
|
|
272
|
+
expect(resolveCloud({ sshUser: "u" })).toBe("custom");
|
|
273
|
+
expect(resolveCloud({})).toBe("local");
|
|
274
|
+
expect(resolveCloud({ cloud: "" })).toBe("local");
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
|
|
278
|
+
describe("taxonomy", () => {
|
|
279
|
+
test("KNOWN_CLOUDS covers the documented topologies", () => {
|
|
280
|
+
expect(KNOWN_CLOUDS).toEqual([
|
|
281
|
+
"local",
|
|
282
|
+
"docker",
|
|
283
|
+
"apple-container",
|
|
284
|
+
"vellum",
|
|
285
|
+
"gcp",
|
|
286
|
+
"aws",
|
|
287
|
+
"custom",
|
|
288
|
+
"paired",
|
|
289
|
+
]);
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
test("SENSITIVE_KEYS lists the redacted secrets", () => {
|
|
293
|
+
expect(SENSITIVE_KEYS).toEqual([
|
|
294
|
+
"signingKey",
|
|
295
|
+
"bearerToken",
|
|
296
|
+
"guardianBootstrapSecret",
|
|
220
297
|
]);
|
|
221
298
|
});
|
|
222
299
|
});
|
|
@@ -1,52 +1,124 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The lockfile wire contract —
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* package). The renderer relies on that separation: it imports these types
|
|
6
|
-
* type-only and must not transitively reference Node built-ins.
|
|
2
|
+
* The lockfile wire contract — one Zod schema that is the single source of truth
|
|
3
|
+
* for an assistant entry's shape, its validation, the `cloud` taxonomy, the
|
|
4
|
+
* normalization, and the redaction policy.
|
|
7
5
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
6
|
+
* Kept in its own module, exported from the package as `./contract`, so
|
|
7
|
+
* consumers import the contract without pulling in the host I/O graph
|
|
8
|
+
* (`node:fs`, the CLI resolver). The CLI, the host I/O layer, the Electron and
|
|
9
|
+
* dev-server bridges, and the renderer all depend on this one definition. It
|
|
10
|
+
* references no node built-ins — the renderer bundles it directly — and `zod`
|
|
11
|
+
* is its only third-party import.
|
|
13
12
|
*
|
|
14
13
|
* The lockfile is written by the Vellum CLI and read across the macOS↔CLI
|
|
15
|
-
* boundary, which do not release in lockstep
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
14
|
+
* boundary, which do not release in lockstep, so the parser is permissive: it
|
|
15
|
+
* validates the modeled fields, salvages an entry on the strength of its
|
|
16
|
+
* `assistantId` alone (dropping individual malformed optional fields rather
|
|
17
|
+
* than the whole entry), and ignores unknown fields so a newer writer never
|
|
18
|
+
* breaks an older reader. Unknown fields are preserved on disk by the write
|
|
19
|
+
* path (see `lockfile.ts`); the validated value carries only the modeled,
|
|
20
|
+
* renderer-safe shape.
|
|
21
|
+
*/
|
|
22
|
+
import { z } from "zod";
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Known deployment topologies. `cloud` is stored as a free string on disk for
|
|
26
|
+
* forward-compatibility — an older reader must tolerate a newer writer's value
|
|
27
|
+
* — but the known set is enumerated here so callers switch on it exhaustively
|
|
28
|
+
* instead of matching string literals scattered across the codebase:
|
|
29
|
+
* - `local` — on-machine daemon
|
|
30
|
+
* - `docker` — local container
|
|
31
|
+
* - `apple-container` — macOS-app-managed container
|
|
32
|
+
* - `vellum` — platform-managed (uses the X-Session-Token auth path)
|
|
33
|
+
* - `gcp` / `aws` / `custom` — remote, SSH-managed
|
|
34
|
+
* - `paired` — a remote assistant paired from another machine
|
|
31
35
|
*/
|
|
36
|
+
export const KNOWN_CLOUDS = [
|
|
37
|
+
"local",
|
|
38
|
+
"docker",
|
|
39
|
+
"apple-container",
|
|
40
|
+
"vellum",
|
|
41
|
+
"gcp",
|
|
42
|
+
"aws",
|
|
43
|
+
"custom",
|
|
44
|
+
"paired",
|
|
45
|
+
] as const;
|
|
46
|
+
export type KnownCloud = (typeof KNOWN_CLOUDS)[number];
|
|
47
|
+
export type Cloud = KnownCloud | (string & {});
|
|
32
48
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Keys that must never cross the host→renderer boundary. Stripped from raw
|
|
51
|
+
* lockfile JSON before it leaves a host (see `stripSensitiveFields`) and absent
|
|
52
|
+
* from the renderer-facing schema below; the CLI's extended type is the only
|
|
53
|
+
* place they are modeled.
|
|
54
|
+
*/
|
|
55
|
+
export const SENSITIVE_KEYS = [
|
|
56
|
+
"signingKey",
|
|
57
|
+
"bearerToken",
|
|
58
|
+
"guardianBootstrapSecret",
|
|
59
|
+
] as const;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Resolve an entry's deployment topology from its raw on-disk fields. Prefers
|
|
63
|
+
* an explicit `cloud`, then the legacy markers that predate the field
|
|
64
|
+
* (`project` ⇒ gcp, `sshUser` ⇒ custom), and defaults to "local". This is the
|
|
65
|
+
* one definition every reader shares, so a cloudless entry is classified
|
|
66
|
+
* identically by the CLI, the host I/O layer, and the renderer.
|
|
67
|
+
*/
|
|
68
|
+
export function resolveCloud(raw: {
|
|
69
|
+
cloud?: unknown;
|
|
70
|
+
project?: unknown;
|
|
71
|
+
sshUser?: unknown;
|
|
72
|
+
}): Cloud {
|
|
73
|
+
if (typeof raw.cloud === "string" && raw.cloud) return raw.cloud;
|
|
74
|
+
if (typeof raw.project === "string" && raw.project) return "gcp";
|
|
75
|
+
if (typeof raw.sshUser === "string" && raw.sshUser) return "custom";
|
|
76
|
+
return "local";
|
|
37
77
|
}
|
|
38
78
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
79
|
+
/**
|
|
80
|
+
* Per-instance resources for a local assistant: the renderer-facing subset of
|
|
81
|
+
* ports plus the instance directory. Richer host-only fields (other ports, the
|
|
82
|
+
* signing key) live on the CLI's type and are stripped from this shape.
|
|
83
|
+
*/
|
|
84
|
+
export const LocalAssistantResourcesSchema = z.object({
|
|
85
|
+
instanceDir: z.string().optional(),
|
|
86
|
+
gatewayPort: z.number(),
|
|
87
|
+
daemonPort: z.number(),
|
|
88
|
+
});
|
|
89
|
+
export type LocalAssistantResources = z.infer<
|
|
90
|
+
typeof LocalAssistantResourcesSchema
|
|
91
|
+
>;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* The renderer-safe shape of one assistant entry. `assistantId` is the only
|
|
95
|
+
* required field — the identity every reader looks entries up by — and every
|
|
96
|
+
* other field is salvaged by {@link parseLockfile}. The CLI extends this with
|
|
97
|
+
* its host-only and sensitive fields; this base carries only what is safe to
|
|
98
|
+
* surface in the renderer.
|
|
99
|
+
*/
|
|
100
|
+
export const LockfileAssistantSchema = z.object({
|
|
101
|
+
assistantId: z.string(),
|
|
102
|
+
name: z.string().optional(),
|
|
103
|
+
cloud: z.string().optional(),
|
|
104
|
+
runtimeUrl: z.string().optional(),
|
|
105
|
+
species: z.string().optional(),
|
|
106
|
+
hatchedAt: z.string().optional(),
|
|
46
107
|
/** Owning org for platform assistants; absent for local ones. */
|
|
47
|
-
organizationId
|
|
48
|
-
resources
|
|
49
|
-
}
|
|
108
|
+
organizationId: z.string().optional(),
|
|
109
|
+
resources: LocalAssistantResourcesSchema.optional(),
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* A validated, normalized assistant entry. Identical to the schema's inferred
|
|
114
|
+
* shape except `cloud` is always present — {@link parseLockfile} resolves it for
|
|
115
|
+
* every entry (defaulting to "local"), so readers never special-case its
|
|
116
|
+
* absence.
|
|
117
|
+
*/
|
|
118
|
+
export type LockfileAssistant = Omit<
|
|
119
|
+
z.infer<typeof LockfileAssistantSchema>,
|
|
120
|
+
"cloud"
|
|
121
|
+
> & { cloud: Cloud };
|
|
50
122
|
|
|
51
123
|
export interface Lockfile {
|
|
52
124
|
assistants: LockfileAssistant[];
|
|
@@ -55,8 +127,8 @@ export interface Lockfile {
|
|
|
55
127
|
|
|
56
128
|
/**
|
|
57
129
|
* Renderer-facing result of a lockfile write, returned across the host bridge.
|
|
58
|
-
* Carries no HTTP-style
|
|
59
|
-
*
|
|
130
|
+
* Carries no HTTP-style status — hosts map that away because the renderer
|
|
131
|
+
* surfaces failures by message alone.
|
|
60
132
|
*/
|
|
61
133
|
export type LockfileWriteResult =
|
|
62
134
|
| { ok: true; lockfile: Lockfile }
|
|
@@ -66,60 +138,30 @@ function isRecord(value: unknown): value is Record<string, unknown> {
|
|
|
66
138
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
67
139
|
}
|
|
68
140
|
|
|
69
|
-
function parseResources(value: unknown): LocalAssistantResources | undefined {
|
|
70
|
-
if (!isRecord(value)) return undefined;
|
|
71
|
-
if (typeof value.gatewayPort !== "number") return undefined;
|
|
72
|
-
if (typeof value.daemonPort !== "number") return undefined;
|
|
73
|
-
return {
|
|
74
|
-
...(typeof value.instanceDir === "string"
|
|
75
|
-
? { instanceDir: value.instanceDir }
|
|
76
|
-
: {}),
|
|
77
|
-
gatewayPort: value.gatewayPort,
|
|
78
|
-
daemonPort: value.daemonPort,
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
141
|
/**
|
|
83
|
-
* Validate a single
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
142
|
+
* Validate and normalize a single entry. Returns null only when `assistantId`
|
|
143
|
+
* is missing or not a string; any other entry is salvaged — each modeled field
|
|
144
|
+
* is copied only when present and well-typed (a malformed optional field is
|
|
145
|
+
* dropped without discarding the entry), unknown fields are ignored, and
|
|
146
|
+
* `cloud` is resolved from the raw markers so a cloudless remote entry is never
|
|
147
|
+
* mistaken for a local one and a markerless entry defaults to "local".
|
|
88
148
|
*/
|
|
89
|
-
function parseAssistant(
|
|
90
|
-
if (!isRecord(
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
// Normalize `cloud`. A pre-`cloud` remote entry encodes its topology in legacy
|
|
96
|
-
// markers (`project` => "gcp", `sshUser` => "custom") that aren't modeled
|
|
97
|
-
// fields; resolve them here — mirroring the CLI's `resolveCloud` — so a
|
|
98
|
-
// cloudless remote entry isn't indistinguishable from a local one downstream.
|
|
99
|
-
// A cloudless entry with no markers stays cloudless (i.e. local).
|
|
100
|
-
if (typeof value.cloud === "string") {
|
|
101
|
-
assistant.cloud = value.cloud;
|
|
102
|
-
} else if (typeof value.project === "string" && value.project) {
|
|
103
|
-
assistant.cloud = "gcp";
|
|
104
|
-
} else if (typeof value.sshUser === "string" && value.sshUser) {
|
|
105
|
-
assistant.cloud = "custom";
|
|
149
|
+
function parseAssistant(raw: unknown): LockfileAssistant | null {
|
|
150
|
+
if (!isRecord(raw) || typeof raw.assistantId !== "string") return null;
|
|
151
|
+
const out: Record<string, unknown> = {};
|
|
152
|
+
for (const [key, field] of Object.entries(LockfileAssistantSchema.shape)) {
|
|
153
|
+
const result = (field as z.ZodType).safeParse(raw[key]);
|
|
154
|
+
if (result.success && result.data !== undefined) out[key] = result.data;
|
|
106
155
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
if (typeof value.hatchedAt === "string") assistant.hatchedAt = value.hatchedAt;
|
|
110
|
-
if (typeof value.organizationId === "string") assistant.organizationId = value.organizationId;
|
|
111
|
-
const resources = parseResources(value.resources);
|
|
112
|
-
if (resources) assistant.resources = resources;
|
|
113
|
-
return assistant;
|
|
156
|
+
out.cloud = resolveCloud(raw);
|
|
157
|
+
return out as LockfileAssistant;
|
|
114
158
|
}
|
|
115
159
|
|
|
116
160
|
/**
|
|
117
|
-
* Coerce parsed JSON into a validated
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
* `
|
|
121
|
-
* `null`. Callers pass the result through unchanged; the only failure modes a
|
|
122
|
-
* host surfaces are I/O and JSON-parse errors, handled by `getLockfileData`.
|
|
161
|
+
* Coerce parsed JSON into a validated {@link Lockfile}. Total and non-throwing:
|
|
162
|
+
* entries that fail validation are dropped (one malformed entry can't discard
|
|
163
|
+
* the file), a missing or non-array `assistants` becomes `[]`, and a non-string
|
|
164
|
+
* `activeAssistant` becomes null.
|
|
123
165
|
*/
|
|
124
166
|
export function parseLockfile(raw: unknown): Lockfile {
|
|
125
167
|
const root = isRecord(raw) ? raw : {};
|
|
@@ -74,7 +74,9 @@ describe("getLockfileData", () => {
|
|
|
74
74
|
const result = getLockfileData([lockfilePath]);
|
|
75
75
|
expect(result.ok).toBe(true);
|
|
76
76
|
if (result.ok) {
|
|
77
|
-
expect(result.data.assistants).toEqual([
|
|
77
|
+
expect(result.data.assistants).toEqual([
|
|
78
|
+
{ assistantId: "asst_legacy", cloud: "local" },
|
|
79
|
+
]);
|
|
78
80
|
expect(result.data.activeAssistant).toBe("asst_legacy");
|
|
79
81
|
}
|
|
80
82
|
});
|
|
@@ -2,6 +2,8 @@ import fs from "node:fs";
|
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
|
|
5
|
+
import { SENSITIVE_KEYS } from "./lockfile-contract";
|
|
6
|
+
|
|
5
7
|
const CLI_PACKAGE_NAME = "@vellumai/cli";
|
|
6
8
|
|
|
7
9
|
/**
|
|
@@ -17,24 +19,18 @@ export interface CliInvocation {
|
|
|
17
19
|
baseArgs: string[];
|
|
18
20
|
}
|
|
19
21
|
|
|
20
|
-
const SENSITIVE_FIELDS = [
|
|
21
|
-
"signingKey",
|
|
22
|
-
"bearerToken",
|
|
23
|
-
"guardianBootstrapSecret",
|
|
24
|
-
] as const;
|
|
25
|
-
|
|
26
22
|
export function stripSensitiveFields(data: Record<string, unknown>): void {
|
|
27
23
|
const assistants = data.assistants;
|
|
28
24
|
if (!Array.isArray(assistants)) return;
|
|
29
25
|
for (const assistant of assistants) {
|
|
30
26
|
if (assistant && typeof assistant === "object") {
|
|
31
27
|
const entry = assistant as Record<string, unknown>;
|
|
32
|
-
for (const field of
|
|
28
|
+
for (const field of SENSITIVE_KEYS) {
|
|
33
29
|
delete entry[field];
|
|
34
30
|
}
|
|
35
31
|
const resources = entry.resources;
|
|
36
32
|
if (resources && typeof resources === "object") {
|
|
37
|
-
for (const field of
|
|
33
|
+
for (const field of SENSITIVE_KEYS) {
|
|
38
34
|
delete (resources as Record<string, unknown>)[field];
|
|
39
35
|
}
|
|
40
36
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Colin McDonnell
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|