@vellumai/cli 0.10.6 → 0.10.7-dev.202607072325.09ad030
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/node_modules/@vellumai/environments/tsconfig.json +1 -1
- package/node_modules/@vellumai/local-mode/node_modules/@vellumai/environments/package.json +18 -0
- package/node_modules/@vellumai/local-mode/node_modules/@vellumai/environments/src/__tests__/package-boundary.test.ts +95 -0
- package/node_modules/@vellumai/local-mode/node_modules/@vellumai/environments/src/index.ts +11 -0
- package/node_modules/@vellumai/local-mode/node_modules/@vellumai/environments/src/seeds.ts +70 -0
- package/node_modules/@vellumai/local-mode/node_modules/@vellumai/environments/src/types.ts +70 -0
- package/node_modules/@vellumai/local-mode/node_modules/@vellumai/environments/tsconfig.json +20 -0
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/README.md +18 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/locales/package.json +1 -2
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/mini/package.json +1 -2
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/package.json +1 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/all-errors.test.ts +3 -3
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/object.test.ts +5 -5
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/partials.test.ts +3 -3
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/errors.ts +2 -2
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/external.ts +0 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/from-json-schema.ts +23 -39
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/parse.ts +6 -6
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/schemas.ts +151 -414
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/assignability.test.ts +0 -6
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/catch.test.ts +0 -50
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/codec.test.ts +1 -142
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/continuability.test.ts +1 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/datetime.test.ts +1 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/default.test.ts +0 -44
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/discriminated-unions.test.ts +1 -34
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/error-utils.test.ts +2 -214
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/from-json-schema.test.ts +0 -161
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/function.test.ts +6 -6
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/index.test.ts +2 -2
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/number.test.ts +0 -55
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/object.test.ts +6 -83
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/optional.test.ts +4 -114
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/partial.test.ts +1 -24
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/prefault.test.ts +1 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/preprocess.test.ts +0 -69
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/record.test.ts +0 -85
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/recursive-types.test.ts +0 -49
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/refine.test.ts +0 -63
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/string.test.ts +1 -50
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/template-literal.test.ts +4 -4
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/to-json-schema.test.ts +15 -150
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/transform.test.ts +0 -17
- package/node_modules/@vellumai/local-mode/node_modules/zod/src/v4/classic/tests/tuple.test.ts +183 -0
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/union.test.ts +0 -54
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/api.ts +6 -31
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/checks.ts +1 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/core.ts +2 -17
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/errors.ts +24 -31
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/json-schema-processors.ts +18 -17
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/parse.ts +7 -7
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/regexes.ts +1 -8
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/schemas.ts +71 -263
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/tests/locales/uz.test.ts +0 -22
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/tests/record-constructor.test.ts +0 -58
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/to-json-schema.ts +1 -10
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/util.ts +35 -52
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/versions.ts +2 -2
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/en.ts +0 -4
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/fr.ts +8 -24
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/index.ts +0 -3
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/it.ts +1 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/ka.ts +8 -8
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/uz.ts +0 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/external.ts +0 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/schemas.ts +25 -56
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/codec.test.ts +0 -19
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/index.test.ts +2 -32
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/object.test.ts +9 -9
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/recursive-types.test.ts +1 -51
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/string.test.ts +0 -5
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/package.json +1 -2
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/errors.js +2 -2
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/external.d.cts +0 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/external.d.ts +0 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/from-json-schema.cjs +16 -31
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/from-json-schema.js +16 -31
- package/node_modules/@vellumai/local-mode/node_modules/zod/v4/classic/package.json +6 -0
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/schemas.cjs +119 -358
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/schemas.d.cts +14 -42
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/schemas.d.ts +14 -42
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/schemas.js +118 -356
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/api.cjs +2 -7
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/api.d.cts +5 -26
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/api.d.ts +5 -26
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/api.js +2 -7
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/checks.d.cts +1 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/checks.d.ts +1 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/core.cjs +1 -3
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/core.js +2 -4
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/errors.cjs +23 -26
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/errors.d.cts +0 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/errors.d.ts +0 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/errors.js +23 -26
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/json-schema-processors.cjs +20 -16
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/json-schema-processors.js +20 -16
- package/node_modules/@vellumai/local-mode/node_modules/zod/v4/core/package.json +6 -0
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/parse.cjs +7 -7
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/parse.js +7 -7
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/regexes.cjs +3 -9
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/regexes.d.cts +0 -6
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/regexes.d.ts +0 -6
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/regexes.js +1 -7
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/schemas.cjs +65 -211
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/schemas.d.cts +1 -39
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/schemas.d.ts +1 -39
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/schemas.js +64 -210
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/to-json-schema.cjs +1 -12
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/to-json-schema.js +1 -12
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/util.cjs +30 -54
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/util.d.cts +0 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/util.d.ts +0 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/util.js +32 -55
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/versions.cjs +2 -2
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/versions.d.cts +1 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/versions.d.ts +1 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/versions.js +2 -2
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/en.cjs +0 -4
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/en.js +0 -4
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fr.cjs +7 -24
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fr.js +7 -24
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/index.cjs +1 -8
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/index.d.cts +0 -3
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/index.d.ts +0 -3
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/index.js +0 -3
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/it.cjs +1 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/it.js +1 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ka.cjs +8 -8
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ka.js +8 -8
- package/node_modules/@vellumai/local-mode/node_modules/zod/v4/locales/package.json +6 -0
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/uz.cjs +0 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/uz.js +0 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/external.d.cts +0 -1
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/external.d.ts +0 -1
- package/node_modules/@vellumai/local-mode/node_modules/zod/v4/mini/package.json +6 -0
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/schemas.cjs +4 -41
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/schemas.d.cts +10 -28
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/schemas.d.ts +10 -28
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/schemas.js +4 -40
- package/node_modules/@vellumai/local-mode/node_modules/zod/v4/package.json +6 -0
- package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4-mini/package.json +1 -2
- package/node_modules/@vellumai/local-mode/src/status.ts +84 -7
- package/node_modules/@vellumai/local-mode/tsconfig.json +1 -1
- package/package.json +1 -2
- package/src/__tests__/daemon-readiness-probe.test.ts +158 -0
- package/src/__tests__/provider-inference-parity.test.ts +57 -0
- package/src/__tests__/recover.test.ts +5 -1
- package/src/__tests__/upgrade-local.test.ts +4 -0
- package/src/__tests__/upgrade-wait-for-ready.test.ts +103 -0
- package/src/commands/restore.ts +31 -8
- package/src/commands/upgrade.ts +33 -2
- package/src/commands/wake.ts +80 -2
- package/src/lib/__tests__/local-ces.test.ts +104 -0
- package/src/lib/backup-ops.ts +59 -36
- package/src/lib/docker.ts +60 -25
- package/src/lib/http-client.ts +107 -11
- package/src/lib/local.ts +157 -74
- package/src/lib/process.ts +70 -30
- package/src/lib/provider-secrets.ts +40 -7
- package/src/lib/upgrade-lifecycle.ts +129 -25
- package/src/shared/provider-env-vars.ts +1 -0
- package/tsconfig.json +1 -1
- package/bun.lock +0 -411
- package/bunfig.toml +0 -6
- package/node_modules/@vellumai/environments/bun.lock +0 -24
- package/node_modules/@vellumai/local-mode/bun.lock +0 -32
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +0 -197
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +0 -39
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +0 -46
- package/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +0 -29
- package/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +0 -24
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +0 -26
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +0 -496
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +0 -215
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +0 -72
- package/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +0 -163
- package/node_modules/zod/src/v4/locales/el.ts +0 -121
- package/node_modules/zod/src/v4/locales/hr.ts +0 -131
- package/node_modules/zod/src/v4/locales/ro.ts +0 -129
- package/node_modules/zod/v4/classic/package.json +0 -7
- package/node_modules/zod/v4/core/package.json +0 -7
- package/node_modules/zod/v4/locales/el.cjs +0 -136
- package/node_modules/zod/v4/locales/el.d.cts +0 -5
- package/node_modules/zod/v4/locales/el.d.ts +0 -4
- package/node_modules/zod/v4/locales/el.js +0 -109
- package/node_modules/zod/v4/locales/hr.cjs +0 -149
- package/node_modules/zod/v4/locales/hr.d.cts +0 -5
- package/node_modules/zod/v4/locales/hr.d.ts +0 -4
- package/node_modules/zod/v4/locales/hr.js +0 -122
- package/node_modules/zod/v4/locales/package.json +0 -7
- package/node_modules/zod/v4/locales/ro.cjs +0 -146
- package/node_modules/zod/v4/locales/ro.d.cts +0 -5
- package/node_modules/zod/v4/locales/ro.d.ts +0 -4
- package/node_modules/zod/v4/locales/ro.js +0 -119
- package/node_modules/zod/v4/mini/package.json +0 -7
- package/node_modules/zod/v4/package.json +0 -7
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/LICENSE +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/index.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/index.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/index.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/index.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/locales/index.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/locales/index.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/locales/index.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/locales/index.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/mini/index.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/mini/index.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/mini/index.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/mini/index.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/index.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/locales/index.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/mini/index.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/ZodError.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/benchmarks/datetime.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/benchmarks/discriminatedUnion.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/benchmarks/index.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/benchmarks/ipv4.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/benchmarks/object.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/benchmarks/primitives.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/benchmarks/realworld.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/benchmarks/string.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/benchmarks/union.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/errors.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/external.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/helpers/enumUtil.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/helpers/errorUtil.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/helpers/parseUtil.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/helpers/partialUtil.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/helpers/typeAliases.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/helpers/util.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/index.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/locales/en.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/standard-schema.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/Mocker.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/anyunknown.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/array.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/async-parsing.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/async-refinements.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/base.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/bigint.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/branded.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/catch.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/coerce.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/complex.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/custom.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/date.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/deepmasking.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/default.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/description.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/discriminated-unions.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/enum.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/error.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/firstparty.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/firstpartyschematypes.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/function.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/generics.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/instanceof.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/intersection.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/language-server.source.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/language-server.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/literal.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/map.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/masking.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/mocker.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/nan.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/nativeEnum.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/nullable.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/number.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/object-augmentation.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/object-in-es5-env.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/optional.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/parseUtil.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/parser.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/pickomit.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/pipeline.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/preprocess.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/primitive.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/promise.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/readonly.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/record.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/recursive.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/refine.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/safeparse.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/set.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/standard-schema.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/string.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/transformer.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/tuple.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/unions.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/validations.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/tests/void.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v3/types.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/checks.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/coerce.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/compat.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/index.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/iso.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/anyunknown.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/apply.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/array.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/async-parsing.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/async-refinements.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/base.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/bigint.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/brand.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/coalesce.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/codec-examples.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/coerce.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/custom.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/date.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/describe-meta-checks.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/description.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/enum.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/error.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/file.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/firstparty.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/fix-json-issue.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/generics.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/hash.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/instanceof.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/intersection.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/json.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/lazy.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/literal.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/map.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/nan.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/nested-refine.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/nonoptional.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/nullable.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/pickomit.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/pipe.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/primitive.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/promise.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/prototypes.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/readonly.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/registries.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/set.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/standard-schema.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/string-formats.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/stringbool.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/to-json-schema-methods.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/url.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/validations.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/classic/tests/void.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/config.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/doc.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/index.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/json-schema-generator.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/json-schema.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/registries.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/standard-schema.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/tests/extend.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/tests/index.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/tests/locales/be.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/tests/locales/en.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/tests/locales/es.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/tests/locales/he.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/tests/locales/nl.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/tests/locales/ru.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/tests/locales/tr.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/tests/recursive-tuples.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/core/zsf.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/index.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/ar.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/az.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/be.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/bg.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/ca.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/cs.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/da.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/de.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/eo.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/es.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/fa.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/fi.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/fr-CA.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/he.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/hu.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/hy.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/id.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/is.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/ja.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/kh.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/km.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/ko.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/lt.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/mk.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/ms.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/nl.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/no.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/ota.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/pl.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/ps.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/pt.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/ru.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/sl.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/sv.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/ta.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/th.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/tr.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/ua.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/uk.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/ur.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/vi.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/yo.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/zh-CN.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/locales/zh-TW.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/checks.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/coerce.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/index.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/iso.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/parse.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/apply.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/assignability.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/brand.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/checks.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/computed.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/error.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/functions.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/number.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/prototypes.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4/mini/tests/standard-schema.test.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/src/v4-mini/index.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/ZodError.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/ZodError.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/ZodError.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/ZodError.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/errors.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/errors.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/errors.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/errors.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/external.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/external.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/external.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/external.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/enumUtil.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/enumUtil.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/enumUtil.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/enumUtil.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/errorUtil.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/errorUtil.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/errorUtil.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/errorUtil.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/parseUtil.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/parseUtil.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/parseUtil.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/parseUtil.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/partialUtil.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/partialUtil.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/partialUtil.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/partialUtil.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/typeAliases.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/typeAliases.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/typeAliases.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/typeAliases.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/util.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/util.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/util.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/helpers/util.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/index.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/index.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/index.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/index.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/locales/en.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/locales/en.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/locales/en.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/locales/en.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/standard-schema.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/standard-schema.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/standard-schema.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/standard-schema.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/types.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/types.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/types.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v3/types.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/checks.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/checks.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/checks.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/checks.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/coerce.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/coerce.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/coerce.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/coerce.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/compat.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/compat.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/compat.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/compat.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/errors.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/errors.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/errors.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/external.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/external.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/from-json-schema.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/from-json-schema.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/index.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/index.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/index.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/index.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/iso.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/iso.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/iso.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/iso.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/parse.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/parse.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/parse.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/classic/parse.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/checks.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/checks.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/core.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/core.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/doc.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/doc.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/doc.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/doc.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/index.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/index.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/index.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/index.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/json-schema-generator.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/json-schema-generator.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/json-schema-generator.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/json-schema-generator.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/json-schema-processors.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/json-schema-processors.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/json-schema.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/json-schema.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/json-schema.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/json-schema.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/parse.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/parse.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/registries.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/registries.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/registries.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/registries.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/standard-schema.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/standard-schema.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/standard-schema.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/standard-schema.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/to-json-schema.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/core/to-json-schema.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/index.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/index.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/index.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/index.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ar.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ar.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ar.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ar.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/az.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/az.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/az.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/az.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/be.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/be.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/be.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/be.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/bg.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/bg.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/bg.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/bg.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ca.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ca.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ca.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ca.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/cs.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/cs.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/cs.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/cs.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/da.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/da.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/da.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/da.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/de.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/de.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/de.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/de.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/en.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/en.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/eo.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/eo.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/eo.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/eo.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/es.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/es.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/es.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/es.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fa.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fa.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fa.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fa.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fi.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fi.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fi.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fi.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fr-CA.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fr-CA.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fr-CA.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fr-CA.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fr.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/fr.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/he.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/he.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/he.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/he.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/hu.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/hu.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/hu.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/hu.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/hy.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/hy.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/hy.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/hy.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/id.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/id.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/id.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/id.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/is.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/is.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/is.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/is.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/it.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/it.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ja.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ja.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ja.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ja.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ka.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ka.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/kh.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/kh.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/kh.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/kh.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/km.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/km.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/km.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/km.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ko.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ko.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ko.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ko.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/lt.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/lt.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/lt.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/lt.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/mk.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/mk.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/mk.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/mk.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ms.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ms.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ms.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ms.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/nl.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/nl.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/nl.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/nl.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/no.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/no.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/no.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/no.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ota.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ota.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ota.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ota.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/pl.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/pl.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/pl.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/pl.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ps.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ps.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ps.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ps.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/pt.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/pt.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/pt.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/pt.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ru.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ru.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ru.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ru.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/sl.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/sl.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/sl.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/sl.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/sv.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/sv.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/sv.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/sv.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ta.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ta.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ta.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ta.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/th.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/th.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/th.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/th.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/tr.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/tr.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/tr.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/tr.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ua.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ua.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ua.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ua.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/uk.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/uk.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/uk.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/uk.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ur.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ur.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ur.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/ur.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/uz.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/uz.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/vi.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/vi.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/vi.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/vi.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/yo.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/yo.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/yo.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/yo.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/zh-CN.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/zh-CN.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/zh-CN.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/zh-CN.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/zh-TW.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/zh-TW.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/zh-TW.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/locales/zh-TW.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/checks.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/checks.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/checks.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/checks.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/coerce.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/coerce.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/coerce.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/coerce.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/external.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/external.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/index.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/index.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/index.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/index.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/iso.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/iso.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/iso.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/iso.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/parse.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/parse.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/parse.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4/mini/parse.js +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4-mini/index.cjs +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4-mini/index.d.cts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4-mini/index.d.ts +0 -0
- /package/node_modules/{zod → @vellumai/local-mode/node_modules/zod}/v4-mini/index.js +0 -0
package/src/lib/http-client.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { loopbackSafeFetch } from "./loopback-fetch.js";
|
|
2
2
|
|
|
3
|
+
export type HttpProbeEndpoint = "healthz" | "readyz";
|
|
4
|
+
|
|
3
5
|
/**
|
|
4
6
|
* Build the base URL for the daemon HTTP server.
|
|
5
7
|
*/
|
|
@@ -7,16 +9,13 @@ export function buildDaemonUrl(port: number): string {
|
|
|
7
9
|
return `http://127.0.0.1:${port}`;
|
|
8
10
|
}
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
* Perform an HTTP health check against the daemon's `/healthz` endpoint.
|
|
12
|
-
* Returns true if the daemon responds with HTTP 200, false otherwise.
|
|
13
|
-
*/
|
|
14
|
-
export async function httpHealthCheck(
|
|
12
|
+
async function httpProbe(
|
|
15
13
|
port: number,
|
|
16
|
-
|
|
14
|
+
endpoint: HttpProbeEndpoint,
|
|
15
|
+
timeoutMs: number,
|
|
17
16
|
): Promise<boolean> {
|
|
18
17
|
try {
|
|
19
|
-
const url = `${buildDaemonUrl(port)}
|
|
18
|
+
const url = `${buildDaemonUrl(port)}/${endpoint}`;
|
|
20
19
|
const response = await loopbackSafeFetch(url, {
|
|
21
20
|
signal: AbortSignal.timeout(timeoutMs),
|
|
22
21
|
});
|
|
@@ -27,21 +26,118 @@ export async function httpHealthCheck(
|
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
29
|
+
* Perform an HTTP health check against the daemon's `/healthz` endpoint.
|
|
30
|
+
* Returns true if the daemon responds with HTTP 200, false otherwise.
|
|
31
|
+
*/
|
|
32
|
+
export async function httpHealthCheck(
|
|
33
|
+
port: number,
|
|
34
|
+
timeoutMs = 1500,
|
|
35
|
+
): Promise<boolean> {
|
|
36
|
+
return httpProbe(port, "healthz", timeoutMs);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Poll a daemon probe endpoint until it responds with 200 or the timeout is
|
|
41
|
+
* reached.
|
|
32
42
|
*
|
|
33
|
-
* Returns true if the daemon became
|
|
43
|
+
* Returns true if the daemon became ready within the timeout, false otherwise.
|
|
34
44
|
*/
|
|
35
45
|
export async function waitForDaemonReady(
|
|
36
46
|
port: number,
|
|
37
47
|
timeoutMs = 60000,
|
|
48
|
+
endpoint: HttpProbeEndpoint = "healthz",
|
|
38
49
|
): Promise<boolean> {
|
|
39
50
|
const start = Date.now();
|
|
40
51
|
while (Date.now() - start < timeoutMs) {
|
|
41
|
-
if (await
|
|
52
|
+
if (await httpProbe(port, endpoint, 1500)) {
|
|
42
53
|
return true;
|
|
43
54
|
}
|
|
44
55
|
await new Promise((r) => setTimeout(r, 250));
|
|
45
56
|
}
|
|
46
57
|
return false;
|
|
47
58
|
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Migration-aware daemon readiness, derived from the `/readyz` BODY rather
|
|
62
|
+
* than its status code. The status code is the k8s contract — 200 while
|
|
63
|
+
* migrations run so the pod stays in service, 503 only on migration failure —
|
|
64
|
+
* so `response.ok` alone cannot distinguish "ready" from "still migrating".
|
|
65
|
+
*/
|
|
66
|
+
export type DaemonReadiness = "ready" | "migrating" | "failed" | "unreachable";
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Classify a `/readyz` response (daemon-direct or proxied through the
|
|
70
|
+
* gateway, which forwards the assistant's readiness body). Shared by the
|
|
71
|
+
* local daemon probe and the docker upgrade/hatch readiness waits so there is
|
|
72
|
+
* exactly one reader of the readiness wire shape.
|
|
73
|
+
*
|
|
74
|
+
* Any HTTP-answered response proves the daemon is alive, so a non-ready
|
|
75
|
+
* answer without a failed-migrations body classifies as "migrating" — this
|
|
76
|
+
* covers legacy daemons whose strict `/readyz` returns 503 with a `notReady`
|
|
77
|
+
* body throughout startup. "unreachable" is reserved for the no-answer case
|
|
78
|
+
* (the caller's fetch threw).
|
|
79
|
+
*/
|
|
80
|
+
export function classifyReadyzResponse(
|
|
81
|
+
ok: boolean,
|
|
82
|
+
body: unknown,
|
|
83
|
+
): Exclude<DaemonReadiness, "unreachable"> {
|
|
84
|
+
const readiness = body as {
|
|
85
|
+
ready?: boolean;
|
|
86
|
+
dbMigrations?: { state?: string };
|
|
87
|
+
} | null;
|
|
88
|
+
if (readiness?.dbMigrations?.state === "failed") return "failed";
|
|
89
|
+
// A 200 with no explicit `ready: false` counts as ready — this also
|
|
90
|
+
// covers daemons that predate the migration-state body.
|
|
91
|
+
if (ok && readiness?.ready !== false) return "ready";
|
|
92
|
+
return "migrating";
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/** Single `/readyz` probe, classified from the response body. */
|
|
96
|
+
export async function probeDaemonReadiness(
|
|
97
|
+
port: number,
|
|
98
|
+
timeoutMs = 1500,
|
|
99
|
+
): Promise<DaemonReadiness> {
|
|
100
|
+
try {
|
|
101
|
+
const response = await loopbackSafeFetch(`${buildDaemonUrl(port)}/readyz`, {
|
|
102
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
103
|
+
});
|
|
104
|
+
const body = (await response.json().catch(() => null)) as unknown;
|
|
105
|
+
return classifyReadyzResponse(response.ok, body);
|
|
106
|
+
} catch {
|
|
107
|
+
return "unreachable";
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* `probeDaemonReadiness` with one retry on a transient timeout: a single
|
|
113
|
+
* probe's 1.5s budget can elapse while a synchronous migration step blocks
|
|
114
|
+
* the daemon's event loop, misreporting a live daemon as unreachable.
|
|
115
|
+
*/
|
|
116
|
+
export async function probeDaemonReadinessWithRetry(
|
|
117
|
+
port: number,
|
|
118
|
+
): Promise<DaemonReadiness> {
|
|
119
|
+
const first = await probeDaemonReadiness(port);
|
|
120
|
+
if (first !== "unreachable") {
|
|
121
|
+
return first;
|
|
122
|
+
}
|
|
123
|
+
return probeDaemonReadiness(port);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Poll `/readyz` until the daemon is ready, its migrations have terminally
|
|
128
|
+
* FAILED (returned immediately — failed never recovers without a restart, so
|
|
129
|
+
* waiting out the deadline would be pure delay), or `deadlineMs` passes.
|
|
130
|
+
* Returns the last observed readiness.
|
|
131
|
+
*/
|
|
132
|
+
export async function waitForDaemonMigrationsReady(
|
|
133
|
+
port: number,
|
|
134
|
+
deadlineMs: number,
|
|
135
|
+
): Promise<DaemonReadiness> {
|
|
136
|
+
let last: DaemonReadiness = "unreachable";
|
|
137
|
+
for (;;) {
|
|
138
|
+
last = await probeDaemonReadiness(port);
|
|
139
|
+
if (last === "ready" || last === "failed") return last;
|
|
140
|
+
if (Date.now() >= deadlineMs) return last;
|
|
141
|
+
await new Promise((r) => setTimeout(r, 250));
|
|
142
|
+
}
|
|
143
|
+
}
|
package/src/lib/local.ts
CHANGED
|
@@ -18,9 +18,17 @@ import {
|
|
|
18
18
|
type LocalInstanceResources,
|
|
19
19
|
} from "./assistant-config.js";
|
|
20
20
|
import { GATEWAY_PORT } from "./constants.js";
|
|
21
|
-
import {
|
|
21
|
+
import {
|
|
22
|
+
type DaemonReadiness,
|
|
23
|
+
httpHealthCheck,
|
|
24
|
+
probeDaemonReadiness,
|
|
25
|
+
probeDaemonReadinessWithRetry,
|
|
26
|
+
waitForDaemonMigrationsReady,
|
|
27
|
+
waitForDaemonReady,
|
|
28
|
+
} from "./http-client.js";
|
|
22
29
|
import { stopIngressNginx } from "./nginx-ingress.js";
|
|
23
30
|
import {
|
|
31
|
+
type ProcessState,
|
|
24
32
|
resolveProcessState,
|
|
25
33
|
stopProcess,
|
|
26
34
|
stopProcessByPidFile,
|
|
@@ -565,32 +573,55 @@ function applyDaemonEnvOverrides(
|
|
|
565
573
|
env.VELLUM_DEFAULT_WORKSPACE_CONFIG_PATH =
|
|
566
574
|
options.defaultWorkspaceConfigPath;
|
|
567
575
|
}
|
|
568
|
-
//
|
|
569
|
-
//
|
|
570
|
-
//
|
|
571
|
-
//
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
env.CES_LOCAL_SOCKET = resolveCesSocketPath(resources);
|
|
575
|
-
}
|
|
576
|
+
// Pin the daemon to the exact socket the sibling binds so the two agree
|
|
577
|
+
// regardless of any stale CES_LOCAL_SOCKET inherited from the parent
|
|
578
|
+
// environment. The assistant connects to the sibling instead of spawning
|
|
579
|
+
// its own CES.
|
|
580
|
+
env.CES_STANDALONE = "1";
|
|
581
|
+
env.CES_LOCAL_SOCKET = resolveCesSocketPath(resources);
|
|
576
582
|
applyIpcSocketDirOverride(env);
|
|
577
583
|
}
|
|
578
584
|
|
|
579
|
-
function logDaemonReadiness(
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
585
|
+
function logDaemonReadiness(readiness: DaemonReadiness): void {
|
|
586
|
+
switch (readiness) {
|
|
587
|
+
case "ready":
|
|
588
|
+
console.log(" Assistant ready\n");
|
|
589
|
+
break;
|
|
590
|
+
case "migrating":
|
|
591
|
+
console.log(
|
|
592
|
+
" Assistant is up — database migrations still running; DB-backed commands return 503 until they finish\n",
|
|
593
|
+
);
|
|
594
|
+
break;
|
|
595
|
+
case "failed":
|
|
596
|
+
console.log(
|
|
597
|
+
" ⚠️ Assistant database migrations FAILED — DB-backed commands return 503 until the assistant is restarted\n",
|
|
598
|
+
);
|
|
599
|
+
break;
|
|
600
|
+
default:
|
|
601
|
+
console.log(
|
|
602
|
+
" ⚠️ Assistant did not become ready within 60s — continuing anyway\n",
|
|
603
|
+
);
|
|
586
604
|
}
|
|
587
605
|
}
|
|
588
606
|
|
|
607
|
+
function logAssistantAlreadyRunning(
|
|
608
|
+
pid: number,
|
|
609
|
+
status: ProcessState["status"],
|
|
610
|
+
): void {
|
|
611
|
+
const suffix =
|
|
612
|
+
status === "migration_failed"
|
|
613
|
+
? " but its database migrations failed — restart to recover"
|
|
614
|
+
: status === "unready"
|
|
615
|
+
? " — database migrations still running"
|
|
616
|
+
: "";
|
|
617
|
+
console.log(` Assistant already running (pid ${pid})${suffix}\n`);
|
|
618
|
+
}
|
|
619
|
+
|
|
589
620
|
async function startDaemonFromSource(
|
|
590
621
|
assistantIndex: string,
|
|
591
622
|
resources: LocalInstanceResources,
|
|
592
623
|
options?: DaemonStartOptions,
|
|
593
|
-
): Promise<
|
|
624
|
+
): Promise<boolean> {
|
|
594
625
|
const foreground = options?.foreground ?? false;
|
|
595
626
|
const daemonMainPath = resolveDaemonMainPath(assistantIndex);
|
|
596
627
|
|
|
@@ -600,19 +631,21 @@ async function startDaemonFromSource(
|
|
|
600
631
|
mkdirSync(dirname(pidFile), { recursive: true });
|
|
601
632
|
|
|
602
633
|
// --- Lifecycle guard: prevent split-brain daemon state ---
|
|
603
|
-
if (await awaitStartingSentinel(pidFile, resources.daemonPort)) return;
|
|
634
|
+
if (await awaitStartingSentinel(pidFile, resources.daemonPort)) return false;
|
|
604
635
|
|
|
605
636
|
const daemonState = await resolveProcessState(
|
|
606
637
|
pidFile,
|
|
607
638
|
resources.daemonPort,
|
|
608
639
|
"Assistant",
|
|
640
|
+
60_000,
|
|
641
|
+
"readyz",
|
|
609
642
|
);
|
|
610
|
-
if (daemonState.status
|
|
611
|
-
|
|
612
|
-
return;
|
|
643
|
+
if (daemonState.status !== "needs_start") {
|
|
644
|
+
logAssistantAlreadyRunning(daemonState.pid, daemonState.status);
|
|
645
|
+
return false;
|
|
613
646
|
}
|
|
614
647
|
|
|
615
|
-
if (await checkOrphanedDaemon(pidFile, resources.daemonPort)) return;
|
|
648
|
+
if (await checkOrphanedDaemon(pidFile, resources.daemonPort)) return false;
|
|
616
649
|
|
|
617
650
|
const env: Record<string, string | undefined> = {
|
|
618
651
|
...process.env,
|
|
@@ -653,6 +686,7 @@ async function startDaemonFromSource(
|
|
|
653
686
|
unlinkSync(pidFile);
|
|
654
687
|
} catch {}
|
|
655
688
|
}
|
|
689
|
+
return true;
|
|
656
690
|
}
|
|
657
691
|
|
|
658
692
|
// NOTE: startDaemonWatchFromSource() is the CLI-side watch-mode daemon
|
|
@@ -663,7 +697,7 @@ async function startDaemonWatchFromSource(
|
|
|
663
697
|
assistantIndex: string,
|
|
664
698
|
resources: LocalInstanceResources,
|
|
665
699
|
options?: DaemonStartOptions,
|
|
666
|
-
): Promise<
|
|
700
|
+
): Promise<boolean> {
|
|
667
701
|
const mainPath = resolveDaemonMainPath(assistantIndex);
|
|
668
702
|
if (!existsSync(mainPath)) {
|
|
669
703
|
throw new Error(`Daemon main.ts not found at ${mainPath}`);
|
|
@@ -673,19 +707,21 @@ async function startDaemonWatchFromSource(
|
|
|
673
707
|
mkdirSync(dirname(pidFile), { recursive: true });
|
|
674
708
|
|
|
675
709
|
// --- Lifecycle guard: prevent split-brain daemon state ---
|
|
676
|
-
if (await awaitStartingSentinel(pidFile, resources.daemonPort)) return;
|
|
710
|
+
if (await awaitStartingSentinel(pidFile, resources.daemonPort)) return false;
|
|
677
711
|
|
|
678
712
|
const daemonState = await resolveProcessState(
|
|
679
713
|
pidFile,
|
|
680
714
|
resources.daemonPort,
|
|
681
715
|
"Assistant",
|
|
716
|
+
60_000,
|
|
717
|
+
"readyz",
|
|
682
718
|
);
|
|
683
|
-
if (daemonState.status
|
|
684
|
-
|
|
685
|
-
return;
|
|
719
|
+
if (daemonState.status !== "needs_start") {
|
|
720
|
+
logAssistantAlreadyRunning(daemonState.pid, daemonState.status);
|
|
721
|
+
return false;
|
|
686
722
|
}
|
|
687
723
|
|
|
688
|
-
if (await checkOrphanedDaemon(pidFile, resources.daemonPort)) return;
|
|
724
|
+
if (await checkOrphanedDaemon(pidFile, resources.daemonPort)) return false;
|
|
689
725
|
|
|
690
726
|
const env: Record<string, string | undefined> = {
|
|
691
727
|
...process.env,
|
|
@@ -719,6 +755,7 @@ async function startDaemonWatchFromSource(
|
|
|
719
755
|
}
|
|
720
756
|
|
|
721
757
|
console.log(" Assistant started in watch mode (bun --watch)");
|
|
758
|
+
return true;
|
|
722
759
|
}
|
|
723
760
|
|
|
724
761
|
function resolveGatewayDir(resources?: LocalInstanceResources): string {
|
|
@@ -811,19 +848,9 @@ function resolveCesSocketPath(resources?: LocalInstanceResources): string {
|
|
|
811
848
|
}
|
|
812
849
|
|
|
813
850
|
/**
|
|
814
|
-
*
|
|
815
|
-
*
|
|
816
|
-
*
|
|
817
|
-
* containerized homes already use.
|
|
818
|
-
*/
|
|
819
|
-
function isCesSiblingOptIn(): boolean {
|
|
820
|
-
return process.env.CES_STANDALONE === "1";
|
|
821
|
-
}
|
|
822
|
-
|
|
823
|
-
/**
|
|
824
|
-
* Launch the local CES sibling over a Unix socket (opted into via
|
|
825
|
-
* `CES_STANDALONE=1`). No-op unless the opt-in is set, in which case the
|
|
826
|
-
* assistant continues to spawn CES itself as today.
|
|
851
|
+
* Launch the local CES sibling over a Unix socket. The sibling model is now
|
|
852
|
+
* the default topology for local (non-containerized) instances, matching how
|
|
853
|
+
* containerized homes already run CES.
|
|
827
854
|
*
|
|
828
855
|
* The sibling runs with `CES_STANDALONE=1` so its lifecycle is anchored to
|
|
829
856
|
* SIGTERM rather than stdin EOF, mirroring the gateway: a CLI-owned process
|
|
@@ -834,8 +861,6 @@ export async function startCes(
|
|
|
834
861
|
watch: boolean = false,
|
|
835
862
|
resources?: LocalInstanceResources,
|
|
836
863
|
): Promise<void> {
|
|
837
|
-
if (!isCesSiblingOptIn()) return;
|
|
838
|
-
|
|
839
864
|
const vellumDir = resources
|
|
840
865
|
? join(resources.instanceDir, ".vellum")
|
|
841
866
|
: join(homedir(), ".vellum");
|
|
@@ -996,8 +1021,14 @@ async function awaitStartingSentinel(
|
|
|
996
1021
|
}
|
|
997
1022
|
|
|
998
1023
|
console.log(" Assistant is starting — waiting for it to become ready...");
|
|
999
|
-
|
|
1000
|
-
|
|
1024
|
+
const readiness = await waitForDaemonMigrationsReady(
|
|
1025
|
+
daemonPort,
|
|
1026
|
+
Date.now() + 60000,
|
|
1027
|
+
);
|
|
1028
|
+
if (readiness !== "unreachable") {
|
|
1029
|
+
// The daemon exists and is answering — migrating and failed states must
|
|
1030
|
+
// NOT fall through to a second spawn (split-brain). Report honestly.
|
|
1031
|
+
logDaemonReadiness(readiness);
|
|
1001
1032
|
return true;
|
|
1002
1033
|
}
|
|
1003
1034
|
try {
|
|
@@ -1264,8 +1295,20 @@ export async function startLocalDaemon(
|
|
|
1264
1295
|
: undefined;
|
|
1265
1296
|
if (runtimeAssistantIndex) {
|
|
1266
1297
|
console.log("🔨 Starting local assistant runtime...");
|
|
1267
|
-
|
|
1268
|
-
|
|
1298
|
+
// Wait for readiness only after an actual spawn — an attach to an
|
|
1299
|
+
// already-running daemon was classified and logged inside
|
|
1300
|
+
// startDaemonFromSource, and re-waiting would just block on a migration
|
|
1301
|
+
// the user was already told about.
|
|
1302
|
+
if (
|
|
1303
|
+
await startDaemonFromSource(runtimeAssistantIndex, resources, options)
|
|
1304
|
+
) {
|
|
1305
|
+
logDaemonReadiness(
|
|
1306
|
+
await waitForDaemonMigrationsReady(
|
|
1307
|
+
resources.daemonPort,
|
|
1308
|
+
Date.now() + 60000,
|
|
1309
|
+
),
|
|
1310
|
+
);
|
|
1311
|
+
}
|
|
1269
1312
|
return;
|
|
1270
1313
|
}
|
|
1271
1314
|
|
|
@@ -1291,15 +1334,22 @@ export async function startLocalDaemon(
|
|
|
1291
1334
|
pidFile,
|
|
1292
1335
|
resources.daemonPort,
|
|
1293
1336
|
"Assistant",
|
|
1337
|
+
60_000,
|
|
1338
|
+
"readyz",
|
|
1294
1339
|
);
|
|
1295
|
-
const daemonAlive = daemonState.status
|
|
1340
|
+
const daemonAlive = daemonState.status !== "needs_start";
|
|
1296
1341
|
if (daemonAlive) {
|
|
1297
|
-
|
|
1342
|
+
logAssistantAlreadyRunning(daemonState.pid, daemonState.status);
|
|
1298
1343
|
}
|
|
1299
1344
|
|
|
1300
1345
|
if (!daemonAlive) {
|
|
1301
1346
|
if (await checkOrphanedDaemon(pidFile, resources.daemonPort)) {
|
|
1302
1347
|
ensureBunInstalled();
|
|
1348
|
+
// The orphan already answers health checks — a readiness probe
|
|
1349
|
+
// classifies it without blocking on an in-flight migration.
|
|
1350
|
+
logDaemonReadiness(
|
|
1351
|
+
await probeDaemonReadinessWithRetry(resources.daemonPort),
|
|
1352
|
+
);
|
|
1303
1353
|
return;
|
|
1304
1354
|
}
|
|
1305
1355
|
|
|
@@ -1400,29 +1450,56 @@ export async function startLocalDaemon(
|
|
|
1400
1450
|
}
|
|
1401
1451
|
|
|
1402
1452
|
// Wait for daemon to respond on HTTP (up to 60s — fresh installs
|
|
1403
|
-
// may need 30-60s for Qdrant download, migrations, and first-time init)
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
//
|
|
1407
|
-
//
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1453
|
+
// may need 30-60s for Qdrant download, migrations, and first-time init).
|
|
1454
|
+
// "migrating" and "failed" both mean the daemon is up and answering, so
|
|
1455
|
+
// they don't trigger the source fallback (a restart against the same DB
|
|
1456
|
+
// would reproduce the same migration state).
|
|
1457
|
+
//
|
|
1458
|
+
// Runs only after a fresh spawn: an attached daemon was already
|
|
1459
|
+
// classified and logged by resolveProcessState above, and re-waiting on
|
|
1460
|
+
// its in-flight migration would just double the reported diagnosis.
|
|
1461
|
+
if (!daemonAlive) {
|
|
1462
|
+
let readiness = await waitForDaemonMigrationsReady(
|
|
1463
|
+
resources.daemonPort,
|
|
1464
|
+
Date.now() + 60000,
|
|
1465
|
+
);
|
|
1466
|
+
const daemonHealthy =
|
|
1467
|
+
readiness !== "unreachable" ||
|
|
1468
|
+
(await httpHealthCheck(resources.daemonPort));
|
|
1469
|
+
|
|
1470
|
+
// Dev fallback: if the bundled daemon did not become healthy in time,
|
|
1471
|
+
// fall back to source daemon startup so local source runs still work.
|
|
1472
|
+
if (!daemonHealthy) {
|
|
1473
|
+
const assistantIndex = resolveAssistantIndexPath(resources);
|
|
1474
|
+
if (assistantIndex) {
|
|
1475
|
+
console.log(
|
|
1476
|
+
" Bundled assistant not healthy after 60s — falling back to source assistant...",
|
|
1477
|
+
);
|
|
1478
|
+
// Kill the bundled daemon to avoid two processes competing for the same port
|
|
1479
|
+
await stopProcessByPidFile(pidFile, "bundled daemon");
|
|
1480
|
+
if (watch) {
|
|
1481
|
+
await startDaemonWatchFromSource(
|
|
1482
|
+
assistantIndex,
|
|
1483
|
+
resources,
|
|
1484
|
+
options,
|
|
1485
|
+
);
|
|
1486
|
+
} else {
|
|
1487
|
+
await startDaemonFromSource(assistantIndex, resources, options);
|
|
1488
|
+
}
|
|
1489
|
+
readiness = await waitForDaemonMigrationsReady(
|
|
1490
|
+
resources.daemonPort,
|
|
1491
|
+
Date.now() + 60000,
|
|
1492
|
+
);
|
|
1420
1493
|
}
|
|
1421
|
-
|
|
1494
|
+
} else if (readiness === "unreachable") {
|
|
1495
|
+
// The health check just passed, so the readyz probes were the flaky
|
|
1496
|
+
// part — re-probe once so the log reports the daemon's real state
|
|
1497
|
+
// instead of "did not become ready".
|
|
1498
|
+
readiness = await probeDaemonReadiness(resources.daemonPort);
|
|
1422
1499
|
}
|
|
1423
|
-
}
|
|
1424
1500
|
|
|
1425
|
-
|
|
1501
|
+
logDaemonReadiness(readiness);
|
|
1502
|
+
}
|
|
1426
1503
|
} else {
|
|
1427
1504
|
console.log("🔨 Starting local assistant...");
|
|
1428
1505
|
|
|
@@ -1433,12 +1510,18 @@ export async function startLocalDaemon(
|
|
|
1433
1510
|
" Ensure the daemon binary is bundled alongside the CLI, or run from the source tree.",
|
|
1434
1511
|
);
|
|
1435
1512
|
}
|
|
1436
|
-
|
|
1437
|
-
await startDaemonWatchFromSource(assistantIndex, resources, options)
|
|
1438
|
-
|
|
1439
|
-
|
|
1513
|
+
const spawned = watch
|
|
1514
|
+
? await startDaemonWatchFromSource(assistantIndex, resources, options)
|
|
1515
|
+
: await startDaemonFromSource(assistantIndex, resources, options);
|
|
1516
|
+
// Attach case was classified and logged inside the start function.
|
|
1517
|
+
if (spawned) {
|
|
1518
|
+
logDaemonReadiness(
|
|
1519
|
+
await waitForDaemonMigrationsReady(
|
|
1520
|
+
resources.daemonPort,
|
|
1521
|
+
Date.now() + 60000,
|
|
1522
|
+
),
|
|
1523
|
+
);
|
|
1440
1524
|
}
|
|
1441
|
-
logDaemonReadiness(await waitForDaemonReady(resources.daemonPort, 60000));
|
|
1442
1525
|
}
|
|
1443
1526
|
}
|
|
1444
1527
|
|
package/src/lib/process.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { execFileSync } from "child_process";
|
|
2
2
|
import { existsSync, readFileSync, unlinkSync } from "fs";
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
httpHealthCheck,
|
|
6
|
+
type HttpProbeEndpoint,
|
|
7
|
+
probeDaemonReadinessWithRetry,
|
|
8
|
+
waitForDaemonReady,
|
|
9
|
+
} from "./http-client.js";
|
|
5
10
|
|
|
6
11
|
/**
|
|
7
12
|
* Verify that a PID belongs to a vellum-related process by inspecting its
|
|
@@ -78,31 +83,43 @@ export async function isProcessHealthy(
|
|
|
78
83
|
|
|
79
84
|
/**
|
|
80
85
|
* Outcome of {@link resolveProcessState}. Callers switch on `status`:
|
|
81
|
-
* - `"healthy"` — process is alive and
|
|
86
|
+
* - `"healthy"` — process is alive and ready; `pid` is the live PID.
|
|
87
|
+
* - `"unready"` — process is alive and healthy, but DB migrations were still
|
|
88
|
+
* running when the readiness wait elapsed.
|
|
89
|
+
* - `"migration_failed"` — process is alive and healthy, but its DB migrations
|
|
90
|
+
* failed: a terminal state that never recovers without a restart. The
|
|
91
|
+
* process is kept alive (same keep-alive rule as `"unready"`).
|
|
82
92
|
* - `"needs_start"` — process was dead, hung (and killed), or a stale PID
|
|
83
93
|
* was cleaned up. Caller should start a fresh process.
|
|
84
94
|
*/
|
|
85
95
|
export type ProcessState =
|
|
86
96
|
| { status: "healthy"; pid: number }
|
|
97
|
+
| { status: "unready"; pid: number }
|
|
98
|
+
| { status: "migration_failed"; pid: number }
|
|
87
99
|
| { status: "needs_start"; pid: number | null };
|
|
88
100
|
|
|
89
101
|
/**
|
|
90
|
-
* Determine whether a PID-tracked process is alive and healthy. If the
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* PID file.
|
|
102
|
+
* Determine whether a PID-tracked process is alive and healthy. If the process
|
|
103
|
+
* exists but is unresponsive, waits up to `readinessWaitMs` (default 60s —
|
|
104
|
+
* matches the spawner's own `waitForDaemonReady` timeout so a concurrent
|
|
105
|
+
* caller never kills a process the spawner is still waiting on) for it to
|
|
106
|
+
* start answering health checks. If it remains unresponsive, verifies it
|
|
107
|
+
* belongs to Vellum before killing it, then cleans up the PID file.
|
|
97
108
|
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
109
|
+
* When callers pass the `"readyz"` readiness endpoint, this also CLASSIFIES
|
|
110
|
+
* DB migration readiness with a single `/readyz` probe (read from the body —
|
|
111
|
+
* the status code stays 200 during migrations for k8s). It never waits for
|
|
112
|
+
* readiness: the kill/keep decision depends only on the health check, and
|
|
113
|
+
* callers that want to wait out a migration own that wait themselves. A
|
|
114
|
+
* health-checking process is kept alive when migrations are running or
|
|
115
|
+
* failed.
|
|
100
116
|
*/
|
|
101
117
|
export async function resolveProcessState(
|
|
102
118
|
pidFile: string,
|
|
103
119
|
healthPort: number,
|
|
104
120
|
label: string,
|
|
105
121
|
readinessWaitMs: number = 60_000,
|
|
122
|
+
readinessEndpoint: HttpProbeEndpoint = "healthz",
|
|
106
123
|
): Promise<ProcessState> {
|
|
107
124
|
const result = await isProcessHealthy(pidFile, healthPort);
|
|
108
125
|
|
|
@@ -110,29 +127,52 @@ export async function resolveProcessState(
|
|
|
110
127
|
return { status: "needs_start", pid: null };
|
|
111
128
|
}
|
|
112
129
|
|
|
113
|
-
if (result.healthy) {
|
|
114
|
-
|
|
130
|
+
if (!result.healthy) {
|
|
131
|
+
// Alive but not healthy — may still be starting up.
|
|
132
|
+
const becameHealthy = await waitForDaemonReady(
|
|
133
|
+
healthPort,
|
|
134
|
+
readinessWaitMs,
|
|
135
|
+
"healthz",
|
|
136
|
+
);
|
|
137
|
+
if (!becameHealthy) {
|
|
138
|
+
// Genuinely hung — kill if it belongs to Vellum, otherwise just clean up.
|
|
139
|
+
if (isVellumProcess(result.pid)) {
|
|
140
|
+
console.log(
|
|
141
|
+
`${label} process alive (pid ${result.pid}) but not responding — killing and restarting...`,
|
|
142
|
+
);
|
|
143
|
+
await stopProcess(result.pid, label);
|
|
144
|
+
} else {
|
|
145
|
+
console.log(
|
|
146
|
+
`Stale PID file (pid ${result.pid} is not a Vellum process) — cleaning up...`,
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
removeFiles(pidFile);
|
|
150
|
+
return { status: "needs_start", pid: result.pid };
|
|
151
|
+
}
|
|
115
152
|
}
|
|
116
153
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
154
|
+
if (readinessEndpoint !== "healthz") {
|
|
155
|
+
const readiness = await probeDaemonReadinessWithRetry(healthPort);
|
|
156
|
+
if (readiness === "failed") {
|
|
157
|
+
return { status: "migration_failed", pid: result.pid };
|
|
158
|
+
}
|
|
159
|
+
if (readiness === "unreachable") {
|
|
160
|
+
// The daemon answered the health check moments ago but not /readyz —
|
|
161
|
+
// it may have died in between (e.g. OOM during a heavy migration).
|
|
162
|
+
// Re-verify liveness before reporting it alive, so callers don't skip
|
|
163
|
+
// starting a replacement for a dead process.
|
|
164
|
+
if (!isProcessAlive(pidFile).alive) {
|
|
165
|
+
removeFiles(pidFile);
|
|
166
|
+
return { status: "needs_start", pid: result.pid };
|
|
167
|
+
}
|
|
168
|
+
return { status: "unready", pid: result.pid };
|
|
169
|
+
}
|
|
170
|
+
if (readiness !== "ready") {
|
|
171
|
+
return { status: "unready", pid: result.pid };
|
|
172
|
+
}
|
|
121
173
|
}
|
|
122
174
|
|
|
123
|
-
|
|
124
|
-
if (isVellumProcess(result.pid)) {
|
|
125
|
-
console.log(
|
|
126
|
-
`${label} process alive (pid ${result.pid}) but not responding — killing and restarting...`,
|
|
127
|
-
);
|
|
128
|
-
await stopProcess(result.pid, label);
|
|
129
|
-
} else {
|
|
130
|
-
console.log(
|
|
131
|
-
`Stale PID file (pid ${result.pid} is not a Vellum process) — cleaning up...`,
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
removeFiles(pidFile);
|
|
135
|
-
return { status: "needs_start", pid: result.pid };
|
|
175
|
+
return { status: "healthy", pid: result.pid };
|
|
136
176
|
}
|
|
137
177
|
|
|
138
178
|
/**
|