@openclaw/voice-call 2026.9.4 → 2026.9.6
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/assets/activity.svg +3 -0
- package/assets/icon.png +0 -0
- package/dist/{cli-BGdihqyA.js → .setup/cli-D6j7ppuN.mjs} +7 -7
- package/dist/{config-DQwvsxeV.js → .setup/config-72FnMWHb.mjs} +3 -3
- package/dist/{guarded-json-api-3Jy2k-eX.js → .setup/guarded-json-api-exU4Hutw.mjs} +17 -39
- package/dist/{mock-C57qj18W.js → .setup/mock-CcYEAUhV.mjs} +1 -1
- package/dist/{plivo-BsdFT1gS.js → .setup/plivo-BGJda1Uz.mjs} +2 -2
- package/dist/{realtime-handler-C7N4qzvf.js → .setup/realtime-handler-DlFmdSPn.mjs} +284 -135
- package/dist/{response-generator-DsdC88Xg.js → .setup/response-generator-hZyGIjO4.mjs} +3 -2
- package/dist/{runtime-entry-Ln4SWaYK.js → .setup/runtime-entry-dDRm6RgA.mjs} +457 -291
- package/dist/{store-path-M0GXxUfv.js → .setup/store-path-B1j1up4_.mjs} +91 -55
- package/dist/{telnyx-eCxGOUfA.js → .setup/telnyx-BV56PXr-.mjs} +1 -1
- package/dist/{twilio-DQKhnXXE.js → .setup/twilio-BMb-7cu-.mjs} +9 -23
- package/dist/doctor-contract-api.js +15 -33
- package/dist/index.js +3 -3
- package/dist/runtime-entry.js +1 -1
- package/node_modules/typebox/build/compile/validator.d.mts +1 -1
- package/node_modules/typebox/build/compile/validator.mjs +1 -1
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
- package/node_modules/typebox/build/format/iri.mjs +5 -1
- package/node_modules/typebox/build/guard/emit.mjs +2 -4
- package/node_modules/typebox/build/guard/guard.mjs +6 -18
- package/node_modules/typebox/build/guard/string.mjs +16 -24
- package/node_modules/typebox/build/schema/build.mjs +2 -2
- package/node_modules/typebox/build/schema/check.mjs +1 -1
- package/node_modules/typebox/build/schema/compile.d.mts +3 -2
- package/node_modules/typebox/build/schema/compile.mjs +8 -8
- package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
- package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
- package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
- package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
- package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
- package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
- package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
- package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
- package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
- package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
- package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
- package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
- package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
- package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
- package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
- package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
- package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
- package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
- package/node_modules/typebox/build/schema/errors.d.mts +2 -2
- package/node_modules/typebox/build/schema/errors.mjs +8 -14
- package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
- package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
- package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
- package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
- package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
- package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
- package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
- package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
- package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
- package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
- package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
- package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
- package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
- package/node_modules/typebox/build/schema/parse.d.mts +1 -0
- package/node_modules/typebox/build/schema/parse.mjs +10 -5
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
- package/node_modules/typebox/build/schema/schema.d.mts +2 -0
- package/node_modules/typebox/build/schema/schema.mjs +2 -0
- package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
- package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +59 -89
- package/node_modules/zod/README.md +29 -2
- package/node_modules/zod/compile.cjs +96 -0
- package/node_modules/zod/compile.d.cts +1 -0
- package/node_modules/zod/compile.d.ts +1 -0
- package/node_modules/zod/compile.js +52 -0
- package/node_modules/zod/index.cjs +21 -2
- package/node_modules/zod/index.d.cts +1 -2
- package/node_modules/zod/index.d.ts +1 -2
- package/node_modules/zod/index.js +5 -2
- package/node_modules/zod/locales/index.cjs +19 -0
- package/node_modules/zod/mini/index.cjs +19 -0
- package/node_modules/zod/package.json +20 -8
- package/node_modules/zod/src/compile.ts +56 -0
- package/node_modules/zod/src/index.ts +5 -2
- package/node_modules/zod/src/v3/ZodError.ts +22 -12
- package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
- package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
- package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
- package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
- package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
- package/node_modules/zod/src/v3/types.ts +5 -5
- package/node_modules/zod/src/v4/classic/checks.ts +1 -0
- package/node_modules/zod/src/v4/classic/compat.ts +26 -18
- package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
- package/node_modules/zod/src/v4/classic/errors.ts +59 -44
- package/node_modules/zod/src/v4/classic/external.ts +14 -9
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +363 -78
- package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
- package/node_modules/zod/src/v4/classic/index.ts +2 -2
- package/node_modules/zod/src/v4/classic/iso.ts +2 -72
- package/node_modules/zod/src/v4/classic/parse.ts +10 -4
- package/node_modules/zod/src/v4/classic/schemas.ts +640 -375
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +186 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +3 -3
- package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +985 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
- package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
- package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +261 -13
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +20 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +403 -6
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +582 -10
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +319 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +67 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +215 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +85 -9
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +301 -12
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +235 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
- package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
- package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +79 -3
- package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +222 -6
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +44 -3
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1812 -204
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +645 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
- package/node_modules/zod/src/v4/core/api.ts +87 -35
- package/node_modules/zod/src/v4/core/checks.ts +119 -146
- package/node_modules/zod/src/v4/core/compile.ts +2313 -0
- package/node_modules/zod/src/v4/core/core.ts +99 -22
- package/node_modules/zod/src/v4/core/doc.ts +17 -9
- package/node_modules/zod/src/v4/core/errors.ts +113 -25
- package/node_modules/zod/src/v4/core/index.ts +3 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +8 -3
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +424 -156
- package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
- package/node_modules/zod/src/v4/core/memoizer.ts +331 -0
- package/node_modules/zod/src/v4/core/parse.ts +164 -50
- package/node_modules/zod/src/v4/core/regexes.ts +42 -15
- package/node_modules/zod/src/v4/core/registries.ts +2 -2
- package/node_modules/zod/src/v4/core/schemas.ts +1000 -538
- package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
- package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +1004 -0
- package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
- package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
- package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
- package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +2036 -0
- package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
- package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
- package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
- package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +133 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +283 -48
- package/node_modules/zod/src/v4/core/util.ts +454 -157
- package/node_modules/zod/src/v4/core/versions.ts +2 -2
- package/node_modules/zod/src/v4/core/visit.ts +193 -0
- package/node_modules/zod/src/v4/index.ts +3 -3
- package/node_modules/zod/src/v4/locales/ar.ts +5 -0
- package/node_modules/zod/src/v4/locales/az.ts +5 -0
- package/node_modules/zod/src/v4/locales/be.ts +12 -0
- package/node_modules/zod/src/v4/locales/bg.ts +5 -0
- package/node_modules/zod/src/v4/locales/bn.ts +123 -0
- package/node_modules/zod/src/v4/locales/ca.ts +5 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +140 -0
- package/node_modules/zod/src/v4/locales/cs.ts +5 -0
- package/node_modules/zod/src/v4/locales/da.ts +7 -2
- package/node_modules/zod/src/v4/locales/de.ts +5 -0
- package/node_modules/zod/src/v4/locales/el.ts +3 -0
- package/node_modules/zod/src/v4/locales/en.ts +17 -4
- package/node_modules/zod/src/v4/locales/eo.ts +5 -0
- package/node_modules/zod/src/v4/locales/es.ts +4 -0
- package/node_modules/zod/src/v4/locales/fa.ts +5 -0
- package/node_modules/zod/src/v4/locales/fi.ts +5 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +5 -0
- package/node_modules/zod/src/v4/locales/fr.ts +21 -14
- package/node_modules/zod/src/v4/locales/gu.ts +123 -0
- package/node_modules/zod/src/v4/locales/he.ts +8 -1
- package/node_modules/zod/src/v4/locales/hi.ts +126 -0
- package/node_modules/zod/src/v4/locales/hr.ts +4 -0
- package/node_modules/zod/src/v4/locales/hu.ts +5 -0
- package/node_modules/zod/src/v4/locales/hy.ts +11 -0
- package/node_modules/zod/src/v4/locales/id.ts +5 -0
- package/node_modules/zod/src/v4/locales/index.ts +11 -0
- package/node_modules/zod/src/v4/locales/is.ts +5 -0
- package/node_modules/zod/src/v4/locales/it.ts +5 -0
- package/node_modules/zod/src/v4/locales/ja.ts +5 -0
- package/node_modules/zod/src/v4/locales/ka.ts +5 -0
- package/node_modules/zod/src/v4/locales/km.ts +5 -0
- package/node_modules/zod/src/v4/locales/kn.ts +126 -0
- package/node_modules/zod/src/v4/locales/ko.ts +5 -0
- package/node_modules/zod/src/v4/locales/lt.ts +4 -0
- package/node_modules/zod/src/v4/locales/mk.ts +5 -0
- package/node_modules/zod/src/v4/locales/ms.ts +5 -0
- package/node_modules/zod/src/v4/locales/ne.ts +128 -0
- package/node_modules/zod/src/v4/locales/nl.ts +5 -0
- package/node_modules/zod/src/v4/locales/nn.ts +121 -0
- package/node_modules/zod/src/v4/locales/no.ts +7 -2
- package/node_modules/zod/src/v4/locales/ota.ts +5 -0
- package/node_modules/zod/src/v4/locales/pl.ts +5 -0
- package/node_modules/zod/src/v4/locales/ps.ts +5 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +161 -0
- package/node_modules/zod/src/v4/locales/pt.ts +101 -58
- package/node_modules/zod/src/v4/locales/ro.ts +3 -0
- package/node_modules/zod/src/v4/locales/ru.ts +12 -0
- package/node_modules/zod/src/v4/locales/sk.ts +123 -0
- package/node_modules/zod/src/v4/locales/sl.ts +5 -0
- package/node_modules/zod/src/v4/locales/sv.ts +7 -2
- package/node_modules/zod/src/v4/locales/ta.ts +5 -0
- package/node_modules/zod/src/v4/locales/tg.ts +135 -0
- package/node_modules/zod/src/v4/locales/th.ts +5 -0
- package/node_modules/zod/src/v4/locales/tk.ts +113 -0
- package/node_modules/zod/src/v4/locales/tr.ts +5 -0
- package/node_modules/zod/src/v4/locales/uk.ts +5 -0
- package/node_modules/zod/src/v4/locales/ur.ts +5 -0
- package/node_modules/zod/src/v4/locales/uz.ts +3 -0
- package/node_modules/zod/src/v4/locales/vi.ts +5 -0
- package/node_modules/zod/src/v4/locales/yo.ts +5 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +5 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +5 -0
- package/node_modules/zod/src/v4/mini/checks.ts +1 -0
- package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
- package/node_modules/zod/src/v4/mini/external.ts +12 -1
- package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
- package/node_modules/zod/src/v4/mini/parse.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +167 -63
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
- package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
- package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
- package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +158 -5
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
- package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +44 -0
- package/node_modules/zod/v3/ZodError.cjs +41 -12
- package/node_modules/zod/v3/ZodError.d.cts +1 -1
- package/node_modules/zod/v3/ZodError.d.ts +1 -1
- package/node_modules/zod/v3/ZodError.js +22 -12
- package/node_modules/zod/v3/errors.cjs +19 -0
- package/node_modules/zod/v3/external.cjs +19 -0
- package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
- package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
- package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
- package/node_modules/zod/v3/helpers/util.cjs +19 -0
- package/node_modules/zod/v3/index.cjs +19 -0
- package/node_modules/zod/v3/standard-schema.cjs +19 -0
- package/node_modules/zod/v3/types.cjs +26 -5
- package/node_modules/zod/v3/types.js +7 -5
- package/node_modules/zod/v4/classic/checks.cjs +21 -1
- package/node_modules/zod/v4/classic/checks.d.cts +1 -1
- package/node_modules/zod/v4/classic/checks.d.ts +1 -1
- package/node_modules/zod/v4/classic/checks.js +1 -1
- package/node_modules/zod/v4/classic/coerce.cjs +19 -0
- package/node_modules/zod/v4/classic/compat.cjs +19 -0
- package/node_modules/zod/v4/classic/compat.d.cts +9 -11
- package/node_modules/zod/v4/classic/compat.d.ts +9 -11
- package/node_modules/zod/v4/classic/deep-partial.cjs +58 -0
- package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.js +13 -0
- package/node_modules/zod/v4/classic/errors.cjs +62 -34
- package/node_modules/zod/v4/classic/errors.d.cts +3 -4
- package/node_modules/zod/v4/classic/errors.d.ts +3 -4
- package/node_modules/zod/v4/classic/errors.js +43 -34
- package/node_modules/zod/v4/classic/external.cjs +51 -27
- package/node_modules/zod/v4/classic/external.d.cts +5 -2
- package/node_modules/zod/v4/classic/external.d.ts +5 -2
- package/node_modules/zod/v4/classic/external.js +5 -8
- package/node_modules/zod/v4/classic/from-json-schema.cjs +376 -75
- package/node_modules/zod/v4/classic/from-json-schema.js +357 -75
- package/node_modules/zod/v4/classic/in-out.cjs +82 -0
- package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
- package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
- package/node_modules/zod/v4/classic/in-out.js +36 -0
- package/node_modules/zod/v4/classic/index.cjs +21 -2
- package/node_modules/zod/v4/classic/index.d.cts +1 -2
- package/node_modules/zod/v4/classic/index.d.ts +1 -2
- package/node_modules/zod/v4/classic/index.js +2 -2
- package/node_modules/zod/v4/classic/iso.cjs +30 -22
- package/node_modules/zod/v4/classic/iso.d.cts +2 -17
- package/node_modules/zod/v4/classic/iso.d.ts +2 -17
- package/node_modules/zod/v4/classic/iso.js +2 -17
- package/node_modules/zod/v4/classic/parse.cjs +23 -1
- package/node_modules/zod/v4/classic/parse.d.cts +17 -4
- package/node_modules/zod/v4/classic/parse.d.ts +17 -4
- package/node_modules/zod/v4/classic/parse.js +1 -0
- package/node_modules/zod/v4/classic/schemas.cjs +591 -426
- package/node_modules/zod/v4/classic/schemas.d.cts +68 -19
- package/node_modules/zod/v4/classic/schemas.d.ts +68 -19
- package/node_modules/zod/v4/classic/schemas.js +564 -424
- package/node_modules/zod/v4/core/api.cjs +66 -24
- package/node_modules/zod/v4/core/api.d.cts +22 -12
- package/node_modules/zod/v4/core/api.d.ts +22 -12
- package/node_modules/zod/v4/core/api.js +44 -24
- package/node_modules/zod/v4/core/checks.cjs +88 -128
- package/node_modules/zod/v4/core/checks.d.cts +29 -13
- package/node_modules/zod/v4/core/checks.d.ts +29 -13
- package/node_modules/zod/v4/core/checks.js +68 -127
- package/node_modules/zod/v4/core/compile.cjs +1908 -0
- package/node_modules/zod/v4/core/compile.d.cts +65 -0
- package/node_modules/zod/v4/core/compile.d.ts +65 -0
- package/node_modules/zod/v4/core/compile.js +1858 -0
- package/node_modules/zod/v4/core/core.cjs +101 -19
- package/node_modules/zod/v4/core/core.d.cts +16 -4
- package/node_modules/zod/v4/core/core.d.ts +16 -4
- package/node_modules/zod/v4/core/core.js +83 -20
- package/node_modules/zod/v4/core/doc.cjs +31 -9
- package/node_modules/zod/v4/core/doc.d.cts +3 -1
- package/node_modules/zod/v4/core/doc.d.ts +3 -1
- package/node_modules/zod/v4/core/doc.js +12 -9
- package/node_modules/zod/v4/core/errors.cjs +126 -25
- package/node_modules/zod/v4/core/errors.d.cts +4 -0
- package/node_modules/zod/v4/core/errors.d.ts +4 -0
- package/node_modules/zod/v4/core/errors.js +107 -25
- package/node_modules/zod/v4/core/index.cjs +24 -1
- package/node_modules/zod/v4/core/index.d.cts +3 -0
- package/node_modules/zod/v4/core/index.d.ts +3 -0
- package/node_modules/zod/v4/core/index.js +3 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +24 -1
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.js +6 -2
- package/node_modules/zod/v4/core/json-schema-processors.cjs +441 -156
- package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
- package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
- package/node_modules/zod/v4/core/json-schema-processors.js +400 -158
- package/node_modules/zod/v4/core/json-schema.cjs +19 -0
- package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
- package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
- package/node_modules/zod/v4/core/memoizer.cjs +360 -0
- package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
- package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
- package/node_modules/zod/v4/core/memoizer.js +311 -0
- package/node_modules/zod/v4/core/parse.cjs +148 -46
- package/node_modules/zod/v4/core/parse.d.cts +14 -11
- package/node_modules/zod/v4/core/parse.d.ts +14 -11
- package/node_modules/zod/v4/core/parse.js +127 -45
- package/node_modules/zod/v4/core/regexes.cjs +54 -17
- package/node_modules/zod/v4/core/regexes.d.cts +5 -0
- package/node_modules/zod/v4/core/regexes.d.ts +5 -0
- package/node_modules/zod/v4/core/regexes.js +32 -15
- package/node_modules/zod/v4/core/registries.cjs +19 -0
- package/node_modules/zod/v4/core/registries.js +2 -2
- package/node_modules/zod/v4/core/schemas.cjs +785 -386
- package/node_modules/zod/v4/core/schemas.d.cts +123 -34
- package/node_modules/zod/v4/core/schemas.d.ts +123 -34
- package/node_modules/zod/v4/core/schemas.js +753 -386
- package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
- package/node_modules/zod/v4/core/to-json-schema.cjs +269 -45
- package/node_modules/zod/v4/core/to-json-schema.d.cts +45 -5
- package/node_modules/zod/v4/core/to-json-schema.d.ts +45 -5
- package/node_modules/zod/v4/core/to-json-schema.js +247 -44
- package/node_modules/zod/v4/core/util.cjs +372 -157
- package/node_modules/zod/v4/core/util.d.cts +79 -1
- package/node_modules/zod/v4/core/util.d.ts +79 -1
- package/node_modules/zod/v4/core/util.js +341 -156
- package/node_modules/zod/v4/core/versions.cjs +21 -2
- package/node_modules/zod/v4/core/versions.d.cts +1 -1
- package/node_modules/zod/v4/core/versions.d.ts +1 -1
- package/node_modules/zod/v4/core/versions.js +2 -2
- package/node_modules/zod/v4/core/visit.cjs +214 -0
- package/node_modules/zod/v4/core/visit.d.cts +30 -0
- package/node_modules/zod/v4/core/visit.d.ts +30 -0
- package/node_modules/zod/v4/core/visit.js +169 -0
- package/node_modules/zod/v4/index.cjs +34 -5
- package/node_modules/zod/v4/index.d.cts +2 -2
- package/node_modules/zod/v4/index.d.ts +2 -2
- package/node_modules/zod/v4/index.js +3 -2
- package/node_modules/zod/v4/locales/ar.cjs +5 -0
- package/node_modules/zod/v4/locales/ar.js +5 -0
- package/node_modules/zod/v4/locales/az.cjs +5 -0
- package/node_modules/zod/v4/locales/az.js +5 -0
- package/node_modules/zod/v4/locales/be.cjs +12 -0
- package/node_modules/zod/v4/locales/be.js +12 -0
- package/node_modules/zod/v4/locales/bg.cjs +5 -0
- package/node_modules/zod/v4/locales/bg.js +5 -0
- package/node_modules/zod/v4/locales/bn.cjs +140 -0
- package/node_modules/zod/v4/locales/bn.d.cts +5 -0
- package/node_modules/zod/v4/locales/bn.d.ts +4 -0
- package/node_modules/zod/v4/locales/bn.js +113 -0
- package/node_modules/zod/v4/locales/ca.cjs +5 -0
- package/node_modules/zod/v4/locales/ca.js +5 -0
- package/node_modules/zod/v4/locales/ckb.cjs +160 -0
- package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
- package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
- package/node_modules/zod/v4/locales/ckb.js +133 -0
- package/node_modules/zod/v4/locales/cs.cjs +5 -0
- package/node_modules/zod/v4/locales/cs.js +5 -0
- package/node_modules/zod/v4/locales/da.cjs +7 -2
- package/node_modules/zod/v4/locales/da.js +7 -2
- package/node_modules/zod/v4/locales/de.cjs +5 -0
- package/node_modules/zod/v4/locales/de.js +5 -0
- package/node_modules/zod/v4/locales/el.cjs +3 -0
- package/node_modules/zod/v4/locales/el.js +3 -0
- package/node_modules/zod/v4/locales/en.cjs +16 -4
- package/node_modules/zod/v4/locales/en.js +16 -4
- package/node_modules/zod/v4/locales/eo.cjs +5 -0
- package/node_modules/zod/v4/locales/eo.js +5 -0
- package/node_modules/zod/v4/locales/es.cjs +4 -0
- package/node_modules/zod/v4/locales/es.js +4 -0
- package/node_modules/zod/v4/locales/fa.cjs +5 -0
- package/node_modules/zod/v4/locales/fa.js +5 -0
- package/node_modules/zod/v4/locales/fi.cjs +5 -0
- package/node_modules/zod/v4/locales/fi.js +5 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +5 -0
- package/node_modules/zod/v4/locales/fr-CA.js +5 -0
- package/node_modules/zod/v4/locales/fr.cjs +18 -14
- package/node_modules/zod/v4/locales/fr.js +18 -14
- package/node_modules/zod/v4/locales/gu.cjs +140 -0
- package/node_modules/zod/v4/locales/gu.d.cts +5 -0
- package/node_modules/zod/v4/locales/gu.d.ts +4 -0
- package/node_modules/zod/v4/locales/gu.js +113 -0
- package/node_modules/zod/v4/locales/he.cjs +7 -0
- package/node_modules/zod/v4/locales/he.js +7 -0
- package/node_modules/zod/v4/locales/hi.cjs +138 -0
- package/node_modules/zod/v4/locales/hi.d.cts +5 -0
- package/node_modules/zod/v4/locales/hi.d.ts +4 -0
- package/node_modules/zod/v4/locales/hi.js +111 -0
- package/node_modules/zod/v4/locales/hr.cjs +4 -0
- package/node_modules/zod/v4/locales/hr.js +4 -0
- package/node_modules/zod/v4/locales/hu.cjs +5 -0
- package/node_modules/zod/v4/locales/hu.js +5 -0
- package/node_modules/zod/v4/locales/hy.cjs +11 -0
- package/node_modules/zod/v4/locales/hy.js +11 -0
- package/node_modules/zod/v4/locales/id.cjs +5 -0
- package/node_modules/zod/v4/locales/id.js +5 -0
- package/node_modules/zod/v4/locales/index.cjs +43 -2
- package/node_modules/zod/v4/locales/index.d.cts +11 -0
- package/node_modules/zod/v4/locales/index.d.ts +11 -0
- package/node_modules/zod/v4/locales/index.js +11 -0
- package/node_modules/zod/v4/locales/is.cjs +5 -0
- package/node_modules/zod/v4/locales/is.js +5 -0
- package/node_modules/zod/v4/locales/it.cjs +5 -0
- package/node_modules/zod/v4/locales/it.js +5 -0
- package/node_modules/zod/v4/locales/ja.cjs +5 -0
- package/node_modules/zod/v4/locales/ja.js +5 -0
- package/node_modules/zod/v4/locales/ka.cjs +5 -0
- package/node_modules/zod/v4/locales/ka.js +5 -0
- package/node_modules/zod/v4/locales/km.cjs +5 -0
- package/node_modules/zod/v4/locales/km.js +5 -0
- package/node_modules/zod/v4/locales/kn.cjs +143 -0
- package/node_modules/zod/v4/locales/kn.d.cts +5 -0
- package/node_modules/zod/v4/locales/kn.d.ts +4 -0
- package/node_modules/zod/v4/locales/kn.js +116 -0
- package/node_modules/zod/v4/locales/ko.cjs +5 -0
- package/node_modules/zod/v4/locales/ko.js +5 -0
- package/node_modules/zod/v4/locales/lt.cjs +4 -0
- package/node_modules/zod/v4/locales/lt.js +4 -0
- package/node_modules/zod/v4/locales/mk.cjs +5 -0
- package/node_modules/zod/v4/locales/mk.js +5 -0
- package/node_modules/zod/v4/locales/ms.cjs +5 -0
- package/node_modules/zod/v4/locales/ms.js +5 -0
- package/node_modules/zod/v4/locales/ne.cjs +138 -0
- package/node_modules/zod/v4/locales/ne.d.cts +5 -0
- package/node_modules/zod/v4/locales/ne.d.ts +4 -0
- package/node_modules/zod/v4/locales/ne.js +111 -0
- package/node_modules/zod/v4/locales/nl.cjs +5 -0
- package/node_modules/zod/v4/locales/nl.js +5 -0
- package/node_modules/zod/v4/locales/nn.cjs +140 -0
- package/node_modules/zod/v4/locales/nn.d.cts +5 -0
- package/node_modules/zod/v4/locales/nn.d.ts +4 -0
- package/node_modules/zod/v4/locales/nn.js +113 -0
- package/node_modules/zod/v4/locales/no.cjs +7 -2
- package/node_modules/zod/v4/locales/no.js +7 -2
- package/node_modules/zod/v4/locales/ota.cjs +5 -0
- package/node_modules/zod/v4/locales/ota.js +5 -0
- package/node_modules/zod/v4/locales/pl.cjs +5 -0
- package/node_modules/zod/v4/locales/pl.js +5 -0
- package/node_modules/zod/v4/locales/ps.cjs +5 -0
- package/node_modules/zod/v4/locales/ps.js +5 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +170 -0
- package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
- package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt-BR.js +143 -0
- package/node_modules/zod/v4/locales/pt.cjs +89 -55
- package/node_modules/zod/v4/locales/pt.js +89 -55
- package/node_modules/zod/v4/locales/ro.cjs +3 -0
- package/node_modules/zod/v4/locales/ro.js +3 -0
- package/node_modules/zod/v4/locales/ru.cjs +12 -0
- package/node_modules/zod/v4/locales/ru.js +12 -0
- package/node_modules/zod/v4/locales/sk.cjs +143 -0
- package/node_modules/zod/v4/locales/sk.d.cts +5 -0
- package/node_modules/zod/v4/locales/sk.d.ts +4 -0
- package/node_modules/zod/v4/locales/sk.js +116 -0
- package/node_modules/zod/v4/locales/sl.cjs +5 -0
- package/node_modules/zod/v4/locales/sl.js +5 -0
- package/node_modules/zod/v4/locales/sv.cjs +7 -2
- package/node_modules/zod/v4/locales/sv.js +7 -2
- package/node_modules/zod/v4/locales/ta.cjs +5 -0
- package/node_modules/zod/v4/locales/ta.js +5 -0
- package/node_modules/zod/v4/locales/tg.cjs +144 -0
- package/node_modules/zod/v4/locales/tg.d.cts +5 -0
- package/node_modules/zod/v4/locales/tg.d.ts +4 -0
- package/node_modules/zod/v4/locales/tg.js +117 -0
- package/node_modules/zod/v4/locales/th.cjs +5 -0
- package/node_modules/zod/v4/locales/th.js +5 -0
- package/node_modules/zod/v4/locales/tk.cjs +134 -0
- package/node_modules/zod/v4/locales/tk.d.cts +5 -0
- package/node_modules/zod/v4/locales/tk.d.ts +4 -0
- package/node_modules/zod/v4/locales/tk.js +107 -0
- package/node_modules/zod/v4/locales/tr.cjs +5 -0
- package/node_modules/zod/v4/locales/tr.js +5 -0
- package/node_modules/zod/v4/locales/uk.cjs +5 -0
- package/node_modules/zod/v4/locales/uk.js +5 -0
- package/node_modules/zod/v4/locales/ur.cjs +5 -0
- package/node_modules/zod/v4/locales/ur.js +5 -0
- package/node_modules/zod/v4/locales/uz.cjs +3 -0
- package/node_modules/zod/v4/locales/uz.js +3 -0
- package/node_modules/zod/v4/locales/vi.cjs +5 -0
- package/node_modules/zod/v4/locales/vi.js +5 -0
- package/node_modules/zod/v4/locales/yo.cjs +5 -0
- package/node_modules/zod/v4/locales/yo.js +5 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +5 -0
- package/node_modules/zod/v4/locales/zh-CN.js +5 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +5 -0
- package/node_modules/zod/v4/locales/zh-TW.js +5 -0
- package/node_modules/zod/v4/mini/checks.cjs +21 -1
- package/node_modules/zod/v4/mini/checks.d.cts +1 -1
- package/node_modules/zod/v4/mini/checks.d.ts +1 -1
- package/node_modules/zod/v4/mini/checks.js +1 -1
- package/node_modules/zod/v4/mini/coerce.cjs +19 -0
- package/node_modules/zod/v4/mini/deep-partial.cjs +58 -0
- package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.js +13 -0
- package/node_modules/zod/v4/mini/external.cjs +33 -1
- package/node_modules/zod/v4/mini/external.d.cts +5 -2
- package/node_modules/zod/v4/mini/external.d.ts +5 -2
- package/node_modules/zod/v4/mini/external.js +3 -1
- package/node_modules/zod/v4/mini/in-out.cjs +82 -0
- package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
- package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
- package/node_modules/zod/v4/mini/in-out.js +36 -0
- package/node_modules/zod/v4/mini/index.cjs +19 -0
- package/node_modules/zod/v4/mini/iso.cjs +19 -0
- package/node_modules/zod/v4/mini/parse.cjs +22 -1
- package/node_modules/zod/v4/mini/parse.d.cts +1 -1
- package/node_modules/zod/v4/mini/parse.d.ts +1 -1
- package/node_modules/zod/v4/mini/parse.js +1 -1
- package/node_modules/zod/v4/mini/schemas.cjs +117 -53
- package/node_modules/zod/v4/mini/schemas.d.cts +49 -14
- package/node_modules/zod/v4/mini/schemas.d.ts +49 -14
- package/node_modules/zod/v4/mini/schemas.js +92 -51
- package/node_modules/zod/v4-mini/index.cjs +19 -0
- package/openclaw.plugin.json +70 -1
- package/package.json +9 -6
- package/node_modules/zod/src/v4/core/config.ts +0 -15
- /package/dist/{realtime-transcription.runtime-CbJAs5t_.js → .setup/realtime-transcription.runtime-CbJAs5t_.mjs} +0 -0
- /package/dist/{realtime-voice.runtime-vtdCOWg-.js → .setup/realtime-voice.runtime-vtdCOWg-.mjs} +0 -0
- /package/dist/{twilio-region-4fkgz3UG.js → .setup/twilio-region-4fkgz3UG.mjs} +0 -0
- /package/dist/{webhook-replay-CCQSoBNF.js → .setup/webhook-replay-CCQSoBNF.mjs} +0 -0
|
@@ -114,9 +114,12 @@ const CALL_RECORD_EVENT_CHUNKS_NAMESPACE = "call-record-event-chunks";
|
|
|
114
114
|
const MAX_CALL_RECORD_EVENTS = 1e3;
|
|
115
115
|
/** Extra metadata entries retained so pruning can safely trim oldest rows. */
|
|
116
116
|
const CALL_RECORD_EVENT_META_MAX_ENTRIES = 1100;
|
|
117
|
+
/** Maximum chunks allowed for one persisted call record event. */
|
|
118
|
+
const MAX_CHUNKS_PER_CALL_RECORD_EVENT = 48;
|
|
117
119
|
const CALL_RECORD_CHUNK_MAX_ENTRIES = 48048;
|
|
118
120
|
/** Raw UTF-8 bytes stored per call record chunk before base64 encoding. */
|
|
119
121
|
const RAW_CALL_RECORD_CHUNK_BYTES = 48128;
|
|
122
|
+
const CALL_RECORD_READ_BATCH_KEYS = 128;
|
|
120
123
|
let callRecordEventSequence = 0;
|
|
121
124
|
/** Return the pre-SQLite JSONL call log path for migration/compat checks. */
|
|
122
125
|
function resolveVoiceCallLegacyCallLogPath(storePath) {
|
|
@@ -130,17 +133,17 @@ function resolvePluginStateEnv(storePath) {
|
|
|
130
133
|
};
|
|
131
134
|
}
|
|
132
135
|
/** Open the plugin state stores when the runtime is available. */
|
|
133
|
-
function createCallRecordStateStores(storePath) {
|
|
134
|
-
const runtime = getOptionalVoiceCallStateRuntime();
|
|
136
|
+
function createCallRecordStateStores(storePath, stateRuntime) {
|
|
137
|
+
const runtime = stateRuntime ? { state: stateRuntime } : getOptionalVoiceCallStateRuntime();
|
|
135
138
|
if (!runtime) throw new Error("Voice Call state runtime not initialized");
|
|
136
139
|
const env = resolvePluginStateEnv(storePath);
|
|
137
140
|
return {
|
|
138
|
-
events: runtime.state.
|
|
141
|
+
events: runtime.state.openKeyedStore({
|
|
139
142
|
namespace: CALL_RECORD_EVENTS_NAMESPACE,
|
|
140
143
|
maxEntries: CALL_RECORD_EVENT_META_MAX_ENTRIES,
|
|
141
144
|
env
|
|
142
145
|
}),
|
|
143
|
-
chunks: runtime.state.
|
|
146
|
+
chunks: runtime.state.openKeyedStore({
|
|
144
147
|
namespace: CALL_RECORD_EVENT_CHUNKS_NAMESPACE,
|
|
145
148
|
maxEntries: CALL_RECORD_CHUNK_MAX_ENTRIES,
|
|
146
149
|
env
|
|
@@ -148,9 +151,9 @@ function createCallRecordStateStores(storePath) {
|
|
|
148
151
|
};
|
|
149
152
|
}
|
|
150
153
|
/** Open call stores and log failures instead of breaking restore paths. */
|
|
151
|
-
function tryCreateCallRecordStateStores(storePath) {
|
|
154
|
+
function tryCreateCallRecordStateStores(storePath, stateRuntime) {
|
|
152
155
|
try {
|
|
153
|
-
return createCallRecordStateStores(storePath);
|
|
156
|
+
return createCallRecordStateStores(storePath, stateRuntime);
|
|
154
157
|
} catch (err) {
|
|
155
158
|
console.error("[voice-call] Failed to open SQLite call record store:", err);
|
|
156
159
|
return null;
|
|
@@ -220,7 +223,7 @@ function prepareVoiceCallRecordForStorage(call) {
|
|
|
220
223
|
};
|
|
221
224
|
trimCallReplayKeys(boundedCall.processedEventIds);
|
|
222
225
|
}
|
|
223
|
-
if (countCallRecordChunks(boundedCall) <=
|
|
226
|
+
if (countCallRecordChunks(boundedCall) <= MAX_CHUNKS_PER_CALL_RECORD_EVENT) return boundedCall;
|
|
224
227
|
const transcriptEntries = boundedCall.transcript.length;
|
|
225
228
|
const metadata = {
|
|
226
229
|
...boundedCall.metadata,
|
|
@@ -252,88 +255,121 @@ function prepareVoiceCallRecordForStorage(call) {
|
|
|
252
255
|
...boundedCall,
|
|
253
256
|
...candidateInput
|
|
254
257
|
});
|
|
255
|
-
if (countCallRecordChunks(candidate) <=
|
|
258
|
+
if (countCallRecordChunks(candidate) <= MAX_CHUNKS_PER_CALL_RECORD_EVENT) return candidate;
|
|
256
259
|
}
|
|
257
260
|
return boundedCall;
|
|
258
261
|
}
|
|
259
|
-
/**
|
|
260
|
-
function
|
|
262
|
+
/** Encode one bounded record; chunks are produced only when requested by the writer. */
|
|
263
|
+
function encodeCallRecordEvent(call) {
|
|
261
264
|
const serialized = JSON.stringify(prepareVoiceCallRecordForStorage(call));
|
|
262
265
|
const buffer = Buffer.from(serialized, "utf8");
|
|
263
266
|
const chunkCount = Math.max(1, Math.ceil(buffer.byteLength / RAW_CALL_RECORD_CHUNK_BYTES));
|
|
264
|
-
if (chunkCount >
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
267
|
+
if (chunkCount > MAX_CHUNKS_PER_CALL_RECORD_EVENT) throw new Error(`voice-call record exceeds SQLite chunk limit (${chunkCount}/${MAX_CHUNKS_PER_CALL_RECORD_EVENT})`);
|
|
268
|
+
return {
|
|
269
|
+
meta: {
|
|
270
|
+
chunkCount,
|
|
271
|
+
byteLength: buffer.byteLength
|
|
272
|
+
},
|
|
273
|
+
chunk(index) {
|
|
274
|
+
return {
|
|
275
|
+
index,
|
|
276
|
+
dataBase64: buffer.subarray(index * RAW_CALL_RECORD_CHUNK_BYTES, (index + 1) * RAW_CALL_RECORD_CHUNK_BYTES).toString("base64")
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
/** Register a serialized call record event and its chunks, then prune old events. */
|
|
282
|
+
async function registerCallRecordEvent(stores, eventKey, call, order) {
|
|
283
|
+
const encoded = encodeCallRecordEvent(call);
|
|
284
|
+
for (let index = 0; index < encoded.meta.chunkCount; index += 1) await stores.chunks.register(buildChunkKey(eventKey, index), encoded.chunk(index));
|
|
285
|
+
await stores.events.register(eventKey, {
|
|
286
|
+
...encoded.meta,
|
|
287
|
+
persistedAt: order.persistedAt,
|
|
288
|
+
sequence: order.sequence
|
|
277
289
|
});
|
|
278
|
-
pruneCallRecordEvents(stores);
|
|
290
|
+
await pruneCallRecordEvents(stores);
|
|
279
291
|
}
|
|
280
292
|
/** Delete metadata and all chunk rows for one call record event. */
|
|
281
|
-
function deleteCallRecordEventRows(stores, eventKey) {
|
|
282
|
-
const meta = stores.events.lookup(eventKey);
|
|
283
|
-
stores.events.delete(eventKey);
|
|
293
|
+
async function deleteCallRecordEventRows(stores, eventKey) {
|
|
294
|
+
const meta = await stores.events.lookup(eventKey);
|
|
295
|
+
await stores.events.delete(eventKey);
|
|
284
296
|
if (!meta) return;
|
|
285
|
-
for (let index = 0; index < meta.chunkCount; index += 1) stores.chunks.delete(buildChunkKey(eventKey, index));
|
|
297
|
+
for (let index = 0; index < meta.chunkCount; index += 1) await stores.chunks.delete(buildChunkKey(eventKey, index));
|
|
286
298
|
}
|
|
287
299
|
/** Keep only the newest bounded call record events. */
|
|
288
|
-
function pruneCallRecordEvents(stores) {
|
|
289
|
-
|
|
300
|
+
async function pruneCallRecordEvents(stores) {
|
|
301
|
+
if (stores.events.count && await stores.events.count() <= 1e3) return;
|
|
302
|
+
const rows = await stores.events.entries();
|
|
290
303
|
if (rows.length <= 1e3) return;
|
|
291
304
|
const sorted = rows.toSorted((a, b) => a.createdAt - b.createdAt || a.key.localeCompare(b.key));
|
|
292
|
-
for (const row of sorted.slice(0, rows.length - MAX_CALL_RECORD_EVENTS)) deleteCallRecordEventRows(stores, row.key);
|
|
305
|
+
for (const row of sorted.slice(0, rows.length - MAX_CALL_RECORD_EVENTS)) await deleteCallRecordEventRows(stores, row.key);
|
|
306
|
+
}
|
|
307
|
+
function isValidCallRecordChunkCount(chunkCount) {
|
|
308
|
+
return Number.isSafeInteger(chunkCount) && chunkCount >= 1 && chunkCount <= MAX_CHUNKS_PER_CALL_RECORD_EVENT;
|
|
293
309
|
}
|
|
294
310
|
/** Read and reassemble one chunked call record event. */
|
|
295
|
-
function readCallRecordEvent(stores, eventKey, meta) {
|
|
296
|
-
if (!
|
|
297
|
-
const records = stores.chunks.lookupMany?.(Array.from({ length: meta.chunkCount }, (_, index) => buildChunkKey(eventKey, index)));
|
|
311
|
+
async function readCallRecordEvent(stores, eventKey, meta, records) {
|
|
312
|
+
if (!isValidCallRecordChunkCount(meta.chunkCount)) return null;
|
|
298
313
|
const chunks = [];
|
|
299
314
|
for (let index = 0; index < meta.chunkCount; index += 1) {
|
|
300
315
|
const result = records?.[index];
|
|
301
316
|
if (result && !result.ok) throw result.error;
|
|
302
|
-
const chunk = records ? result?.value : stores.chunks.lookup(buildChunkKey(eventKey, index));
|
|
317
|
+
const chunk = records ? result?.value : await stores.chunks.lookup(buildChunkKey(eventKey, index));
|
|
303
318
|
if (!chunk || chunk.index !== index) return null;
|
|
304
319
|
chunks.push(Buffer.from(chunk.dataBase64, "base64"));
|
|
305
320
|
}
|
|
306
321
|
return parseVoiceCallRecordLine(Buffer.concat(chunks, meta.byteLength).toString("utf8"))?.call ?? null;
|
|
307
322
|
}
|
|
308
323
|
/** Read all persisted call records in stable persisted order. */
|
|
309
|
-
function readCallRecordEvents(stores) {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
324
|
+
async function readCallRecordEvents(stores) {
|
|
325
|
+
const entries = (await stores.events.entries()).toSorted((a, b) => a.createdAt - b.createdAt || a.key.localeCompare(b.key));
|
|
326
|
+
const sqliteCalls = [];
|
|
327
|
+
let batchEnd = 0;
|
|
328
|
+
let chunkOffset = 0;
|
|
329
|
+
let chunkRecords;
|
|
330
|
+
for (const [entryIndex, entry] of entries.entries()) {
|
|
331
|
+
if (entryIndex >= batchEnd && stores.chunks.lookupMany) {
|
|
332
|
+
const keys = [];
|
|
333
|
+
for (let next = entryIndex;; next++) {
|
|
334
|
+
const row = entries[next];
|
|
335
|
+
if (!row) break;
|
|
336
|
+
const chunkCount = row.value?.chunkCount;
|
|
337
|
+
if (!isValidCallRecordChunkCount(chunkCount) || keys.length + chunkCount > CALL_RECORD_READ_BATCH_KEYS) break;
|
|
338
|
+
for (let index = 0; index < chunkCount; index++) keys.push(buildChunkKey(row.key, index));
|
|
339
|
+
batchEnd = next + 1;
|
|
340
|
+
}
|
|
341
|
+
chunkRecords = keys.length > 0 ? await stores.chunks.lookupMany(keys) : void 0;
|
|
342
|
+
chunkOffset = 0;
|
|
343
|
+
}
|
|
344
|
+
const records = chunkRecords?.slice(chunkOffset, chunkOffset + entry.value.chunkCount);
|
|
345
|
+
const call = await readCallRecordEvent(stores, entry.key, entry.value, records);
|
|
346
|
+
if (chunkRecords) chunkOffset += entry.value.chunkCount;
|
|
347
|
+
if (call) sqliteCalls.push({
|
|
313
348
|
call,
|
|
314
349
|
persistedAt: entry.value.persistedAt ?? entry.createdAt,
|
|
315
350
|
sequence: entry.value.sequence ?? parseEventKeySequence(entry.key),
|
|
316
351
|
orderKey: entry.key
|
|
317
|
-
}
|
|
318
|
-
}
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
return sqliteCalls.toSorted((a, b) => a.persistedAt - b.persistedAt || a.sequence - b.sequence || a.orderKey.localeCompare(b.orderKey)).map((entry) => entry.call);
|
|
319
355
|
}
|
|
320
356
|
/** Persist one call record event to plugin state. */
|
|
321
|
-
function persistCallRecord(storePath, call) {
|
|
357
|
+
async function persistCallRecord(storePath, call, stateRuntime) {
|
|
322
358
|
try {
|
|
323
|
-
const stores = createCallRecordStateStores(storePath);
|
|
359
|
+
const stores = createCallRecordStateStores(storePath, stateRuntime);
|
|
324
360
|
const order = nextCallRecordOrder();
|
|
325
|
-
registerCallRecordEvent(stores, buildNewEventKey(order), call, order);
|
|
361
|
+
await registerCallRecordEvent(stores, buildNewEventKey(order), call, order);
|
|
326
362
|
} catch (err) {
|
|
327
363
|
console.error("[voice-call] Failed to persist call record:", err);
|
|
328
364
|
throw err;
|
|
329
365
|
}
|
|
330
366
|
}
|
|
331
367
|
/** Restore nonterminal active calls and provider/event indexes from persisted records. */
|
|
332
|
-
function loadActiveCallsFromStore(storePath) {
|
|
333
|
-
const stores = tryCreateCallRecordStateStores(storePath);
|
|
368
|
+
async function loadActiveCallsFromStore(storePath, stateRuntime) {
|
|
369
|
+
const stores = tryCreateCallRecordStateStores(storePath, stateRuntime);
|
|
334
370
|
let calls = [];
|
|
335
371
|
try {
|
|
336
|
-
calls = stores ? readCallRecordEvents(stores) : [];
|
|
372
|
+
calls = stores ? await readCallRecordEvents(stores) : [];
|
|
337
373
|
} catch (err) {
|
|
338
374
|
console.error("[voice-call] Failed to read SQLite call records:", err);
|
|
339
375
|
}
|
|
@@ -363,25 +399,25 @@ function loadActiveCallsFromStore(storePath) {
|
|
|
363
399
|
processedEventIds
|
|
364
400
|
};
|
|
365
401
|
}
|
|
366
|
-
function readCallHistoryFromStore(storePath) {
|
|
367
|
-
const stores = tryCreateCallRecordStateStores(storePath);
|
|
402
|
+
async function readCallHistoryFromStore(storePath, stateRuntime) {
|
|
403
|
+
const stores = tryCreateCallRecordStateStores(storePath, stateRuntime);
|
|
368
404
|
if (stores) try {
|
|
369
|
-
return readCallRecordEvents(stores);
|
|
405
|
+
return await readCallRecordEvents(stores);
|
|
370
406
|
} catch (err) {
|
|
371
407
|
console.error("[voice-call] Failed to read SQLite call history:", err);
|
|
372
408
|
}
|
|
373
409
|
return [];
|
|
374
410
|
}
|
|
375
411
|
/** Resolve an internal ID or retained provider alias to its newest logical call snapshot. */
|
|
376
|
-
function findCallInStore(storePath, callId) {
|
|
377
|
-
const calls = readCallRecordEvents(createCallRecordStateStores(storePath));
|
|
412
|
+
async function findCallInStore(storePath, callId, stateRuntime) {
|
|
413
|
+
const calls = await readCallRecordEvents(createCallRecordStateStores(storePath, stateRuntime));
|
|
378
414
|
const match = calls.findLast((call) => call.callId === callId) ?? calls.findLast((call) => call.providerCallId === callId);
|
|
379
415
|
return match ? calls.findLast((call) => call.callId === match.callId) : void 0;
|
|
380
416
|
}
|
|
381
417
|
/** Return the newest persisted call history rows up to the requested limit. */
|
|
382
|
-
async function getCallHistoryFromStore(storePath, limit = 50) {
|
|
418
|
+
async function getCallHistoryFromStore(storePath, limit = 50, stateRuntime) {
|
|
383
419
|
if (limit <= 0) return [];
|
|
384
|
-
return readCallHistoryFromStore(storePath).slice(-limit);
|
|
420
|
+
return (await readCallHistoryFromStore(storePath, stateRuntime)).slice(-limit);
|
|
385
421
|
}
|
|
386
422
|
//#endregion
|
|
387
423
|
//#region extensions/voice-call/src/store-path.ts
|
|
@@ -390,4 +426,4 @@ function resolveDefaultVoiceCallStoreDir(env = process.env) {
|
|
|
390
426
|
return path.join(resolveStateDir(env), "voice-calls");
|
|
391
427
|
}
|
|
392
428
|
//#endregion
|
|
393
|
-
export { releaseRejectedProviderCall as _, CALL_RECORD_EVENT_META_MAX_ENTRIES as a, setVoiceCallStateRuntime as b, buildVoiceCallLegacyJsonlEventKey as c,
|
|
429
|
+
export { releaseRejectedProviderCall as _, CALL_RECORD_EVENT_META_MAX_ENTRIES as a, setVoiceCallStateRuntime as b, buildVoiceCallLegacyJsonlEventKey as c, getCallHistoryFromStore as d, loadActiveCallsFromStore as f, appendCallReplayKey as g, resolveVoiceCallLegacyCallLogPath as h, CALL_RECORD_EVENT_CHUNKS_NAMESPACE as i, encodeCallRecordEvent as l, persistCallRecord as m, CALL_RECORD_CHUNK_MAX_ENTRIES as n, MAX_CALL_RECORD_EVENTS as o, parseVoiceCallRecordLine as p, CALL_RECORD_EVENTS_NAMESPACE as r, buildChunkKey as s, resolveDefaultVoiceCallStoreDir as t, findCallInStore as u, rememberManagerReplayKey as v, TerminalStates as x, reserveRejectedProviderCall as y };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { s as verifyTelnyxWebhook, t as guardedJsonApiRequest } from "./guarded-json-api-
|
|
1
|
+
import { s as verifyTelnyxWebhook, t as guardedJsonApiRequest } from "./guarded-json-api-exU4Hutw.mjs";
|
|
2
2
|
import crypto from "node:crypto";
|
|
3
3
|
//#region extensions/voice-call/src/providers/telnyx.ts
|
|
4
4
|
function normalizeTelnyxDirection(direction) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { fetchWithSsrFGuard } from "
|
|
2
|
-
import "
|
|
3
|
-
import { n as requireSupportedTwilioApiHostname, r as resolveTwilioApiBaseUrl } from "./twilio-region-4fkgz3UG.
|
|
4
|
-
import { a as normalizeProviderStatus, b as escapeXml, h as chunkAudio, i as mapProviderStatusToEndReason, l as getHeader, r as isProviderStatusTerminal, x as mapVoiceToPolly } from "./runtime-entry-
|
|
5
|
-
import { c as verifyTwilioWebhook, i as readVoiceCallProviderJsonResponse, n as cancelProviderResponseBody, r as readProviderErrorResponseSnippet, t as guardedJsonApiRequest } from "./guarded-json-api-
|
|
1
|
+
import { fetchWithSsrFGuard } from "../runtime-api.js";
|
|
2
|
+
import "../api.js";
|
|
3
|
+
import { n as requireSupportedTwilioApiHostname, r as resolveTwilioApiBaseUrl } from "./twilio-region-4fkgz3UG.mjs";
|
|
4
|
+
import { a as normalizeProviderStatus, b as escapeXml, h as chunkAudio, i as mapProviderStatusToEndReason, l as getHeader, r as isProviderStatusTerminal, x as mapVoiceToPolly } from "./runtime-entry-dDRm6RgA.mjs";
|
|
5
|
+
import { c as verifyTwilioWebhook, i as readVoiceCallProviderJsonResponse, n as cancelProviderResponseBody, r as readProviderErrorResponseSnippet, t as guardedJsonApiRequest } from "./guarded-json-api-exU4Hutw.mjs";
|
|
6
6
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
|
|
8
8
|
import crypto from "node:crypto";
|
|
@@ -99,7 +99,6 @@ function decideTwimlResponse(input) {
|
|
|
99
99
|
kind: "stored",
|
|
100
100
|
consumeStoredTwimlCallId: input.callIdFromQuery
|
|
101
101
|
};
|
|
102
|
-
if (input.isNotifyCall) return { kind: "empty" };
|
|
103
102
|
if (isOutboundDirection(input.direction)) return input.canStream ? { kind: "stream" } : { kind: "pause" };
|
|
104
103
|
}
|
|
105
104
|
if (input.isStatusCallback) return { kind: "empty" };
|
|
@@ -160,11 +159,10 @@ var TwilioProvider = class TwilioProvider {
|
|
|
160
159
|
* Delete stored TwiML for a given `callId`.
|
|
161
160
|
*
|
|
162
161
|
* We keep TwiML in-memory only long enough to satisfy the initial Twilio
|
|
163
|
-
* webhook request
|
|
162
|
+
* webhook request before streaming. Subsequent webhooks should not reuse it.
|
|
164
163
|
*/
|
|
165
164
|
deleteStoredTwiml(callId) {
|
|
166
165
|
this.twimlStorage.delete(callId);
|
|
167
|
-
this.notifyCalls.delete(callId);
|
|
168
166
|
}
|
|
169
167
|
/**
|
|
170
168
|
* Release all process-local metadata owned by one Twilio call.
|
|
@@ -192,7 +190,6 @@ var TwilioProvider = class TwilioProvider {
|
|
|
192
190
|
this.callStreamMap = /* @__PURE__ */ new Map();
|
|
193
191
|
this.streamAuthTokens = /* @__PURE__ */ new Map();
|
|
194
192
|
this.twimlStorage = /* @__PURE__ */ new Map();
|
|
195
|
-
this.notifyCalls = /* @__PURE__ */ new Set();
|
|
196
193
|
this.activeStreamCalls = /* @__PURE__ */ new Set();
|
|
197
194
|
if (!config.accountSid) throw new Error("Twilio Account SID is required");
|
|
198
195
|
if (!config.authToken) throw new Error("Twilio Auth Token is required");
|
|
@@ -414,7 +411,6 @@ var TwilioProvider = class TwilioProvider {
|
|
|
414
411
|
const decision = decideTwimlResponse({
|
|
415
412
|
...view,
|
|
416
413
|
hasStoredTwiml: Boolean(storedTwiml),
|
|
417
|
-
isNotifyCall: view.callIdFromQuery ? this.notifyCalls.has(view.callIdFromQuery) : false,
|
|
418
414
|
hasActiveStreams: this.activeStreamCalls.size > 0,
|
|
419
415
|
canStream: Boolean(view.callSid && this.getStreamUrl())
|
|
420
416
|
});
|
|
@@ -435,9 +431,8 @@ var TwilioProvider = class TwilioProvider {
|
|
|
435
431
|
if (!view.callIdFromQuery || view.isStatusCallback) return null;
|
|
436
432
|
const storedTwiml = this.twimlStorage.get(view.callIdFromQuery);
|
|
437
433
|
if (!storedTwiml) return null;
|
|
438
|
-
const kind = this.notifyCalls.has(view.callIdFromQuery) ? "notify" : "pre-connect";
|
|
439
434
|
this.deleteStoredTwiml(view.callIdFromQuery);
|
|
440
|
-
console.log(`[voice-call] Twilio initial TwiML consumed for call ${view.callIdFromQuery} (kind
|
|
435
|
+
console.log(`[voice-call] Twilio initial TwiML consumed for call ${view.callIdFromQuery} (kind=pre-connect, callSid=${view.callSid ?? "unknown"})`);
|
|
441
436
|
return storedTwiml;
|
|
442
437
|
}
|
|
443
438
|
/**
|
|
@@ -582,18 +577,9 @@ var TwilioProvider = class TwilioProvider {
|
|
|
582
577
|
const SILENCE_CHUNK = Buffer.alloc(CHUNK_SIZE, 255);
|
|
583
578
|
const handler = this.mediaStreamHandler;
|
|
584
579
|
const ttsProvider = this.ttsProvider;
|
|
585
|
-
const normalizeSendResult = (raw) => {
|
|
586
|
-
if (!raw || typeof raw !== "object") return { sent: true };
|
|
587
|
-
const typed = raw;
|
|
588
|
-
return { sent: typed.sent === void 0 ? true : Boolean(typed.sent) };
|
|
589
|
-
};
|
|
590
|
-
const sendAudioChunk = (audio) => {
|
|
591
|
-
const raw = handler.sendAudio(streamSid, audio);
|
|
592
|
-
return normalizeSendResult(raw);
|
|
593
|
-
};
|
|
594
580
|
await handler.queueTts(streamSid, async (signal) => {
|
|
595
581
|
const sendKeepAlive = () => {
|
|
596
|
-
|
|
582
|
+
handler.sendAudio(streamSid, SILENCE_CHUNK);
|
|
597
583
|
};
|
|
598
584
|
sendKeepAlive();
|
|
599
585
|
const keepAlive = setInterval(() => {
|
|
@@ -635,7 +621,7 @@ var TwilioProvider = class TwilioProvider {
|
|
|
635
621
|
for (const chunk of chunkAudio(muLawAudio, CHUNK_SIZE)) {
|
|
636
622
|
if (signal.aborted) break;
|
|
637
623
|
chunkAttempts += 1;
|
|
638
|
-
if (!
|
|
624
|
+
if (!handler.sendAudio(streamSid, chunk).sent) {
|
|
639
625
|
handler.clearAudio(streamSid);
|
|
640
626
|
throw new Error(`Telephony stream playback failed: audio chunk ${chunkAttempts} not delivered`);
|
|
641
627
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { a as CALL_RECORD_EVENT_META_MAX_ENTRIES, c as buildVoiceCallLegacyJsonlEventKey,
|
|
1
|
+
import { a as CALL_RECORD_EVENT_META_MAX_ENTRIES, c as buildVoiceCallLegacyJsonlEventKey, h as resolveVoiceCallLegacyCallLogPath, i as CALL_RECORD_EVENT_CHUNKS_NAMESPACE, l as encodeCallRecordEvent, n as CALL_RECORD_CHUNK_MAX_ENTRIES, o as MAX_CALL_RECORD_EVENTS, p as parseVoiceCallRecordLine, r as CALL_RECORD_EVENTS_NAMESPACE, s as buildChunkKey, t as resolveDefaultVoiceCallStoreDir } from "./.setup/store-path-B1j1up4_.mjs";
|
|
2
2
|
import { normalizeAgentId } from "openclaw/plugin-sdk/routing";
|
|
3
3
|
import { asOptionalRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
|
+
import { existsSync } from "node:fs";
|
|
4
5
|
import path from "node:path";
|
|
5
6
|
import os from "node:os";
|
|
6
|
-
import fs from "node:fs/promises";
|
|
7
|
+
import fs$1 from "node:fs/promises";
|
|
7
8
|
import { archiveLegacyStateSource } from "openclaw/plugin-sdk/runtime-doctor-migrations";
|
|
8
9
|
//#region extensions/voice-call/doctor-contract-api.ts
|
|
9
10
|
/** Resolve home from doctor env with OS fallback. */
|
|
@@ -70,6 +71,7 @@ function describeVoiceCallSchemaMigration(migration) {
|
|
|
70
71
|
case "conversation-binding-targets-v15": return "conversation bindings -> exact target keys without agent/session projections";
|
|
71
72
|
case "skill-workshop-directory-ownership-v16": return "Skill Workshop proposals -> per-agent Workshop directory ownership";
|
|
72
73
|
case "prepared-worker-ownership-v17": return "prepared workers -> one-use capacity and fixed workspace ownership";
|
|
74
|
+
case "github-publication-requester-authority-v18": return "GitHub publication receipts -> original requesting authority";
|
|
73
75
|
case "worker-placement-execution-mode-v8": return "cloud worker placements -> execution-mode claims";
|
|
74
76
|
case "operator-approvals-system-agent": return "operator approvals -> OpenClaw system changes";
|
|
75
77
|
case "session-watch-cursor-provenance-v4": return "session watch cursors -> provenance column";
|
|
@@ -77,37 +79,11 @@ function describeVoiceCallSchemaMigration(migration) {
|
|
|
77
79
|
}
|
|
78
80
|
return migration.kind;
|
|
79
81
|
}
|
|
80
|
-
/** Build the plugin state key for one migrated event chunk. */
|
|
81
|
-
function buildChunkKey(eventKey, index) {
|
|
82
|
-
return `${eventKey}:chunk:${String(index).padStart(4, "0")}`;
|
|
83
|
-
}
|
|
84
|
-
/** Chunk a prepared call record into bounded plugin state rows. */
|
|
85
|
-
function prepareChunks(call) {
|
|
86
|
-
const serialized = JSON.stringify(prepareVoiceCallRecordForStorage(call));
|
|
87
|
-
const buffer = Buffer.from(serialized, "utf8");
|
|
88
|
-
const chunkCount = Math.max(1, Math.ceil(buffer.byteLength / RAW_CALL_RECORD_CHUNK_BYTES));
|
|
89
|
-
if (chunkCount > 48) throw new Error(`voice-call record exceeds SQLite chunk limit (${chunkCount}/48)`);
|
|
90
|
-
const chunks = [];
|
|
91
|
-
for (let index = 0; index < chunkCount; index += 1) {
|
|
92
|
-
const chunk = buffer.subarray(index * RAW_CALL_RECORD_CHUNK_BYTES, (index + 1) * RAW_CALL_RECORD_CHUNK_BYTES);
|
|
93
|
-
chunks.push({
|
|
94
|
-
index,
|
|
95
|
-
dataBase64: chunk.toString("base64")
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
return {
|
|
99
|
-
chunks,
|
|
100
|
-
meta: {
|
|
101
|
-
chunkCount,
|
|
102
|
-
byteLength: buffer.byteLength
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
82
|
/** Read and prepare legacy JSONL call records, collecting line-level warnings. */
|
|
107
83
|
async function readLegacyCallRecords(filePath) {
|
|
108
84
|
let content;
|
|
109
85
|
try {
|
|
110
|
-
content = await fs.readFile(filePath, "utf8");
|
|
86
|
+
content = await fs$1.readFile(filePath, "utf8");
|
|
111
87
|
} catch {
|
|
112
88
|
return {
|
|
113
89
|
entries: [],
|
|
@@ -125,11 +101,12 @@ async function readLegacyCallRecords(filePath) {
|
|
|
125
101
|
continue;
|
|
126
102
|
}
|
|
127
103
|
try {
|
|
128
|
-
const prepared =
|
|
104
|
+
const prepared = encodeCallRecordEvent(parsed.call);
|
|
105
|
+
const chunks = Array.from({ length: prepared.meta.chunkCount }, (_, chunkIndex) => prepared.chunk(chunkIndex));
|
|
129
106
|
entries.push({
|
|
130
107
|
eventKey: buildVoiceCallLegacyJsonlEventKey(line, index),
|
|
131
108
|
lineNumber: index + 1,
|
|
132
|
-
chunks
|
|
109
|
+
chunks,
|
|
133
110
|
meta: {
|
|
134
111
|
...prepared.meta,
|
|
135
112
|
persistedAt: parsed.persistedAt,
|
|
@@ -192,18 +169,23 @@ const stateMigrations = [{
|
|
|
192
169
|
id: "voice-call-calls-jsonl-to-plugin-state",
|
|
193
170
|
label: "Voice Call call log",
|
|
194
171
|
async detectLegacyState(params) {
|
|
195
|
-
const { detectOpenClawStateDatabaseSchemaMigrations } = await import("openclaw/plugin-sdk/doctor-repair-runtime");
|
|
196
172
|
const storePath = resolveVoiceCallStorePath(params);
|
|
173
|
+
if (!existsSync(storePath)) return null;
|
|
174
|
+
const { detectOpenClawStateDatabaseSchemaMigrations } = await import("openclaw/plugin-sdk/doctor-repair-runtime");
|
|
197
175
|
const { entries } = await readLegacyCallRecords(resolveVoiceCallLegacyCallLogPath(storePath));
|
|
198
176
|
const schemaMigrations = detectOpenClawStateDatabaseSchemaMigrations({ env: resolveVoiceCallStateDatabaseEnv(params) });
|
|
199
177
|
if (entries.length === 0 && schemaMigrations.length === 0) return null;
|
|
200
178
|
return { preview: [...schemaMigrations.map((migration) => `- Voice Call SQLite schema: ${describeVoiceCallSchemaMigration(migration)}`), ...entries.length > 0 ? [`- Voice Call call log: ${entries.length} ${entries.length === 1 ? "record" : "records"} -> plugin state (${CALL_RECORD_EVENTS_NAMESPACE})`] : []] };
|
|
201
179
|
},
|
|
202
180
|
async migrateLegacyState(params) {
|
|
203
|
-
const { detectOpenClawStateDatabaseSchemaMigrations, repairOpenClawStateDatabaseSchema } = await import("openclaw/plugin-sdk/doctor-repair-runtime");
|
|
204
181
|
const changes = [];
|
|
205
182
|
const warnings = [];
|
|
206
183
|
const storePath = resolveVoiceCallStorePath(params);
|
|
184
|
+
if (!existsSync(storePath)) return {
|
|
185
|
+
changes,
|
|
186
|
+
warnings
|
|
187
|
+
};
|
|
188
|
+
const { detectOpenClawStateDatabaseSchemaMigrations, repairOpenClawStateDatabaseSchema } = await import("openclaw/plugin-sdk/doctor-repair-runtime");
|
|
207
189
|
const filePath = resolveVoiceCallLegacyCallLogPath(storePath);
|
|
208
190
|
const { entries, warnings: readWarnings } = await readLegacyCallRecords(filePath);
|
|
209
191
|
warnings.push(...readWarnings);
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { definePluginEntry } from "./runtime-api.js";
|
|
2
2
|
import "./api.js";
|
|
3
3
|
import { VOICE_CALL_CLI_DESCRIPTOR } from "./cli-output-mode.js";
|
|
4
|
-
import { i as resolveVoiceCallConfig, t as VoiceCallConfigSchema, u as validateProviderConfig } from "
|
|
5
|
-
import { t as createVoiceCallRuntime } from "
|
|
4
|
+
import { i as resolveVoiceCallConfig, t as VoiceCallConfigSchema, u as validateProviderConfig } from "./.setup/config-72FnMWHb.mjs";
|
|
5
|
+
import { t as createVoiceCallRuntime } from "./.setup/runtime-entry-dDRm6RgA.mjs";
|
|
6
6
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
7
7
|
import { ErrorCodes, errorShape } from "openclaw/plugin-sdk/gateway-runtime";
|
|
8
8
|
import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
|
|
@@ -514,7 +514,7 @@ var voice_call_default = definePluginEntry({
|
|
|
514
514
|
}
|
|
515
515
|
}));
|
|
516
516
|
api.registerCli(async ({ program }) => {
|
|
517
|
-
const { registerVoiceCallCli } = await import("
|
|
517
|
+
const { registerVoiceCallCli } = await import("./.setup/cli-D6j7ppuN.mjs");
|
|
518
518
|
registerVoiceCallCli({
|
|
519
519
|
program,
|
|
520
520
|
config,
|
package/dist/runtime-entry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as createVoiceCallRuntime } from "
|
|
1
|
+
import { t as createVoiceCallRuntime } from "./.setup/runtime-entry-dDRm6RgA.mjs";
|
|
2
2
|
export { createVoiceCallRuntime };
|
|
@@ -18,7 +18,7 @@ export declare class Validator<Context extends TProperties = TProperties, Type e
|
|
|
18
18
|
Check(value: unknown): value is Encode;
|
|
19
19
|
/** Validates a value and returns it. Will throw if invalid. */
|
|
20
20
|
Parse(value: unknown): Encode;
|
|
21
|
-
/**
|
|
21
|
+
/** Returns an array of validation errors for the given value. */
|
|
22
22
|
Errors(value: unknown): TLocalizedValidationError[];
|
|
23
23
|
/** Cleans a value using the Validator type. */
|
|
24
24
|
Clean(value: unknown): unknown;
|
|
@@ -53,7 +53,7 @@ export class Validator {
|
|
|
53
53
|
return Parser(this.Context(), this.Type(), value);
|
|
54
54
|
throw new ParseError(value, this.Errors(value));
|
|
55
55
|
}
|
|
56
|
-
/**
|
|
56
|
+
/** Returns an array of validation errors for the given value. */
|
|
57
57
|
Errors(value) {
|
|
58
58
|
if (this.IsAccelerated() && this.Check(value))
|
|
59
59
|
return [];
|
|
@@ -14,14 +14,16 @@ function IsLabel(value) {
|
|
|
14
14
|
// ------------------------------------------------------------------
|
|
15
15
|
// NormalizeHostname
|
|
16
16
|
//
|
|
17
|
-
// Normalizes a hostname for label validation.
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
//
|
|
17
|
+
// Normalizes a hostname for label validation. Maps fullwidth
|
|
18
|
+
// codepoints to their ASCII equivalent (e.g. 'a' U+FF41 maps to
|
|
19
|
+
// 'a'), then normalizes for NFC such that equivalent codepoint
|
|
20
|
+
// sequences can be uniformly compared. It also removes codepoints
|
|
21
|
+
// that IDNA mapping ignores, and converts full stop variants to
|
|
22
|
+
// ASCII '.' so the hostname can be split into labels.
|
|
22
23
|
// ------------------------------------------------------------------
|
|
23
24
|
function NormalizeHostname(value) {
|
|
24
25
|
return value
|
|
26
|
+
.replace(/[\uff01-\uff5e]/g, (char) => String.fromCharCode(char.charCodeAt(0) - 0xfee0)) // RE_FULLWIDTH_MAPPING
|
|
25
27
|
.normalize('NFC')
|
|
26
28
|
.replace(/[\u00ad\u034f\u180b-\u180d\u200b\ufe00-\ufe0f\u{e0100}-\u{e01ef}]/gu, '') // RE_IGNORED_MAPPING
|
|
27
29
|
.replace(/[\u002E\u3002\uFF0E\uFF61]/g, '.'); // RE_FULL_STOP_MAPPING
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
const IpvFutureMatchMaxLength = 2048;
|
|
3
3
|
const IpvFutureMatch = /\[[vV][0-9a-fA-F]+\.[^\]]+\]/; // Guarded By IpvFutureMatchMaxLength
|
|
4
4
|
const InvalidIriChars = /[\x00-\x20<>\^`{|}\\]/;
|
|
5
|
+
const InvalidPercentEncoding = /%(?![0-9a-fA-F]{2})/;
|
|
5
6
|
// ------------------------------------------------------------------
|
|
6
7
|
// NarrowIpvFuture
|
|
7
8
|
//
|
|
@@ -26,6 +27,9 @@ export function IsIri(value) {
|
|
|
26
27
|
// 1. Reject strings containing unencoded whitespace or illegal control characters.
|
|
27
28
|
if (InvalidIriChars.test(value))
|
|
28
29
|
return false;
|
|
29
|
-
// 2.
|
|
30
|
+
// 2. Reject malformed percent-encoding triplets.
|
|
31
|
+
if (InvalidPercentEncoding.test(value))
|
|
32
|
+
return false;
|
|
33
|
+
// 3. Delegate to the native URL parser, patching the IPvFuture edge case beforehand.
|
|
30
34
|
return URL.canParse(NarrowIpvFuture(value));
|
|
31
35
|
}
|
|
@@ -106,15 +106,13 @@ export function IsMaxLength(value, length) {
|
|
|
106
106
|
// Array
|
|
107
107
|
// --------------------------------------------------------------------------
|
|
108
108
|
export function Every(value, offset, params, expression) {
|
|
109
|
-
return G.IsEqual(offset, '0')
|
|
110
|
-
? `${value}.every((${params[0]}, ${params[1]}) => ${expression})`
|
|
111
|
-
: `((value, callback) => { for(let index = ${offset}; index < value.length; index++) if (!callback(value[index], index)) return false; return true })(${value}, (${params[0]}, ${params[1]}) => ${expression})`;
|
|
109
|
+
return G.IsEqual(offset, '0') ? `${value}.every((${params[0]}, ${params[1]}) => (${expression}))` : `${value}.every((${params[0]}, ${params[1]}) => (${params[1]} < ${offset}) || (${expression}))`;
|
|
112
110
|
}
|
|
113
111
|
export function Some(value, params, expression) {
|
|
114
112
|
return `${value}.some((${params[0]}, ${params[1]}) => ${expression})`;
|
|
115
113
|
}
|
|
116
114
|
export function SomeAll(value, params, expression) {
|
|
117
|
-
return `((value
|
|
115
|
+
return `((value) => { let result = false; value.forEach((${params[0]}, ${params[1]}) => { if (${expression}) result = true }); return result })(${value})`;
|
|
118
116
|
}
|
|
119
117
|
export function Counted(value, params, expression) {
|
|
120
118
|
return `${value}.reduce((result, ${params[0]}, ${params[1]}) => (${expression}) ? ++result : result, 0)`;
|
|
@@ -140,36 +140,24 @@ export function IsMinLength(value, length) {
|
|
|
140
140
|
// --------------------------------------------------------------------------
|
|
141
141
|
/** Returns true if every element from offset satisfies the callback, short-circuiting on the first failure */
|
|
142
142
|
export function Every(value, offset, callback) {
|
|
143
|
-
|
|
144
|
-
if (!callback(value[index], index))
|
|
145
|
-
return false;
|
|
146
|
-
}
|
|
147
|
-
return true;
|
|
143
|
+
return value.every((item, index) => (index < offset) || callback(item, index));
|
|
148
144
|
}
|
|
149
145
|
/** Returns true if every element from offset satisfies the callback, using exhaustive enumeration */
|
|
150
146
|
export function EveryAll(value, offset, callback) {
|
|
151
147
|
let result = true;
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
result = false;
|
|
155
|
-
}
|
|
148
|
+
value.forEach((item, index) => { if ((index >= offset) && !callback(item, index))
|
|
149
|
+
result = false; });
|
|
156
150
|
return result;
|
|
157
151
|
}
|
|
158
152
|
/** Returns true if some element satisfies the callback, short-circuiting on the first success */
|
|
159
153
|
export function Some(value, callback) {
|
|
160
|
-
|
|
161
|
-
if (callback(value[index], index))
|
|
162
|
-
return true;
|
|
163
|
-
}
|
|
164
|
-
return false;
|
|
154
|
+
return value.some((value, index) => callback(value, index));
|
|
165
155
|
}
|
|
166
156
|
/** Returns true if some element satisfies the callback, using exhaustive enumeration */
|
|
167
157
|
export function SomeAll(value, callback) {
|
|
168
158
|
let result = false;
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
result = true;
|
|
172
|
-
}
|
|
159
|
+
value.forEach((item, index) => { if (callback(item, index))
|
|
160
|
+
result = true; });
|
|
173
161
|
return result;
|
|
174
162
|
}
|
|
175
163
|
/** Returns the count of elements that satisfy the callback */
|